Browse Source

- Merged contexts locals and args into one object
- Recompiled all .js files

Nicolas Petton 12 years ago
parent
commit
c5a513a221
50 changed files with 3561 additions and 3521 deletions
  1. 24 24
      js/Benchfib.deploy.js
  2. 24 24
      js/Benchfib.js
  3. 112 112
      js/Canvas.deploy.js
  4. 112 112
      js/Canvas.js
  5. 100 100
      js/Compiler-AST.deploy.js
  6. 100 100
      js/Compiler-AST.js
  7. 58 58
      js/Compiler-Core.deploy.js
  8. 58 58
      js/Compiler-Core.js
  9. 8 8
      js/Compiler-Exceptions.deploy.js
  10. 8 8
      js/Compiler-Exceptions.js
  11. 153 117
      js/Compiler-IR.deploy.js
  12. 160 114
      js/Compiler-IR.js
  13. 103 103
      js/Compiler-Inlining.deploy.js
  14. 103 103
      js/Compiler-Inlining.js
  15. 32 32
      js/Compiler-Interpreter.deploy.js
  16. 32 32
      js/Compiler-Interpreter.js
  17. 106 106
      js/Compiler-Semantic.deploy.js
  18. 106 106
      js/Compiler-Semantic.js
  19. 62 62
      js/Compiler-Tests.deploy.js
  20. 62 62
      js/Compiler-Tests.js
  21. 9 9
      js/Examples.deploy.js
  22. 9 9
      js/Examples.js
  23. 136 136
      js/IDE.deploy.js
  24. 136 136
      js/IDE.js
  25. 74 74
      js/Importer-Exporter.deploy.js
  26. 74 74
      js/Importer-Exporter.js
  27. 16 16
      js/Kernel-Announcements.deploy.js
  28. 16 16
      js/Kernel-Announcements.js
  29. 109 109
      js/Kernel-Classes.deploy.js
  30. 109 109
      js/Kernel-Classes.js
  31. 136 136
      js/Kernel-Collections.deploy.js
  32. 136 136
      js/Kernel-Collections.js
  33. 26 26
      js/Kernel-Exceptions.deploy.js
  34. 26 26
      js/Kernel-Exceptions.js
  35. 74 85
      js/Kernel-Methods.deploy.js
  36. 74 90
      js/Kernel-Methods.js
  37. 116 116
      js/Kernel-Objects.deploy.js
  38. 116 116
      js/Kernel-Objects.js
  39. 161 161
      js/Kernel-Tests.deploy.js
  40. 161 161
      js/Kernel-Tests.js
  41. 12 12
      js/Kernel-Transcript.deploy.js
  42. 12 12
      js/Kernel-Transcript.js
  43. 51 51
      js/SUnit-Tests.deploy.js
  44. 51 51
      js/SUnit-Tests.js
  45. 86 86
      js/SUnit.deploy.js
  46. 86 86
      js/SUnit.js
  47. 4 9
      js/boot.js
  48. 21 19
      st/Compiler-IR.st
  49. 1 9
      st/IDE.st
  50. 0 4
      st/Kernel-Methods.st

+ 24 - 24
js/Benchfib.deploy.js

@@ -10,7 +10,7 @@ var self=this;
 var result;
 return smalltalk.withContext(function($ctx1) { 
result=_st((0))._tinyBenchmarks();
 _st(console)._log_(_st("0 tinyBenchmarks => ").__comma(result));
-return self}, function($ctx1) {$ctx1.fill(self,"main", [], {result:result}, smalltalk.Benchfib.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"main",{result:result}, smalltalk.Benchfib.klass)})}
 }),
 smalltalk.Benchfib.klass);
 
@@ -29,7 +29,7 @@ $1=(1);
 $1=_st(_st(_st(_st(self).__minus((1)))._benchFib()).__plus(_st(_st(self).__minus((2)))._benchFib())).__plus((1));
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"benchFib", [], {}, smalltalk.Number)})}
+}, function($ctx1) {$ctx1.fill(self,"benchFib",{}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 
@@ -50,7 +50,7 @@ flags=_st((smalltalk.Array || Array))._new();
 flags;
 _st(size)._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $3=size;
 $4=(function(i){
 return smalltalk.withContext(function($ctx3) {
$5=_st(flags)._at_(i);
@@ -61,21 +61,21 @@ k=_st(i).__plus(prime);
 k;
 _st((function(){
 return smalltalk.withContext(function($ctx4) {
return _st(k).__lt_eq(size);
-}, function($ctx4) {$ctx4.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx4) {
_st(flags)._at_put_(k,false);
 k=_st(k).__plus(prime);
 return k;
-}, function($ctx4) {$ctx4.fillBlock([], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
 count=_st(count).__plus((1));
 return count;
 };
-}, function($ctx3) {$ctx3.fillBlock([i], {})})});
+}, function($ctx3) {$ctx3.fillBlock({i:i},$ctx1)})});
 return _st((1))._to_do_($3,$4);
-}, function($ctx2) {$ctx2.fillBlock([iter], {})})});
+}, function($ctx2) {$ctx2.fillBlock({iter:iter},$ctx1)})});
 _st((1))._to_do_($1,$2);
 $6=count;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"benchmark", [], {size:size,flags:flags,prime:prime,k:k,count:count}, smalltalk.Number)})}
+}, function($ctx1) {$ctx1.fill(self,"benchmark",{size:size,flags:flags,prime:prime,k:k,count:count}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 
@@ -89,7 +89,7 @@ return smalltalk.withContext(function($ctx1) { 
if (this < 2) {
 return 1;
 } else {
 return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;};
-return self}, function($ctx1) {$ctx1.fill(self,"jsbenchFib", [], {}, smalltalk.Number)})}
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchFib",{}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 
@@ -121,7 +121,7 @@ for (var z=0;z<this;z++) {
   }
 }
 return count;
-return self}, function($ctx1) {$ctx1.fill(self,"jsbenchmark", [], {}, smalltalk.Number)})}
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchmark",{}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 
@@ -137,28 +137,28 @@ n1=(1);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 return _st(t1).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n1=_st(n1).__star((2));
 return n1;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(28);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return r;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t2;
 return _st(t2).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n2=_st(n2).__plus((1));
 return n2;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(_st(_st(_st(_st(_st(_st(n1).__star((500000))).__star((1000))).__slash(t1))._printString()).__comma(" bytecodes/sec; ")).__comma(_st(_st(_st(r).__star((1000))).__slash(t2))._printString())).__comma(" sends/sec");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"jstinyBenchmarks", [], {t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})}
+}, function($ctx1) {$ctx1.fill(self,"jstinyBenchmarks",{t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 
@@ -174,28 +174,28 @@ n1=(1);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 return _st(t1).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n1=_st(n1).__star((2));
 return n1;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(16);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return r;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t2;
 return _st(t2).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n2=_st(n2).__plus((1));
 return n2;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(_st(_st(_st(_st(_st(_st(n1).__star((500000))).__star((1000))).__slash(t1))._printString()).__comma(" bytecodes/sec; ")).__comma(_st(_st(_st(r).__star((1000))).__slash(t2))._printString())).__comma(" sends/sec");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"tinyBenchmarks", [], {t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})}
+}, function($ctx1) {$ctx1.fill(self,"tinyBenchmarks",{t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})}
 }),
 smalltalk.Number);
 

+ 24 - 24
js/Benchfib.js

@@ -11,7 +11,7 @@ var self=this;
 var result;
 return smalltalk.withContext(function($ctx1) { 
result=_st((0))._tinyBenchmarks();
 _st(console)._log_(_st("0 tinyBenchmarks => ").__comma(result));
-return self}, function($ctx1) {$ctx1.fill(self,"main", [], {result:result}, smalltalk.Benchfib.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"main",{result:result}, smalltalk.Benchfib.klass)})},
 args: [],
 source: "main\x0a\x0a\x09| result |\x0a\x09result := 0 tinyBenchmarks.\x0a\x09console log: '0 tinyBenchmarks => ' , result",
 messageSends: ["tinyBenchmarks", "log:", ","],
@@ -35,7 +35,7 @@ $1=(1);
 $1=_st(_st(_st(_st(self).__minus((1)))._benchFib()).__plus(_st(_st(self).__minus((2)))._benchFib())).__plus((1));
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"benchFib", [], {}, smalltalk.Number)})},
+}, function($ctx1) {$ctx1.fill(self,"benchFib",{}, smalltalk.Number)})},
 args: [],
 source: "benchFib \x0a\x09\x22Handy send-heavy benchmark\x22\x0a\x09\x22(result // seconds to run) = approx calls per second\x22\x0a\x09\x22 | r t |\x0a\x09  t := Time millisecondsToRun: [r := 26 benchFib].\x0a\x09  (r * 1000) // t\x22\x0a\x09\x22138000 on a Mac 8100/100\x22\x0a\x09^ self < 2 \x0a\x09\x09ifTrue: [1] \x0a\x09\x09ifFalse: [(self-1) benchFib + (self-2) benchFib + 1]",
 messageSends: ["ifTrue:ifFalse:", "+", "benchFib", "-", "<"],
@@ -61,7 +61,7 @@ flags=_st((smalltalk.Array || Array))._new();
 flags;
 _st(size)._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $3=size;
 $4=(function(i){
 return smalltalk.withContext(function($ctx3) {
$5=_st(flags)._at_(i);
@@ -72,21 +72,21 @@ k=_st(i).__plus(prime);
 k;
 _st((function(){
 return smalltalk.withContext(function($ctx4) {
return _st(k).__lt_eq(size);
-}, function($ctx4) {$ctx4.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx4) {
_st(flags)._at_put_(k,false);
 k=_st(k).__plus(prime);
 return k;
-}, function($ctx4) {$ctx4.fillBlock([], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
 count=_st(count).__plus((1));
 return count;
 };
-}, function($ctx3) {$ctx3.fillBlock([i], {})})});
+}, function($ctx3) {$ctx3.fillBlock({i:i},$ctx1)})});
 return _st((1))._to_do_($3,$4);
-}, function($ctx2) {$ctx2.fillBlock([iter], {})})});
+}, function($ctx2) {$ctx2.fillBlock({iter:iter},$ctx1)})});
 _st((1))._to_do_($1,$2);
 $6=count;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"benchmark", [], {size:size,flags:flags,prime:prime,k:k,count:count}, smalltalk.Number)})},
+}, function($ctx1) {$ctx1.fill(self,"benchmark",{size:size,flags:flags,prime:prime,k:k,count:count}, smalltalk.Number)})},
 args: [],
 source: "benchmark \x0a\x09\x22Handy bytecode-heavy benchmark\x22\x0a\x09\x22(500000 // time to run) = approx bytecodes per second\x22\x0a\x09\x225000000 // (Time millisecondsToRun: [10 benchmark]) * 1000\x22\x0a\x09\x223059000 on a Mac 8100/100\x22\x0a    | size flags prime k count |\x0a    size := 8190.\x0a    1 to: self do:\x0a        [:iter |\x0a        count := 0.\x0a        flags := Array new.\x0a        size timesRepeat: [ flags add: true].\x0a        1 to: size do:\x0a            [:i | (flags at: i) ifTrue:\x0a                [prime := i+1.\x0a                k := i + prime.\x0a                [k <= size] whileTrue:\x0a                    [flags at: k put: false.\x0a                    k := k + prime].\x0a                count := count + 1]]].\x0a    ^ count",
 messageSends: ["to:do:", "new", "timesRepeat:", "add:", "ifTrue:", "+", "whileTrue:", "at:put:", "<=", "at:"],
@@ -105,7 +105,7 @@ return smalltalk.withContext(function($ctx1) { 
if (this < 2) {
 return 1;
 } else {
 return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;};
-return self}, function($ctx1) {$ctx1.fill(self,"jsbenchFib", [], {}, smalltalk.Number)})},
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchFib",{}, smalltalk.Number)})},
 args: [],
 source: "jsbenchFib\x0a \x0a\x09<if (this < 2) {\x0areturn 1;\x0a} else {\x0areturn (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}>",
 messageSends: [],
@@ -142,7 +142,7 @@ for (var z=0;z<this;z++) {
   }
 }
 return count;
-return self}, function($ctx1) {$ctx1.fill(self,"jsbenchmark", [], {}, smalltalk.Number)})},
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchmark",{}, smalltalk.Number)})},
 args: [],
 source: "jsbenchmark\x0a\x0a<\x0avar size = 8190;\x0avar count;\x0afor (var z=0;z<this;z++) {\x0a  count = 0;\x0a  var flags = new Array();\x0a  for (var p=0; p<size; p++) {\x0a    flags[p] = true;\x0a  }\x0a  for (var i=1;i<=size;i++) {\x0a    if (flags[i-1]) {\x0a      var prime = i+1;\x0a      var k = i + prime;\x0a      while (k <= size) {\x0a        flags[k-1] = false;\x0a        k = k + prime;\x0a      }\x0a      count = count + 1;\x0a    }\x0a  }\x0a}\x0areturn count>",
 messageSends: [],
@@ -163,28 +163,28 @@ n1=(1);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 return _st(t1).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n1=_st(n1).__star((2));
 return n1;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(28);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return r;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t2;
 return _st(t2).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n2=_st(n2).__plus((1));
 return n2;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(_st(_st(_st(_st(_st(_st(n1).__star((500000))).__star((1000))).__slash(t1))._printString()).__comma(" bytecodes/sec; ")).__comma(_st(_st(_st(r).__star((1000))).__slash(t2))._printString())).__comma(" sends/sec");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"jstinyBenchmarks", [], {t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})},
+}, function($ctx1) {$ctx1.fill(self,"jstinyBenchmarks",{t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})},
 args: [],
 source: "jstinyBenchmarks\x0a\x09\x220 jstinyBenchmarks\x22\x0a\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 jsbenchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 28.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 jsbenchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #jsbenchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09  ((r * 1000) / t2) printString, ' sends/sec'",
 messageSends: ["whileTrue:", "*", "millisecondsToRun:", "jsbenchmark", "<", "+", "jsbenchFib", ",", "printString", "/"],
@@ -205,28 +205,28 @@ n1=(1);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 return _st(t1).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n1=_st(n1).__star((2));
 return n1;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(16);
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return r;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t2;
 return _st(t2).__lt((1000));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileTrue_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
n2=_st(n2).__plus((1));
 return n2;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(_st(_st(_st(_st(_st(_st(n1).__star((500000))).__star((1000))).__slash(t1))._printString()).__comma(" bytecodes/sec; ")).__comma(_st(_st(_st(r).__star((1000))).__slash(t2))._printString())).__comma(" sends/sec");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"tinyBenchmarks", [], {t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})},
+}, function($ctx1) {$ctx1.fill(self,"tinyBenchmarks",{t1:t1,t2:t2,r:r,n1:n1,n2:n2}, smalltalk.Number)})},
 args: [],
 source: "tinyBenchmarks \x0a\x09\x22Report the results of running the two tiny Squeak benchmarks.\x0a\x09ar 9/10/1999: Adjusted to run at least 1 sec to get more stable results\x22\x0a\x09\x220 tinyBenchmarks\x22\x0a\x09\x22On a 292 MHz G3 Mac: 22727272 bytecodes/sec; 984169 sends/sec\x22\x0a\x09\x22On a 400 MHz PII/Win98:  18028169 bytecodes/sec; 1081272 sends/sec\x22\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 benchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 16.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 benchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #benchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09  ((r * 1000) / t2) printString, ' sends/sec'",
 messageSends: ["whileTrue:", "*", "millisecondsToRun:", "benchmark", "<", "+", "benchFib", ",", "printString", "/"],

File diff suppressed because it is too large
+ 112 - 112
js/Canvas.deploy.js


File diff suppressed because it is too large
+ 112 - 112
js/Canvas.js


+ 100 - 100
js/Compiler-AST.deploy.js

@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -20,7 +20,7 @@ selector: "addNode:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
-return self}, function($ctx1) {$ctx1.fill(self,"addNode:", [aNode], {}, smalltalk.Node)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -31,7 +31,7 @@ selector: "isAssignmentNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -42,7 +42,7 @@ selector: "isBlockNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -53,7 +53,7 @@ selector: "isBlockSequenceNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -64,7 +64,7 @@ selector: "isImmutable",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -75,7 +75,7 @@ selector: "isReturnNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -86,7 +86,7 @@ selector: "isSendNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -97,7 +97,7 @@ selector: "isValueNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -116,7 +116,7 @@ $1=self["@nodes"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -127,7 +127,7 @@ selector: "nodes:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"nodes:", [aCollection], {}, smalltalk.Node)})}
+return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -146,7 +146,7 @@ $1=self["@position"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"position", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -157,7 +157,7 @@ selector: "position:",
 fn: function (aPosition){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
-return self}, function($ctx1) {$ctx1.fill(self,"position:", [aPosition], {}, smalltalk.Node)})}
+return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -175,7 +175,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -186,7 +186,7 @@ selector: "shouldBeAliased:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:", [aBoolean], {}, smalltalk.Node)})}
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -204,7 +204,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -215,7 +215,7 @@ selector: "shouldBeInlined:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:", [aBoolean], {}, smalltalk.Node)})}
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -228,15 +228,15 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._shouldBeAliased())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._or_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._nodes())._detect_ifNone_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(each)._subtreeNeedsAliasing();
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return false;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))).__tild_eq(false);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing", [], {}, smalltalk.Node)})}
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})}
 }),
 smalltalk.Node);
 
@@ -252,7 +252,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.AssignmentNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -263,7 +263,7 @@ selector: "isAssignmentNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode", [], {}, smalltalk.AssignmentNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -276,7 +276,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@left"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"left", [], {}, smalltalk.AssignmentNode)})}
+}, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -287,7 +287,7 @@ selector: "left:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"left:", [aNode], {}, smalltalk.AssignmentNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -300,7 +300,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.AssignmentNode)})}
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -313,7 +313,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@right"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"right", [], {}, smalltalk.AssignmentNode)})}
+}, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -324,7 +324,7 @@ selector: "right:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"right:", [aNode], {}, smalltalk.AssignmentNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})}
 }),
 smalltalk.AssignmentNode);
 
@@ -340,7 +340,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.BlockNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -351,7 +351,7 @@ selector: "isBlockNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode", [], {}, smalltalk.BlockNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -370,7 +370,7 @@ $1=self["@parameters"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parameters", [], {}, smalltalk.BlockNode)})}
+}, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -381,7 +381,7 @@ selector: "parameters:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"parameters:", [aCollection], {}, smalltalk.BlockNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -394,7 +394,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.BlockNode)})}
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -405,7 +405,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.BlockNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})}
 }),
 smalltalk.BlockNode);
 
@@ -421,7 +421,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitCascadeNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.CascadeNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})}
 }),
 smalltalk.CascadeNode);
 
@@ -434,7 +434,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.CascadeNode)})}
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})}
 }),
 smalltalk.CascadeNode);
 
@@ -445,7 +445,7 @@ selector: "receiver:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [aNode], {}, smalltalk.CascadeNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})}
 }),
 smalltalk.CascadeNode);
 
@@ -461,7 +461,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.DynamicArrayNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})}
 }),
 smalltalk.DynamicArrayNode);
 
@@ -477,7 +477,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.DynamicDictionaryNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})}
 }),
 smalltalk.DynamicDictionaryNode);
 
@@ -493,7 +493,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.JSStatementNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})}
 }),
 smalltalk.JSStatementNode);
 
@@ -511,7 +511,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.JSStatementNode)})}
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})}
 }),
 smalltalk.JSStatementNode);
 
@@ -522,7 +522,7 @@ selector: "source:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.JSStatementNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})}
 }),
 smalltalk.JSStatementNode);
 
@@ -538,7 +538,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitMethodNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -556,7 +556,7 @@ $1=[];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -567,7 +567,7 @@ selector: "arguments:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [aCollection], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -580,7 +580,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@classReferences"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -591,7 +591,7 @@ selector: "classReferences:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"classReferences:", [aCollection], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -604,7 +604,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageSends"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -615,7 +615,7 @@ selector: "messageSends:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"messageSends:", [aCollection], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -628,7 +628,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -639,7 +639,7 @@ selector: "scope:",
 fn: function (aMethodScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aMethodScope], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -652,7 +652,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -663,7 +663,7 @@ selector: "selector:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -676,7 +676,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@source"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -687,7 +687,7 @@ selector: "source:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -700,7 +700,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@superSends"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends", [], {}, smalltalk.MethodNode)})}
+}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -711,7 +711,7 @@ selector: "superSends:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"superSends:", [aCollection], {}, smalltalk.MethodNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})}
 }),
 smalltalk.MethodNode);
 
@@ -727,7 +727,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitReturnNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ReturnNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})}
 }),
 smalltalk.ReturnNode);
 
@@ -738,7 +738,7 @@ selector: "isReturnNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode", [], {}, smalltalk.ReturnNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})}
 }),
 smalltalk.ReturnNode);
 
@@ -751,7 +751,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn", [], {}, smalltalk.ReturnNode)})}
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})}
 }),
 smalltalk.ReturnNode);
 
@@ -764,7 +764,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.ReturnNode)})}
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})}
 }),
 smalltalk.ReturnNode);
 
@@ -775,7 +775,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.ReturnNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})}
 }),
 smalltalk.ReturnNode);
 
@@ -791,7 +791,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSendNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -810,7 +810,7 @@ $1=self["@arguments"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -821,7 +821,7 @@ selector: "arguments:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [aCollection], {}, smalltalk.SendNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -844,7 +844,7 @@ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aColl
 $5=_st($4)._yourself();
 $3=$5;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:", [aCollection], {first:first}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -857,7 +857,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@index"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"index", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -868,7 +868,7 @@ selector: "index:",
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"index:", [anInteger], {}, smalltalk.SendNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -879,7 +879,7 @@ selector: "isSendNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -895,7 +895,7 @@ _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -908,7 +908,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -919,7 +919,7 @@ selector: "receiver:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [aNode], {}, smalltalk.SendNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -932,7 +932,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -943,7 +943,7 @@ selector: "selector:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.SendNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -961,7 +961,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSend", [], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -972,7 +972,7 @@ selector: "superSend:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"superSend:", [aBoolean], {}, smalltalk.SendNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -997,7 +997,7 @@ _st($2)._arguments_(_st(self)._arguments());
 $6=_st($2)._yourself();
 $1=$6;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:", [anObject], {}, smalltalk.SendNode)})}
+}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})}
 }),
 smalltalk.SendNode);
 
@@ -1013,7 +1013,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSequenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.SequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1030,7 +1030,7 @@ _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode", [], {}, smalltalk.SequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1043,7 +1043,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.SequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1054,7 +1054,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.SequenceNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1072,7 +1072,7 @@ $1=[];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.SequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1083,7 +1083,7 @@ selector: "temps:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"temps:", [aCollection], {}, smalltalk.SequenceNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})}
 }),
 smalltalk.SequenceNode);
 
@@ -1099,7 +1099,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.BlockSequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})}
 }),
 smalltalk.BlockSequenceNode);
 
@@ -1110,7 +1110,7 @@ selector: "isBlockSequenceNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode", [], {}, smalltalk.BlockSequenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})}
 }),
 smalltalk.BlockSequenceNode);
 
@@ -1126,7 +1126,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitValueNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ValueNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})}
 }),
 smalltalk.ValueNode);
 
@@ -1137,7 +1137,7 @@ selector: "isImmutable",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.ValueNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})}
 }),
 smalltalk.ValueNode);
 
@@ -1148,7 +1148,7 @@ selector: "isValueNode",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode", [], {}, smalltalk.ValueNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})}
 }),
 smalltalk.ValueNode);
 
@@ -1161,7 +1161,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@value"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"value", [], {}, smalltalk.ValueNode)})}
+}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})}
 }),
 smalltalk.ValueNode);
 
@@ -1172,7 +1172,7 @@ selector: "value:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"value:", [anObject], {}, smalltalk.ValueNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})}
 }),
 smalltalk.ValueNode);
 
@@ -1188,7 +1188,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitVariableNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.VariableNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1201,7 +1201,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._binding())._alias();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.VariableNode)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1219,7 +1219,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assigned", [], {}, smalltalk.VariableNode)})}
+}, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1230,7 +1230,7 @@ selector: "assigned:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"assigned:", [aBoolean], {}, smalltalk.VariableNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1242,7 +1242,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 self["@assigned"]=true;
-return self}, function($ctx1) {$ctx1.fill(self,"beAssigned", [], {}, smalltalk.VariableNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1255,7 +1255,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@binding"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"binding", [], {}, smalltalk.VariableNode)})}
+}, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1266,7 +1266,7 @@ selector: "binding:",
 fn: function (aScopeVar){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
-return self}, function($ctx1) {$ctx1.fill(self,"binding:", [aScopeVar], {}, smalltalk.VariableNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1277,7 +1277,7 @@ selector: "isImmutable",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.VariableNode)})}
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})}
 }),
 smalltalk.VariableNode);
 
@@ -1293,7 +1293,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ClassReferenceNode)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})}
 }),
 smalltalk.ClassReferenceNode);
 

+ 100 - 100
js/Compiler-AST.js

@@ -11,7 +11,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
 messageSends: ["visitNode:"],
@@ -27,7 +27,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
-return self}, function($ctx1) {$ctx1.fill(self,"addNode:", [aNode], {}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})},
 args: ["aNode"],
 source: "addNode: aNode\x0a\x09self nodes add: aNode",
 messageSends: ["add:", "nodes"],
@@ -43,7 +43,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})},
 args: [],
 source: "isAssignmentNode\x0a\x09^ false",
 messageSends: [],
@@ -59,7 +59,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})},
 args: [],
 source: "isBlockNode\x0a\x09^false",
 messageSends: [],
@@ -75,7 +75,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})},
 args: [],
 source: "isBlockSequenceNode\x0a\x09^false",
 messageSends: [],
@@ -91,7 +91,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})},
 args: [],
 source: "isImmutable\x0a\x09^false",
 messageSends: [],
@@ -107,7 +107,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})},
 args: [],
 source: "isReturnNode\x0a\x09^false",
 messageSends: [],
@@ -123,7 +123,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})},
 args: [],
 source: "isSendNode\x0a\x09^false",
 messageSends: [],
@@ -139,7 +139,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})},
 args: [],
 source: "isValueNode\x0a\x09^false",
 messageSends: [],
@@ -163,7 +163,7 @@ $1=self["@nodes"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})},
 args: [],
 source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
 messageSends: ["ifNil:", "new"],
@@ -179,7 +179,7 @@ category: 'building',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"nodes:", [aCollection], {}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})},
 args: ["aCollection"],
 source: "nodes: aCollection\x0a\x09nodes := aCollection",
 messageSends: [],
@@ -203,7 +203,7 @@ $1=self["@position"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"position", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})},
 args: [],
 source: "position\x0a\x09^position ifNil: [position := 0@0]",
 messageSends: ["ifNil:", "@"],
@@ -219,7 +219,7 @@ category: 'building',
 fn: function (aPosition){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
-return self}, function($ctx1) {$ctx1.fill(self,"position:", [aPosition], {}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})},
 args: ["aPosition"],
 source: "position: aPosition\x0a\x09position := aPosition",
 messageSends: [],
@@ -242,7 +242,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})},
 args: [],
 source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
 messageSends: ["ifNil:"],
@@ -258,7 +258,7 @@ category: 'accessing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:", [aBoolean], {}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})},
 args: ["aBoolean"],
 source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
 messageSends: [],
@@ -281,7 +281,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})},
 args: [],
 source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
 messageSends: ["ifNil:"],
@@ -297,7 +297,7 @@ category: 'accessing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:", [aBoolean], {}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})},
 args: ["aBoolean"],
 source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
 messageSends: [],
@@ -315,15 +315,15 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._shouldBeAliased())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._or_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._nodes())._detect_ifNone_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(each)._subtreeNeedsAliasing();
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return false;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))).__tild_eq(false);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing", [], {}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})},
 args: [],
 source: "subtreeNeedsAliasing\x0a    ^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [\x0a        (self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]",
 messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"],
@@ -344,7 +344,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
 messageSends: ["visitAssignmentNode:"],
@@ -360,7 +360,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode", [], {}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})},
 args: [],
 source: "isAssignmentNode\x0a\x09^ true",
 messageSends: [],
@@ -378,7 +378,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@left"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"left", [], {}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})},
 args: [],
 source: "left\x0a\x09^left",
 messageSends: [],
@@ -394,7 +394,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"left:", [aNode], {}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})},
 args: ["aNode"],
 source: "left: aNode\x0a\x09left := aNode",
 messageSends: [],
@@ -412,7 +412,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})},
 args: [],
 source: "nodes\x0a\x09^ Array with: self left with: self right",
 messageSends: ["with:with:", "left", "right"],
@@ -430,7 +430,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@right"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"right", [], {}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})},
 args: [],
 source: "right\x0a\x09^right",
 messageSends: [],
@@ -446,7 +446,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"right:", [aNode], {}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})},
 args: ["aNode"],
 source: "right: aNode\x0a\x09right := aNode",
 messageSends: [],
@@ -467,7 +467,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
 messageSends: ["visitBlockNode:"],
@@ -483,7 +483,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode", [], {}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})},
 args: [],
 source: "isBlockNode\x0a\x09^true",
 messageSends: [],
@@ -507,7 +507,7 @@ $1=self["@parameters"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parameters", [], {}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})},
 args: [],
 source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
 messageSends: ["ifNil:", "new"],
@@ -523,7 +523,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"parameters:", [aCollection], {}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})},
 args: ["aCollection"],
 source: "parameters: aCollection\x0a\x09parameters := aCollection",
 messageSends: [],
@@ -541,7 +541,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})},
 args: [],
 source: "scope\x0a\x09^ scope",
 messageSends: [],
@@ -557,7 +557,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})},
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
@@ -578,7 +578,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitCascadeNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
 messageSends: ["visitCascadeNode:"],
@@ -596,7 +596,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})},
 args: [],
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
@@ -612,7 +612,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [aNode], {}, smalltalk.CascadeNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})},
 args: ["aNode"],
 source: "receiver: aNode\x0a\x09receiver := aNode",
 messageSends: [],
@@ -633,7 +633,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.DynamicArrayNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
 messageSends: ["visitDynamicArrayNode:"],
@@ -654,7 +654,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.DynamicDictionaryNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
 messageSends: ["visitDynamicDictionaryNode:"],
@@ -675,7 +675,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
 messageSends: ["visitJSStatementNode:"],
@@ -698,7 +698,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})},
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
@@ -714,7 +714,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.JSStatementNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})},
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
@@ -735,7 +735,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitMethodNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
 messageSends: ["visitMethodNode:"],
@@ -758,7 +758,7 @@ $1=[];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})},
 args: [],
 source: "arguments\x0a\x09^arguments ifNil: [#()]",
 messageSends: ["ifNil:"],
@@ -774,7 +774,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [aCollection], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})},
 args: ["aCollection"],
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 messageSends: [],
@@ -792,7 +792,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@classReferences"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})},
 args: [],
 source: "classReferences\x0a\x09^ classReferences",
 messageSends: [],
@@ -808,7 +808,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"classReferences:", [aCollection], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})},
 args: ["aCollection"],
 source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
 messageSends: [],
@@ -826,7 +826,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageSends"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})},
 args: [],
 source: "messageSends\x0a\x09^ messageSends",
 messageSends: [],
@@ -842,7 +842,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"messageSends:", [aCollection], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
 args: ["aCollection"],
 source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
 messageSends: [],
@@ -860,7 +860,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})},
 args: [],
 source: "scope\x0a\x09^ scope",
 messageSends: [],
@@ -876,7 +876,7 @@ category: 'accessing',
 fn: function (aMethodScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aMethodScope], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})},
 args: ["aMethodScope"],
 source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
 messageSends: [],
@@ -894,7 +894,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})},
 args: [],
 source: "selector\x0a\x09^selector",
 messageSends: [],
@@ -910,7 +910,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})},
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
@@ -928,7 +928,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@source"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})},
 args: [],
 source: "source\x0a\x09^source",
 messageSends: [],
@@ -944,7 +944,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})},
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
@@ -962,7 +962,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@superSends"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends", [], {}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})},
 args: [],
 source: "superSends\x0a\x09^ superSends",
 messageSends: [],
@@ -978,7 +978,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"superSends:", [aCollection], {}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
 args: ["aCollection"],
 source: "superSends: aCollection\x0a\x09superSends := aCollection",
 messageSends: [],
@@ -999,7 +999,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitReturnNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
 messageSends: ["visitReturnNode:"],
@@ -1015,7 +1015,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode", [], {}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})},
 args: [],
 source: "isReturnNode\x0a\x09^ true",
 messageSends: [],
@@ -1033,7 +1033,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn", [], {}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})},
 args: [],
 source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
 messageSends: ["not", "isMethodScope", "scope"],
@@ -1051,7 +1051,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})},
 args: [],
 source: "scope\x0a\x09^ scope",
 messageSends: [],
@@ -1067,7 +1067,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.ReturnNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})},
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
@@ -1088,7 +1088,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSendNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
 messageSends: ["visitSendNode:"],
@@ -1112,7 +1112,7 @@ $1=self["@arguments"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})},
 args: [],
 source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
 messageSends: ["ifNil:"],
@@ -1128,7 +1128,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [aCollection], {}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})},
 args: ["aCollection"],
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 messageSends: [],
@@ -1156,7 +1156,7 @@ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aColl
 $5=_st($4)._yourself();
 $3=$5;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:", [aCollection], {first:first}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})},
 args: ["aCollection"],
 source: "cascadeNodeWithMessages: aCollection\x0a\x09| first |\x0a\x09first := SendNode new\x0a\x09    selector: self selector;\x0a\x09    arguments: self arguments;\x0a\x09    yourself.\x0a\x09^CascadeNode new\x0a\x09    receiver: self receiver;\x0a\x09    nodes: (Array with: first), aCollection;\x0a\x09    yourself",
 messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
@@ -1174,7 +1174,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@index"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"index", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})},
 args: [],
 source: "index\x0a\x09^ index",
 messageSends: [],
@@ -1190,7 +1190,7 @@ category: 'accessing',
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"index:", [anInteger], {}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})},
 args: ["anInteger"],
 source: "index: anInteger\x0a\x09index := anInteger",
 messageSends: [],
@@ -1206,7 +1206,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})},
 args: [],
 source: "isSendNode\x0a\x09^ true",
 messageSends: [],
@@ -1227,7 +1227,7 @@ _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})},
 args: [],
 source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
 messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
@@ -1245,7 +1245,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})},
 args: [],
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
@@ -1261,7 +1261,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [aNode], {}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})},
 args: ["aNode"],
 source: "receiver: aNode\x0a\x09receiver := aNode",
 messageSends: [],
@@ -1279,7 +1279,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})},
 args: [],
 source: "selector\x0a\x09^selector",
 messageSends: [],
@@ -1295,7 +1295,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})},
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
@@ -1318,7 +1318,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSend", [], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})},
 args: [],
 source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
 messageSends: ["ifNil:"],
@@ -1334,7 +1334,7 @@ category: 'accessing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"superSend:", [aBoolean], {}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})},
 args: ["aBoolean"],
 source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
 messageSends: [],
@@ -1364,7 +1364,7 @@ _st($2)._arguments_(_st(self)._arguments());
 $6=_st($2)._yourself();
 $1=$6;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:", [anObject], {}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})},
 args: ["anObject"],
 source: "valueForReceiver: anObject\x0a\x09^SendNode new\x0a\x09    receiver: (self receiver \x0a\x09\x09ifNil: [anObject]\x0a\x09\x09ifNotNil: [self receiver valueForReceiver: anObject]);\x0a\x09    selector: self selector;\x0a\x09    arguments: self arguments;\x0a\x09    yourself",
 messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
@@ -1385,7 +1385,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSequenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
 messageSends: ["visitSequenceNode:"],
@@ -1407,7 +1407,7 @@ _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode", [], {}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})},
 args: [],
 source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09    nodes: self nodes;\x0a\x09    temps: self temps;\x0a\x09    yourself",
 messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
@@ -1425,7 +1425,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})},
 args: [],
 source: "scope\x0a\x09^ scope",
 messageSends: [],
@@ -1441,7 +1441,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aLexicalScope], {}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})},
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
@@ -1464,7 +1464,7 @@ $1=[];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})},
 args: [],
 source: "temps\x0a\x09^temps ifNil: [#()]",
 messageSends: ["ifNil:"],
@@ -1480,7 +1480,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"temps:", [aCollection], {}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})},
 args: ["aCollection"],
 source: "temps: aCollection\x0a\x09temps := aCollection",
 messageSends: [],
@@ -1501,7 +1501,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
 messageSends: ["visitBlockSequenceNode:"],
@@ -1517,7 +1517,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode", [], {}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})},
 args: [],
 source: "isBlockSequenceNode\x0a\x09^true",
 messageSends: [],
@@ -1538,7 +1538,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitValueNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
 messageSends: ["visitValueNode:"],
@@ -1554,7 +1554,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})},
 args: [],
 source: "isImmutable\x0a\x09^true",
 messageSends: [],
@@ -1570,7 +1570,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode", [], {}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})},
 args: [],
 source: "isValueNode\x0a\x09^true",
 messageSends: [],
@@ -1588,7 +1588,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@value"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"value", [], {}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})},
 args: [],
 source: "value\x0a\x09^value",
 messageSends: [],
@@ -1604,7 +1604,7 @@ category: 'accessing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"value:", [anObject], {}, smalltalk.ValueNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})},
 args: ["anObject"],
 source: "value: anObject\x0a\x09value := anObject",
 messageSends: [],
@@ -1625,7 +1625,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitVariableNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
 messageSends: ["visitVariableNode:"],
@@ -1643,7 +1643,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._binding())._alias();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})},
 args: [],
 source: "alias\x0a\x09^ self binding alias",
 messageSends: ["alias", "binding"],
@@ -1666,7 +1666,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assigned", [], {}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})},
 args: [],
 source: "assigned\x0a\x09^assigned ifNil: [false]",
 messageSends: ["ifNil:"],
@@ -1682,7 +1682,7 @@ category: 'accessing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"assigned:", [aBoolean], {}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})},
 args: ["aBoolean"],
 source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
 messageSends: [],
@@ -1699,7 +1699,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 self["@assigned"]=true;
-return self}, function($ctx1) {$ctx1.fill(self,"beAssigned", [], {}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})},
 args: [],
 source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
 messageSends: ["validateAssignment", "binding"],
@@ -1717,7 +1717,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@binding"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"binding", [], {}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})},
 args: [],
 source: "binding\x0a\x09^ binding",
 messageSends: [],
@@ -1733,7 +1733,7 @@ category: 'accessing',
 fn: function (aScopeVar){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
-return self}, function($ctx1) {$ctx1.fill(self,"binding:", [aScopeVar], {}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})},
 args: ["aScopeVar"],
 source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
 messageSends: [],
@@ -1749,7 +1749,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable", [], {}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})},
 args: [],
 source: "isImmutable\x0a\x09^false",
 messageSends: [],
@@ -1770,7 +1770,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.ClassReferenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
 messageSends: ["visitClassReferenceNode:"],

+ 58 - 58
js/Compiler-Core.deploy.js

@@ -14,7 +14,7 @@ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -25,7 +25,7 @@ selector: "codeGeneratorClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:", [aClass], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -38,7 +38,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:", [aString], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -53,7 +53,7 @@ _st(self)._currentClass_(aClass);
 _st(self)._source_(aString);
 $1=_st(self)._compile_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:forClass:", [aString,aClass], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -68,7 +68,7 @@ _st(self)._currentClass_((smalltalk.DoIt || DoIt));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:", [aString], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -88,7 +88,7 @@ result=_st(generator)._compileNode_(aNode);
 _st(self)._unknownVariables_([]);
 $3=result;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {generator:generator,result:result}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass", [], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -112,7 +112,7 @@ selector: "currentClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:", [aClass], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -123,7 +123,7 @@ selector: "eval:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"eval:", [aString], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -140,7 +140,7 @@ result=_st(_st((smalltalk.DoIt || DoIt))._new())._doIt();
 _st((smalltalk.DoIt || DoIt))._removeCompiledMethod_(_st(_st((smalltalk.DoIt || DoIt))._methodDictionary())._at_("doIt"));
 $1=result;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:", [aString], {result:result}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString,result:result}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -158,7 +158,7 @@ _st(aBehavior)._addCompiledMethod_(compiled);
 _st(self)._setupClass_(aBehavior);
 $1=compiled;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:", [aString,aBehavior,anotherString], {compiled:compiled}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString,compiled:compiled}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -171,7 +171,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:", [aString], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -184,7 +184,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parseExpression:", [aString], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -198,13 +198,13 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(aClass)._methodDictionary())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(console)._log_(_st(_st(_st(aClass)._name()).__comma(" >> ")).__comma(_st(each)._selector()));
 return _st(self)._install_forClass_category_(_st(each)._source(),aClass,_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(aClass);
 $1=_st(aClass)._isMetaclass();
 if(! smalltalk.assert($1)){
 _st(self)._recompile_(_st(aClass)._class());
 };
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:", [aClass], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -222,9 +222,9 @@ $2=_st($1)._cr();
 $2;
 return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._valueWithTimeout_((100));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll", [], {}, smalltalk.Compiler)})}
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -235,7 +235,7 @@ selector: "setupClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:", [aClass], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -253,7 +253,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -264,7 +264,7 @@ selector: "source:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -277,7 +277,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@unknownVariables"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables", [], {}, smalltalk.Compiler)})}
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -288,7 +288,7 @@ selector: "unknownVariables:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:", [aCollection], {}, smalltalk.Compiler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection}, smalltalk.Compiler)})}
 }),
 smalltalk.Compiler);
 
@@ -300,7 +300,7 @@ selector: "recompile:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:", [aClass], {}, smalltalk.Compiler.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler.klass)})}
 }),
 smalltalk.Compiler.klass);
 
@@ -312,8 +312,8 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._recompile_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll", [], {}, smalltalk.Compiler.klass)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler.klass)})}
 }),
 smalltalk.Compiler.klass);
 
@@ -331,7 +331,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._accept_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visit:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -344,9 +344,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAll:", [aCollection], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -359,7 +359,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -372,7 +372,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -385,7 +385,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitSequenceNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -398,7 +398,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -411,7 +411,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitVariableNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -424,7 +424,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -437,7 +437,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -450,7 +450,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -463,7 +463,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -476,7 +476,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -489,7 +489,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -502,7 +502,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -515,7 +515,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -528,7 +528,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -541,7 +541,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:", [aNode], {}, smalltalk.NodeVisitor)})}
+}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.NodeVisitor)})}
 }),
 smalltalk.NodeVisitor);
 
@@ -558,7 +558,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -566,10 +566,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.AbstractCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -580,7 +580,7 @@ selector: "compileNode:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
-return self}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {}, smalltalk.AbstractCodeGenerator)})}
+return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -593,7 +593,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass", [], {}, smalltalk.AbstractCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -604,7 +604,7 @@ selector: "currentClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:", [aClass], {}, smalltalk.AbstractCodeGenerator)})}
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -615,7 +615,7 @@ selector: "pseudoVariables",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "true", "false", "nil", "thisContext"];
-}, function($ctx1) {$ctx1.fill(self,"pseudoVariables", [], {}, smalltalk.AbstractCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"pseudoVariables",{}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -633,7 +633,7 @@ $1=_st(aString).__comma("_");
 $1=aString;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:", [aString], {}, smalltalk.AbstractCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -651,7 +651,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.AbstractCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -662,7 +662,7 @@ selector: "source:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.AbstractCodeGenerator)})}
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.AbstractCodeGenerator)})}
 }),
 smalltalk.AbstractCodeGenerator);
 
@@ -684,7 +684,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {ir:ir,stream:stream}, smalltalk.CodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.CodeGenerator)})}
 }),
 smalltalk.CodeGenerator);
 
@@ -697,7 +697,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator", [], {}, smalltalk.CodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.CodeGenerator)})}
 }),
 smalltalk.CodeGenerator);
 
@@ -710,7 +710,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer", [], {}, smalltalk.CodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{}, smalltalk.CodeGenerator)})}
 }),
 smalltalk.CodeGenerator);
 
@@ -727,7 +727,7 @@ _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator", [], {}, smalltalk.CodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.CodeGenerator)})}
 }),
 smalltalk.CodeGenerator);
 

+ 58 - 58
js/Compiler-Core.js

@@ -16,7 +16,7 @@ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.Compiler)})},
 args: [],
 source: "codeGeneratorClass\x0a\x09^codeGeneratorClass ifNil: [InliningCodeGenerator]",
 messageSends: ["ifNil:"],
@@ -32,7 +32,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:", [aClass], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass}, smalltalk.Compiler)})},
 args: ["aClass"],
 source: "codeGeneratorClass: aClass\x0a\x09codeGeneratorClass := aClass",
 messageSends: [],
@@ -50,7 +50,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:", [aString], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "compile: aString\x0a\x09^self compileNode: (self parse: aString)",
 messageSends: ["compileNode:", "parse:"],
@@ -70,7 +70,7 @@ _st(self)._currentClass_(aClass);
 _st(self)._source_(aString);
 $1=_st(self)._compile_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:forClass:", [aString,aClass], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass}, smalltalk.Compiler)})},
 args: ["aString", "aClass"],
 source: "compile: aString forClass: aClass\x0a\x09self currentClass: aClass.\x0a\x09self source: aString.\x0a\x09^self compile: aString",
 messageSends: ["currentClass:", "source:", "compile:"],
@@ -90,7 +90,7 @@ _st(self)._currentClass_((smalltalk.DoIt || DoIt));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:", [aString], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "compileExpression: aString\x0a\x09self currentClass: DoIt.\x0a\x09self source: 'doIt ^[', aString, '] value'.\x0a\x09^self compileNode: (self parse: self source)",
 messageSends: ["currentClass:", "source:", ",", "compileNode:", "parse:", "source"],
@@ -115,7 +115,7 @@ result=_st(generator)._compileNode_(aNode);
 _st(self)._unknownVariables_([]);
 $3=result;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {generator:generator,result:result}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result}, smalltalk.Compiler)})},
 args: ["aNode"],
 source: "compileNode: aNode\x0a\x09| generator result |\x0a\x09generator := self codeGeneratorClass new.\x0a\x09generator\x0a\x09\x09source: self source;\x0a\x09\x09currentClass: self currentClass.\x0a\x09result := generator compileNode: aNode.\x0a\x09self unknownVariables: #().\x0a\x09^result",
 messageSends: ["new", "codeGeneratorClass", "source:", "source", "currentClass:", "currentClass", "compileNode:", "unknownVariables:"],
@@ -133,7 +133,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass", [], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.Compiler)})},
 args: [],
 source: "currentClass\x0a\x09^currentClass",
 messageSends: [],
@@ -149,7 +149,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:", [aClass], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.Compiler)})},
 args: ["aClass"],
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 messageSends: [],
@@ -165,7 +165,7 @@ category: 'compiling',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"eval:", [aString], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "eval: aString\x0a\x09<return eval(aString)>",
 messageSends: [],
@@ -187,7 +187,7 @@ result=_st(_st((smalltalk.DoIt || DoIt))._new())._doIt();
 _st((smalltalk.DoIt || DoIt))._removeCompiledMethod_(_st(_st((smalltalk.DoIt || DoIt))._methodDictionary())._at_("doIt"));
 $1=result;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:", [aString], {result:result}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString,result:result}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "evaluateExpression: aString\x0a\x09\x22Unlike #eval: evaluate a Smalltalk expression and answer the returned object\x22\x0a\x09| result |\x0a\x09DoIt addCompiledMethod: (self eval: (self compileExpression: aString)).\x0a\x09result := DoIt new doIt.\x0a\x09DoIt removeCompiledMethod: (DoIt methodDictionary at: 'doIt').\x0a\x09^result",
 messageSends: ["addCompiledMethod:", "eval:", "compileExpression:", "doIt", "new", "removeCompiledMethod:", "at:", "methodDictionary"],
@@ -210,7 +210,7 @@ _st(aBehavior)._addCompiledMethod_(compiled);
 _st(self)._setupClass_(aBehavior);
 $1=compiled;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:", [aString,aBehavior,anotherString], {compiled:compiled}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString,compiled:compiled}, smalltalk.Compiler)})},
 args: ["aString", "aBehavior", "anotherString"],
 source: "install: aString forClass: aBehavior category: anotherString\x0a\x09| compiled |\x0a\x09compiled := self eval: (self compile: aString forClass: aBehavior).\x0a\x09compiled category: anotherString.\x0a\x09aBehavior addCompiledMethod: compiled.\x0a    self setupClass: aBehavior.\x0a\x09^compiled",
 messageSends: ["eval:", "compile:forClass:", "category:", "addCompiledMethod:", "setupClass:"],
@@ -228,7 +228,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:", [aString], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "parse: aString\x0a    ^Smalltalk current parse: aString",
 messageSends: ["parse:", "current"],
@@ -246,7 +246,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parseExpression:", [aString], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "parseExpression: aString\x0a    ^self parse: 'doIt ^[', aString, '] value'",
 messageSends: ["parse:", ","],
@@ -265,13 +265,13 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(aClass)._methodDictionary())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(console)._log_(_st(_st(_st(aClass)._name()).__comma(" >> ")).__comma(_st(each)._selector()));
 return _st(self)._install_forClass_category_(_st(each)._source(),aClass,_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(aClass);
 $1=_st(aClass)._isMetaclass();
 if(! smalltalk.assert($1)){
 _st(self)._recompile_(_st(aClass)._class());
 };
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:", [aClass], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler)})},
 args: ["aClass"],
 source: "recompile: aClass\x0a\x09aClass methodDictionary do: [:each |\x0a\x09\x09console log: aClass name, ' >> ', each selector.\x0a\x09\x09self install: each source forClass: aClass category: each category].\x0a\x09self setupClass: aClass.\x0a\x09aClass isMetaclass ifFalse: [self recompile: aClass class]",
 messageSends: ["do:", "log:", ",", "selector", "name", "install:forClass:category:", "source", "category", "methodDictionary", "setupClass:", "ifFalse:", "recompile:", "class", "isMetaclass"],
@@ -294,9 +294,9 @@ $2=_st($1)._cr();
 $2;
 return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._valueWithTimeout_((100));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll", [], {}, smalltalk.Compiler)})},
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler)})},
 args: [],
 source: "recompileAll\x0a\x09Smalltalk current classes do: [:each |\x0a\x09\x09Transcript show: each; cr.\x0a\x09\x09[self recompile: each] valueWithTimeout: 100]",
 messageSends: ["do:", "show:", "cr", "valueWithTimeout:", "recompile:", "classes", "current"],
@@ -312,7 +312,7 @@ category: 'compiling',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:", [aClass], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.Compiler)})},
 args: ["aClass"],
 source: "setupClass: aClass\x0a\x09<smalltalk.init(aClass)>",
 messageSends: [],
@@ -335,7 +335,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.Compiler)})},
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
@@ -351,7 +351,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.Compiler)})},
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
@@ -369,7 +369,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@unknownVariables"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables", [], {}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.Compiler)})},
 args: [],
 source: "unknownVariables\x0a\x09^unknownVariables",
 messageSends: [],
@@ -385,7 +385,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:", [aCollection], {}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection}, smalltalk.Compiler)})},
 args: ["aCollection"],
 source: "unknownVariables: aCollection\x0a\x09unknownVariables := aCollection",
 messageSends: [],
@@ -402,7 +402,7 @@ category: 'compiling',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:", [aClass], {}, smalltalk.Compiler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler.klass)})},
 args: ["aClass"],
 source: "recompile: aClass\x0a\x09self new recompile: aClass",
 messageSends: ["recompile:", "new"],
@@ -419,8 +419,8 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._recompile_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll", [], {}, smalltalk.Compiler.klass)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler.klass)})},
 args: [],
 source: "recompileAll\x0a\x09Smalltalk current classes do: [:each |\x0a\x09\x09self recompile: each]",
 messageSends: ["do:", "recompile:", "classes", "current"],
@@ -445,7 +445,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._accept_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visit:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visit: aNode\x0a\x09^ aNode accept: self",
 messageSends: ["accept:"],
@@ -463,9 +463,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAll:", [aCollection], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection}, smalltalk.NodeVisitor)})},
 args: ["aCollection"],
 source: "visitAll: aCollection\x0a\x09^ aCollection do: [ :each | self visit: each ]",
 messageSends: ["do:", "visit:"],
@@ -483,7 +483,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitAssignmentNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -501,7 +501,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitBlockNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -519,7 +519,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitSequenceNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitBlockSequenceNode: aNode\x0a\x09^ self visitSequenceNode: aNode",
 messageSends: ["visitSequenceNode:"],
@@ -537,7 +537,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitCascadeNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -555,7 +555,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitVariableNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitClassReferenceNode: aNode\x0a\x09^ self visitVariableNode: aNode",
 messageSends: ["visitVariableNode:"],
@@ -573,7 +573,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitDynamicArrayNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -591,7 +591,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitDynamicDictionaryNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -609,7 +609,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitJSStatementNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -627,7 +627,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitMethodNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -645,7 +645,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitNode: aNode\x0a\x09^ self visitAll: aNode nodes",
 messageSends: ["visitAll:", "nodes"],
@@ -663,7 +663,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitReturnNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -681,7 +681,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitSendNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -699,7 +699,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitSequenceNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -717,7 +717,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitValueNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -735,7 +735,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:", [aNode], {}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
 args: ["aNode"],
 source: "visitVariableNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
@@ -758,7 +758,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -766,10 +766,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
 args: ["aClass"],
 source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09    ifTrue: [aClass instanceClass name, '.klass']\x0a\x09    ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09    ifTrue: ['nil']\x0a\x09\x09    ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
@@ -785,7 +785,7 @@ category: 'compiling',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
-return self}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode}, smalltalk.AbstractCodeGenerator)})},
 args: ["aNode"],
 source: "compileNode: aNode\x0a\x09self subclassResponsibility",
 messageSends: ["subclassResponsibility"],
@@ -803,7 +803,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass", [], {}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.AbstractCodeGenerator)})},
 args: [],
 source: "currentClass\x0a\x09^currentClass",
 messageSends: [],
@@ -819,7 +819,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:", [aClass], {}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
 args: ["aClass"],
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 messageSends: [],
@@ -835,7 +835,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "true", "false", "nil", "thisContext"];
-}, function($ctx1) {$ctx1.fill(self,"pseudoVariables", [], {}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVariables",{}, smalltalk.AbstractCodeGenerator)})},
 args: [],
 source: "pseudoVariables\x0a\x09^#('self' 'super' 'true' 'false' 'nil' 'thisContext')",
 messageSends: [],
@@ -858,7 +858,7 @@ $1=_st(aString).__comma("_");
 $1=aString;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:", [aString], {}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
 args: ["aString"],
 source: "safeVariableNameFor: aString\x0a\x09^(Smalltalk current reservedWords includes: aString)\x0a\x09\x09ifTrue: [aString, '_']\x0a\x09\x09ifFalse: [aString]",
 messageSends: ["ifTrue:ifFalse:", ",", "includes:", "reservedWords", "current"],
@@ -881,7 +881,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.AbstractCodeGenerator)})},
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
@@ -897,7 +897,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
@@ -925,7 +925,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {ir:ir,stream:stream}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.CodeGenerator)})},
 args: ["aNode"],
 source: "compileNode: aNode\x0a\x09| ir stream |\x0a\x09self semanticAnalyzer visit: aNode.\x0a\x09ir := self translator visit: aNode.\x0a\x09^ self irTranslator\x0a\x09\x09visit: ir;\x0a\x09\x09contents",
 messageSends: ["visit:", "semanticAnalyzer", "translator", "irTranslator", "contents"],
@@ -943,7 +943,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator", [], {}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.CodeGenerator)})},
 args: [],
 source: "irTranslator\x0a\x09^ IRJSTranslator new",
 messageSends: ["new"],
@@ -961,7 +961,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer", [], {}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{}, smalltalk.CodeGenerator)})},
 args: [],
 source: "semanticAnalyzer\x0a\x09^ SemanticAnalyzer on: self currentClass",
 messageSends: ["on:", "currentClass"],
@@ -983,7 +983,7 @@ _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator", [], {}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.CodeGenerator)})},
 args: [],
 source: "translator\x0a\x09^ IRASTTranslator new\x0a\x09\x09source: self source;\x0a\x09\x09theClass: self currentClass;\x0a\x09\x09yourself",
 messageSends: ["source:", "source", "new", "theClass:", "currentClass", "yourself"],

+ 8 - 8
js/Compiler-Exceptions.deploy.js

@@ -21,7 +21,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.InvalidAssignmentError)})}
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})}
 }),
 smalltalk.InvalidAssignmentError);
 
@@ -34,7 +34,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.InvalidAssignmentError)})}
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})}
 }),
 smalltalk.InvalidAssignmentError);
 
@@ -45,7 +45,7 @@ selector: "variableName:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.InvalidAssignmentError)})}
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})}
 }),
 smalltalk.InvalidAssignmentError);
 
@@ -61,7 +61,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.ShadowingVariableError)})}
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})}
 }),
 smalltalk.ShadowingVariableError);
 
@@ -74,7 +74,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.ShadowingVariableError)})}
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})}
 }),
 smalltalk.ShadowingVariableError);
 
@@ -85,7 +85,7 @@ selector: "variableName:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.ShadowingVariableError)})}
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})}
 }),
 smalltalk.ShadowingVariableError);
 
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.UnknownVariableError)})}
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})}
 }),
 smalltalk.UnknownVariableError);
 
@@ -112,7 +112,7 @@ selector: "variableName:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.UnknownVariableError)})}
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})}
 }),
 smalltalk.UnknownVariableError);
 

+ 8 - 8
js/Compiler-Exceptions.js

@@ -27,7 +27,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})},
 args: [],
 source: "messageText\x0a\x09^ ' Invalid assignment to variable: ', self variableName",
 messageSends: [",", "variableName"],
@@ -45,7 +45,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})},
 args: [],
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
@@ -61,7 +61,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.InvalidAssignmentError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})},
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],
@@ -83,7 +83,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})},
 args: [],
 source: "messageText\x0a\x09^ 'Variable shadowing error: ', self variableName, ' is already defined'",
 messageSends: [",", "variableName"],
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})},
 args: [],
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
@@ -117,7 +117,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.ShadowingVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})},
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],
@@ -139,7 +139,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName", [], {}, smalltalk.UnknownVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})},
 args: [],
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
@@ -155,7 +155,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:", [aString], {}, smalltalk.UnknownVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})},
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],

File diff suppressed because it is too large
+ 153 - 117
js/Compiler-IR.deploy.js


File diff suppressed because it is too large
+ 160 - 114
js/Compiler-IR.js


+ 103 - 103
js/Compiler-Inlining.deploy.js

@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedAssignment)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedAssignment)})}
 }),
 smalltalk.IRInlinedAssignment);
 
@@ -20,7 +20,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedAssignment)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedAssignment)})}
 }),
 smalltalk.IRInlinedAssignment);
 
@@ -34,7 +34,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedClosure)})}
 }),
 smalltalk.IRInlinedClosure);
 
@@ -45,7 +45,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedClosure)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedClosure)})}
 }),
 smalltalk.IRInlinedClosure);
 
@@ -61,7 +61,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedReturn)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedReturn)})}
 }),
 smalltalk.IRInlinedReturn);
 
@@ -72,7 +72,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedReturn)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedReturn)})}
 }),
 smalltalk.IRInlinedReturn);
 
@@ -88,7 +88,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedNonLocalReturn)})}
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedNonLocalReturn)})}
 }),
 smalltalk.IRInlinedNonLocalReturn);
 
@@ -99,7 +99,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedNonLocalReturn)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedNonLocalReturn)})}
 }),
 smalltalk.IRInlinedNonLocalReturn);
 
@@ -113,7 +113,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedSend)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSend)})}
 }),
 smalltalk.IRInlinedSend);
 
@@ -124,7 +124,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedSend)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSend)})}
 }),
 smalltalk.IRInlinedSend);
 
@@ -138,7 +138,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfFalse)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfFalse)})}
 }),
 smalltalk.IRInlinedIfFalse);
 
@@ -152,7 +152,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfNilIfNotNil)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfNilIfNotNil)})}
 }),
 smalltalk.IRInlinedIfNilIfNotNil);
 
@@ -166,7 +166,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfTrue)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrue)})}
 }),
 smalltalk.IRInlinedIfTrue);
 
@@ -180,7 +180,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfTrueIfFalse)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrueIfFalse)})}
 }),
 smalltalk.IRInlinedIfTrueIfFalse);
 
@@ -194,7 +194,7 @@ selector: "accept:",
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedSequence)})}
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSequence)})}
 }),
 smalltalk.IRInlinedSequence);
 
@@ -205,7 +205,7 @@ selector: "isInlined",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedSequence)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSequence)})}
 }),
 smalltalk.IRInlinedSequence);
 
@@ -224,7 +224,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignmentInliner", [], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -240,7 +240,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner", [], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -256,7 +256,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"returnInliner", [], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"returnInliner",{}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -272,7 +272,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendInliner", [], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"sendInliner",{}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -286,10 +286,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRAssignment)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(_st(anIRAssignment)._instructions())._last())._isSend())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSend_(_st(_st(anIRAssignment)._instructions())._last());
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:", [anIRAssignment], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -303,10 +303,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRReturn)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(_st(anIRReturn)._instructions())._first())._isSend())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSend_(_st(_st(anIRReturn)._instructions())._first());
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:", [anIRReturn], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -319,9 +319,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:", [anIRSend], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -343,14 +343,14 @@ localReturn=$3;
 localReturn;
 _st(_st(anIRNonLocalReturn)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(localReturn)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRNonLocalReturn)._replaceWith_(localReturn);
 $4=localReturn;
 return $4;
 };
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:", [anIRNonLocalReturn], {localReturn:localReturn}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -368,7 +368,7 @@ $1=_st(_st(self)._assignmentInliner())._inlineAssignment_(anIRAssignment);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:", [anIRAssignment], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -386,7 +386,7 @@ $1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:", [anIRNonLocalReturn], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -404,7 +404,7 @@ $1=_st(_st(self)._returnInliner())._inlineReturn_(anIRReturn);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:", [anIRReturn], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -422,7 +422,7 @@ $1=_st(_st(self)._sendInliner())._inlineSend_(anIRSend);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRSend:", [anIRSend], {}, smalltalk.IRInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})}
 }),
 smalltalk.IRInliner);
 
@@ -436,7 +436,7 @@ selector: "visitIRInlinedAssignment:",
 fn: function (anIRInlinedAssignment){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:", [anIRInlinedAssignment], {}, smalltalk.IRInliningJSTranslator)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -448,8 +448,8 @@ fn: function (anIRInlinedClosure){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:", [anIRInlinedClosure], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -463,10 +463,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("! smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:", [anIRInlinedIfFalse], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -480,10 +480,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("($receiver = ");
 _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:", [anIRInlinedIfNil], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -497,12 +497,12 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("($receiver = ");
 _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._second());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:", [anIRInlinedIfNilIfNotNil], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -516,10 +516,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:", [anIRInlinedIfTrue], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -533,12 +533,12 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._second());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:", [anIRInlinedIfTrueIfFalse], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -550,10 +550,10 @@ fn: function (anIRInlinedReturn){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPutStatementWith_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:", [anIRInlinedReturn], {}, smalltalk.IRInliningJSTranslator)})}
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -564,7 +564,7 @@ selector: "visitIRInlinedReturn:",
 fn: function (anIRInlinedReturn){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:", [anIRInlinedReturn], {}, smalltalk.IRInliningJSTranslator)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -577,9 +577,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedSequence)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._stream())._nextPutStatementWith_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:", [anIRInlinedSequence], {}, smalltalk.IRInliningJSTranslator)})}
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRInliningJSTranslator)})}
 }),
 smalltalk.IRInliningJSTranslator);
 
@@ -595,7 +595,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:", [anIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -608,7 +608,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -628,7 +628,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:", [anIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -641,7 +641,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -661,7 +661,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:", [anIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -674,7 +674,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -687,7 +687,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:", [anIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -700,7 +700,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -720,7 +720,7 @@ return smalltalk.withContext(function($ctx2) {
$3=_st(each)._isSequence();
 if(! smalltalk.assert($3)){
 return _st(inlinedClosure)._add_(each);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 sequence=_st(self)._inlinedSequence();
 _st(inlinedClosure)._add_(sequence);
@@ -729,20 +729,20 @@ $4=statements;
 $5=(function(){
 return smalltalk.withContext(function($ctx2) {
_st(_st(statements)._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(sequence)._add_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 $6=_st(_st(_st(statements)._last())._isReturn())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(statements)._last())._isBlockReturn();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($6)){
 return _st(sequence)._add_(_st(_st(_st(statements)._last())._instructions())._first());
 } else {
 return _st(sequence)._add_(_st(statements)._last());
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($4)._ifNotEmpty_($5);
 $7=inlinedClosure;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {inlinedClosure:inlinedClosure,sequence:sequence,statements:statements}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,sequence:sequence,statements:statements}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -756,7 +756,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._send_(anIRSend);
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineSend:", [anIRSend], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -769,7 +769,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedClosure", [], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -796,7 +796,7 @@ $4=_st($3)._add_(inlinedClosure);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $5=inlinedSend;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:", [inlinedSend,anIRInstruction], {inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -833,7 +833,7 @@ $6=_st($5)._add_(inlinedClosure2);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $7=inlinedSend;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:", [inlinedSend,anIRInstruction,anotherIRInstruction], {inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction,inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -846,7 +846,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSequence", [], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -857,7 +857,7 @@ selector: "inliningError:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"inliningError:", [aString], {}, smalltalk.IRSendInliner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -870,7 +870,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@send"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"send", [], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"send",{}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -881,7 +881,7 @@ selector: "send:",
 fn: function (anIRSend){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
-return self}, function($ctx1) {$ctx1.fill(self,"send:", [anIRSend], {}, smalltalk.IRSendInliner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -894,7 +894,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@translator"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator", [], {}, smalltalk.IRSendInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -905,7 +905,7 @@ selector: "translator:",
 fn: function (anASTTranslator){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
-return self}, function($ctx1) {$ctx1.fill(self,"translator:", [anASTTranslator], {}, smalltalk.IRSendInliner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator}, smalltalk.IRSendInliner)})}
 }),
 smalltalk.IRSendInliner);
 
@@ -917,7 +917,7 @@ selector: "inlinedSelectors",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
-}, function($ctx1) {$ctx1.fill(self,"inlinedSelectors", [], {}, smalltalk.IRSendInliner.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedSelectors",{}, smalltalk.IRSendInliner.klass)})}
 }),
 smalltalk.IRSendInliner.klass);
 
@@ -940,12 +940,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(each)._isClosure();
 if(! smalltalk.assert($4)){
 throw $early=[false];
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($2)._do_($3);
 return true;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"shouldInline:", [anIRInstruction], {}, smalltalk.IRSendInliner.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner.klass)})}
 }),
 smalltalk.IRSendInliner.klass);
 
@@ -960,7 +960,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@assignment"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignment", [], {}, smalltalk.IRAssignmentInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"assignment",{}, smalltalk.IRAssignmentInliner)})}
 }),
 smalltalk.IRAssignmentInliner);
 
@@ -971,7 +971,7 @@ selector: "assignment:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"assignment:", [aNode], {}, smalltalk.IRAssignmentInliner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode}, smalltalk.IRAssignmentInliner)})}
 }),
 smalltalk.IRAssignmentInliner);
 
@@ -987,12 +987,12 @@ _st(self)._assignment_(anIRAssignment);
 inlinedAssignment=_st((smalltalk.IRInlinedAssignment || IRInlinedAssignment))._new();
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRAssignment)._replaceWith_(inlinedAssignment);
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 $1=inlinedAssignment;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:", [anIRAssignment], {inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})}
 }),
 smalltalk.IRAssignmentInliner);
 
@@ -1016,11 +1016,11 @@ _st($4)._add_(_st(_st(statements)._last())._copy());
 $5=_st($4)._yourself();
 return _st(_st(statements)._last())._replaceWith_($5);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotEmpty_($2);
 $6=inlinedClosure;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})}
 }),
 smalltalk.IRAssignmentInliner);
 
@@ -1036,7 +1036,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {}, smalltalk.IRNonLocalReturnInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure}, smalltalk.IRNonLocalReturnInliner)})}
 }),
 smalltalk.IRNonLocalReturnInliner);
 
@@ -1049,7 +1049,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn", [], {}, smalltalk.IRNonLocalReturnInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRNonLocalReturnInliner)})}
 }),
 smalltalk.IRNonLocalReturnInliner);
 
@@ -1075,11 +1075,11 @@ _st($4)._add_(_st(_st(statements)._last())._copy());
 $5=_st($4)._yourself();
 return _st(_st(statements)._last())._replaceWith_($5);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotEmpty_($2);
 $6=closure;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {closure:closure,statements:statements}, smalltalk.IRReturnInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements}, smalltalk.IRReturnInliner)})}
 }),
 smalltalk.IRReturnInliner);
 
@@ -1094,12 +1094,12 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 return_=_st(self)._inlinedReturn();
 _st(_st(anIRReturn)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(return_)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRReturn)._replaceWith_(return_);
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 $1=return_;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineReturn:", [anIRReturn], {return_:return_}, smalltalk.IRReturnInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_}, smalltalk.IRReturnInliner)})}
 }),
 smalltalk.IRReturnInliner);
 
@@ -1112,7 +1112,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn", [], {}, smalltalk.IRReturnInliner)})}
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRReturnInliner)})}
 }),
 smalltalk.IRReturnInliner);
 
@@ -1135,7 +1135,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})}
 }),
 smalltalk.InliningCodeGenerator);
 
@@ -1148,7 +1148,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inliner", [], {}, smalltalk.InliningCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"inliner",{}, smalltalk.InliningCodeGenerator)})}
 }),
 smalltalk.InliningCodeGenerator);
 
@@ -1161,7 +1161,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator", [], {}, smalltalk.InliningCodeGenerator)})}
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.InliningCodeGenerator)})}
 }),
 smalltalk.InliningCodeGenerator);
 

+ 103 - 103
js/Compiler-Inlining.js

@@ -11,7 +11,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedAssignment)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedAssignment: self",
 messageSends: ["visitIRInlinedAssignment:"],
@@ -27,7 +27,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedAssignment)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -47,7 +47,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedClosure)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedClosure: self",
 messageSends: ["visitIRInlinedClosure:"],
@@ -63,7 +63,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedClosure)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -85,7 +85,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedReturn)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedReturn: self",
 messageSends: ["visitIRInlinedReturn:"],
@@ -101,7 +101,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedReturn)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -123,7 +123,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedNonLocalReturn)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedNonLocalReturn: self",
 messageSends: ["visitIRInlinedNonLocalReturn:"],
@@ -139,7 +139,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedNonLocalReturn)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -159,7 +159,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedSend)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSend)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitInlinedSend: self",
 messageSends: ["visitInlinedSend:"],
@@ -175,7 +175,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedSend)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSend)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -194,7 +194,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfFalse)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfFalse: self",
 messageSends: ["visitIRInlinedIfFalse:"],
@@ -213,7 +213,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfNilIfNotNil)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfNilIfNotNil)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfNilIfNotNil: self",
 messageSends: ["visitIRInlinedIfNilIfNotNil:"],
@@ -232,7 +232,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfTrue)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrue)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrue: self",
 messageSends: ["visitIRInlinedIfTrue:"],
@@ -251,7 +251,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedIfTrueIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrueIfFalse)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrueIfFalse: self",
 messageSends: ["visitIRInlinedIfTrueIfFalse:"],
@@ -271,7 +271,7 @@ category: 'visiting',
 fn: function (aVisitor){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:", [aVisitor], {}, smalltalk.IRInlinedSequence)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSequence)})},
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedSequence: self",
 messageSends: ["visitIRInlinedSequence:"],
@@ -287,7 +287,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.IRInlinedSequence)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSequence)})},
 args: [],
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
@@ -312,7 +312,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignmentInliner", [], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{}, smalltalk.IRInliner)})},
 args: [],
 source: "assignmentInliner\x0a\x09^ IRAssignmentInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
@@ -333,7 +333,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner", [], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{}, smalltalk.IRInliner)})},
 args: [],
 source: "nonLocalReturnInliner\x0a\x09^ IRNonLocalReturnInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
@@ -354,7 +354,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"returnInliner", [], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"returnInliner",{}, smalltalk.IRInliner)})},
 args: [],
 source: "returnInliner\x0a\x09^ IRReturnInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
@@ -375,7 +375,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendInliner", [], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"sendInliner",{}, smalltalk.IRInliner)})},
 args: [],
 source: "sendInliner\x0a\x09^ IRSendInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
@@ -394,10 +394,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRAssignment)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(_st(anIRAssignment)._instructions())._last())._isSend())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSend_(_st(_st(anIRAssignment)._instructions())._last());
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:", [anIRAssignment], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
 args: ["anIRAssignment"],
 source: "shouldInlineAssignment: anIRAssignment\x0a\x09^ anIRAssignment isInlined not and: [ \x0a\x09\x09anIRAssignment instructions last isSend and: [\x09\x0a\x09\x09\x09self shouldInlineSend: (anIRAssignment instructions last) ]]",
 messageSends: ["and:", "shouldInlineSend:", "last", "instructions", "isSend", "not", "isInlined"],
@@ -416,10 +416,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRReturn)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(_st(anIRReturn)._instructions())._first())._isSend())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSend_(_st(_st(anIRReturn)._instructions())._first());
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:", [anIRReturn], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
 args: ["anIRReturn"],
 source: "shouldInlineReturn: anIRReturn\x0a\x09^ anIRReturn isInlined not and: [ \x0a\x09\x09anIRReturn instructions first isSend and: [\x09\x0a\x09\x09\x09self shouldInlineSend: (anIRReturn instructions first) ]]",
 messageSends: ["and:", "shouldInlineSend:", "first", "instructions", "isSend", "not", "isInlined"],
@@ -437,9 +437,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:", [anIRSend], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
 args: ["anIRSend"],
 source: "shouldInlineSend: anIRSend\x0a\x09^ anIRSend isInlined not and: [\x0a\x09\x09IRSendInliner shouldInline: anIRSend ]",
 messageSends: ["and:", "shouldInline:", "not", "isInlined"],
@@ -466,14 +466,14 @@ localReturn=$3;
 localReturn;
 _st(_st(anIRNonLocalReturn)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(localReturn)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRNonLocalReturn)._replaceWith_(localReturn);
 $4=localReturn;
 return $4;
 };
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:", [anIRNonLocalReturn], {localReturn:localReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn}, smalltalk.IRInliner)})},
 args: ["anIRNonLocalReturn"],
 source: "transformNonLocalReturn: anIRNonLocalReturn\x0a\x09\x22Replace a non local return into a local return\x22\x0a\x0a\x09| localReturn |\x0a\x09anIRNonLocalReturn scope canInlineNonLocalReturns ifTrue: [\x0a\x09\x09anIRNonLocalReturn scope methodScope removeNonLocalReturn: anIRNonLocalReturn scope.\x0a\x09\x09localReturn := IRReturn new\x0a\x09\x09\x09scope: anIRNonLocalReturn scope;\x0a\x09\x09\x09yourself.\x0a\x09\x09anIRNonLocalReturn instructions do: [ :each |\x0a\x09\x09\x09localReturn add: each ].\x0a\x09\x09anIRNonLocalReturn replaceWith: localReturn.\x0a\x09\x09^ localReturn ].\x0a\x09^ super visitIRNonLocalReturn: anIRNonLocalReturn",
 messageSends: ["ifTrue:", "removeNonLocalReturn:", "scope", "methodScope", "scope:", "new", "yourself", "do:", "add:", "instructions", "replaceWith:", "canInlineNonLocalReturns", "visitIRNonLocalReturn:"],
@@ -496,7 +496,7 @@ $1=_st(_st(self)._assignmentInliner())._inlineAssignment_(anIRAssignment);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:", [anIRAssignment], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
 args: ["anIRAssignment"],
 source: "visitIRAssignment: anIRAssignment\x0a\x09^ (self shouldInlineAssignment: anIRAssignment) \x0a\x09\x09ifTrue: [ self assignmentInliner inlineAssignment: anIRAssignment ]\x0a\x09\x09ifFalse: [ super visitIRAssignment: anIRAssignment ]",
 messageSends: ["ifTrue:ifFalse:", "inlineAssignment:", "assignmentInliner", "visitIRAssignment:", "shouldInlineAssignment:"],
@@ -519,7 +519,7 @@ $1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:", [anIRNonLocalReturn], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRInliner)})},
 args: ["anIRNonLocalReturn"],
 source: "visitIRNonLocalReturn: anIRNonLocalReturn\x0a\x09^ (self shouldInlineReturn: anIRNonLocalReturn) \x0a\x09\x09ifTrue: [ self nonLocalReturnInliner inlineReturn: anIRNonLocalReturn ]\x0a\x09\x09ifFalse: [ self transformNonLocalReturn: anIRNonLocalReturn ]",
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "nonLocalReturnInliner", "transformNonLocalReturn:", "shouldInlineReturn:"],
@@ -542,7 +542,7 @@ $1=_st(_st(self)._returnInliner())._inlineReturn_(anIRReturn);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:", [anIRReturn], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
 args: ["anIRReturn"],
 source: "visitIRReturn: anIRReturn\x0a\x09^ (self shouldInlineReturn: anIRReturn) \x0a\x09\x09ifTrue: [ self returnInliner inlineReturn: anIRReturn ]\x0a\x09\x09ifFalse: [ super visitIRReturn: anIRReturn ]",
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "returnInliner", "visitIRReturn:", "shouldInlineReturn:"],
@@ -565,7 +565,7 @@ $1=_st(_st(self)._sendInliner())._inlineSend_(anIRSend);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRSend:", [anIRSend], {}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
 args: ["anIRSend"],
 source: "visitIRSend: anIRSend\x0a\x09^ (self shouldInlineSend: anIRSend)\x0a\x09\x09ifTrue: [ self sendInliner inlineSend: anIRSend ]\x0a\x09\x09ifFalse: [ super visitIRSend: anIRSend ]",
 messageSends: ["ifTrue:ifFalse:", "inlineSend:", "sendInliner", "visitIRSend:", "shouldInlineSend:"],
@@ -585,7 +585,7 @@ category: 'visiting',
 fn: function (anIRInlinedAssignment){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:", [anIRInlinedAssignment], {}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedAssignment"],
 source: "visitIRInlinedAssignment: anIRInlinedAssignment\x0a\x09self visit: anIRInlinedAssignment instructions last",
 messageSends: ["visit:", "last", "instructions"],
@@ -602,8 +602,8 @@ fn: function (anIRInlinedClosure){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:", [anIRInlinedClosure], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedClosure"],
 source: "visitIRInlinedClosure: anIRInlinedClosure\x0a\x09anIRInlinedClosure instructions do: [ :each |\x0a\x09\x09self visit: each ]",
 messageSends: ["do:", "visit:", "instructions"],
@@ -622,10 +622,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("! smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:", [anIRInlinedIfFalse], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfFalse"],
 source: "visitIRInlinedIfFalse: anIRInlinedIfFalse\x0a\x09self stream nextPutIf: [ \x0a\x09\x09self stream nextPutAll: '! smalltalk.assert('.\x0a\x09\x09self visit: anIRInlinedIfFalse instructions first.\x0a\x09\x09self stream nextPutAll: ')' ]\x0a\x09\x09with: [ self visit: anIRInlinedIfFalse instructions last ]",
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
@@ -644,10 +644,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("($receiver = ");
 _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:", [anIRInlinedIfNil], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfNil"],
 source: "visitIRInlinedIfNil: anIRInlinedIfNil\x0a\x09self stream nextPutIf: [ \x0a\x09\x09self stream nextPutAll: '($receiver = '. \x0a\x09\x09self visit: anIRInlinedIfNil instructions first.\x0a\x09\x09self stream nextPutAll: ') == nil || $receiver == undefined' ]\x0a\x09\x09with: [ self visit: anIRInlinedIfNil instructions last ]",
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
@@ -666,12 +666,12 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("($receiver = ");
 _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._second());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:", [anIRInlinedIfNilIfNotNil], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfNilIfNotNil"],
 source: "visitIRInlinedIfNilIfNotNil: anIRInlinedIfNilIfNotNil\x0a\x09self stream \x0a\x09\x09nextPutIfElse: [ \x0a\x09\x09\x09self stream nextPutAll: '($receiver = '. \x0a\x09\x09\x09self visit: anIRInlinedIfNilIfNotNil instructions first.\x0a\x09\x09\x09self stream nextPutAll: ') == nil || $receiver == undefined' ]\x0a\x09\x09with: [ self visit: anIRInlinedIfNilIfNotNil instructions second ]\x0a\x09\x09with: [ self visit: anIRInlinedIfNilIfNotNil instructions third ]",
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"],
@@ -690,10 +690,10 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:", [anIRInlinedIfTrue], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfTrue"],
 source: "visitIRInlinedIfTrue: anIRInlinedIfTrue\x0a\x09self stream nextPutIf: [ \x0a\x09\x09self stream nextPutAll: 'smalltalk.assert('. \x0a\x09\x09self visit: anIRInlinedIfTrue instructions first.\x0a\x09\x09self stream nextPutAll: ')' ]\x0a\x09\x09with: [ self visit: anIRInlinedIfTrue instructions last ]",
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
@@ -712,12 +712,12 @@ return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPu
 return smalltalk.withContext(function($ctx2) {
_st(_st(self)._stream())._nextPutAll_("smalltalk.assert(");
 _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._first());
 return _st(_st(self)._stream())._nextPutAll_(")");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._second());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:", [anIRInlinedIfTrueIfFalse], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfTrueIfFalse"],
 source: "visitIRInlinedIfTrueIfFalse: anIRInlinedIfTrueIfFalse\x0a\x09self stream \x0a\x09\x09nextPutIfElse: [ \x0a\x09\x09\x09self stream nextPutAll: 'smalltalk.assert('. \x0a\x09\x09\x09self visit: anIRInlinedIfTrueIfFalse instructions first.\x0a\x09\x09\x09self stream nextPutAll: ')' ]\x0a\x09\x09with: [ self visit: anIRInlinedIfTrueIfFalse instructions second ]\x0a\x09\x09with: [ self visit: anIRInlinedIfTrueIfFalse instructions third ]",
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"],
@@ -734,10 +734,10 @@ fn: function (anIRInlinedReturn){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._stream())._nextPutStatementWith_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:", [anIRInlinedReturn], {}, smalltalk.IRInliningJSTranslator)})},
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedReturn"],
 source: "visitIRInlinedNonLocalReturn: anIRInlinedReturn\x0a\x09self stream nextPutStatementWith: [\x0a\x09\x09self visit: anIRInlinedReturn instructions last ].\x0a\x09self stream nextPutNonLocalReturnWith: [ ]",
 messageSends: ["nextPutStatementWith:", "visit:", "last", "instructions", "stream", "nextPutNonLocalReturnWith:"],
@@ -753,7 +753,7 @@ category: 'visiting',
 fn: function (anIRInlinedReturn){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:", [anIRInlinedReturn], {}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedReturn"],
 source: "visitIRInlinedReturn: anIRInlinedReturn\x0a\x09self visit: anIRInlinedReturn instructions last",
 messageSends: ["visit:", "last", "instructions"],
@@ -771,9 +771,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedSequence)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._stream())._nextPutStatementWith_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:", [anIRInlinedSequence], {}, smalltalk.IRInliningJSTranslator)})},
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedSequence"],
 source: "visitIRInlinedSequence: anIRInlinedSequence\x0a\x09anIRInlinedSequence instructions do: [ :each | \x0a\x09\x09self stream nextPutStatementWith: [ self visit: each ]]",
 messageSends: ["do:", "nextPutStatementWith:", "visit:", "stream", "instructions"],
@@ -795,7 +795,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:", [anIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 source: "ifFalse: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfFalse new with: anIRInstruction",
 messageSends: ["inlinedSend:with:", "new"],
@@ -813,7 +813,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifFalse: anIRInstruction ifTrue: anotherIRInstruction\x0a\x09^ self perform: #ifTrue:ifFalse: withArguments: { anotherIRInstruction. anIRInstruction }",
 messageSends: ["perform:withArguments:"],
@@ -838,7 +838,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:", [anIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 source: "ifNil: anIRInstruction\x0a\x09^ self \x0a\x09\x09inlinedSend: IRInlinedIfNilIfNotNil new \x0a\x09\x09with: anIRInstruction\x0a\x09\x09with: (IRClosure new\x0a\x09\x09\x09scope: anIRInstruction scope copy;\x0a\x09\x09\x09add: (IRBlockSequence new\x0a\x09\x09\x09\x09add: self send instructions first;\x0a\x09\x09\x09\x09yourself);\x0a\x09\x09\x09yourself)",
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"],
@@ -856,7 +856,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifNil: anIRInstruction ifNotNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anIRInstruction with: anotherIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -881,7 +881,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:", [anIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 source: "ifNotNil: anIRInstruction\x0a\x09^ self \x0a\x09\x09inlinedSend: IRInlinedIfNilIfNotNil new\x0a\x09\x09with: (IRClosure new\x0a\x09\x09\x09scope: anIRInstruction scope copy;\x0a\x09\x09\x09add: (IRBlockSequence new\x0a\x09\x09\x09\x09add: self send instructions first;\x0a\x09\x09\x09\x09yourself);\x0a\x09\x09\x09yourself)\x0a\x09\x09with: anIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"],
@@ -899,7 +899,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifNotNil: anIRInstruction ifNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anotherIRInstruction with: anIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -917,7 +917,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:", [anIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 source: "ifTrue: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrue new with: anIRInstruction",
 messageSends: ["inlinedSend:with:", "new"],
@@ -935,7 +935,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:", [anIRInstruction,anotherIRInstruction], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifTrue: anIRInstruction ifFalse: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrueIfFalse new with: anIRInstruction with: anotherIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -960,7 +960,7 @@ return smalltalk.withContext(function($ctx2) {
$3=_st(each)._isSequence();
 if(! smalltalk.assert($3)){
 return _st(inlinedClosure)._add_(each);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 sequence=_st(self)._inlinedSequence();
 _st(inlinedClosure)._add_(sequence);
@@ -969,20 +969,20 @@ $4=statements;
 $5=(function(){
 return smalltalk.withContext(function($ctx2) {
_st(_st(statements)._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(sequence)._add_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 $6=_st(_st(_st(statements)._last())._isReturn())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(statements)._last())._isBlockReturn();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($6)){
 return _st(sequence)._add_(_st(_st(_st(statements)._last())._instructions())._first());
 } else {
 return _st(sequence)._add_(_st(statements)._last());
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($4)._ifNotEmpty_($5);
 $7=inlinedClosure;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {inlinedClosure:inlinedClosure,sequence:sequence,statements:statements}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,sequence:sequence,statements:statements}, smalltalk.IRSendInliner)})},
 args: ["anIRClosure"],
 source: "inlineClosure: anIRClosure\x0a\x09| inlinedClosure sequence statements |\x0a\x0a\x09inlinedClosure := self inlinedClosure.\x0a\x09inlinedClosure scope: anIRClosure scope.\x0a\x0a\x09\x22Add the possible temp declarations\x22\x0a\x09anIRClosure instructions do: [ :each | \x0a\x09\x09each isSequence ifFalse: [\x0a\x09\x09\x09inlinedClosure add: each ]].\x0a\x0a\x09\x22Add a block sequence\x22\x0a\x09sequence := self inlinedSequence.\x0a\x09inlinedClosure add: sequence.\x0a\x0a\x09\x22Get all the statements\x22\x0a\x09statements := anIRClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements allButLast do: [ :each | sequence add: each ].\x0a\x0a\x09\x09\x22Inlined closures don't have implicit local returns\x22\x0a\x09\x09(statements last isReturn and: [ statements last isBlockReturn ])\x0a\x09\x09\x09ifTrue: [ sequence add: statements last instructions first ]\x0a\x09\x09\x09ifFalse: [ sequence add: statements last ] ].\x0a\x0a\x09^ inlinedClosure",
 messageSends: ["inlinedClosure", "scope:", "scope", "do:", "ifFalse:", "add:", "isSequence", "instructions", "inlinedSequence", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"],
@@ -1001,7 +1001,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._send_(anIRSend);
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineSend:", [anIRSend], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
 args: ["anIRSend"],
 source: "inlineSend: anIRSend\x0a\x09self send: anIRSend.\x0a\x09^ self \x0a\x09\x09perform: self send selector \x0a\x09\x09withArguments: self send instructions allButFirst",
 messageSends: ["send:", "perform:withArguments:", "selector", "send", "allButFirst", "instructions"],
@@ -1019,7 +1019,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedClosure", [], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{}, smalltalk.IRSendInliner)})},
 args: [],
 source: "inlinedClosure\x0a\x09^ IRInlinedClosure new",
 messageSends: ["new"],
@@ -1051,7 +1051,7 @@ $4=_st($3)._add_(inlinedClosure);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $5=inlinedSend;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:", [inlinedSend,anIRInstruction], {inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})},
 args: ["inlinedSend", "anIRInstruction"],
 source: "inlinedSend: inlinedSend with: anIRInstruction\x0a\x09| inlinedClosure |\x0a\x0a\x09anIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anIRInstruction arguments size = 0 ifFalse: [ self inliningError: 'Inlined block should have zero argument' ].\x0a\x0a\x09inlinedClosure := self translator visit: (self inlineClosure: anIRInstruction).\x0a\x0a\x09inlinedSend\x0a\x09\x09add: self send instructions first;\x0a\x09\x09add: inlinedClosure.\x0a\x0a\x09self send replaceWith: inlinedSend.\x0a\x0a\x09^ inlinedSend",
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"],
@@ -1093,7 +1093,7 @@ $6=_st($5)._add_(inlinedClosure2);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $7=inlinedSend;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:", [inlinedSend,anIRInstruction,anotherIRInstruction], {inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction,inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2}, smalltalk.IRSendInliner)})},
 args: ["inlinedSend", "anIRInstruction", "anotherIRInstruction"],
 source: "inlinedSend: inlinedSend with: anIRInstruction with: anotherIRInstruction\x0a\x09| inlinedClosure1 inlinedClosure2 |\x0a\x0a\x09anIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anIRInstruction arguments size = 0 ifFalse: [ self inliningError: 'Inlined block should have zero argument' ].\x0a\x0a\x09anotherIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anotherIRInstruction arguments size = 0 ifFalse: [ self inliningError: 'Inlined block should have zero argument' ].\x0a\x0a\x09inlinedClosure1 := self translator visit: (self inlineClosure: anIRInstruction).\x0a\x09inlinedClosure2 := self translator visit: (self inlineClosure: anotherIRInstruction).\x0a\x0a\x0a\x09inlinedSend\x0a\x09\x09add: self send instructions first;\x0a\x09\x09add: inlinedClosure1;\x0a\x09\x09add: inlinedClosure2.\x0a\x0a\x09self send replaceWith: inlinedSend.\x0a\x09^ inlinedSend",
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"],
@@ -1111,7 +1111,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSequence", [], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{}, smalltalk.IRSendInliner)})},
 args: [],
 source: "inlinedSequence\x0a\x09^ IRInlinedSequence new",
 messageSends: ["new"],
@@ -1127,7 +1127,7 @@ category: 'error handling',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"inliningError:", [aString], {}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString}, smalltalk.IRSendInliner)})},
 args: ["aString"],
 source: "inliningError: aString\x0a\x09InliningError signal: aString",
 messageSends: ["signal:"],
@@ -1145,7 +1145,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@send"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"send", [], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"send",{}, smalltalk.IRSendInliner)})},
 args: [],
 source: "send\x0a\x09^ send",
 messageSends: [],
@@ -1161,7 +1161,7 @@ category: 'accessing',
 fn: function (anIRSend){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
-return self}, function($ctx1) {$ctx1.fill(self,"send:", [anIRSend], {}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
 args: ["anIRSend"],
 source: "send: anIRSend\x0a\x09send := anIRSend",
 messageSends: [],
@@ -1179,7 +1179,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@translator"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator", [], {}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.IRSendInliner)})},
 args: [],
 source: "translator\x0a\x09^ translator",
 messageSends: [],
@@ -1195,7 +1195,7 @@ category: 'accessing',
 fn: function (anASTTranslator){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
-return self}, function($ctx1) {$ctx1.fill(self,"translator:", [anASTTranslator], {}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator}, smalltalk.IRSendInliner)})},
 args: ["anASTTranslator"],
 source: "translator: anASTTranslator\x0a\x09translator := anASTTranslator",
 messageSends: [],
@@ -1212,7 +1212,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
-}, function($ctx1) {$ctx1.fill(self,"inlinedSelectors", [], {}, smalltalk.IRSendInliner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSelectors",{}, smalltalk.IRSendInliner.klass)})},
 args: [],
 source: "inlinedSelectors\x0a\x09^ #('ifTrue:' 'ifFalse:' 'ifTrue:ifFalse:' 'ifFalse:ifTrue:' 'ifNil:' 'ifNotNil:' 'ifNil:ifNotNil:' 'ifNotNil:ifNil')",
 messageSends: [],
@@ -1240,12 +1240,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(each)._isClosure();
 if(! smalltalk.assert($4)){
 throw $early=[false];
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($2)._do_($3);
 return true;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"shouldInline:", [anIRInstruction], {}, smalltalk.IRSendInliner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner.klass)})},
 args: ["anIRInstruction"],
 source: "shouldInline: anIRInstruction\x0a\x09(self inlinedSelectors includes: anIRInstruction selector) ifFalse: [ ^ false ].\x0a\x09anIRInstruction instructions allButFirst do: [ :each |\x0a\x09\x09each isClosure ifFalse: [ ^ false ]].\x0a\x09^ true",
 messageSends: ["ifFalse:", "includes:", "selector", "inlinedSelectors", "do:", "isClosure", "allButFirst", "instructions"],
@@ -1266,7 +1266,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@assignment"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignment", [], {}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignment",{}, smalltalk.IRAssignmentInliner)})},
 args: [],
 source: "assignment\x0a\x09^ assignment",
 messageSends: [],
@@ -1282,7 +1282,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"assignment:", [aNode], {}, smalltalk.IRAssignmentInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode}, smalltalk.IRAssignmentInliner)})},
 args: ["aNode"],
 source: "assignment: aNode\x0a\x09assignment := aNode",
 messageSends: [],
@@ -1303,12 +1303,12 @@ _st(self)._assignment_(anIRAssignment);
 inlinedAssignment=_st((smalltalk.IRInlinedAssignment || IRInlinedAssignment))._new();
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRAssignment)._replaceWith_(inlinedAssignment);
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 $1=inlinedAssignment;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:", [anIRAssignment], {inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})},
 args: ["anIRAssignment"],
 source: "inlineAssignment: anIRAssignment\x0a\x09| inlinedAssignment |\x0a\x09self assignment: anIRAssignment.\x0a\x09inlinedAssignment := IRInlinedAssignment new.\x0a\x09anIRAssignment instructions do: [ :each |\x0a\x09\x09inlinedAssignment add: each ].\x0a\x09anIRAssignment replaceWith: inlinedAssignment.\x0a\x09self inlineSend: inlinedAssignment instructions last.\x0a\x09^ inlinedAssignment",
 messageSends: ["assignment:", "new", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"],
@@ -1337,11 +1337,11 @@ _st($4)._add_(_st(_st(statements)._last())._copy());
 $5=_st($4)._yourself();
 return _st(_st(statements)._last())._replaceWith_($5);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotEmpty_($2);
 $6=inlinedClosure;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})},
 args: ["anIRClosure"],
 source: "inlineClosure: anIRClosure\x0a\x09| inlinedClosure statements |\x0a\x0a\x09inlinedClosure := super inlineClosure: anIRClosure.\x0a\x09statements := inlinedClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last canBeAssigned ifTrue: [\x0a\x09\x09\x09statements last replaceWith: (IRAssignment new\x0a\x09\x09\x09\x09add: self assignment instructions first;\x0a\x09\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x0a\x09^ inlinedClosure",
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifTrue:", "replaceWith:", "add:", "first", "assignment", "new", "copy", "yourself", "canBeAssigned"],
@@ -1362,7 +1362,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure}, smalltalk.IRNonLocalReturnInliner)})},
 args: ["anIRClosure"],
 source: "inlineClosure: anIRClosure\x0a\x09\x22| inlinedClosure statements |\x0a\x0a\x09inlinedClosure := super inlineClosure: anIRClosure.\x0a\x09statements := inlinedClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last replaceWith: (IRNonLocalReturn new\x0a\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09^ inlinedClosure\x22\x0a\x0a\x09^ super inlineCLosure: anIRClosure",
 messageSends: ["inlineCLosure:"],
@@ -1380,7 +1380,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn", [], {}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRNonLocalReturnInliner)})},
 args: [],
 source: "inlinedReturn\x0a\x09^ IRInlinedNonLocalReturn new",
 messageSends: ["new"],
@@ -1412,11 +1412,11 @@ _st($4)._add_(_st(_st(statements)._last())._copy());
 $5=_st($4)._yourself();
 return _st(_st(statements)._last())._replaceWith_($5);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotEmpty_($2);
 $6=closure;
 return $6;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:", [anIRClosure], {closure:closure,statements:statements}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements}, smalltalk.IRReturnInliner)})},
 args: ["anIRClosure"],
 source: "inlineClosure: anIRClosure\x0a\x09| closure statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09statements := closure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last isReturn\x0a\x09\x09\x09ifFalse: [ statements last replaceWith: (IRReturn new\x0a\x09\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09\x09yourself)] ].\x0a\x0a\x09^ closure",
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifFalse:", "replaceWith:", "add:", "copy", "new", "yourself", "isReturn"],
@@ -1436,12 +1436,12 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 return_=_st(self)._inlinedReturn();
 _st(_st(anIRReturn)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(return_)._add_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(anIRReturn)._replaceWith_(return_);
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 $1=return_;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineReturn:", [anIRReturn], {return_:return_}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_}, smalltalk.IRReturnInliner)})},
 args: ["anIRReturn"],
 source: "inlineReturn: anIRReturn\x0a\x09| return |\x0a\x09return := self inlinedReturn.\x0a\x09anIRReturn instructions do: [ :each |\x0a\x09\x09return add: each ].\x0a\x09anIRReturn replaceWith: return.\x0a\x09self inlineSend: return instructions last.\x0a\x09^ return",
 messageSends: ["inlinedReturn", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"],
@@ -1459,7 +1459,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn", [], {}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRReturnInliner)})},
 args: [],
 source: "inlinedReturn\x0a\x09^ IRInlinedReturn new",
 messageSends: ["new"],
@@ -1488,7 +1488,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:", [aNode], {ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})},
 args: ["aNode"],
 source: "compileNode: aNode\x0a\x09| ir stream |\x0a\x0a\x09self semanticAnalyzer visit: aNode.\x0a\x09ir := self translator visit: aNode.\x0a\x09self inliner visit: ir.\x0a\x0a\x09^ self irTranslator\x0a\x09\x09visit: ir;\x0a\x09\x09contents",
 messageSends: ["visit:", "semanticAnalyzer", "translator", "inliner", "irTranslator", "contents"],
@@ -1506,7 +1506,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inliner", [], {}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"inliner",{}, smalltalk.InliningCodeGenerator)})},
 args: [],
 source: "inliner\x0a\x09^ IRInliner new",
 messageSends: ["new"],
@@ -1524,7 +1524,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator", [], {}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.InliningCodeGenerator)})},
 args: [],
 source: "irTranslator\x0a\x09^ IRInliningJSTranslator new",
 messageSends: ["new"],

+ 32 - 32
js/Compiler-Interpreter.deploy.js

@@ -18,8 +18,8 @@ _st(self)._outerContext_(_st(_st(self)._class())._fromMethodContext_(_st(aMethod
 };
 _st(_st(aMethodContext)._locals())._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._locals())._at_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock([key,value], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:", [aMethodContext], {}, smalltalk.AIContext)})}
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -30,7 +30,7 @@ selector: "localAt:put:",
 fn: function (aString,anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._locals())._at_put_(aString,anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:", [aString,anObject], {}, smalltalk.AIContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:",{aString:aString,anObject:anObject}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -49,7 +49,7 @@ $1=self["@locals"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"locals", [], {}, smalltalk.AIContext)})}
+}, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -62,7 +62,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerContext"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerContext", [], {}, smalltalk.AIContext)})}
+}, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -73,7 +73,7 @@ selector: "outerContext:",
 fn: function (anAIContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerContext"]=anAIContext;
-return self}, function($ctx1) {$ctx1.fill(self,"outerContext:", [anAIContext], {}, smalltalk.AIContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"outerContext:",{anAIContext:anAIContext}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -92,7 +92,7 @@ $1=self["@pc"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pc", [], {}, smalltalk.AIContext)})}
+}, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -103,7 +103,7 @@ selector: "pc:",
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@pc"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"pc:", [anInteger], {}, smalltalk.AIContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"pc:",{anInteger:anInteger}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -116,7 +116,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.AIContext)})}
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -127,7 +127,7 @@ selector: "receiver:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [anObject], {}, smalltalk.AIContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -140,7 +140,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.AIContext)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -151,7 +151,7 @@ selector: "selector:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.AIContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.AIContext)})}
 }),
 smalltalk.AIContext);
 
@@ -168,7 +168,7 @@ _st($2)._initializeFromMethodContext_(aMethodContext);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fromMethodContext:", [aMethodContext], {}, smalltalk.AIContext.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"fromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext.klass)})}
 }),
 smalltalk.AIContext.klass);
 
@@ -189,7 +189,7 @@ $1=self["@context"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"context", [], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -200,7 +200,7 @@ selector: "context:",
 fn: function (anAIContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=anAIContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:", [anAIContext], {}, smalltalk.ASTInterpreter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{anAIContext:anAIContext}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -213,7 +213,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(_st(_st("(function() { ").__comma(aString)).__comma(" })()"));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"eval:", [aString], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -225,7 +225,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._initialize.apply(_st(self), []);
 self["@shouldReturn"]=false;
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ASTInterpreter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -239,7 +239,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=false;
 $1=_st(self)._interpretNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -253,7 +253,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@currentNode"]=aNode;
 $1=_st(self)._visit_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpretNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"interpretNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -268,11 +268,11 @@ $2=_st((smalltalk.Message || Message))._new();
 _st($2)._selector_(_st(aSendNode)._selector());
 _st($2)._arguments_(_st(_st(aSendNode)._arguments())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._interpretNode_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})));
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:", [aSendNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:",{aSendNode:aSendNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -285,9 +285,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._interpretNode_(_st(_st(aNode)._nodes())._first());
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -302,10 +302,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 receiver=_st(self)._interpretNode_(_st(aNode)._receiver());
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._messageFromSendNode_(each))._sendTo_(receiver);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=_st(_st(self)._messageFromSendNode_(_st(_st(aNode)._nodes())._last()))._sendTo_(receiver);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {receiver:receiver}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode,receiver:receiver}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -318,7 +318,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(_st(aNode)._value());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -332,7 +332,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=true;
 $1=_st(self)._eval_(_st(aNode)._source());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -346,7 +346,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=true;
 $1=_st(self)._interpretNode_(_st(_st(aNode)._nodes())._first());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -359,7 +359,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._messageFromSendNode_(aNode))._sendTo_(_st(self)._interpretNode_(_st(aNode)._receiver()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -382,13 +382,13 @@ if(smalltalk.assert($3)){
 $4=value;
 throw $early=[$4];
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {value:value})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each,value:value},$ctx1)})});
 _st($1)._do_($2);
 $5=_st(self)._interpretNode_(_st(_st(aNode)._nodes())._last());
 return $5;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 
@@ -401,7 +401,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._value();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:", [aNode], {}, smalltalk.ASTInterpreter)})}
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
 }),
 smalltalk.ASTInterpreter);
 

+ 32 - 32
js/Compiler-Interpreter.js

@@ -19,8 +19,8 @@ _st(self)._outerContext_(_st(_st(self)._class())._fromMethodContext_(_st(aMethod
 };
 _st(_st(aMethodContext)._locals())._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._locals())._at_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock([key,value], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:", [aMethodContext], {}, smalltalk.AIContext)})},
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext)})},
 args: ["aMethodContext"],
 source: "initializeFromMethodContext: aMethodContext\x0a\x09self pc: aMethodContext pc.\x0a    self receiver: aMethodContext receiver.\x0a    self selector: aMethodContext selector.\x0a    aMethodContext outerContext ifNotNil: [\x0a\x09\x09self outerContext: (self class fromMethodContext: aMethodContext outerContext) ].\x0a    aMethodContext locals keysAndValuesDo: [ :key :value |\x0a    \x09self locals at: key put: value ]\x0a    ",
 messageSends: ["pc:", "pc", "receiver:", "receiver", "selector:", "selector", "ifNotNil:", "outerContext:", "fromMethodContext:", "outerContext", "class", "keysAndValuesDo:", "at:put:", "locals"],
@@ -36,7 +36,7 @@ category: 'accessing',
 fn: function (aString,anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._locals())._at_put_(aString,anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:", [aString,anObject], {}, smalltalk.AIContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:",{aString:aString,anObject:anObject}, smalltalk.AIContext)})},
 args: ["aString", "anObject"],
 source: "localAt: aString put: anObject\x0a\x09self locals at: aString put: anObject",
 messageSends: ["at:put:", "locals"],
@@ -60,7 +60,7 @@ $1=self["@locals"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"locals", [], {}, smalltalk.AIContext)})},
+}, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.AIContext)})},
 args: [],
 source: "locals\x0a\x09^ locals ifNil: [ locals := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -78,7 +78,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerContext"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerContext", [], {}, smalltalk.AIContext)})},
+}, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.AIContext)})},
 args: [],
 source: "outerContext\x0a\x09^ outerContext",
 messageSends: [],
@@ -94,7 +94,7 @@ category: 'accessing',
 fn: function (anAIContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerContext"]=anAIContext;
-return self}, function($ctx1) {$ctx1.fill(self,"outerContext:", [anAIContext], {}, smalltalk.AIContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"outerContext:",{anAIContext:anAIContext}, smalltalk.AIContext)})},
 args: ["anAIContext"],
 source: "outerContext: anAIContext\x0a\x09outerContext := anAIContext",
 messageSends: [],
@@ -118,7 +118,7 @@ $1=self["@pc"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pc", [], {}, smalltalk.AIContext)})},
+}, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.AIContext)})},
 args: [],
 source: "pc\x0a\x09^ pc ifNil: [ pc := 0 ]",
 messageSends: ["ifNil:"],
@@ -134,7 +134,7 @@ category: 'accessing',
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@pc"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"pc:", [anInteger], {}, smalltalk.AIContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"pc:",{anInteger:anInteger}, smalltalk.AIContext)})},
 args: ["anInteger"],
 source: "pc: anInteger\x0a\x09pc := anInteger",
 messageSends: [],
@@ -152,7 +152,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.AIContext)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.AIContext)})},
 args: [],
 source: "receiver\x0a\x09^ receiver",
 messageSends: [],
@@ -168,7 +168,7 @@ category: 'accessing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [anObject], {}, smalltalk.AIContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.AIContext)})},
 args: ["anObject"],
 source: "receiver: anObject\x0a\x09receiver := anObject",
 messageSends: [],
@@ -186,7 +186,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.AIContext)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.AIContext)})},
 args: [],
 source: "selector\x0a\x09^ selector",
 messageSends: [],
@@ -202,7 +202,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.AIContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.AIContext)})},
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
@@ -224,7 +224,7 @@ _st($2)._initializeFromMethodContext_(aMethodContext);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fromMethodContext:", [aMethodContext], {}, smalltalk.AIContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"fromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext.klass)})},
 args: ["aMethodContext"],
 source: "fromMethodContext: aMethodContext\x0a\x09^ self new \x0a    \x09initializeFromMethodContext: aMethodContext;\x0a        yourself",
 messageSends: ["initializeFromMethodContext:", "new", "yourself"],
@@ -250,7 +250,7 @@ $1=self["@context"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"context", [], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.ASTInterpreter)})},
 args: [],
 source: "context\x0a\x09^ context ifNil: [ context := AIContext new ]",
 messageSends: ["ifNil:", "new"],
@@ -266,7 +266,7 @@ category: 'accessing',
 fn: function (anAIContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=anAIContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:", [anAIContext], {}, smalltalk.ASTInterpreter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{anAIContext:anAIContext}, smalltalk.ASTInterpreter)})},
 args: ["anAIContext"],
 source: "context: anAIContext\x0a\x09context := anAIContext",
 messageSends: [],
@@ -284,7 +284,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(_st(_st("(function() { ").__comma(aString)).__comma(" })()"));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"eval:", [aString], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.ASTInterpreter)})},
 args: ["aString"],
 source: "eval: aString\x0a\x09\x22Evaluate aString as JS source inside an immediately evaluated JS function. \x0a    aString is not sandboxed.\x22\x0a    \x0a    ^ Compiler new eval: '(function() { ', aString, ' })()'",
 messageSends: ["eval:", ",", "new"],
@@ -301,7 +301,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._initialize.apply(_st(self), []);
 self["@shouldReturn"]=false;
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ASTInterpreter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTInterpreter)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a    shouldReturn := false",
 messageSends: ["initialize"],
@@ -320,7 +320,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=false;
 $1=_st(self)._interpretNode_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "interpret: aNode\x0a\x09shouldReturn := false.\x0a    ^ self interpretNode: aNode",
 messageSends: ["interpretNode:"],
@@ -339,7 +339,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@currentNode"]=aNode;
 $1=_st(self)._visit_(aNode);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpretNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"interpretNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "interpretNode: aNode\x0a\x09currentNode := aNode.\x0a    ^ self visit: aNode",
 messageSends: ["visit:"],
@@ -359,11 +359,11 @@ $2=_st((smalltalk.Message || Message))._new();
 _st($2)._selector_(_st(aSendNode)._selector());
 _st($2)._arguments_(_st(_st(aSendNode)._arguments())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._interpretNode_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})));
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:", [aSendNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:",{aSendNode:aSendNode}, smalltalk.ASTInterpreter)})},
 args: ["aSendNode"],
 source: "messageFromSendNode: aSendNode\x0a\x09^ Message new\x0a    \x09selector: aSendNode selector;\x0a        arguments: (aSendNode arguments collect: [ :each |\x0a        \x09self interpretNode: each ]);\x0a        yourself",
 messageSends: ["selector:", "selector", "new", "arguments:", "collect:", "interpretNode:", "arguments", "yourself"],
@@ -381,9 +381,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._interpretNode_(_st(_st(aNode)._nodes())._first());
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitBlockNode: aNode\x0a    ^ [ self interpretNode: aNode nodes first ]",
 messageSends: ["interpretNode:", "first", "nodes"],
@@ -403,10 +403,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 receiver=_st(self)._interpretNode_(_st(aNode)._receiver());
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._messageFromSendNode_(each))._sendTo_(receiver);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=_st(_st(self)._messageFromSendNode_(_st(_st(aNode)._nodes())._last()))._sendTo_(receiver);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {receiver:receiver}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode,receiver:receiver}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitCascadeNode: aNode\x0a\x09\x22TODO: Handle super sends\x22\x0a\x09| receiver |\x0a    \x0a    receiver := self interpretNode: aNode receiver.\x0a\x0a    aNode nodes allButLast\x0a    \x09do: [ :each | \x0a        \x09(self messageFromSendNode: each)\x0a            \x09sendTo: receiver ].\x0a\x0a    ^ (self messageFromSendNode: aNode nodes last)\x0a            \x09sendTo: receiver",
 messageSends: ["interpretNode:", "receiver", "do:", "sendTo:", "messageFromSendNode:", "allButLast", "nodes", "last"],
@@ -424,7 +424,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(_st(aNode)._value());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitClassReferenceNode: aNode\x0a\x09^ Smalltalk current at: aNode value",
 messageSends: ["at:", "value", "current"],
@@ -443,7 +443,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=true;
 $1=_st(self)._eval_(_st(aNode)._source());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitJSStatementNode: aNode\x0a\x09shouldReturn := true.\x0a\x09^ self eval: aNode source",
 messageSends: ["eval:", "source"],
@@ -462,7 +462,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 self["@shouldReturn"]=true;
 $1=_st(self)._interpretNode_(_st(_st(aNode)._nodes())._first());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitReturnNode: aNode\x0a\x09shouldReturn := true.\x0a    ^ self interpretNode: aNode nodes first",
 messageSends: ["interpretNode:", "first", "nodes"],
@@ -480,7 +480,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._messageFromSendNode_(aNode))._sendTo_(_st(self)._interpretNode_(_st(aNode)._receiver()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitSendNode: aNode\x0a\x09\x22TODO: Handle super sends\x22\x0a    \x0a    ^ (self messageFromSendNode: aNode)\x0a    \x09sendTo: (self interpretNode: aNode receiver)",
 messageSends: ["sendTo:", "interpretNode:", "receiver", "messageFromSendNode:"],
@@ -508,13 +508,13 @@ if(smalltalk.assert($3)){
 $4=value;
 throw $early=[$4];
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {value:value})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each,value:value},$ctx1)})});
 _st($1)._do_($2);
 $5=_st(self)._interpretNode_(_st(_st(aNode)._nodes())._last());
 return $5;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitSequenceNode: aNode\x0a\x0a\x09aNode nodes allButLast do: [ :each | | value |\x0a        value := self interpretNode: each.\x0a\x09\x09shouldReturn ifTrue: [ ^ value ] ].\x0a        \x0a    ^ self interpretNode: aNode nodes last",
 messageSends: ["do:", "interpretNode:", "ifTrue:", "allButLast", "nodes", "last"],
@@ -532,7 +532,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._value();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:", [aNode], {}, smalltalk.ASTInterpreter)})},
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.ASTInterpreter)})},
 args: ["aNode"],
 source: "visitValueNode: aNode\x0a\x09^ aNode value",
 messageSends: ["value"],

+ 106 - 106
js/Compiler-Semantic.deploy.js

@@ -8,7 +8,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st((smalltalk.ArgVar || ArgVar))._on_(aString));
 _st(_st(_st(self)._args())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addArg:", [aString], {}, smalltalk.LexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -20,7 +20,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st((smalltalk.TempVar || TempVar))._on_(aString));
 _st(_st(_st(self)._temps())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addTemp:", [aString], {}, smalltalk.LexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -33,7 +33,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -46,7 +46,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -65,7 +65,7 @@ $1=self["@args"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"args", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"args",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -80,11 +80,11 @@ $1=_st(_st(self)._pseudoVars())._at_ifAbsent_(_st(aStringOrNode)._value(),(funct
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._args())._at_ifAbsent_(_st(aStringOrNode)._value(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._temps())._at_ifAbsent_(_st(aStringOrNode)._value(),(function(){
 return smalltalk.withContext(function($ctx4) {
return nil;
-}, function($ctx4) {$ctx4.fillBlock([], {})})}));
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:", [aStringOrNode], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -97,9 +97,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isInlined())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -112,7 +112,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@instruction"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instruction", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"instruction",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -123,7 +123,7 @@ selector: "instruction:",
 fn: function (anIRInstruction){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
-return self}, function($ctx1) {$ctx1.fill(self,"instruction:", [anIRInstruction], {}, smalltalk.LexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -136,7 +136,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isMethodScope())._not();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockScope", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -149,9 +149,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instruction())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -162,7 +162,7 @@ selector: "isMethodScope",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -184,11 +184,11 @@ lookup=$3;
 lookup=_st(_st(self)._outerScope())._lookupVariable_(aNode);
 };
 return lookup;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNil_($2);
 $4=lookup;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"lookupVariable:", [aNode], {lookup:lookup}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -206,7 +206,7 @@ $1=$2;
 $1=_st(_st(self)._outerScope())._methodScope();
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -219,7 +219,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -230,7 +230,7 @@ selector: "node:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:", [aNode], {}, smalltalk.LexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -243,7 +243,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerScope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerScope", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"outerScope",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -254,7 +254,7 @@ selector: "outerScope:",
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"outerScope:", [aLexicalScope], {}, smalltalk.LexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -267,7 +267,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodScope())._pseudoVars();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -291,7 +291,7 @@ return $3;
 };
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"scopeLevel", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -310,7 +310,7 @@ $1=self["@temps"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.LexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.LexicalScope)})}
 }),
 smalltalk.LexicalScope);
 
@@ -325,7 +325,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st((smalltalk.InstanceVar || InstanceVar))._on_(aString));
 _st(_st(_st(self)._iVars())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addIVar:", [aString], {}, smalltalk.MethodLexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -336,7 +336,7 @@ selector: "addNonLocalReturn:",
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
-return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:", [aScope], {}, smalltalk.MethodLexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -349,7 +349,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -364,12 +364,12 @@ $2=smalltalk.LexicalScope.fn.prototype._bindingFor_.apply(_st(self), [aNode]);
 if(($receiver = $2) == nil || $receiver == undefined){
 $1=_st(_st(self)._iVars())._at_ifAbsent_(_st(aNode)._value(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 } else {
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:", [aNode], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -380,7 +380,7 @@ selector: "canInlineNonLocalReturns",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -393,7 +393,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._localReturn();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -406,7 +406,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -425,7 +425,7 @@ $1=self["@iVars"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"iVars", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"iVars",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -436,7 +436,7 @@ selector: "isMethodScope",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -454,7 +454,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"localReturn", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"localReturn",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -465,7 +465,7 @@ selector: "localReturn:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"localReturn:", [aBoolean], {}, smalltalk.MethodLexicalScope)})}
+return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -478,7 +478,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -497,7 +497,7 @@ $1=self["@nonLocalReturns"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -517,13 +517,13 @@ return smalltalk.withContext(function($ctx2) {
$2=_st((smalltalk.PseudoVar || Ps
 _st($2)._scope_(_st(self)._methodScope());
 $3=_st($2)._yourself();
 return _st(self["@pseudoVars"])._at_put_(each,$3);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 } else {
 $1;
 };
 $4=self["@pseudoVars"];
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -534,8 +534,8 @@ selector: "removeNonLocalReturn:",
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:", [aScope], {}, smalltalk.MethodLexicalScope)})}
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -554,7 +554,7 @@ $1=self["@unknownVariables"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables", [], {}, smalltalk.MethodLexicalScope)})}
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.MethodLexicalScope)})}
 }),
 smalltalk.MethodLexicalScope);
 
@@ -570,7 +570,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name())._asVariableName();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -581,7 +581,7 @@ selector: "isArgVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -592,7 +592,7 @@ selector: "isClassRefVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -603,7 +603,7 @@ selector: "isInstanceVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -614,7 +614,7 @@ selector: "isPseudoVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -625,7 +625,7 @@ selector: "isTempVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -636,7 +636,7 @@ selector: "isUnknownVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -649,7 +649,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@name"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"name", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -660,7 +660,7 @@ selector: "name:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"name:", [aString], {}, smalltalk.ScopeVar)})}
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -673,7 +673,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.ScopeVar)})}
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -684,7 +684,7 @@ selector: "scope:",
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aScope], {}, smalltalk.ScopeVar)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -697,14 +697,14 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(self)._isArgVar())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 $2=_st((smalltalk.InvalidAssignmentError || InvalidAssignmentError))._new();
 _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment", [], {}, smalltalk.ScopeVar)})}
+return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{}, smalltalk.ScopeVar)})}
 }),
 smalltalk.ScopeVar);
 
@@ -721,7 +721,7 @@ _st($2)._name_(aString);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aString], {}, smalltalk.ScopeVar.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString}, smalltalk.ScopeVar.klass)})}
 }),
 smalltalk.ScopeVar.klass);
 
@@ -736,7 +736,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node", [], {}, smalltalk.AliasVar)})}
+}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.AliasVar)})}
 }),
 smalltalk.AliasVar);
 
@@ -747,7 +747,7 @@ selector: "node:",
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:", [aNode], {}, smalltalk.AliasVar)})}
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.AliasVar)})}
 }),
 smalltalk.AliasVar);
 
@@ -761,7 +761,7 @@ selector: "isArgVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar", [], {}, smalltalk.ArgVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ArgVar)})}
 }),
 smalltalk.ArgVar);
 
@@ -777,7 +777,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.ClassRefVar)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ClassRefVar)})}
 }),
 smalltalk.ClassRefVar);
 
@@ -788,7 +788,7 @@ selector: "isClassRefVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar", [], {}, smalltalk.ClassRefVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ClassRefVar)})}
 }),
 smalltalk.ClassRefVar);
 
@@ -804,7 +804,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.InstanceVar)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.InstanceVar)})}
 }),
 smalltalk.InstanceVar);
 
@@ -815,7 +815,7 @@ selector: "isInstanceVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar", [], {}, smalltalk.InstanceVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.InstanceVar)})}
 }),
 smalltalk.InstanceVar);
 
@@ -831,7 +831,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.PseudoVar)})}
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.PseudoVar)})}
 }),
 smalltalk.PseudoVar);
 
@@ -842,7 +842,7 @@ selector: "isPseudoVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar", [], {}, smalltalk.PseudoVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.PseudoVar)})}
 }),
 smalltalk.PseudoVar);
 
@@ -856,7 +856,7 @@ selector: "isTempVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar", [], {}, smalltalk.TempVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.TempVar)})}
 }),
 smalltalk.TempVar);
 
@@ -870,7 +870,7 @@ selector: "isUnknownVar",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar", [], {}, smalltalk.UnknownVar)})}
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.UnknownVar)})}
 }),
 smalltalk.UnknownVar);
 
@@ -892,7 +892,7 @@ $1=self["@classReferences"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -906,7 +906,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 _st($1)._variableName_(aString);
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:", [aString], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -921,7 +921,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 identifier=_st(aNode)._value();
 $1=_st(_st(_st(["jQuery", "window", "process", "global"])._includes_(identifier))._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 $2=_st((smalltalk.UnknownVariableError || UnknownVariableError))._new();
 _st($2)._variableName_(_st(aNode)._value());
@@ -930,7 +930,7 @@ $3;
 } else {
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:", [aNode], {identifier:identifier}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -941,7 +941,7 @@ selector: "isVariableGloballyUndefined:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
-return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:", [aString], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -960,7 +960,7 @@ $1=self["@messageSends"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -973,7 +973,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newBlockScope", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -986,7 +986,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newMethodScope", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1002,7 +1002,7 @@ _st($2)._outerScope_(self["@currentScope"]);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:", [aLexicalScopeClass], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1020,7 +1020,7 @@ $1;
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"];
 };
-return self}, function($ctx1) {$ctx1.fill(self,"popScope", [], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"popScope",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1032,7 +1032,7 @@ fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 self["@currentScope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"pushScope:", [aScope], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1051,7 +1051,7 @@ $1=self["@superSends"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1064,7 +1064,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.SemanticAnalyzer)})}
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1075,7 +1075,7 @@ selector: "theClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1092,7 +1092,7 @@ $1;
 } else {
 _st(self)._errorShadowingVariable_(aString);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:", [aString], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1104,7 +1104,7 @@ fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 _st(_st(aNode)._left())._beAssigned();
-return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1120,10 +1120,10 @@ _st(self["@currentScope"])._node_(aNode);
 _st(_st(aNode)._parameters())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addArg_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1136,15 +1136,15 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(aNode)._receiver());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitCascadeNode_.apply(_st(self), [aNode]);
 $1=_st(_st(_st(aNode)._nodes())._first())._superSend();
 if(smalltalk.assert($1)){
 _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1160,7 +1160,7 @@ $1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
 _st($1)._name_(_st(aNode)._value());
 $2=_st($1)._yourself();
 _st(aNode)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1176,18 +1176,18 @@ _st(aNode)._scope_(self["@currentScope"]);
 _st(self["@currentScope"])._node_(aNode);
 _st(_st(_st(self)._theClass())._allInstanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@currentScope"])._addIVar_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(_st(aNode)._arguments())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addArg_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitMethodNode_.apply(_st(self), [aNode]);
 $1=aNode;
 _st($1)._classReferences_(_st(self)._classReferences());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1206,7 +1206,7 @@ _st(self["@currentScope"])._localReturn_(true);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 };
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1223,24 +1223,24 @@ return smalltalk.withContext(function($ctx2) {
_st(aNode)._superSend_(true);
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Set || Set))._new();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
$4=_st(_st((smalltalk.IRSendInliner || IRSendInliner))._inlinedSelectors())._includes_(_st(aNode)._selector());
 if(smalltalk.assert($4)){
 _st(aNode)._shouldBeInlined_(true);
 return _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifTrue_ifFalse_($2,$3);
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1253,9 +1253,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(aNode)._temps())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addTemp_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1278,7 +1278,7 @@ $2=$5;
 $2=$3;
 };
 _st($1)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
 }),
 smalltalk.SemanticAnalyzer);
 
@@ -1295,7 +1295,7 @@ _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aClass], {}, smalltalk.SemanticAnalyzer.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass}, smalltalk.SemanticAnalyzer.klass)})}
 }),
 smalltalk.SemanticAnalyzer.klass);
 

+ 106 - 106
js/Compiler-Semantic.js

@@ -10,7 +10,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st((smalltalk.ArgVar || ArgVar))._on_(aString));
 _st(_st(_st(self)._args())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addArg:", [aString], {}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString}, smalltalk.LexicalScope)})},
 args: ["aString"],
 source: "addArg: aString\x0a\x09self args at: aString put: (ArgVar on: aString).\x0a\x09(self args at: aString) scope: self",
 messageSends: ["at:put:", "on:", "args", "scope:", "at:"],
@@ -27,7 +27,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st((smalltalk.TempVar || TempVar))._on_(aString));
 _st(_st(_st(self)._temps())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addTemp:", [aString], {}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString}, smalltalk.LexicalScope)})},
 args: ["aString"],
 source: "addTemp: aString\x0a\x09self temps at: aString put: (TempVar on: aString).\x0a\x09(self temps at: aString) scope: self",
 messageSends: ["at:put:", "on:", "temps", "scope:", "at:"],
@@ -45,7 +45,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "alias\x0a\x09^ '$ctx', self scopeLevel asString",
 messageSends: [",", "asString", "scopeLevel"],
@@ -63,7 +63,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "allVariableNames\x0a\x09^ self args keys, self temps keys",
 messageSends: [",", "keys", "temps", "args"],
@@ -87,7 +87,7 @@ $1=self["@args"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"args", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"args",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "args\x0a\x09^ args ifNil: [ args := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -107,11 +107,11 @@ $1=_st(_st(self)._pseudoVars())._at_ifAbsent_(_st(aStringOrNode)._value(),(funct
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._args())._at_ifAbsent_(_st(aStringOrNode)._value(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._temps())._at_ifAbsent_(_st(aStringOrNode)._value(),(function(){
 return smalltalk.withContext(function($ctx4) {
return nil;
-}, function($ctx4) {$ctx4.fillBlock([], {})})}));
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:", [aStringOrNode], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode}, smalltalk.LexicalScope)})},
 args: ["aStringOrNode"],
 source: "bindingFor: aStringOrNode\x0a\x09^ self pseudoVars at: aStringOrNode value ifAbsent: [ \x0a\x09\x09self args at: aStringOrNode value ifAbsent: [\x0a\x09\x09\x09self temps at: aStringOrNode value ifAbsent: [ nil ]]]",
 messageSends: ["at:ifAbsent:", "value", "temps", "args", "pseudoVars"],
@@ -129,9 +129,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isInlined())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "canInlineNonLocalReturns\x0a\x09^ self isInlined and: [ self outerScope canInlineNonLocalReturns ]",
 messageSends: ["and:", "canInlineNonLocalReturns", "outerScope", "isInlined"],
@@ -149,7 +149,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@instruction"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instruction", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"instruction",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "instruction\x0a\x09^ instruction",
 messageSends: [],
@@ -165,7 +165,7 @@ category: 'accessing',
 fn: function (anIRInstruction){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
-return self}, function($ctx1) {$ctx1.fill(self,"instruction:", [anIRInstruction], {}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction}, smalltalk.LexicalScope)})},
 args: ["anIRInstruction"],
 source: "instruction: anIRInstruction\x0a\x09instruction := anIRInstruction",
 messageSends: [],
@@ -183,7 +183,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isMethodScope())._not();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockScope", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "isBlockScope\x0a\x09^ self isMethodScope not",
 messageSends: ["not", "isMethodScope"],
@@ -201,9 +201,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instruction())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isInlined", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "isInlined\x0a\x09^ self instruction notNil and: [\x0a      \x09self instruction isInlined ]",
 messageSends: ["and:", "isInlined", "instruction", "notNil"],
@@ -219,7 +219,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "isMethodScope\x0a\x09^ false",
 messageSends: [],
@@ -246,11 +246,11 @@ lookup=$3;
 lookup=_st(_st(self)._outerScope())._lookupVariable_(aNode);
 };
 return lookup;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNil_($2);
 $4=lookup;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"lookupVariable:", [aNode], {lookup:lookup}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup}, smalltalk.LexicalScope)})},
 args: ["aNode"],
 source: "lookupVariable: aNode\x0a\x09| lookup |\x0a\x09lookup := (self bindingFor: aNode).\x0a\x09lookup ifNil: [\x0a\x09\x09lookup := self outerScope ifNotNil: [ \x0a\x09\x09\x09(self outerScope lookupVariable: aNode) ]].\x0a\x09^ lookup",
 messageSends: ["bindingFor:", "ifNil:", "ifNotNil:", "lookupVariable:", "outerScope"],
@@ -273,7 +273,7 @@ $1=$2;
 $1=_st(_st(self)._outerScope())._methodScope();
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "methodScope\x0a\x09^ self outerScope ifNotNil: [\x0a\x09\x09self outerScope methodScope ]",
 messageSends: ["ifNotNil:", "methodScope", "outerScope"],
@@ -291,7 +291,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "node\x0a\x09\x22Answer the node in which I am defined\x22\x0a\x09\x0a\x09^ node",
 messageSends: [],
@@ -307,7 +307,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:", [aNode], {}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.LexicalScope)})},
 args: ["aNode"],
 source: "node: aNode\x0a\x09node := aNode",
 messageSends: [],
@@ -325,7 +325,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerScope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerScope", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"outerScope",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "outerScope\x0a\x09^ outerScope",
 messageSends: [],
@@ -341,7 +341,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"outerScope:", [aLexicalScope], {}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope}, smalltalk.LexicalScope)})},
 args: ["aLexicalScope"],
 source: "outerScope: aLexicalScope\x0a\x09outerScope := aLexicalScope",
 messageSends: [],
@@ -359,7 +359,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodScope())._pseudoVars();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "pseudoVars\x0a\x09^ self methodScope pseudoVars",
 messageSends: ["pseudoVars", "methodScope"],
@@ -388,7 +388,7 @@ return $3;
 };
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"scopeLevel", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "scopeLevel\x0a\x09self outerScope ifNil: [ ^ 1 ].\x0a\x09self isInlined ifTrue: [ ^ self outerScope scopeLevel ].\x0a    \x0a\x09^ self outerScope scopeLevel + 1",
 messageSends: ["ifNil:", "outerScope", "ifTrue:", "scopeLevel", "isInlined", "+"],
@@ -412,7 +412,7 @@ $1=self["@temps"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.LexicalScope)})},
 args: [],
 source: "temps\x0a\x09^ temps ifNil: [ temps := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -433,7 +433,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st((smalltalk.InstanceVar || InstanceVar))._on_(aString));
 _st(_st(_st(self)._iVars())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addIVar:", [aString], {}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString}, smalltalk.MethodLexicalScope)})},
 args: ["aString"],
 source: "addIVar: aString\x0a\x09self iVars at: aString put: (InstanceVar on: aString).\x0a\x09(self iVars at: aString) scope: self",
 messageSends: ["at:put:", "on:", "iVars", "scope:", "at:"],
@@ -449,7 +449,7 @@ category: 'adding',
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
-return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:", [aScope], {}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
 args: ["aScope"],
 source: "addNonLocalReturn: aScope\x0a\x09self nonLocalReturns add: aScope",
 messageSends: ["add:", "nonLocalReturns"],
@@ -467,7 +467,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "allVariableNames\x0a\x09^ super allVariableNames, self iVars keys",
 messageSends: [",", "keys", "iVars", "allVariableNames"],
@@ -487,12 +487,12 @@ $2=smalltalk.LexicalScope.fn.prototype._bindingFor_.apply(_st(self), [aNode]);
 if(($receiver = $2) == nil || $receiver == undefined){
 $1=_st(_st(self)._iVars())._at_ifAbsent_(_st(aNode)._value(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 } else {
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:", [aNode], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode}, smalltalk.MethodLexicalScope)})},
 args: ["aNode"],
 source: "bindingFor: aNode\x0a\x09^ (super bindingFor: aNode) ifNil: [\x0a\x09\x09self iVars at: aNode value ifAbsent: [ nil ]]",
 messageSends: ["ifNil:", "at:ifAbsent:", "value", "iVars", "bindingFor:"],
@@ -508,7 +508,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "canInlineNonLocalReturns\x0a\x09^ true",
 messageSends: [],
@@ -526,7 +526,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._localReturn();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "hasLocalReturn\x0a\x09^ self localReturn",
 messageSends: ["localReturn"],
@@ -544,7 +544,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "hasNonLocalReturn\x0a\x09^ self nonLocalReturns notEmpty",
 messageSends: ["notEmpty", "nonLocalReturns"],
@@ -568,7 +568,7 @@ $1=self["@iVars"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"iVars", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"iVars",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "iVars\x0a\x09^ iVars ifNil: [ iVars := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -584,7 +584,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "isMethodScope\x0a\x09^ true",
 messageSends: [],
@@ -607,7 +607,7 @@ $1=false;
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"localReturn", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"localReturn",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "localReturn\x0a\x09^ localReturn ifNil: [ false ]",
 messageSends: ["ifNil:"],
@@ -623,7 +623,7 @@ category: 'accessing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"localReturn:", [aBoolean], {}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean}, smalltalk.MethodLexicalScope)})},
 args: ["aBoolean"],
 source: "localReturn: aBoolean\x0a\x09localReturn := aBoolean",
 messageSends: [],
@@ -641,7 +641,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "methodScope\x0a\x09^ self",
 messageSends: [],
@@ -665,7 +665,7 @@ $1=self["@nonLocalReturns"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "nonLocalReturns\x0a\x09^ nonLocalReturns ifNil: [ nonLocalReturns := OrderedCollection new ]",
 messageSends: ["ifNil:", "new"],
@@ -690,13 +690,13 @@ return smalltalk.withContext(function($ctx2) {
$2=_st((smalltalk.PseudoVar || Ps
 _st($2)._scope_(_st(self)._methodScope());
 $3=_st($2)._yourself();
 return _st(self["@pseudoVars"])._at_put_(each,$3);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 } else {
 $1;
 };
 $4=self["@pseudoVars"];
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "pseudoVars\x0a\x09pseudoVars ifNil: [\x0a\x09\x09pseudoVars := Dictionary new.\x0a\x09\x09Smalltalk current pseudoVariableNames do: [ :each |\x0a\x09\x09\x09pseudoVars at: each put: ((PseudoVar on: each)\x0a\x09\x09\x09\x09scope: self methodScope;\x0a\x09\x09\x09\x09yourself) ]].\x0a\x09^ pseudoVars",
 messageSends: ["ifNil:", "new", "do:", "at:put:", "scope:", "methodScope", "on:", "yourself", "pseudoVariableNames", "current"],
@@ -712,8 +712,8 @@ category: 'adding',
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:", [aScope], {}, smalltalk.MethodLexicalScope)})},
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
 args: ["aScope"],
 source: "removeNonLocalReturn: aScope\x0a\x09self nonLocalReturns remove: aScope ifAbsent: []",
 messageSends: ["remove:ifAbsent:", "nonLocalReturns"],
@@ -737,7 +737,7 @@ $1=self["@unknownVariables"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables", [], {}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.MethodLexicalScope)})},
 args: [],
 source: "unknownVariables\x0a\x09^ unknownVariables ifNil: [ unknownVariables := OrderedCollection new ]",
 messageSends: ["ifNil:", "new"],
@@ -759,7 +759,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name())._asVariableName();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "alias\x0a\x09^ self name asVariableName",
 messageSends: ["asVariableName", "name"],
@@ -775,7 +775,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isArgVar\x0a\x09^ false",
 messageSends: [],
@@ -791,7 +791,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isClassRefVar\x0a\x09^ false",
 messageSends: [],
@@ -807,7 +807,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isInstanceVar\x0a\x09^ false",
 messageSends: [],
@@ -823,7 +823,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isPseudoVar\x0a\x09^ false",
 messageSends: [],
@@ -839,7 +839,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isTempVar\x0a\x09^ false",
 messageSends: [],
@@ -855,7 +855,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "isUnknownVar\x0a\x09^ false",
 messageSends: [],
@@ -873,7 +873,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@name"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"name", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "name\x0a\x09^ name",
 messageSends: [],
@@ -889,7 +889,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"name:", [aString], {}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.ScopeVar)})},
 args: ["aString"],
 source: "name: aString\x0a\x09name := aString",
 messageSends: [],
@@ -907,7 +907,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope", [], {}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "scope\x0a\x09^ scope",
 messageSends: [],
@@ -923,7 +923,7 @@ category: 'accessing',
 fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:", [aScope], {}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.ScopeVar)})},
 args: ["aScope"],
 source: "scope: aScope\x0a\x09scope := aScope",
 messageSends: [],
@@ -941,14 +941,14 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(self)._isArgVar())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 $2=_st((smalltalk.InvalidAssignmentError || InvalidAssignmentError))._new();
 _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment", [], {}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{}, smalltalk.ScopeVar)})},
 args: [],
 source: "validateAssignment\x0a\x09(self isArgVar or: [ self isPseudoVar ]) ifTrue: [\x0a\x09\x09InvalidAssignmentError new\x0a\x09\x09\x09variableName: self name;\x0a\x09\x09\x09signal]",
 messageSends: ["ifTrue:", "variableName:", "name", "new", "signal", "or:", "isPseudoVar", "isArgVar"],
@@ -970,7 +970,7 @@ _st($2)._name_(aString);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aString], {}, smalltalk.ScopeVar.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString}, smalltalk.ScopeVar.klass)})},
 args: ["aString"],
 source: "on: aString\x0a\x09^ self new \x0a\x09\x09name: aString;\x0a\x09\x09yourself",
 messageSends: ["name:", "new", "yourself"],
@@ -991,7 +991,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node", [], {}, smalltalk.AliasVar)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.AliasVar)})},
 args: [],
 source: "node\x0a\x09^ node",
 messageSends: [],
@@ -1007,7 +1007,7 @@ category: 'accessing',
 fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:", [aNode], {}, smalltalk.AliasVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.AliasVar)})},
 args: ["aNode"],
 source: "node: aNode\x0a\x09node := aNode",
 messageSends: [],
@@ -1027,7 +1027,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar", [], {}, smalltalk.ArgVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ArgVar)})},
 args: [],
 source: "isArgVar\x0a\x09^ true",
 messageSends: [],
@@ -1049,7 +1049,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ClassRefVar)})},
 args: [],
 source: "alias\x0a\x09^ '(smalltalk.', self name, ' || ', self name, ')'",
 messageSends: [",", "name"],
@@ -1065,7 +1065,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar", [], {}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ClassRefVar)})},
 args: [],
 source: "isClassRefVar\x0a\x09^ true",
 messageSends: [],
@@ -1087,7 +1087,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.InstanceVar)})},
 args: [],
 source: "alias\x0a\x09^ 'self[\x22@', self name, '\x22]'",
 messageSends: [",", "name"],
@@ -1103,7 +1103,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar", [], {}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.InstanceVar)})},
 args: [],
 source: "isInstanceVar\x0a\x09^ true",
 messageSends: [],
@@ -1125,7 +1125,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias", [], {}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.PseudoVar)})},
 args: [],
 source: "alias\x0a\x09^ self name",
 messageSends: ["name"],
@@ -1141,7 +1141,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar", [], {}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.PseudoVar)})},
 args: [],
 source: "isPseudoVar\x0a\x09^ true",
 messageSends: [],
@@ -1161,7 +1161,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar", [], {}, smalltalk.TempVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.TempVar)})},
 args: [],
 source: "isTempVar\x0a\x09^ true",
 messageSends: [],
@@ -1181,7 +1181,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar", [], {}, smalltalk.UnknownVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.UnknownVar)})},
 args: [],
 source: "isUnknownVar\x0a\x09^ true",
 messageSends: [],
@@ -1209,7 +1209,7 @@ $1=self["@classReferences"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "classReferences\x0a\x09^ classReferences ifNil: [ classReferences := Set new ]",
 messageSends: ["ifNil:", "new"],
@@ -1228,7 +1228,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 _st($1)._variableName_(aString);
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:", [aString], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 source: "errorShadowingVariable: aString\x0a\x09ShadowingVariableError new\x0a\x09\x09variableName: aString;\x0a\x09\x09signal",
 messageSends: ["variableName:", "new", "signal"],
@@ -1248,7 +1248,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 identifier=_st(aNode)._value();
 $1=_st(_st(_st(["jQuery", "window", "process", "global"])._includes_(identifier))._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 $2=_st((smalltalk.UnknownVariableError || UnknownVariableError))._new();
 _st($2)._variableName_(_st(aNode)._value());
@@ -1257,7 +1257,7 @@ $3;
 } else {
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:", [aNode], {identifier:identifier}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "errorUnknownVariable: aNode\x0a\x09\x22Throw an error if the variable is undeclared in the global JS scope (i.e. window).\x0a    We allow four variable names in addition: `jQuery`, `window`, `process` and `global` \x0a    for nodejs and browser environments. \x0a    \x0a    This is only to make sure compilation works on both browser-based and nodejs environments.\x0a    The ideal solution would be to use a pragma instead\x22\x0a\x0a\x09| identifier |\x0a    identifier := aNode value.\x0a    \x0a\x09((#('jQuery' 'window' 'process' 'global') includes: identifier) not \x0a        and: [ self isVariableGloballyUndefined: identifier ]) \x0a        \x09ifTrue: [\x0a\x09\x09\x09\x09UnknownVariableError new\x0a\x09\x09\x09\x09\x09variableName: aNode value;\x0a\x09\x09\x09\x09\x09signal ]\x0a\x09\x09\x09ifFalse: [\x0a\x09\x09\x09\x09currentScope methodScope unknownVariables add: aNode value ]",
 messageSends: ["value", "ifTrue:ifFalse:", "variableName:", "new", "signal", "add:", "unknownVariables", "methodScope", "and:", "isVariableGloballyUndefined:", "not", "includes:"],
@@ -1273,7 +1273,7 @@ category: 'testing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
-return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:", [aString], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 source: "isVariableGloballyUndefined: aString\x0a\x09<return eval('typeof ' + aString + ' == \x22undefined\x22')>",
 messageSends: [],
@@ -1297,7 +1297,7 @@ $1=self["@messageSends"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "messageSends\x0a\x09^ messageSends ifNil: [ messageSends := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -1315,7 +1315,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newBlockScope", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "newBlockScope\x0a\x09^ self newScopeOfClass: LexicalScope",
 messageSends: ["newScopeOfClass:"],
@@ -1333,7 +1333,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newMethodScope", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "newMethodScope\x0a\x09^ self newScopeOfClass: MethodLexicalScope",
 messageSends: ["newScopeOfClass:"],
@@ -1354,7 +1354,7 @@ _st($2)._outerScope_(self["@currentScope"]);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:", [aLexicalScopeClass], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass}, smalltalk.SemanticAnalyzer)})},
 args: ["aLexicalScopeClass"],
 source: "newScopeOfClass: aLexicalScopeClass\x0a\x09^ aLexicalScopeClass new \x0a\x09\x09outerScope: currentScope;\x0a\x09\x09yourself",
 messageSends: ["outerScope:", "new", "yourself"],
@@ -1377,7 +1377,7 @@ $1;
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"];
 };
-return self}, function($ctx1) {$ctx1.fill(self,"popScope", [], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"popScope",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "popScope\x0a\x09currentScope ifNotNil: [\x0a\x09\x09currentScope := currentScope outerScope ]",
 messageSends: ["ifNotNil:", "outerScope"],
@@ -1394,7 +1394,7 @@ fn: function (aScope){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 self["@currentScope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"pushScope:", [aScope], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope}, smalltalk.SemanticAnalyzer)})},
 args: ["aScope"],
 source: "pushScope: aScope\x0a\x09aScope outerScope: currentScope.\x0a\x09currentScope := aScope",
 messageSends: ["outerScope:"],
@@ -1418,7 +1418,7 @@ $1=self["@superSends"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "superSends\x0a\x09^ superSends ifNil: [ superSends := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
@@ -1436,7 +1436,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SemanticAnalyzer)})},
 args: [],
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
@@ -1452,7 +1452,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SemanticAnalyzer)})},
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
@@ -1474,7 +1474,7 @@ $1;
 } else {
 _st(self)._errorShadowingVariable_(aString);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:", [aString], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 source: "validateVariableScope: aString\x0a\x09\x22Validate the variable scope in by doing a recursive lookup, up to the method scope\x22\x0a\x0a\x09(currentScope lookupVariable: aString) ifNotNil: [\x0a\x09\x09self errorShadowingVariable: aString ]",
 messageSends: ["ifNotNil:", "errorShadowingVariable:", "lookupVariable:"],
@@ -1491,7 +1491,7 @@ fn: function (aNode){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 _st(_st(aNode)._left())._beAssigned();
-return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitAssignmentNode: aNode\x0a\x09super visitAssignmentNode: aNode.\x0a\x09aNode left beAssigned",
 messageSends: ["visitAssignmentNode:", "beAssigned", "left"],
@@ -1512,10 +1512,10 @@ _st(self["@currentScope"])._node_(aNode);
 _st(_st(aNode)._parameters())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addArg_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitBlockNode: aNode\x0a\x09self pushScope: self newBlockScope.\x0a\x09aNode scope: currentScope.\x0a\x09currentScope node: aNode.\x0a\x09\x0a\x09aNode parameters do: [ :each | \x0a\x09\x09self validateVariableScope: each.\x0a\x09\x09currentScope addArg: each ].\x0a\x0a\x09super visitBlockNode: aNode.\x0a\x09self popScope",
 messageSends: ["pushScope:", "newBlockScope", "scope:", "node:", "do:", "validateVariableScope:", "addArg:", "parameters", "visitBlockNode:", "popScope"],
@@ -1533,15 +1533,15 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(aNode)._receiver());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitCascadeNode_.apply(_st(self), [aNode]);
 $1=_st(_st(_st(aNode)._nodes())._first())._superSend();
 if(smalltalk.assert($1)){
 _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitCascadeNode: aNode\x0a\x09\x22Populate the receiver into all children\x22\x0a\x09aNode nodes do: [ :each | \x0a\x09\x09each receiver: aNode receiver ].\x0a\x09super visitCascadeNode: aNode.\x0a\x09aNode nodes first superSend ifTrue: [\x0a\x09\x09aNode nodes do: [ :each | each superSend: true ]]",
 messageSends: ["do:", "receiver:", "receiver", "nodes", "visitCascadeNode:", "ifTrue:", "superSend:", "superSend", "first"],
@@ -1562,7 +1562,7 @@ $1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
 _st($1)._name_(_st(aNode)._value());
 $2=_st($1)._yourself();
 _st(aNode)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitClassReferenceNode: aNode\x0a\x09self classReferences add: aNode value.\x0a\x09aNode binding: (ClassRefVar new name: aNode value; yourself)",
 messageSends: ["add:", "value", "classReferences", "binding:", "name:", "new", "yourself"],
@@ -1583,18 +1583,18 @@ _st(aNode)._scope_(self["@currentScope"]);
 _st(self["@currentScope"])._node_(aNode);
 _st(_st(_st(self)._theClass())._allInstanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@currentScope"])._addIVar_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(_st(aNode)._arguments())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addArg_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitMethodNode_.apply(_st(self), [aNode]);
 $1=aNode;
 _st($1)._classReferences_(_st(self)._classReferences());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitMethodNode: aNode\x0a\x09self pushScope: self newMethodScope.\x0a\x09aNode scope: currentScope.\x0a\x09currentScope node: aNode.\x0a\x0a\x09self theClass allInstanceVariableNames do: [:each | \x0a\x09\x09currentScope addIVar: each ].\x0a\x09aNode arguments do: [ :each | \x0a\x09\x09self validateVariableScope: each.\x0a\x09\x09currentScope addArg: each ].\x0a\x0a\x09super visitMethodNode: aNode.\x0a\x0a\x09aNode \x0a\x09\x09classReferences: self classReferences;\x0a\x09\x09messageSends: self messageSends keys;\x0a        superSends: self superSends keys.\x0a\x09self popScope",
 messageSends: ["pushScope:", "newMethodScope", "scope:", "node:", "do:", "addIVar:", "allInstanceVariableNames", "theClass", "validateVariableScope:", "addArg:", "arguments", "visitMethodNode:", "classReferences:", "classReferences", "messageSends:", "keys", "messageSends", "superSends:", "superSends", "popScope"],
@@ -1618,7 +1618,7 @@ _st(self["@currentScope"])._localReturn_(true);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 };
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitReturnNode: aNode\x0a\x09aNode scope: currentScope.\x0a\x09currentScope isMethodScope\x0a\x09\x09ifTrue: [ currentScope localReturn: true ]\x0a\x09\x09ifFalse: [ currentScope methodScope addNonLocalReturn: currentScope ].\x0a\x09super visitReturnNode: aNode",
 messageSends: ["scope:", "ifTrue:ifFalse:", "localReturn:", "addNonLocalReturn:", "methodScope", "isMethodScope", "visitReturnNode:"],
@@ -1640,24 +1640,24 @@ return smalltalk.withContext(function($ctx2) {
_st(aNode)._superSend_(true);
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Set || Set))._new();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
$4=_st(_st((smalltalk.IRSendInliner || IRSendInliner))._inlinedSelectors())._includes_(_st(aNode)._selector());
 if(smalltalk.assert($4)){
 _st(aNode)._shouldBeInlined_(true);
 return _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifTrue_ifFalse_($2,$3);
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitSendNode: aNode\x0a\x0a\x09aNode receiver value = 'super' \x0a\x09\x09ifTrue: [\x0a\x09\x09\x09aNode superSend: true.\x0a\x09\x09\x09aNode receiver value: 'self'.\x0a\x09\x09\x09self superSends at: aNode selector ifAbsentPut: [ Set new ].\x0a\x09\x09\x09(self superSends at: aNode selector) add: aNode ]\x0a          \x0a\x09\x09ifFalse: [ (IRSendInliner inlinedSelectors includes: aNode selector) ifTrue: [\x0a\x09\x09\x09aNode shouldBeInlined: true.\x0a\x09\x09\x09aNode receiver shouldBeAliased: true ] ].\x0a\x0a\x09self messageSends at: aNode selector ifAbsentPut: [ Set new ].\x0a\x09(self messageSends at: aNode selector) add: aNode.\x0a\x0a\x09aNode index: (self messageSends at: aNode selector) size.\x0a\x0a\x09super visitSendNode: aNode",
 messageSends: ["ifTrue:ifFalse:", "superSend:", "value:", "receiver", "at:ifAbsentPut:", "selector", "new", "superSends", "add:", "at:", "ifTrue:", "shouldBeInlined:", "shouldBeAliased:", "includes:", "inlinedSelectors", "=", "value", "messageSends", "index:", "size", "visitSendNode:"],
@@ -1675,9 +1675,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(aNode)._temps())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_(each);
 return _st(self["@currentScope"])._addTemp_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitSequenceNode: aNode\x0a\x09aNode temps do: [ :each | \x0a\x09\x09self validateVariableScope: each.\x0a\x09\x09currentScope addTemp: each ].\x0a\x0a\x09super visitSequenceNode: aNode",
 messageSends: ["do:", "validateVariableScope:", "addTemp:", "temps", "visitSequenceNode:"],
@@ -1705,7 +1705,7 @@ $2=$5;
 $2=$3;
 };
 _st($1)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:", [aNode], {}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 source: "visitVariableNode: aNode\x0a\x09\x22Bind a ScopeVar to aNode by doing a lookup in the current scope.\x0a\x09If no ScopeVar is found, bind a UnknowVar and throw an error\x22\x0a\x0a\x09aNode binding: ((currentScope lookupVariable: aNode) ifNil: [ \x0a\x09\x09self errorUnknownVariable: aNode.\x0a\x09\x09UnknownVar new name: aNode value; yourself ])",
 messageSends: ["binding:", "ifNil:", "errorUnknownVariable:", "name:", "value", "new", "yourself", "lookupVariable:"],
@@ -1727,7 +1727,7 @@ _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aClass], {}, smalltalk.SemanticAnalyzer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass}, smalltalk.SemanticAnalyzer.klass)})},
 args: ["aClass"],
 source: "on: aClass\x0a\x09^ self new\x0a\x09\x09theClass: aClass;\x0a\x09\x09yourself",
 messageSends: ["theClass:", "new", "yourself"],

+ 62 - 62
js/Compiler-Tests.deploy.js

@@ -10,7 +10,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 $1=aNode;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:", [aNode,aClass], {}, smalltalk.ASTInterpreterTest)})}
+}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -23,7 +23,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:", [aString], {}, smalltalk.ASTInterpreterTest)})}
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -38,13 +38,13 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 ctx=_st((smalltalk.AIContext || AIContext))._new();
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock([key,value], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 $2=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 _st($2)._context_(ctx);
 $3=_st($2)._interpret_(_st(_st(_st(self)._parse_forClass_(aString,(smalltalk.Object || Object)))._nodes())._first());
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:", [aString,aDictionary], {ctx:ctx}, smalltalk.ASTInterpreterTest)})}
+}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary,ctx:ctx}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -57,7 +57,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:", [aString], {}, smalltalk.ASTInterpreterTest)})}
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -70,7 +70,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:forClass:", [aString,aClass], {}, smalltalk.ASTInterpreterTest)})}
+}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -81,7 +81,7 @@ selector: "testBinarySend",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo 2+3+4"),(9));
-return self}, function($ctx1) {$ctx1.fill(self,"testBinarySend", [], {}, smalltalk.ASTInterpreterTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testBinarySend",{}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -94,7 +94,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]"),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testBlockLiteral", [], {}, smalltalk.ASTInterpreterTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testBlockLiteral",{}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -105,7 +105,7 @@ selector: "testCascade",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st((smalltalk.OrderedCollection || OrderedCollection))._with_with_((2),(3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testCascade", [], {}, smalltalk.ASTInterpreterTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testCascade",{}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -117,7 +117,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo <return 2+3>"),(5));
 _st(self)._assert_equals_(_st(self)._interpret_withArguments_("foo: anInteger <return 2 + anInteger>",smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((3))])),(5));
-return self}, function($ctx1) {$ctx1.fill(self,"testInlinedJSStatement", [], {}, smalltalk.ASTInterpreterTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testInlinedJSStatement",{}, smalltalk.ASTInterpreterTest)})}
 }),
 smalltalk.ASTInterpreterTest);
 
@@ -133,7 +133,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.CodeGeneratorTest)})}
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -149,7 +149,7 @@ _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compiler", [], {}, smalltalk.CodeGeneratorTest)})}
+}, function($ctx1) {$ctx1.fill(self,"compiler",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -160,7 +160,7 @@ selector: "setUp",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=_st(_st(self)._targetClass())._new();
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -175,7 +175,7 @@ return smalltalk.withContext(function($ctx1) { 
method=_st(_st(self)._compiler()
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(self)._assert_equals_(anObject,result);
-return self}, function($ctx1) {$ctx1.fill(self,"should:return:", [aString,anObject], {method:method,result:result}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"should:return:",{aString:aString,anObject:anObject,method:method,result:result}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -188,7 +188,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.DoIt || DoIt);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"targetClass", [], {}, smalltalk.CodeGeneratorTest)})}
+}, function($ctx1) {$ctx1.fill(self,"targetClass",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -198,7 +198,7 @@ smalltalk.method({
 selector: "tearDown",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.CodeGeneratorTest)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -211,7 +211,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo | a | a := true ifTrue: [ 1 ]. ^ a",(1));
 _st(self)._should_return_("foo | a | a := false ifTrue: [ 1 ]. ^ a",nil);
 _st(self)._should_return_("foo | a | ^ a := true ifTrue: [ 1 ]",(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -224,7 +224,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | true ifTrue: [ each + 1 ] ]",[(2), (3), (4)]);
 _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | false ifFalse: [ each + 1 ] ]",[(2), (3), (4)]);
 _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | each odd ifTrue: [ each + 1 ] ifFalse: [ each - 1 ] ]",[(2), (1), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testBlockReturn", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testBlockReturn",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -235,7 +235,7 @@ selector: "testCascades",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ Array new add: 3; add: 4; yourself",[(3), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testCascades", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testCascades",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -246,7 +246,7 @@ selector: "testDynamicArrayElementsOrdered",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ { x. true ifTrue: [ x := 2 ] }\x0a",[(1), (2)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -257,7 +257,7 @@ selector: "testDynamicDictionaryElementsOrdered",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 'foo'->1.\x0a  ^ #{ x. (true ifTrue: [ x := 'bar'->2 ]) }\x0a",smalltalk.HashedCollection._fromPairs_([_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionaryElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionaryElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -271,7 +271,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ { 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ #{ 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",smalltalk.HashedCollection._fromPairs_([_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testInnerTemporalDependentElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testInnerTemporalDependentElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -290,7 +290,7 @@ _st(self)._should_return_("foo ^ false",false);
 _st(self)._should_return_("foo ^ #{1->2. 3->4}",smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((2)),_st((3)).__minus_gt((4))]));
 _st(self)._should_return_("foo ^ #hello",smalltalk.symbolFor("hello"));
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
-return self}, function($ctx1) {$ctx1.fill(self,"testLiterals", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testLiterals",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -305,7 +305,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo self asString",self["@receiver"]);
 _st(self)._should_return_("foo | a b | a := 1. b := 2. ^ a + b",(3));
-return self}, function($ctx1) {$ctx1.fill(self,"testLocalReturn", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testLocalReturn",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -320,7 +320,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ^ 1 + 2 * 3",(9));
 _st(self)._should_return_("foo ^ 1 to: 3",[(1), (2), (3)]);
 _st(self)._should_return_("foo ^ 1 to: 5 by: 2",[(1), (3), (5)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testMessageSends", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testMessageSends",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -334,7 +334,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ true ifTrue: [ false ifTrue: [ 1 ] ]",nil);
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]",self["@receiver"]);
-return self}, function($ctx1) {$ctx1.fill(self,"testNestedIfTrue", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testNestedIfTrue",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -348,7 +348,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo [
 _st(self)._should_return_("foo [ ^ 1 + 1 ] value",(2));
 _st(self)._should_return_("foo | a b | a := 1. b := 2. [ ^ a + b ] value. self halt",(3));
 _st(self)._should_return_("foo [ :x | ^ x + x ] value: 4. ^ 2",(8));
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -360,7 +360,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a",[(1), (2)]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[(smalltalk.Array || Array),(2)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -374,7 +374,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo t
 _st(self)._should_return_("foo false ifFalse: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifFalse", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifFalse",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -388,7 +388,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo t
 _st(self)._should_return_("foo false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifFalseIfTrue", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifFalseIfTrue",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -402,7 +402,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNil: [ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifNil", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifNil",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -416,7 +416,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifNilIfNotNil", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifNilIfNotNil",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -430,7 +430,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNotNil: [ 2 ]",nil);
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo nil ifNotNil: [ ^ 2 ]",self["@receiver"]);
-return self}, function($ctx1) {$ctx1.fill(self,"testifNotNil", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifNotNil",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -444,7 +444,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo f
 _st(self)._should_return_("foo true ifTrue: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifTrue", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifTrue",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -458,7 +458,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo f
 _st(self)._should_return_("foo true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifTrueIfFalse", [], {}, smalltalk.CodeGeneratorTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testifTrueIfFalse",{}, smalltalk.CodeGeneratorTest)})}
 }),
 smalltalk.CodeGeneratorTest);
 
@@ -474,7 +474,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.InliningCodeGeneratorTest)})}
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.InliningCodeGeneratorTest)})}
 }),
 smalltalk.InliningCodeGeneratorTest);
 
@@ -495,7 +495,7 @@ $2=_st($1)._yourself();
 node=$2;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar", [], {node:node}, smalltalk.ScopeVarTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar",{node:node}, smalltalk.ScopeVarTest)})}
 }),
 smalltalk.ScopeVarTest);
 
@@ -514,7 +514,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar", [], {node:node,scope:scope}, smalltalk.ScopeVarTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})}
 }),
 smalltalk.ScopeVarTest);
 
@@ -534,8 +534,8 @@ $2=_st($1)._yourself();
 node=$2;
 node;
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar", [], {node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})}
 }),
 smalltalk.ScopeVarTest);
 
@@ -554,7 +554,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testTempVar", [], {node:node,scope:scope}, smalltalk.ScopeVarTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testTempVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})}
 }),
 smalltalk.ScopeVarTest);
 
@@ -571,7 +571,7 @@ _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
 _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isNil());
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVar", [], {node:node}, smalltalk.ScopeVarTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVar",{node:node}, smalltalk.ScopeVarTest)})}
 }),
 smalltalk.ScopeVarTest);
 
@@ -585,7 +585,7 @@ selector: "setUp",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_((smalltalk.Object || Object));
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -600,8 +600,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -616,7 +616,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. ^ a";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(ast)._scope())._hasNonLocalReturn());
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -631,7 +631,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ ^ a]
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(ast)._scope())._hasNonLocalReturn());
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -646,7 +646,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()).__eq_eq(_st(ast)._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testScope", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -661,7 +661,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ | b |
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope()).__eq_eq(_st(ast)._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testScope2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testScope2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -677,7 +677,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(_st(ast)._scope())._scopeLevel()).__eq((1)));
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel()).__eq((3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testScopeLevel", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testScopeLevel",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -692,8 +692,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -708,8 +708,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a +
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -723,7 +723,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -738,8 +738,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -753,7 +753,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing3", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing3",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -767,7 +767,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing4", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing4",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -782,8 +782,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 
@@ -801,7 +801,7 @@ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes()
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._first())._receiver())._binding())._scope()).__eq_eq(_st(ast)._scope()));
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._isTempVar());
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._scope()).__eq_eq(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariablesLookup", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testVariablesLookup",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
 }),
 smalltalk.SemanticAnalyzerTest);
 

+ 62 - 62
js/Compiler-Tests.js

@@ -11,7 +11,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 $1=aNode;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:", [aNode,aClass], {}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass}, smalltalk.ASTInterpreterTest)})},
 args: ["aNode", "aClass"],
 source: "analyze: aNode forClass: aClass\x0a\x09(SemanticAnalyzer on: aClass) visit: aNode.\x0a    ^ aNode",
 messageSends: ["visit:", "on:"],
@@ -29,7 +29,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:", [aString], {}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString}, smalltalk.ASTInterpreterTest)})},
 args: ["aString"],
 source: "interpret: aString\x0a\x09^ self \x0a    \x09interpret: aString \x0a        withArguments: Dictionary new",
 messageSends: ["interpret:withArguments:", "new"],
@@ -49,13 +49,13 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 ctx=_st((smalltalk.AIContext || AIContext))._new();
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock([key,value], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 $2=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 _st($2)._context_(ctx);
 $3=_st($2)._interpret_(_st(_st(_st(self)._parse_forClass_(aString,(smalltalk.Object || Object)))._nodes())._first());
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:", [aString,aDictionary], {ctx:ctx}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary,ctx:ctx}, smalltalk.ASTInterpreterTest)})},
 args: ["aString", "aDictionary"],
 source: "interpret: aString withArguments: aDictionary\x0a\x09\x22The food is a methodNode. Interpret the sequenceNode only\x22\x0a    \x0a    | ctx |\x0a    \x0a    ctx := AIContext new.\x0a    aDictionary keysAndValuesDo: [ :key :value |\x0a    \x09ctx localAt: key put: value ].\x0a    \x0a    ^ ASTInterpreter new\x0a    \x09context: ctx;\x0a    \x09interpret: (self parse: aString forClass: Object) \x0a        \x09nodes first",
 messageSends: ["new", "keysAndValuesDo:", "localAt:put:", "context:", "interpret:", "first", "nodes", "parse:forClass:"],
@@ -73,7 +73,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:", [aString], {}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.ASTInterpreterTest)})},
 args: ["aString"],
 source: "parse: aString\x0a\x09^ Smalltalk current parse: aString",
 messageSends: ["parse:", "current"],
@@ -91,7 +91,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:forClass:", [aString,aClass], {}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass}, smalltalk.ASTInterpreterTest)})},
 args: ["aString", "aClass"],
 source: "parse: aString forClass: aClass\x0a\x09^ self analyze: (self parse: aString) forClass: aClass",
 messageSends: ["analyze:forClass:", "parse:"],
@@ -107,7 +107,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo 2+3+4"),(9));
-return self}, function($ctx1) {$ctx1.fill(self,"testBinarySend", [], {}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testBinarySend",{}, smalltalk.ASTInterpreterTest)})},
 args: [],
 source: "testBinarySend\x0a\x09self assert: (self interpret: 'foo 2+3+4') equals: 9",
 messageSends: ["assert:equals:", "interpret:"],
@@ -125,7 +125,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]"),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testBlockLiteral", [], {}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testBlockLiteral",{}, smalltalk.ASTInterpreterTest)})},
 args: [],
 source: "testBlockLiteral\x0a\x09self assert: (self interpret: 'foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 1.\x0a    self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]') equals: 1.\x0a    self assert: (self interpret: 'foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 2",
 messageSends: ["assert:equals:", "interpret:"],
@@ -141,7 +141,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st((smalltalk.OrderedCollection || OrderedCollection))._with_with_((2),(3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testCascade", [], {}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testCascade",{}, smalltalk.ASTInterpreterTest)})},
 args: [],
 source: "testCascade\x0a\x09self assert: (self interpret: 'foo ^ OrderedCollection new add: 2; add: 3; yourself') equals: (OrderedCollection with: 2 with: 3)",
 messageSends: ["assert:equals:", "interpret:", "with:with:"],
@@ -158,7 +158,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo <return 2+3>"),(5));
 _st(self)._assert_equals_(_st(self)._interpret_withArguments_("foo: anInteger <return 2 + anInteger>",smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((3))])),(5));
-return self}, function($ctx1) {$ctx1.fill(self,"testInlinedJSStatement", [], {}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInlinedJSStatement",{}, smalltalk.ASTInterpreterTest)})},
 args: [],
 source: "testInlinedJSStatement\x0a\x09self assert: (self interpret: 'foo <return 2+3>') equals: 5.\x0a    self \x0a    \x09assert: (self \x0a    \x09\x09interpret: 'foo: anInteger <return 2 + anInteger>' \x0a        \x09withArguments: #{ 'anInteger' -> 3}) \x0a\x09\x09equals: 5",
 messageSends: ["assert:equals:", "interpret:", "interpret:withArguments:", "->"],
@@ -179,7 +179,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "codeGeneratorClass\x0a\x09^ CodeGenerator",
 messageSends: [],
@@ -200,7 +200,7 @@ _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compiler", [], {}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"compiler",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "compiler\x0a\x09^ Compiler new\x0a\x09\x09codeGeneratorClass: self codeGeneratorClass;\x0a\x09\x09yourself",
 messageSends: ["codeGeneratorClass:", "codeGeneratorClass", "new", "yourself"],
@@ -216,7 +216,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=_st(_st(self)._targetClass())._new();
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "setUp\x0a\x09receiver := self targetClass new",
 messageSends: ["new", "targetClass"],
@@ -236,7 +236,7 @@ return smalltalk.withContext(function($ctx1) { 
method=_st(_st(self)._compiler()
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(self)._assert_equals_(anObject,result);
-return self}, function($ctx1) {$ctx1.fill(self,"should:return:", [aString,anObject], {method:method,result:result}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:return:",{aString:aString,anObject:anObject,method:method,result:result}, smalltalk.CodeGeneratorTest)})},
 args: ["aString", "anObject"],
 source: "should: aString return: anObject\x0a\x09| method result |\x0a\x0a\x09method := self compiler install: aString forClass: self targetClass category: 'tests'.\x0a\x09result := receiver perform: method selector.\x0a\x09self targetClass removeCompiledMethod: method.\x0a\x09self assert: anObject equals: result",
 messageSends: ["install:forClass:category:", "targetClass", "compiler", "perform:", "selector", "removeCompiledMethod:", "assert:equals:"],
@@ -254,7 +254,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.DoIt || DoIt);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"targetClass", [], {}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"targetClass",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "targetClass\x0a\x09^ DoIt",
 messageSends: [],
@@ -269,7 +269,7 @@ selector: "tearDown",
 category: 'initialization',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.CodeGeneratorTest)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "tearDown\x0a\x09\x22receiver := nil\x22",
 messageSends: [],
@@ -287,7 +287,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo | a | a := true ifTrue: [ 1 ]. ^ a",(1));
 _st(self)._should_return_("foo | a | a := false ifTrue: [ 1 ]. ^ a",nil);
 _st(self)._should_return_("foo | a | ^ a := true ifTrue: [ 1 ]",(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testAssignment\x0a\x09self should: 'foo | a | a := true ifTrue: [ 1 ]. ^ a' return: 1.\x0a\x09self should: 'foo | a | a := false ifTrue: [ 1 ]. ^ a' return: nil.\x0a\x0a\x09self should: 'foo | a | ^ a := true ifTrue: [ 1 ]' return: 1 ",
 messageSends: ["should:return:"],
@@ -305,7 +305,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | true ifTrue: [ each + 1 ] ]",[(2), (3), (4)]);
 _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | false ifFalse: [ each + 1 ] ]",[(2), (3), (4)]);
 _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | each odd ifTrue: [ each + 1 ] ifFalse: [ each - 1 ] ]",[(2), (1), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testBlockReturn", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testBlockReturn",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testBlockReturn\x0a\x09self should: 'foo ^ #(1 2 3) collect: [ :each | true ifTrue: [ each + 1 ] ]' return: #(2 3 4).\x0a\x09self should: 'foo ^ #(1 2 3) collect: [ :each | false ifFalse: [ each + 1 ] ]' return: #(2 3 4).\x0a\x09self should: 'foo ^ #(1 2 3) collect: [ :each | each odd ifTrue: [ each + 1 ] ifFalse: [ each - 1 ] ]' return: #(2 1 4).",
 messageSends: ["should:return:"],
@@ -321,7 +321,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ Array new add: 3; add: 4; yourself",[(3), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testCascades", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testCascades",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testCascades\x0a\x09\x0a\x09self should: 'foo ^ Array new add: 3; add: 4; yourself' return: #(3 4)",
 messageSends: ["should:return:"],
@@ -337,7 +337,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ { x. true ifTrue: [ x := 2 ] }\x0a",[(1), (2)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testDynamicArrayElementsOrdered\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ { x. true ifTrue: [ x := 2 ] }\x0a' return: #(1 2).\x0a",
 messageSends: ["should:return:"],
@@ -353,7 +353,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 'foo'->1.\x0a  ^ #{ x. (true ifTrue: [ x := 'bar'->2 ]) }\x0a",smalltalk.HashedCollection._fromPairs_([_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionaryElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionaryElementsOrdered",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testDynamicDictionaryElementsOrdered\x0a\x09self should: 'foo\x0a  | x |\x0a  x := ''foo''->1.\x0a  ^ #{ x. (true ifTrue: [ x := ''bar''->2 ]) }\x0a' return: #{'foo'->1. 'bar'->2}.\x0a",
 messageSends: ["should:return:", "->"],
@@ -372,7 +372,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ { 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ #{ 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",smalltalk.HashedCollection._fromPairs_([_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testInnerTemporalDependentElementsOrdered", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInnerTemporalDependentElementsOrdered",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testInnerTemporalDependentElementsOrdered\x0a\x09self should: 'foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])\x0a' return: {'foo'->Array. 'bar'->2}.\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])\x0a' return: {'foo'->1. 'bar'->2}.\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ { ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }\x0a' return: {'foo'->1. 'bar'->2}.\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ #{ ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }\x0a' return: #{'foo'->1. 'bar'->2}.\x0a",
 messageSends: ["should:return:", "->"],
@@ -396,7 +396,7 @@ _st(self)._should_return_("foo ^ false",false);
 _st(self)._should_return_("foo ^ #{1->2. 3->4}",smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((2)),_st((3)).__minus_gt((4))]));
 _st(self)._should_return_("foo ^ #hello",smalltalk.symbolFor("hello"));
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
-return self}, function($ctx1) {$ctx1.fill(self,"testLiterals", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testLiterals",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testLiterals\x0a\x09self should: 'foo ^ 1' return: 1.\x0a\x09self should: 'foo ^ ''hello''' return: 'hello'.\x0a\x09self should: 'foo ^ #(1 2 3 4)' return: #(1 2 3 4).\x0a\x09self should: 'foo ^ {1. [:x | x ] value: 2. 3. [4] value}' return: #(1 2 3 4).\x0a\x09self should: 'foo ^ true' return: true.\x0a\x09self should: 'foo ^ false' return: false.\x0a\x09self should: 'foo ^ #{1->2. 3->4}' return: #{1->2. 3->4}.\x0a\x09self should: 'foo ^ #hello' return: #hello.\x0a\x09self should: 'foo ^ -123.456' return: -123.456",
 messageSends: ["should:return:", "->"],
@@ -416,7 +416,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo self asString",self["@receiver"]);
 _st(self)._should_return_("foo | a b | a := 1. b := 2. ^ a + b",(3));
-return self}, function($ctx1) {$ctx1.fill(self,"testLocalReturn", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testLocalReturn",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testLocalReturn\x0a\x09self should: 'foo ^ 1' return: 1.\x0a\x09self should: 'foo ^ 1 + 1' return: 2.\x0a\x09self should: 'foo ' return: receiver.\x0a\x09self should: 'foo self asString' return: receiver.\x0a\x09self should: 'foo | a b | a := 1. b := 2. ^ a + b' return: 3",
 messageSends: ["should:return:"],
@@ -436,7 +436,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ^ 1 + 2 * 3",(9));
 _st(self)._should_return_("foo ^ 1 to: 3",[(1), (2), (3)]);
 _st(self)._should_return_("foo ^ 1 to: 5 by: 2",[(1), (3), (5)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testMessageSends", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testMessageSends",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testMessageSends\x0a\x09self should: 'foo ^ 1 asString' return: '1'.\x0a\x0a\x09self should: 'foo ^ 1 + 1' return: 2.\x0a\x09self should: 'foo ^ 1 + 2 * 3' return: 9.\x0a\x0a\x09self should: 'foo ^ 1 to: 3' return: #(1 2 3).\x0a\x09self should: 'foo ^ 1 to: 5 by: 2' return: #(1 3 5)",
 messageSends: ["should:return:"],
@@ -455,7 +455,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ true ifTrue: [ false ifTrue: [ 1 ] ]",nil);
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]",self["@receiver"]);
-return self}, function($ctx1) {$ctx1.fill(self,"testNestedIfTrue", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNestedIfTrue",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testNestedIfTrue\x0a\x09self should: 'foo ^ true ifTrue: [ false ifFalse: [ 1 ] ]' return: 1.\x0a\x09self should: 'foo ^ true ifTrue: [ false ifTrue: [ 1 ] ]' return: nil.\x0a\x0a\x09self should: 'foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]' return: 1.\x0a\x09self should: 'foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]' return: receiver.",
 messageSends: ["should:return:"],
@@ -474,7 +474,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo [
 _st(self)._should_return_("foo [ ^ 1 + 1 ] value",(2));
 _st(self)._should_return_("foo | a b | a := 1. b := 2. [ ^ a + b ] value. self halt",(3));
 _st(self)._should_return_("foo [ :x | ^ x + x ] value: 4. ^ 2",(8));
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testNonLocalReturn\x0a\x09self should: 'foo [ ^ 1 ] value' return: 1.\x0a\x09self should: 'foo [ ^ 1 + 1 ] value' return: 2.\x0a\x09self should: 'foo | a b | a := 1. b := 2. [ ^ a + b ] value. self halt' return: 3.\x0a\x09self should: 'foo [ :x | ^ x + x ] value: 4. ^ 2' return: 8",
 messageSends: ["should:return:"],
@@ -491,7 +491,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a",[(1), (2)]);
 _st(self)._should_return_("foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[(smalltalk.Array || Array),(2)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testSendReceiverAndArgumentsOrdered\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a' return: #(1 2).\x0a\x0a\x09self should: 'foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: x with: (true ifTrue: [ x := 2 ])\x0a' return: {Array. 2}.\x0a",
 messageSends: ["should:return:"],
@@ -510,7 +510,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo t
 _st(self)._should_return_("foo false ifFalse: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifFalse", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifFalse",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifFalse\x0a\x09self should: 'foo true ifFalse: [ ^ 1 ]' return: receiver.\x0a\x09self should: 'foo false ifFalse: [ ^ 2 ]' return: 2.\x0a\x09\x0a\x09self should: 'foo ^ true ifFalse: [ 1 ]' return: nil.\x0a\x09self should: 'foo ^ false ifFalse: [ 2 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -529,7 +529,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo t
 _st(self)._should_return_("foo false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifFalseIfTrue", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifFalseIfTrue",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifFalseIfTrue\x0a\x09self should: 'foo true ifFalse: [ ^ 1 ] ifTrue: [ ^ 2 ]' return: 2.\x0a\x09self should: 'foo false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]' return: 2.\x0a\x09\x0a\x09self should: 'foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]' return: 2.\x0a\x09self should: 'foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -548,7 +548,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNil: [ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifNil", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifNil",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifNil\x0a\x09self should: 'foo ^ 1 ifNil: [ 2 ]' return: 1.\x0a\x09self should: 'foo ^ nil ifNil: [ 2 ]' return: 2.\x0a\x0a\x09self should: 'foo 1 ifNil: [ ^ 2 ]' return: receiver.\x0a\x09self should: 'foo nil ifNil: [ ^ 2 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -567,7 +567,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifNilIfNotNil", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifNilIfNotNil",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifNilIfNotNil\x0a\x09self should: 'foo ^ 1 ifNil: [ 2 ] ifNotNil: [ 3 ]' return: 3.\x0a\x09self should: 'foo ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]' return: 2.\x0a\x0a\x09self should: 'foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]' return: 3.\x0a\x09self should: 'foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -586,7 +586,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^
 _st(self)._should_return_("foo ^ nil ifNotNil: [ 2 ]",nil);
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo nil ifNotNil: [ ^ 2 ]",self["@receiver"]);
-return self}, function($ctx1) {$ctx1.fill(self,"testifNotNil", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifNotNil",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifNotNil\x0a\x09self should: 'foo ^ 1 ifNotNil: [ 2 ]' return: 2.\x0a\x09self should: 'foo ^ nil ifNotNil: [ 2 ]' return: nil.\x0a\x0a\x09self should: 'foo 1 ifNotNil: [ ^ 2 ]' return: 2.\x0a\x09self should: 'foo nil ifNotNil: [ ^ 2 ]' return: receiver.",
 messageSends: ["should:return:"],
@@ -605,7 +605,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo f
 _st(self)._should_return_("foo true ifTrue: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifTrue", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifTrue",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifTrue\x0a\x09self should: 'foo false ifTrue: [ ^ 1 ]' return: receiver.\x0a\x09self should: 'foo true ifTrue: [ ^ 2 ]' return: 2.\x0a\x09\x0a\x09self should: 'foo ^ false ifTrue: [ 1 ]' return: nil.\x0a\x09self should: 'foo ^ true ifTrue: [ 2 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -624,7 +624,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo f
 _st(self)._should_return_("foo true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]",(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testifTrueIfFalse", [], {}, smalltalk.CodeGeneratorTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testifTrueIfFalse",{}, smalltalk.CodeGeneratorTest)})},
 args: [],
 source: "testifTrueIfFalse\x0a\x09self should: 'foo false ifTrue: [ ^ 1 ] ifFalse: [ ^2 ]' return: 2.\x0a\x09self should: 'foo true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]' return: 1.\x0a\x09\x0a\x09self should: 'foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]' return: 1.\x0a\x09self should: 'foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]' return: 2.",
 messageSends: ["should:return:"],
@@ -645,7 +645,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass", [], {}, smalltalk.InliningCodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.InliningCodeGeneratorTest)})},
 args: [],
 source: "codeGeneratorClass\x0a\x09^ InliningCodeGenerator",
 messageSends: [],
@@ -671,7 +671,7 @@ $2=_st($1)._yourself();
 node=$2;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar", [], {node:node}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar",{node:node}, smalltalk.ScopeVarTest)})},
 args: [],
 source: "testClassRefVar\x0a\x09| node |\x0a\x09node := ClassReferenceNode new\x0a\x09\x09value: 'Object';\x0a\x09\x09yourself.\x0a\x09SemanticAnalyzer new visit: node.\x0a\x09self assert: node binding isClassRefVar",
 messageSends: ["value:", "new", "yourself", "visit:", "assert:", "isClassRefVar", "binding"],
@@ -695,7 +695,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar", [], {node:node,scope:scope}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})},
 args: [],
 source: "testInstanceVar\x0a\x09| node scope |\x0a\x09node := VariableNode new\x0a\x09\x09value: 'bzzz';\x0a\x09\x09yourself.\x0a\x09scope := MethodLexicalScope new.\x0a\x09scope addIVar: 'bzzz'.\x0a\x09self assert: (scope bindingFor: node) isInstanceVar",
 messageSends: ["value:", "new", "yourself", "addIVar:", "assert:", "isInstanceVar", "bindingFor:"],
@@ -720,8 +720,8 @@ $2=_st($1)._yourself();
 node=$2;
 node;
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar", [], {node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})},
 args: [],
 source: "testPseudoVar\x0a\x09| node pseudoVars |\x0a\x09pseudoVars := #('self' 'super' 'true' 'false' 'nil').\x0a\x09pseudoVars do: [:each |\x0a\x09\x09node := VariableNode new\x0a\x09\x09value: each;\x0a\x09\x09yourself.\x0a\x09\x09self assert: (MethodLexicalScope new bindingFor: node) isPseudoVar ]",
 messageSends: ["do:", "value:", "new", "yourself", "assert:", "isPseudoVar", "bindingFor:"],
@@ -745,7 +745,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
-return self}, function($ctx1) {$ctx1.fill(self,"testTempVar", [], {node:node,scope:scope}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTempVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})},
 args: [],
 source: "testTempVar\x0a\x09| node scope |\x0a\x09node := VariableNode new\x0a\x09\x09value: 'bzzz';\x0a\x09\x09yourself.\x0a\x09scope := MethodLexicalScope new.\x0a\x09scope addTemp: 'bzzz'.\x0a\x09self assert: (scope bindingFor: node) isTempVar",
 messageSends: ["value:", "new", "yourself", "addTemp:", "assert:", "isTempVar", "bindingFor:"],
@@ -767,7 +767,7 @@ _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
 _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isNil());
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVar", [], {node:node}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVar",{node:node}, smalltalk.ScopeVarTest)})},
 args: [],
 source: "testUnknownVar\x0a\x09| node |\x0a\x09node := VariableNode new\x0a\x09\x09value: 'bzzz';\x0a\x09\x09yourself.\x0a\x09self assert: (MethodLexicalScope new bindingFor: node) isNil",
 messageSends: ["value:", "new", "yourself", "assert:", "isNil", "bindingFor:"],
@@ -786,7 +786,7 @@ category: 'running',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_((smalltalk.Object || Object));
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "setUp\x0a\x09analyzer := SemanticAnalyzer on: Object",
 messageSends: ["on:"],
@@ -806,8 +806,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testAssignment\x0a\x09| src ast |\x0a\x0a\x09src := 'foo self := 1'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: InvalidAssignmentError",
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -827,7 +827,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. ^ a";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(ast)._scope())._hasNonLocalReturn());
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testNonLocalReturn\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. ^ a'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09self deny: ast scope hasNonLocalReturn",
 messageSends: ["parse:", "visit:", "deny:", "hasNonLocalReturn", "scope"],
@@ -847,7 +847,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ ^ a]
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(ast)._scope())._hasNonLocalReturn());
-return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testNonLocalReturn2\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. [ [ ^ a] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09self assert: ast scope hasNonLocalReturn",
 messageSends: ["parse:", "visit:", "assert:", "hasNonLocalReturn", "scope"],
@@ -867,7 +867,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()).__eq_eq(_st(ast)._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testScope", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testScope\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. [ | b | b := a ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09self deny: ast nodes first nodes last scope == ast scope.",
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "last", "nodes", "first"],
@@ -887,7 +887,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ | b |
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope()).__eq_eq(_st(ast)._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testScope2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testScope2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testScope2\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. [ [ | b | b := a ] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09self deny: ast nodes first nodes last nodes first nodes first scope == ast scope.",
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "first", "nodes", "last"],
@@ -908,7 +908,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(_st(ast)._scope())._scopeLevel()).__eq((1)));
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel()).__eq((3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testScopeLevel", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testScopeLevel",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testScopeLevel\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. [ [ | b | b := a ] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09self assert: ast scope scopeLevel = 1.\x0a\x09self assert: ast nodes first nodes last nodes first nodes first scope scopeLevel = 3",
 messageSends: ["parse:", "visit:", "assert:", "=", "scopeLevel", "scope", "first", "nodes", "last"],
@@ -928,8 +928,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testUnknownVariables\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | b + a'.\x0a\x09ast := smalltalk parse: src.\x0a\x0a\x09self should: [ analyzer visit: ast ] raise: UnknownVariableError",
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -949,8 +949,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a +
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testUnknownVariablesWithScope\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a b | [ c + 1. [ a + 1. d + 1 ]]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09\x0a\x09self should: [ analyzer visit: ast ] raise: UnknownVariableError",
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -969,7 +969,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast",
 messageSends: ["parse:", "visit:"],
@@ -989,8 +989,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing2\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ | a | a := 2 ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: ShadowingVariableError",
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1009,7 +1009,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing3", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing3",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing3\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ | b | b := 2 ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast",
 messageSends: ["parse:", "visit:"],
@@ -1028,7 +1028,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing4", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing4",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing4\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast",
 messageSends: ["parse:", "visit:"],
@@ -1048,8 +1048,8 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing5\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: ShadowingVariableError",
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1072,7 +1072,7 @@ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes()
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._first())._receiver())._binding())._scope()).__eq_eq(_st(ast)._scope()));
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._isTempVar());
 _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._scope()).__eq_eq(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariablesLookup", [], {src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariablesLookup",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariablesLookup\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | a + 1. [ | b | b := a ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast.\x0a\x0a\x09\x22Binding for `a` in the message send\x22\x0a\x09self assert: ast nodes first nodes first receiver binding isTempVar.\x0a\x09self assert: ast nodes first nodes first receiver binding scope == ast scope.\x0a\x0a\x09\x22Binding for `b`\x22\x0a\x09self assert: ast nodes first nodes last nodes first nodes first left binding isTempVar.\x0a\x09self assert: ast nodes first nodes last nodes first nodes first left binding scope == ast nodes first nodes last scope.",
 messageSends: ["parse:", "visit:", "assert:", "isTempVar", "binding", "receiver", "first", "nodes", "==", "scope", "left", "last"],

+ 9 - 9
js/Examples.deploy.js

@@ -9,8 +9,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"]).__minus((1));
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
-}, function($ctx2) {$ctx2.fillBlock([html], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"decrease", [], {}, smalltalk.Counter)})}
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"decrease",{}, smalltalk.Counter)})}
 }),
 smalltalk.Counter);
 
@@ -23,8 +23,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"]).__plus((1));
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
-}, function($ctx2) {$ctx2.fillBlock([html], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"increase", [], {}, smalltalk.Counter)})}
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"increase",{}, smalltalk.Counter)})}
 }),
 smalltalk.Counter);
 
@@ -36,7 +36,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 self["@count"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.Counter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Counter)})}
 }),
 smalltalk.Counter);
 
@@ -55,13 +55,13 @@ $3=_st(html)._button();
 _st($3)._with_("++");
 $4=_st($3)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._increase();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $5=_st(html)._button();
 _st($5)._with_("--");
 $6=_st($5)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderOn:", [html], {}, smalltalk.Counter)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html}, smalltalk.Counter)})}
 }),
 smalltalk.Counter);
 
@@ -73,7 +73,7 @@ selector: "tryExample",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._appendToJQuery_(_st("body")._asJQuery());
-return self}, function($ctx1) {$ctx1.fill(self,"tryExample", [], {}, smalltalk.Counter.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"tryExample",{}, smalltalk.Counter.klass)})}
 }),
 smalltalk.Counter.klass);
 

+ 9 - 9
js/Examples.js

@@ -11,8 +11,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"]).__minus((1));
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
-}, function($ctx2) {$ctx2.fillBlock([html], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"decrease", [], {}, smalltalk.Counter)})},
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"decrease",{}, smalltalk.Counter)})},
 args: [],
 source: "decrease\x0a    count := count - 1.\x0a    header contents: [:html | html with: count asString]",
 messageSends: ["-", "contents:", "with:", "asString"],
@@ -30,8 +30,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"]).__plus((1));
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
-}, function($ctx2) {$ctx2.fillBlock([html], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"increase", [], {}, smalltalk.Counter)})},
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"increase",{}, smalltalk.Counter)})},
 args: [],
 source: "increase\x0a    count := count + 1.\x0a    header contents: [:html | html with: count asString]",
 messageSends: ["+", "contents:", "with:", "asString"],
@@ -48,7 +48,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 self["@count"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Counter)})},
 args: [],
 source: "initialize\x0a    super initialize.\x0a    count := 0",
 messageSends: ["initialize"],
@@ -72,13 +72,13 @@ $3=_st(html)._button();
 _st($3)._with_("++");
 $4=_st($3)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._increase();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $5=_st(html)._button();
 _st($5)._with_("--");
 $6=_st($5)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderOn:", [html], {}, smalltalk.Counter)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html}, smalltalk.Counter)})},
 args: ["html"],
 source: "renderOn: html\x0a    header := html h1 \x0a\x09with: count asString;\x0a\x09yourself.\x0a    html button\x0a\x09with: '++';\x0a\x09onClick: [self increase].\x0a    html button\x0a\x09with: '--';\x0a\x09onClick: [self decrease]",
 messageSends: ["with:", "asString", "h1", "yourself", "button", "onClick:", "increase", "decrease"],
@@ -95,7 +95,7 @@ category: 'example',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._appendToJQuery_(_st("body")._asJQuery());
-return self}, function($ctx1) {$ctx1.fill(self,"tryExample", [], {}, smalltalk.Counter.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"tryExample",{}, smalltalk.Counter.klass)})},
 args: [],
 source: "tryExample\x0a\x09\x22In order to play with the Counter, just select the\x0a\x09doit below and press the Do it button. Then take a\x0a\x09look in the HTML document above the IDE.\x22\x0a\x0a\x09\x22Counter tryExample\x22\x0a        self new appendToJQuery: 'body' asJQuery",
 messageSends: ["appendToJQuery:", "asJQuery", "new"],

File diff suppressed because it is too large
+ 136 - 136
js/IDE.deploy.js


File diff suppressed because it is too large
+ 136 - 136
js/IDE.js


+ 74 - 74
js/Importer-Exporter.deploy.js

@@ -15,7 +15,7 @@ $1=(function(){
 return smalltalk.withContext(function($ctx2) {
char=_st(self["@stream"])._next();
 char;
 return _st(char)._notNil();
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(char).__eq("!");
 $4=(function(){
@@ -26,15 +26,15 @@ return _st(self["@stream"])._next();
 $6=_st(_st(result)._contents())._trimBoth();
 throw $early=[$6];
 };
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 _st($3)._ifTrue_($4);
 return _st(result)._nextPut_(char);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileTrue_($2);
 return nil;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"nextChunk", [], {char:char,result:result,chunk:chunk}, smalltalk.ChunkParser)})}
+}, function($ctx1) {$ctx1.fill(self,"nextChunk",{char:char,result:result,chunk:chunk}, smalltalk.ChunkParser)})}
 }),
 smalltalk.ChunkParser);
 
@@ -45,7 +45,7 @@ selector: "stream:",
 fn: function (aStream){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@stream"]=aStream;
-return self}, function($ctx1) {$ctx1.fill(self,"stream:", [aStream], {}, smalltalk.ChunkParser)})}
+return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream}, smalltalk.ChunkParser)})}
 }),
 smalltalk.ChunkParser);
 
@@ -59,7 +59,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._stream_(aStream);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aStream], {}, smalltalk.ChunkParser.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream}, smalltalk.ChunkParser.klass)})}
 }),
 smalltalk.ChunkParser.klass);
 
@@ -75,7 +75,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -83,10 +83,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.Exporter)})}
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -100,10 +100,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packages())._do_((function(pkg){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportPackage_(_st(pkg)._name()));
-}, function($ctx3) {$ctx3.fillBlock([pkg], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportAll", [], {}, smalltalk.Exporter)})}
+}, function($ctx1) {$ctx1.fill(self,"exportAll",{}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -119,9 +119,9 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._exportDefinitionOf_on_
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportClass:", [aClass], {}, smalltalk.Exporter)})}
+}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -139,9 +139,9 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
@@ -157,7 +157,7 @@ $7=_st($6)._nextPutAll_(_st(_st(aClass)._comment())._asJavascript());
 $7;
 };
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -176,12 +176,12 @@ $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -220,7 +220,7 @@ _st($3)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($3)._nextPutAll_(");");
 _st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -233,16 +233,16 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$2;
 $1=_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
 $2=(function(each){
 return smalltalk.withContext(function($ctx2) {
$3=_st(_st(each)._category())._match_("^\x5c*");
 if(! smalltalk.assert($3)){
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -260,11 +260,11 @@ package_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportPackage:", [packageName], {package_:package_}, smalltalk.Exporter)})}
+}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -279,7 +279,7 @@ $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 $2=_st($1)._nextPutAll_(_st(_st(_st(_st("'").__comma(_st(package_)._name())).__comma("', ")).__comma(_st(package_)._propertiesAsJSON())).__comma(");"));
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:", [package_,aStream], {}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -298,19 +298,19 @@ return smalltalk.withContext(function($ctx2) {
$3=[each,_st(each)._class()];
 $4=(function(aClass){
 return smalltalk.withContext(function($ctx3) {
$5=_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx4) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx4) {$ctx4.fillBlock([a,b], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})}));
 $6=(function(method){
 return smalltalk.withContext(function($ctx4) {
$7=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($7)){
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 };
-}, function($ctx4) {$ctx4.fillBlock([method], {})})});
+}, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})});
 return _st($5)._do_($6);
-}, function($ctx3) {$ctx3.fillBlock([aClass], {})})});
+}, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})});
 return _st($3)._do_($4);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:", [package_,aStream], {name:name}, smalltalk.Exporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name}, smalltalk.Exporter)})}
 }),
 smalltalk.Exporter);
 
@@ -326,7 +326,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"chunkEscape:", [aString], {}, smalltalk.ChunkExporter)})}
+}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -340,7 +340,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -348,10 +348,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.ChunkExporter)})}
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -369,9 +369,9 @@ _st($1)._lf();
 $2=_st($1)._nextPutAll_("\x09instanceVariableNames: '");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("'");
 _st($3)._lf();
@@ -387,7 +387,7 @@ $7=_st($6)._lf();
 $7;
 };
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -406,16 +406,16 @@ $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=aStream;
 _st($4)._nextPutAll_("'!");
 _st($4)._lf();
 $5=_st($4)._lf();
 $5;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:", [aClass,aStream], {}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -432,7 +432,7 @@ _st($1)._lf();
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._lf();
 $2=_st($1)._nextPutAll_("!");
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -448,14 +448,14 @@ _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 _st(_st(methods)._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(each){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._exportMethod_of_on_(each,aClass,aStream);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_(" !");
 _st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:", [methods,category,aClass,aStream], {}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:",{methods:methods,category:category,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -474,17 +474,17 @@ return smalltalk.withContext(function($ctx2) {
$3=_st(category)._match_("^\x5c*"
 if(! smalltalk.assert($3)){
 return _st(map)._at_put_(category,methods);
 };
-}, function($ctx2) {$ctx2.fillBlock([category,methods], {})})});
+}, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})});
 _st($1)._protocolsDo_($2);
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(a).__lt_eq(b);
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(category){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 return smalltalk.withContext(function($ctx2) {
methods=_st(map)._at_(category);
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
-}, function($ctx2) {$ctx2.fillBlock([category], {methods:methods})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:", [aClass,aStream], {map:map}, smalltalk.ChunkExporter)})}
+}, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream,map:map}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -498,7 +498,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 _st($1)._nextPutAll_(_st(_st(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("' properties: ")).__comma(_st(_st(package_)._properties())._storeString())).__comma("!"));
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:", [package_,aStream], {}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -523,21 +523,21 @@ return smalltalk.withContext(function($ctx4) {
$7=_st(category)._match_(_st("^\x
 if(smalltalk.assert($7)){
 return _st(map)._at_put_(category,methods);
 };
-}, function($ctx4) {$ctx4.fillBlock([category,methods], {})})});
+}, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})});
 _st($5)._protocolsDo_($6);
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx4) {
return _st(a).__lt_eq(b);
-}, function($ctx4) {$ctx4.fillBlock([a,b], {})})})))._do_((function(category){
+}, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 return smalltalk.withContext(function($ctx4) {
methods=_st(map)._at_(category);
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
-}, function($ctx4) {$ctx4.fillBlock([category], {methods:methods})})}));
-}, function($ctx3) {$ctx3.fillBlock([aClass], {})})});
+}, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})});
 return _st($3)._do_($4);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:", [package_,aStream], {name:name,map:map}, smalltalk.ChunkExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name,map:map}, smalltalk.ChunkExporter)})}
 }),
 smalltalk.ChunkExporter);
 
@@ -558,15 +558,15 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 $4=_st($3)._nextPutAll_(");");
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.StrippedExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})}
 }),
 smalltalk.StrippedExporter);
 
@@ -594,7 +594,7 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($1)._nextPutAll_(");");
 _st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.StrippedExporter)})}
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})}
 }),
 smalltalk.StrippedExporter);
 
@@ -615,13 +615,13 @@ $1=(function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
 chunk;
 return _st(chunk)._isNil();
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(chunk)._isEmpty();
 $4=(function(){
 return smalltalk.withContext(function($ctx3) {
lastEmpty=true;
 return lastEmpty;
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
 result;
@@ -631,11 +631,11 @@ lastEmpty=false;
 lastEmpty;
 return _st(result)._scanFrom_(parser);
 };
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($3)._ifTrue_ifFalse_($4,$5);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileFalse_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"import:", [aStream], {chunk:chunk,result:result,parser:parser,lastEmpty:lastEmpty}, smalltalk.Importer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"import:",{aStream:aStream,chunk:chunk,result:result,parser:parser,lastEmpty:lastEmpty}, smalltalk.Importer)})}
 }),
 smalltalk.Importer);
 
@@ -653,7 +653,7 @@ $1=_st((smalltalk.Package || Package))._named_(packageName);
 _st($1)._setupClasses();
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
-return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:", [packageName,aString], {}, smalltalk.PackageLoader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString}, smalltalk.PackageLoader)})}
 }),
 smalltalk.PackageLoader);
 
@@ -675,13 +675,13 @@ return smalltalk.withContext(function($ctx2) {
$8=_st(_st(jqXHR)._readyState()).
 if(smalltalk.assert($8)){
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 };
-}, function($ctx2) {$ctx2.fillBlock([jqXHR,textStatus], {})})});
+}, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})});
 $6=_st("complete").__minus_gt($7);
 $3=smalltalk.HashedCollection._fromPairs_([$4,$5,$6,_st("error").__minus_gt((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(window)._alert_(_st("Could not load package at:  ").__comma(url));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))]);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]);
 _st($1)._ajax_options_($2,$3);
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:", [packageName,aString], {url:url}, smalltalk.PackageLoader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:",{packageName:packageName,aString:aString,url:url}, smalltalk.PackageLoader)})}
 }),
 smalltalk.PackageLoader);
 
@@ -693,8 +693,8 @@ fn: function (aCollection,aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._loadPackage_prefix_(each,aString);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:", [aCollection,aString], {}, smalltalk.PackageLoader)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader)})}
 }),
 smalltalk.PackageLoader);
 
@@ -708,7 +708,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:", [aCollection,aString], {}, smalltalk.PackageLoader.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader.klass)})}
 }),
 smalltalk.PackageLoader.klass);
 

+ 74 - 74
js/Importer-Exporter.js

@@ -16,7 +16,7 @@ $1=(function(){
 return smalltalk.withContext(function($ctx2) {
char=_st(self["@stream"])._next();
 char;
 return _st(char)._notNil();
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(char).__eq("!");
 $4=(function(){
@@ -27,15 +27,15 @@ return _st(self["@stream"])._next();
 $6=_st(_st(result)._contents())._trimBoth();
 throw $early=[$6];
 };
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 _st($3)._ifTrue_($4);
 return _st(result)._nextPut_(char);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileTrue_($2);
 return nil;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"nextChunk", [], {char:char,result:result,chunk:chunk}, smalltalk.ChunkParser)})},
+}, function($ctx1) {$ctx1.fill(self,"nextChunk",{char:char,result:result,chunk:chunk}, smalltalk.ChunkParser)})},
 args: [],
 source: "nextChunk\x0a\x09\x22The chunk format (Smalltalk Interchange Format or Fileout format)\x0a\x09is a trivial format but can be a bit tricky to understand:\x0a\x09\x09- Uses the exclamation mark as delimiter of chunks.\x0a\x09\x09- Inside a chunk a normal exclamation mark must be doubled.\x0a\x09\x09- A non empty chunk must be a valid Smalltalk expression.\x0a\x09\x09- A chunk on top level with a preceding empty chunk is an instruction chunk:\x0a\x09\x09\x09- The object created by the expression then takes over reading chunks.\x0a\x0a\x09This metod returns next chunk as a String (trimmed), empty String (all whitespace) or nil.\x22\x0a\x0a\x09| char result chunk |\x0a\x09result := '' writeStream.\x0a        [char := stream next.\x0a        char notNil] whileTrue: [\x0a                 char = '!' ifTrue: [\x0a                         stream peek = '!'\x0a                                ifTrue: [stream next \x22skipping the escape double\x22]\x0a                                ifFalse: [^result contents trimBoth  \x22chunk end marker found\x22]].\x0a                 result nextPut: char].\x0a\x09^nil \x22a chunk needs to end with !\x22",
 messageSends: ["writeStream", "whileTrue:", "ifTrue:", "ifTrue:ifFalse:", "next", "trimBoth", "contents", "=", "peek", "nextPut:", "notNil"],
@@ -51,7 +51,7 @@ category: 'accessing',
 fn: function (aStream){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@stream"]=aStream;
-return self}, function($ctx1) {$ctx1.fill(self,"stream:", [aStream], {}, smalltalk.ChunkParser)})},
+return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream}, smalltalk.ChunkParser)})},
 args: ["aStream"],
 source: "stream: aStream\x0a\x09stream := aStream",
 messageSends: [],
@@ -70,7 +70,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._stream_(aStream);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aStream], {}, smalltalk.ChunkParser.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream}, smalltalk.ChunkParser.klass)})},
 args: ["aStream"],
 source: "on: aStream\x0a\x09^self new stream: aStream",
 messageSends: ["stream:", "new"],
@@ -91,7 +91,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -99,10 +99,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.Exporter)})},
 args: ["aClass"],
 source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09    ifTrue: [aClass instanceClass name, '.klass']\x0a\x09    ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09    ifTrue: ['nil']\x0a\x09\x09    ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
@@ -121,10 +121,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packages())._do_((function(pkg){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportPackage_(_st(pkg)._name()));
-}, function($ctx3) {$ctx3.fillBlock([pkg], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportAll", [], {}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportAll",{}, smalltalk.Exporter)})},
 args: [],
 source: "exportAll\x0a    \x22Export all packages in the system.\x22\x0a\x0a    ^String streamContents: [:stream |\x0a    \x09Smalltalk current packages do: [:pkg |\x0a\x09\x09stream nextPutAll: (self exportPackage: pkg name)]]",
 messageSends: ["streamContents:", "do:", "nextPutAll:", "exportPackage:", "name", "packages", "current"],
@@ -145,9 +145,9 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._exportDefinitionOf_on_
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportClass:", [aClass], {}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass}, smalltalk.Exporter)})},
 args: ["aClass"],
 source: "exportClass: aClass\x0a\x09\x22Export a single class. Subclasses override these methods.\x22\x0a\x0a\x09^String streamContents: [:stream |\x0a\x09\x09self exportDefinitionOf: aClass on: stream.\x0a\x09\x09self exportMethodsOf: aClass on: stream.\x0a\x09\x09self exportMetaDefinitionOf: aClass on: stream.\x0a\x09\x09self exportMethodsOf: aClass class on: stream]",
 messageSends: ["streamContents:", "exportDefinitionOf:on:", "exportMethodsOf:on:", "exportMetaDefinitionOf:on:", "class"],
@@ -170,9 +170,9 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
@@ -188,7 +188,7 @@ $7=_st($6)._nextPutAll_(_st(_st(aClass)._comment())._asJavascript());
 $7;
 };
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 source: "exportDefinitionOf: aClass on: aStream\x0a\x09aStream \x0a\x09    nextPutAll: 'smalltalk.addClass(';\x0a\x09    nextPutAll: '''', (self classNameFor: aClass), ''', ';\x0a\x09    nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);\x0a\x09    nextPutAll: ', ['.\x0a\x09aClass instanceVariableNames \x0a\x09    do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09    separatedBy: [aStream nextPutAll: ', '].\x0a\x09aStream\x09\x0a\x09    nextPutAll: '], ''';\x0a\x09    nextPutAll: aClass category, '''';\x0a\x09    nextPutAll: ');'.\x0a\x09aClass comment notEmpty ifTrue: [\x0a\x09    aStream \x0a\x09    \x09lf;\x0a\x09\x09nextPutAll: 'smalltalk.';\x0a\x09\x09nextPutAll: (self classNameFor: aClass);\x0a\x09\x09nextPutAll: '.comment=';\x0a\x09\x09nextPutAll: aClass comment asJavascript].\x0a\x09aStream lf",
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "lf", "asJavascript", "comment", "notEmpty"],
@@ -212,12 +212,12 @@ $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x09aClass class instanceVariableNames isEmpty ifFalse: [\x0a\x09    aStream \x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass class);\x0a\x09\x09nextPutAll: '.iVarNames = ['.\x0a\x09    aClass class instanceVariableNames\x0a\x09\x09do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09\x09separatedBy: [aStream nextPutAll: ','].\x0a\x09    aStream nextPutAll: '];', String lf]",
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
@@ -261,7 +261,7 @@ _st($3)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($3)._nextPutAll_(");");
 _st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
 args: ["aMethod", "aClass", "aStream"],
 source: "exportMethod: aMethod of: aClass on: aStream\x0a\x09aStream \x0a\x09\x09nextPutAll: 'smalltalk.addMethod(';lf;\x0a\x09\x09nextPutAll: aMethod selector asSelector asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'smalltalk.method({';lf;\x0a\x09\x09nextPutAll: 'selector: ', aMethod selector asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'category: ''', aMethod category, ''',';lf;\x0a\x09\x09nextPutAll: 'fn: ', aMethod fn compiledSource, ',';lf;\x0a\x09\x09nextPutAll: 'args: ', aMethod arguments asJavascript, ','; lf;\x0a\x09\x09nextPutAll: 'source: ', aMethod source asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'messageSends: ', aMethod messageSends asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'referencedClasses: ', aMethod referencedClasses asJavascript.\x0a\x09aStream\x0a\x09\x09lf;\x0a\x09\x09nextPutAll: '}),';lf;\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass);\x0a\x09\x09nextPutAll: ');';lf;lf",
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:"],
@@ -279,16 +279,16 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$2;
 $1=_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
 $2=(function(each){
 return smalltalk.withContext(function($ctx2) {
$3=_st(_st(each)._category())._match_("^\x5c*");
 if(! smalltalk.assert($3)){
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:", [aClass,aStream], {}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 source: "exportMethodsOf: aClass on: aStream\x0a\x09\x22Issue #143: sort methods alphabetically\x22\x0a\x0a\x09((aClass methodDictionary values) sorted: [:a :b | a selector <= b selector]) do: [:each |\x0a\x09\x09(each category match: '^\x5c*') ifFalse: [\x0a\x09\x09\x09self exportMethod: each of: aClass on: aStream]].\x0a\x09aStream lf",
 messageSends: ["do:", "ifFalse:", "exportMethod:of:on:", "match:", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "lf"],
@@ -311,11 +311,11 @@ package_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportPackage:", [packageName], {package_:package_}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_}, smalltalk.Exporter)})},
 args: ["packageName"],
 source: "exportPackage: packageName\x0a\x09\x22Export a given package by name.\x22\x0a\x0a\x09| package |\x0a\x09^String streamContents: [:stream |\x0a                package := Smalltalk current packageAt: packageName.\x0a                self exportPackageDefinitionOf: package on: stream.\x0a\x0a\x09\x09\x22Export classes in dependency order.\x0a\x09\x09Update (issue #171): Remove duplicates for export\x22\x0a\x09    \x09package sortedClasses asSet do: [:each |\x0a                        stream nextPutAll: (self exportClass: each)].\x0a\x09\x09self exportPackageExtensionsOf: package on: stream]",
 messageSends: ["streamContents:", "packageAt:", "current", "exportPackageDefinitionOf:on:", "do:", "nextPutAll:", "exportClass:", "asSet", "sortedClasses", "exportPackageExtensionsOf:on:"],
@@ -335,7 +335,7 @@ $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 $2=_st($1)._nextPutAll_(_st(_st(_st(_st("'").__comma(_st(package_)._name())).__comma("', ")).__comma(_st(package_)._propertiesAsJSON())).__comma(");"));
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:", [package_,aStream], {}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.Exporter)})},
 args: ["package", "aStream"],
 source: "exportPackageDefinitionOf: package on: aStream\x0a\x09aStream \x0a\x09    nextPutAll: 'smalltalk.addPackage(';\x0a\x09    nextPutAll: '''', package name, ''', ', package propertiesAsJSON , ');'.\x0a\x09aStream lf",
 messageSends: ["nextPutAll:", ",", "propertiesAsJSON", "name", "lf"],
@@ -359,19 +359,19 @@ return smalltalk.withContext(function($ctx2) {
$3=[each,_st(each)._class()];
 $4=(function(aClass){
 return smalltalk.withContext(function($ctx3) {
$5=_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx4) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx4) {$ctx4.fillBlock([a,b], {})})}));
+}, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})}));
 $6=(function(method){
 return smalltalk.withContext(function($ctx4) {
$7=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($7)){
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 };
-}, function($ctx4) {$ctx4.fillBlock([method], {})})});
+}, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})});
 return _st($5)._do_($6);
-}, function($ctx3) {$ctx3.fillBlock([aClass], {})})});
+}, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})});
 return _st($3)._do_($4);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:", [package_,aStream], {name:name}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name}, smalltalk.Exporter)})},
 args: ["package", "aStream"],
 source: "exportPackageExtensionsOf: package on: aStream\x0a\x09\x22Issue #143: sort classes and methods alphabetically\x22\x0a\x0a\x09| name |\x0a\x09name := package name.\x0a\x09(Package sortedClasses: Smalltalk current classes) do: [:each |\x0a\x09\x09{each. each class} do: [:aClass | \x0a\x09\x09\x09((aClass methodDictionary values) sorted: [:a :b | a selector <= b selector]) do: [:method |\x0a\x09\x09\x09\x09(method category match: '^\x5c*', name) ifTrue: [\x0a\x09\x09\x09\x09\x09self exportMethod: method of: aClass on: aStream ]]]]",
 messageSends: ["name", "do:", "ifTrue:", "exportMethod:of:on:", "match:", ",", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "class", "sortedClasses:", "classes", "current"],
@@ -392,7 +392,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"chunkEscape:", [aString], {}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString}, smalltalk.ChunkExporter)})},
 args: ["aString"],
 source: "chunkEscape: aString\x0a\x09\x22Replace all occurrences of ! with !! and trim at both ends.\x22\x0a\x0a\x09^(aString replace: '!' with: '!!') trimBoth",
 messageSends: ["trimBoth", "replace:with:"],
@@ -411,7 +411,7 @@ return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$1;
 $2=_st(aClass)._isMetaclass();
 $3=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $4=(function(){
 return smalltalk.withContext(function($ctx2) {
$5=_st(aClass)._isNil();
 if(smalltalk.assert($5)){
@@ -419,10 +419,10 @@ return "nil";
 } else {
 return _st(aClass)._name();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:", [aClass], {}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.ChunkExporter)})},
 args: ["aClass"],
 source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09    ifTrue: [aClass instanceClass name, ' class']\x0a\x09    ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09    ifTrue: ['nil']\x0a\x09\x09    ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
@@ -445,9 +445,9 @@ _st($1)._lf();
 $2=_st($1)._nextPutAll_("\x09instanceVariableNames: '");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("'");
 _st($3)._lf();
@@ -463,7 +463,7 @@ $7=_st($6)._lf();
 $7;
 };
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 source: "exportDefinitionOf: aClass on: aStream\x0a    \x22Chunk format.\x22\x0a\x0a    aStream \x0a        nextPutAll: (self classNameFor: aClass superclass);\x0a        nextPutAll: ' subclass: #', (self classNameFor: aClass); lf;\x0a        nextPutAll: '\x09instanceVariableNames: '''.\x0a    aClass instanceVariableNames \x0a        do: [:each | aStream nextPutAll: each]\x0a        separatedBy: [aStream nextPutAll: ' '].\x0a    aStream \x0a        nextPutAll: ''''; lf;\x0a        nextPutAll: '\x09package: ''', aClass category, '''!'; lf.\x0a    aClass comment notEmpty ifTrue: [\x0a        aStream \x0a        nextPutAll: '!', (self classNameFor: aClass), ' commentStamp!';lf;\x0a        nextPutAll: (self chunkEscape: aClass comment), '!';lf].\x0a    aStream lf",
 messageSends: ["nextPutAll:", "classNameFor:", "superclass", ",", "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "chunkEscape:", "comment", "notEmpty"],
@@ -487,16 +487,16 @@ $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=aStream;
 _st($4)._nextPutAll_("'!");
 _st($4)._lf();
 $5=_st($4)._lf();
 $5;
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:", [aClass,aStream], {}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x0a\x09aClass class instanceVariableNames isEmpty ifFalse: [\x0a\x09\x09aStream \x0a\x09\x09    nextPutAll: (self classNameFor: aClass class);\x0a\x09\x09    nextPutAll: ' instanceVariableNames: '''.\x0a\x09\x09aClass class instanceVariableNames \x0a\x09\x09    do: [:each | aStream nextPutAll: each]\x0a\x09\x09    separatedBy: [aStream nextPutAll: ' '].\x0a\x09\x09aStream\x09\x0a\x09\x09    nextPutAll: '''!'; lf; lf]",
 messageSends: ["ifFalse:", "nextPutAll:", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
@@ -518,7 +518,7 @@ _st($1)._lf();
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._lf();
 $2=_st($1)._nextPutAll_("!");
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
 args: ["aMethod", "aClass", "aStream"],
 source: "exportMethod: aMethod of: aClass on: aStream\x0a\x09aStream \x0a\x09\x09lf; lf; nextPutAll: (self chunkEscape: aMethod source); lf;\x0a\x09\x09nextPutAll: '!'",
 messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"],
@@ -539,14 +539,14 @@ _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 _st(_st(methods)._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(each){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._exportMethod_of_on_(each,aClass,aStream);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_(" !");
 _st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:", [methods,category,aClass,aStream], {}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:",{methods:methods,category:category,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
 args: ["methods", "category", "aClass", "aStream"],
 source: "exportMethods: methods category: category of: aClass on: aStream\x0a\x09\x22Issue #143: sort methods alphabetically\x22\x0a\x0a\x09aStream\x0a\x09\x09nextPutAll: '!', (self classNameFor: aClass);\x0a\x09\x09nextPutAll: ' methodsFor: ''', category, '''!'.\x0a\x09\x09(methods sorted: [:a :b | a selector <= b selector]) do: [:each |\x0a\x09\x09\x09\x09self exportMethod: each of: aClass on: aStream].\x0a\x09aStream nextPutAll: ' !'; lf; lf",
 messageSends: ["nextPutAll:", ",", "classNameFor:", "do:", "exportMethod:of:on:", "sorted:", "<=", "selector", "lf"],
@@ -570,17 +570,17 @@ return smalltalk.withContext(function($ctx2) {
$3=_st(category)._match_("^\x5c*"
 if(! smalltalk.assert($3)){
 return _st(map)._at_put_(category,methods);
 };
-}, function($ctx2) {$ctx2.fillBlock([category,methods], {})})});
+}, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})});
 _st($1)._protocolsDo_($2);
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(a).__lt_eq(b);
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(category){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 return smalltalk.withContext(function($ctx2) {
methods=_st(map)._at_(category);
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
-}, function($ctx2) {$ctx2.fillBlock([category], {methods:methods})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:", [aClass,aStream], {map:map}, smalltalk.ChunkExporter)})},
+}, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream,map:map}, smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 source: "exportMethodsOf: aClass on: aStream\x0a\x09\x22Issue #143: sort protocol alphabetically\x22\x0a\x0a\x09| map |\x0a\x09map := Dictionary new.\x0a\x09aClass protocolsDo: [:category :methods | \x0a\x09\x09(category match: '^\x5c*') ifFalse: [ map at: category put: methods ]].\x0a\x09(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |\x0a\x09\x09methods := map at: category.\x0a\x09\x09self\x0a\x09\x09\x09exportMethods: methods\x0a\x09\x09\x09category: category\x0a\x09\x09\x09of: aClass\x0a\x09\x09\x09on: aStream ]",
 messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "do:", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys"],
@@ -599,7 +599,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 _st($1)._nextPutAll_(_st(_st(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("' properties: ")).__comma(_st(_st(package_)._properties())._storeString())).__comma("!"));
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:", [package_,aStream], {}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.ChunkExporter)})},
 args: ["package", "aStream"],
 source: "exportPackageDefinitionOf: package on: aStream\x0a\x09\x22Chunk format.\x22\x0a\x0a\x09aStream \x0a\x09    nextPutAll: 'Smalltalk current createPackage: ''', package name,\x0a\x09\x09''' properties: ', package properties storeString, '!'; lf.",
 messageSends: ["nextPutAll:", ",", "storeString", "properties", "name", "lf"],
@@ -629,21 +629,21 @@ return smalltalk.withContext(function($ctx4) {
$7=_st(category)._match_(_st("^\x
 if(smalltalk.assert($7)){
 return _st(map)._at_put_(category,methods);
 };
-}, function($ctx4) {$ctx4.fillBlock([category,methods], {})})});
+}, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})});
 _st($5)._protocolsDo_($6);
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx4) {
return _st(a).__lt_eq(b);
-}, function($ctx4) {$ctx4.fillBlock([a,b], {})})})))._do_((function(category){
+}, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 return smalltalk.withContext(function($ctx4) {
methods=_st(map)._at_(category);
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
-}, function($ctx4) {$ctx4.fillBlock([category], {methods:methods})})}));
-}, function($ctx3) {$ctx3.fillBlock([aClass], {})})});
+}, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
+}, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})});
 return _st($3)._do_($4);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:", [package_,aStream], {name:name,map:map}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name,map:map}, smalltalk.ChunkExporter)})},
 args: ["package", "aStream"],
 source: "exportPackageExtensionsOf: package on: aStream\x0a\x09\x22We need to override this one too since we need to group\x0a\x09all methods in a given protocol under a leading methodsFor: chunk\x0a\x09for that class.\x22\x0a\x0a\x09\x22Issue #143: sort protocol alphabetically\x22\x0a\x0a\x09| name map |\x0a\x09name := package name.\x0a\x09(Package sortedClasses: Smalltalk current classes) do: [:each |\x0a\x09\x09{each. each class} do: [:aClass |\x0a\x09\x09\x09map := Dictionary new.\x0a\x09\x09\x09aClass protocolsDo: [:category :methods | \x0a\x09\x09\x09\x09(category match: '^\x5c*', name) ifTrue: [ map at: category put: methods ]].\x0a\x09\x09\x09(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |\x0a\x09\x09\x09\x09methods := map at: category.\x09\x0a\x09\x09\x09\x09self exportMethods: methods category: category of: aClass on: aStream ]]]",
 messageSends: ["name", "do:", "new", "protocolsDo:", "ifTrue:", "at:put:", "match:", ",", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys", "class", "sortedClasses:", "classes", "current"],
@@ -669,15 +669,15 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}),(function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 $4=_st($3)._nextPutAll_(");");
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:", [aClass,aStream], {}, smalltalk.StrippedExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})},
 args: ["aClass", "aStream"],
 source: "exportDefinitionOf: aClass on: aStream\x0a\x09aStream \x0a\x09    nextPutAll: 'smalltalk.addClass(';\x0a\x09    nextPutAll: '''', (self classNameFor: aClass), ''', ';\x0a\x09    nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);\x0a\x09    nextPutAll: ', ['.\x0a\x09aClass instanceVariableNames \x0a\x09    do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09    separatedBy: [aStream nextPutAll: ', '].\x0a\x09aStream\x09\x0a\x09    nextPutAll: '], ''';\x0a\x09    nextPutAll: aClass category, '''';\x0a\x09    nextPutAll: ');'.\x0a\x09aStream lf",
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "lf"],
@@ -710,7 +710,7 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($1)._nextPutAll_(");");
 _st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:", [aMethod,aClass,aStream], {}, smalltalk.StrippedExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})},
 args: ["aMethod", "aClass", "aStream"],
 source: "exportMethod: aMethod of: aClass on: aStream\x0a\x09aStream \x0a\x09\x09nextPutAll: 'smalltalk.addMethod(';lf;\x0a\x09\x09nextPutAll: aMethod selector asSelector asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'smalltalk.method({';lf;\x0a\x09\x09nextPutAll: 'selector: ', aMethod selector asJavascript, ',';lf;\x0a\x09\x09nextPutAll: 'fn: ', aMethod fn compiledSource;lf;\x0a\x09\x09nextPutAll: '}),';lf;\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass);\x0a\x09\x09nextPutAll: ');';lf;lf",
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "compiledSource", "fn", "classNameFor:"],
@@ -736,13 +736,13 @@ $1=(function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
 chunk;
 return _st(chunk)._isNil();
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(chunk)._isEmpty();
 $4=(function(){
 return smalltalk.withContext(function($ctx3) {
lastEmpty=true;
 return lastEmpty;
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
 result;
@@ -752,11 +752,11 @@ lastEmpty=false;
 lastEmpty;
 return _st(result)._scanFrom_(parser);
 };
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($3)._ifTrue_ifFalse_($4,$5);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileFalse_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"import:", [aStream], {chunk:chunk,result:result,parser:parser,lastEmpty:lastEmpty}, smalltalk.Importer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"import:",{aStream:aStream,chunk:chunk,result:result,parser:parser,lastEmpty:lastEmpty}, smalltalk.Importer)})},
 args: ["aStream"],
 source: "import: aStream\x0a    | chunk result parser lastEmpty |\x0a    parser := ChunkParser on: aStream.\x0a    lastEmpty := false.\x0a    [chunk := parser nextChunk.\x0a     chunk isNil] whileFalse: [\x0a        chunk isEmpty\x0a       \x09\x09ifTrue: [lastEmpty := true]\x0a       \x09\x09ifFalse: [\x0a        \x09\x09result := Compiler new evaluateExpression: chunk.\x0a        \x09\x09lastEmpty \x0a            \x09\x09\x09ifTrue: [\x0a                                  \x09lastEmpty := false.\x0a                                  \x09result scanFrom: parser]]]",
 messageSends: ["on:", "whileFalse:", "ifTrue:ifFalse:", "evaluateExpression:", "new", "ifTrue:", "scanFrom:", "isEmpty", "nextChunk", "isNil"],
@@ -779,7 +779,7 @@ $1=_st((smalltalk.Package || Package))._named_(packageName);
 _st($1)._setupClasses();
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
-return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:", [packageName,aString], {}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString}, smalltalk.PackageLoader)})},
 args: ["packageName", "aString"],
 source: "initializePackageNamed: packageName prefix: aString\x0a\x0a\x09(Package named: packageName) \x0a    \x09setupClasses;\x0a        commitPathJs: '/', aString, '/js';\x0a        commitPathSt: '/', aString, '/st'",
 messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"],
@@ -806,13 +806,13 @@ return smalltalk.withContext(function($ctx2) {
$8=_st(_st(jqXHR)._readyState()).
 if(smalltalk.assert($8)){
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 };
-}, function($ctx2) {$ctx2.fillBlock([jqXHR,textStatus], {})})});
+}, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})});
 $6=_st("complete").__minus_gt($7);
 $3=smalltalk.HashedCollection._fromPairs_([$4,$5,$6,_st("error").__minus_gt((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(window)._alert_(_st("Could not load package at:  ").__comma(url));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))]);
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]);
 _st($1)._ajax_options_($2,$3);
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:", [packageName,aString], {url:url}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:",{packageName:packageName,aString:aString,url:url}, smalltalk.PackageLoader)})},
 args: ["packageName", "aString"],
 source: "loadPackage: packageName prefix: aString\x09\x0a\x09| url |\x0a    url := '/', aString, '/js/', packageName, '.js'.\x0a\x09jQuery \x0a\x09\x09ajax: url\x0a        options: #{\x0a\x09\x09\x09'type' -> 'GET'.\x0a\x09\x09\x09'dataType' -> 'script'.\x0a    \x09\x09'complete' -> [ :jqXHR :textStatus | \x0a\x09\x09\x09\x09jqXHR readyState = 4 \x0a                \x09ifTrue: [ self initializePackageNamed: packageName prefix: aString ] ].\x0a\x09\x09\x09'error' -> [ window alert: 'Could not load package at:  ', url ]\x0a\x09\x09}",
 messageSends: [",", "ajax:options:", "->", "ifTrue:", "initializePackageNamed:prefix:", "=", "readyState", "alert:"],
@@ -829,8 +829,8 @@ fn: function (aCollection,aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._loadPackage_prefix_(each,aString);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:", [aCollection,aString], {}, smalltalk.PackageLoader)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader)})},
 args: ["aCollection", "aString"],
 source: "loadPackages: aCollection prefix: aString\x0a\x09aCollection do: [ :each |\x0a    \x09self loadPackage: each prefix: aString ]",
 messageSends: ["do:", "loadPackage:prefix:"],
@@ -849,7 +849,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:", [aCollection,aString], {}, smalltalk.PackageLoader.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader.klass)})},
 args: ["aCollection", "aString"],
 source: "loadPackages: aCollection prefix: aString\x0a\x09^ self new loadPackages: aCollection prefix: aString",
 messageSends: ["loadPackages:prefix:", "new"],

+ 16 - 16
js/Kernel-Announcements.deploy.js

@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcementClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcementClass", [], {}, smalltalk.AnnouncementSubscription)})}
+}, function($ctx1) {$ctx1.fill(self,"announcementClass",{}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -20,7 +20,7 @@ selector: "announcementClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:", [aClass], {}, smalltalk.AnnouncementSubscription)})}
+return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -33,7 +33,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@block"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"block", [], {}, smalltalk.AnnouncementSubscription)})}
+}, function($ctx1) {$ctx1.fill(self,"block",{}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -44,7 +44,7 @@ selector: "block:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"block:", [aBlock], {}, smalltalk.AnnouncementSubscription)})}
+return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -59,7 +59,7 @@ $1=_st(self)._handlesAnnouncement_(anAnnouncement);
 if(smalltalk.assert($1)){
 _st(_st(self)._block())._value_(anAnnouncement);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"deliver:", [anAnnouncement], {}, smalltalk.AnnouncementSubscription)})}
+return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -72,7 +72,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:", [anAnnouncement], {}, smalltalk.AnnouncementSubscription)})}
+}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})}
 }),
 smalltalk.AnnouncementSubscription);
 
@@ -87,8 +87,8 @@ fn: function (anAnnouncement){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"announce:", [anAnnouncement], {}, smalltalk.Announcer)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement}, smalltalk.Announcer)})}
 }),
 smalltalk.Announcer);
 
@@ -100,7 +100,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@subscriptions"]=_st((smalltalk.Array || Array))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.Announcer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Announcer)})}
 }),
 smalltalk.Announcer);
 
@@ -116,7 +116,7 @@ _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 _st(self["@subscriptions"])._add_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"on:do:", [aClass,aBlock], {}, smalltalk.Announcer)})}
+return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock}, smalltalk.Announcer)})}
 }),
 smalltalk.Announcer);
 
@@ -140,7 +140,7 @@ $1=self["@current"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.SystemAnnouncer.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.SystemAnnouncer.klass)})}
 }),
 smalltalk.SystemAnnouncer.klass);
 
@@ -151,7 +151,7 @@ selector: "new",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.SystemAnnouncer.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.SystemAnnouncer.klass)})}
 }),
 smalltalk.SystemAnnouncer.klass);
 
@@ -166,7 +166,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.SystemAnnouncement)})}
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SystemAnnouncement)})}
 }),
 smalltalk.SystemAnnouncement);
 
@@ -177,7 +177,7 @@ selector: "theClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.SystemAnnouncement)})}
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SystemAnnouncement)})}
 }),
 smalltalk.SystemAnnouncement);
 
@@ -208,7 +208,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@method"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method", [], {}, smalltalk.MethodAnnouncement)})}
+}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodAnnouncement)})}
 }),
 smalltalk.MethodAnnouncement);
 
@@ -219,7 +219,7 @@ selector: "method:",
 fn: function (aCompiledMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"method:", [aCompiledMethod], {}, smalltalk.MethodAnnouncement)})}
+return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.MethodAnnouncement)})}
 }),
 smalltalk.MethodAnnouncement);
 

+ 16 - 16
js/Kernel-Announcements.js

@@ -10,7 +10,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcementClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcementClass", [], {}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"announcementClass",{}, smalltalk.AnnouncementSubscription)})},
 args: [],
 source: "announcementClass\x0a\x09^announcementClass",
 messageSends: [],
@@ -26,7 +26,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:", [aClass], {}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass}, smalltalk.AnnouncementSubscription)})},
 args: ["aClass"],
 source: "announcementClass: aClass\x0a\x09announcementClass := aClass",
 messageSends: [],
@@ -44,7 +44,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@block"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"block", [], {}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"block",{}, smalltalk.AnnouncementSubscription)})},
 args: [],
 source: "block\x0a\x09^block",
 messageSends: [],
@@ -60,7 +60,7 @@ category: 'accessing',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"block:", [aBlock], {}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock}, smalltalk.AnnouncementSubscription)})},
 args: ["aBlock"],
 source: "block: aBlock\x0a\x09block := aBlock",
 messageSends: [],
@@ -80,7 +80,7 @@ $1=_st(self)._handlesAnnouncement_(anAnnouncement);
 if(smalltalk.assert($1)){
 _st(_st(self)._block())._value_(anAnnouncement);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"deliver:", [anAnnouncement], {}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
 args: ["anAnnouncement"],
 source: "deliver: anAnnouncement\x0a\x09(self handlesAnnouncement: anAnnouncement)\x0a\x09\x09ifTrue: [self block value: anAnnouncement]",
 messageSends: ["ifTrue:", "value:", "block", "handlesAnnouncement:"],
@@ -98,7 +98,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:", [anAnnouncement], {}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
 args: ["anAnnouncement"],
 source: "handlesAnnouncement: anAnnouncement\x0a\x09^anAnnouncement isKindOf: self announcementClass",
 messageSends: ["isKindOf:", "announcementClass"],
@@ -118,8 +118,8 @@ fn: function (anAnnouncement){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"announce:", [anAnnouncement], {}, smalltalk.Announcer)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement}, smalltalk.Announcer)})},
 args: ["anAnnouncement"],
 source: "announce: anAnnouncement\x0a\x09subscriptions do: [:each |\x0a\x09\x09each deliver: anAnnouncement]",
 messageSends: ["do:", "deliver:"],
@@ -136,7 +136,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@subscriptions"]=_st((smalltalk.Array || Array))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Announcer)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09subscriptions := Array new",
 messageSends: ["initialize", "new"],
@@ -157,7 +157,7 @@ _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 _st(self["@subscriptions"])._add_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"on:do:", [aClass,aBlock], {}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock}, smalltalk.Announcer)})},
 args: ["aClass", "aBlock"],
 source: "on: aClass do: aBlock\x0a\x09subscriptions add: (AnnouncementSubscription new\x0a\x09\x09block: aBlock;\x0a\x09\x09announcementClass: aClass;\x0a\x09\x09yourself)",
 messageSends: ["add:", "block:", "new", "announcementClass:", "yourself"],
@@ -187,7 +187,7 @@ $1=self["@current"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.SystemAnnouncer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.SystemAnnouncer.klass)})},
 args: [],
 source: "current\x0a\x09^ current ifNil: [ current := super new ]",
 messageSends: ["ifNil:", "new"],
@@ -203,7 +203,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.SystemAnnouncer.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.SystemAnnouncer.klass)})},
 args: [],
 source: "new\x0a\x09self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
@@ -224,7 +224,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.SystemAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SystemAnnouncement)})},
 args: [],
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
@@ -240,7 +240,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.SystemAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SystemAnnouncement)})},
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
@@ -281,7 +281,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@method"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method", [], {}, smalltalk.MethodAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodAnnouncement)})},
 args: [],
 source: "method\x0a\x09^ method",
 messageSends: [],
@@ -297,7 +297,7 @@ category: 'accessing',
 fn: function (aCompiledMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"method:", [aCompiledMethod], {}, smalltalk.MethodAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.MethodAnnouncement)})},
 args: ["aCompiledMethod"],
 source: "method: aCompiledMethod\x0a\x09method := aCompiledMethod",
 messageSends: [],

+ 109 - 109
js/Kernel-Classes.deploy.js

@@ -13,7 +13,7 @@ _st($1)._theClass_(self);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -34,7 +34,7 @@ _st(result)._addAll_(_st(_st(self)._superclass())._allInstanceVariableNames());
 };
 $2=result;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames", [], {result:result}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -49,10 +49,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 result=_st(self)._subclasses();
 _st(_st(self)._subclasses())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(result)._addAll_(_st(each)._allSubclasses());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=result;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSubclasses", [], {result:result}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -74,7 +74,7 @@ _st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
 $4=_st($3)._yourself();
 $2=$4;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allSuperclasses", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -85,7 +85,7 @@ selector: "basicAddCompiledMethod:",
 fn: function (aMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -96,7 +96,7 @@ selector: "basicNew",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self.fn();
-return self}, function($ctx1) {$ctx1.fill(self,"basicNew", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"basicNew",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -110,7 +110,7 @@ return smalltalk.withContext(function($ctx1) {
     	smalltalk.removeMethod(aMethod)
 		smalltalk.init(self);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -124,10 +124,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodDictionary())._keys())._includes_(_st(aSelector)._asString()))._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._superclass())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._superclass())._canUnderstand_(aSelector);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canUnderstand:", [aSelector], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -145,7 +145,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"comment", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"comment",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -161,7 +161,7 @@ $1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
 _st($1)._theClass_(self);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"comment:", [aString], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -177,7 +177,7 @@ _st($2)._class_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"commentStamp",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -190,7 +190,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._commentStamp();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:", [aStamp,prior], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -201,7 +201,7 @@ selector: "compile:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
-return self}, function($ctx1) {$ctx1.fill(self,"compile:", [aString], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -212,7 +212,7 @@ selector: "compile:category:",
 fn: function (aString,anotherString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
-return self}, function($ctx1) {$ctx1.fill(self,"compile:category:", [aString,anotherString], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"compile:category:",{aString:aString,anotherString:anotherString}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -223,7 +223,7 @@ selector: "definition",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "";
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -236,7 +236,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"includesSelector:", [aSymbol], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -249,7 +249,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:", [aClass], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -260,7 +260,7 @@ selector: "instanceVariableNames",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.iVarNames;
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -277,7 +277,7 @@ try {
 lookupClass=self;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(lookupClass).__eq(nil);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(lookupClass)._includesSelector_(selector);
 if(smalltalk.assert($3)){
@@ -286,12 +286,12 @@ throw $early=[$4];
 };
 lookupClass=_st(lookupClass)._superclass();
 return lookupClass;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileFalse_($2);
 return nil;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"lookupSelector:", [selector], {lookupClass:lookupClass}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -304,7 +304,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodAt:", [aSymbol], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -322,7 +322,7 @@ return smalltalk.withContext(function($ctx1) { 
var dict = smalltalk.HashedColle
 		}
 	};
 	return dict;
-return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -335,7 +335,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._values();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methods", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"methods",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -351,7 +351,7 @@ _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:", [aString], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -364,7 +364,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._methodsFor_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:", [aString,aStamp], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -377,9 +377,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._methodDictionary())._values())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:", [aString], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -390,7 +390,7 @@ selector: "name",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.className || nil;
-return self}, function($ctx1) {$ctx1.fill(self,"name", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -403,7 +403,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._basicNew())._initialize();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -416,7 +416,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("organization");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"organization", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"organization",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -429,7 +429,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocols", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"protocols",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -444,12 +444,12 @@ return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st((smalltalk
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Array))._new();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._add_(m);
-}, function($ctx2) {$ctx2.fillBlock([m], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
+}, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
-}, function($ctx2) {$ctx2.fillBlock([category], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:", [aBlock], {methodsByCategory:methodsByCategory}, smalltalk.Behavior)})}
+}, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -460,7 +460,7 @@ selector: "prototype",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.fn.prototype;
-return self}, function($ctx1) {$ctx1.fill(self,"prototype", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"prototype",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -477,7 +477,7 @@ _st($1)._theClass_(self);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -490,7 +490,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._keys();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectors", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"selectors",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -501,7 +501,7 @@ selector: "subclasses",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.subclasses(self);
-return self}, function($ctx1) {$ctx1.fill(self,"subclasses", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"subclasses",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -512,7 +512,7 @@ selector: "superclass",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.superclass || nil;
-return self}, function($ctx1) {$ctx1.fill(self,"superclass", [], {}, smalltalk.Behavior)})}
+return self}, function($ctx1) {$ctx1.fill(self,"superclass",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -525,7 +525,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._class();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -538,7 +538,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -554,7 +554,7 @@ _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses", [], {}, smalltalk.Behavior)})}
+}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{}, smalltalk.Behavior)})}
 }),
 smalltalk.Behavior);
 
@@ -570,7 +570,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("smalltalk.").__comma(_st(self)._name());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -588,7 +588,7 @@ $1="Unclassified";
 $1=_st(_st(self)._package())._name();
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category", [], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -609,18 +609,18 @@ $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
 _st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
 return $5;
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -631,7 +631,7 @@ selector: "isClass",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClass", [], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"isClass",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -642,7 +642,7 @@ selector: "package",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pkg;
-return self}, function($ctx1) {$ctx1.fill(self,"package", [], {}, smalltalk.Class)})}
+return self}, function($ctx1) {$ctx1.fill(self,"package",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -653,7 +653,7 @@ selector: "package:",
 fn: function (aPackage){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:", [aPackage], {}, smalltalk.Class)})}
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -666,7 +666,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -677,7 +677,7 @@ selector: "rename:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
-return self}, function($ctx1) {$ctx1.fill(self,"rename:", [aString], {}, smalltalk.Class)})}
+return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -690,7 +690,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:", [aString,anotherString], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -704,7 +704,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:", [aString,aString2,aString3], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -717,7 +717,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:", [aString,aString2,classVars,pools,aString3], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -730,7 +730,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:", [aString,aString2,aString3], {}, smalltalk.Class)})}
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})}
 }),
 smalltalk.Class);
 
@@ -746,7 +746,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -765,13 +765,13 @@ $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return _st(stream)._nextPutAll_("'");
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -782,7 +782,7 @@ selector: "instanceClass",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.instanceClass;
-return self}, function($ctx1) {$ctx1.fill(self,"instanceClass", [], {}, smalltalk.Metaclass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"instanceClass",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -793,7 +793,7 @@ selector: "instanceVariableNames:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:", [aCollection], {}, smalltalk.Metaclass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -804,7 +804,7 @@ selector: "isMetaclass",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMetaclass", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -817,7 +817,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -830,7 +830,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -843,7 +843,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._instanceClass();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Metaclass)})}
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Metaclass)})}
 }),
 smalltalk.Metaclass);
 
@@ -858,7 +858,7 @@ fn: function (aClass,aString,aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addClass(aString, aClass, aCollection);
 	    return smalltalk[aString];
-return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:", [aClass,aString,aCollection], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:",{aClass:aClass,aString:aString,aCollection:aCollection}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -870,7 +870,7 @@ fn: function (aClass,aString,aCollection,packageName){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addClass(aString, aClass, aCollection, packageName);
 	    return smalltalk[aString];
-return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:", [aClass,aString,aCollection,packageName], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -887,7 +887,7 @@ _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 };
 _st(aClass)._basicAt_put_("iVarNames",_st(self)._instanceVariableNamesFor_(aString));
 _st(self)._setupClass_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -902,7 +902,7 @@ return smalltalk.withContext(function($ctx1) {
 		delete smalltalk[aClass.className];
 		aClass.className = aString;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -918,7 +918,7 @@ $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -934,14 +934,14 @@ newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClas
 _st(self)._setupClass_(newClass);
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),newClass,_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(newClass)._class(),_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(newClass);
 $1=newClass;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"copyClass:named:", [aClass,aString], {newClass:newClass}, smalltalk.ClassBuilder)})}
+}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -954,9 +954,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:", [aString], {}, smalltalk.ClassBuilder)})}
+}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -972,7 +972,7 @@ $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -983,7 +983,7 @@ selector: "setupClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:", [aClass], {}, smalltalk.ClassBuilder)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -996,7 +996,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:", [aClass,aString], {}, smalltalk.ClassBuilder)})}
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -1026,7 +1026,7 @@ $8=_st($7)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 $9=newClass;
 return $9;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:", [aClass,aString,aString2,aString3], {newClass:newClass}, smalltalk.ClassBuilder)})}
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:",{aClass:aClass,aString:aString,aString2:aString2,aString3:aString3,newClass:newClass}, smalltalk.ClassBuilder)})}
 }),
 smalltalk.ClassBuilder);
 
@@ -1041,7 +1041,7 @@ fn: function (aClass,aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 self["@category"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"class:category:", [aClass,aString], {}, smalltalk.ClassCategoryReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString}, smalltalk.ClassCategoryReader)})}
 }),
 smalltalk.ClassCategoryReader);
 
@@ -1052,7 +1052,7 @@ selector: "compileMethod:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
-return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:", [aString], {}, smalltalk.ClassCategoryReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString}, smalltalk.ClassCategoryReader)})}
 }),
 smalltalk.ClassCategoryReader);
 
@@ -1064,7 +1064,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCategoryReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})}
 }),
 smalltalk.ClassCategoryReader);
 
@@ -1079,11 +1079,11 @@ return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
 return _st(chunk)._isEmpty();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileFalse_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st((smalltalk.Compiler || Compiler))._new())._setupClass_(self["@class"]);
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCategoryReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})}
 }),
 smalltalk.ClassCategoryReader);
 
@@ -1097,7 +1097,7 @@ selector: "class:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"class:", [aClass], {}, smalltalk.ClassCommentReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})}
 }),
 smalltalk.ClassCommentReader);
 
@@ -1109,7 +1109,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCommentReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})}
 }),
 smalltalk.ClassCommentReader);
 
@@ -1126,7 +1126,7 @@ $1=_st(chunk)._isEmpty();
 if(! smalltalk.assert($1)){
 _st(self)._setComment_(chunk);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCommentReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})}
 }),
 smalltalk.ClassCommentReader);
 
@@ -1137,7 +1137,7 @@ selector: "setComment:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"setComment:", [aString], {}, smalltalk.ClassCommentReader)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})}
 }),
 smalltalk.ClassCommentReader);
 
@@ -1162,12 +1162,12 @@ return _st(children)._add_(each);
 } else {
 return _st(others)._add_(each);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 self["@nodes"]=_st(children)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,_st(_st(self)._level()).__plus((1)));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:", [aCollection], {children:children,others:others}, smalltalk.ClassSorterNode)})}
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1180,7 +1180,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@level"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"level", [], {}, smalltalk.ClassSorterNode)})}
+}, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1191,7 +1191,7 @@ selector: "level:",
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"level:", [anInteger], {}, smalltalk.ClassSorterNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1204,7 +1204,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@nodes"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.ClassSorterNode)})}
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1217,7 +1217,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.ClassSorterNode)})}
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1228,7 +1228,7 @@ selector: "theClass:",
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.ClassSorterNode)})}
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1241,10 +1241,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aCollection)._add_(_st(self)._theClass());
 _st(_st(_st(self)._nodes())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(aNode){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(aNode){
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(aCollection);
-}, function($ctx2) {$ctx2.fillBlock([aNode], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:", [aCollection], {}, smalltalk.ClassSorterNode)})}
+}, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})}
 }),
 smalltalk.ClassSorterNode);
 
@@ -1263,7 +1263,7 @@ _st($2)._getNodesFrom_(aCollection);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:classes:level:", [aClass,aCollection,anInteger], {}, smalltalk.ClassSorterNode.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger}, smalltalk.ClassSorterNode.klass)})}
 }),
 smalltalk.ClassSorterNode.klass);
 

+ 109 - 109
js/Kernel-Classes.js

@@ -15,7 +15,7 @@ _st($1)._theClass_(self);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
 args: ["aMethod"],
 source: "addCompiledMethod: aMethod\x0a\x09self basicAddCompiledMethod: aMethod.\x0a    \x0a    SystemAnnouncer current\x0a   \x09\x09announce: (MethodAdded new\x0a        \x09theClass: self;\x0a            method: aMethod;\x0a            yourself)",
 messageSends: ["basicAddCompiledMethod:", "announce:", "theClass:", "new", "method:", "yourself", "current"],
@@ -41,7 +41,7 @@ _st(result)._addAll_(_st(_st(self)._superclass())._allInstanceVariableNames());
 };
 $2=result;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames", [], {result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result}, smalltalk.Behavior)})},
 args: [],
 source: "allInstanceVariableNames\x0a\x09| result |\x0a\x09result := self instanceVariableNames copy.\x0a\x09self superclass ifNotNil: [\x0a\x09    result addAll: self superclass allInstanceVariableNames].\x0a\x09^result",
 messageSends: ["copy", "instanceVariableNames", "ifNotNil:", "addAll:", "allInstanceVariableNames", "superclass"],
@@ -61,10 +61,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 result=_st(self)._subclasses();
 _st(_st(self)._subclasses())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(result)._addAll_(_st(each)._allSubclasses());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=result;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSubclasses", [], {result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result}, smalltalk.Behavior)})},
 args: [],
 source: "allSubclasses\x0a\x09| result |\x0a\x09result := self subclasses.\x0a\x09self subclasses do: [:each |\x0a\x09    result addAll: each allSubclasses].\x0a\x09^result",
 messageSends: ["subclasses", "do:", "addAll:", "allSubclasses"],
@@ -91,7 +91,7 @@ _st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
 $4=_st($3)._yourself();
 $2=$4;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allSuperclasses", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{}, smalltalk.Behavior)})},
 args: [],
 source: "allSuperclasses\x0a\x09\x0a    self superclass ifNil: [ ^ #() ].\x0a    \x0a\x09^ (OrderedCollection with: self superclass) \x0a    \x09addAll: self superclass allSuperclasses;\x0a        yourself",
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"],
@@ -107,7 +107,7 @@ category: 'private',
 fn: function (aMethod){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
 args: ["aMethod"],
 source: "basicAddCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self)>",
 messageSends: [],
@@ -123,7 +123,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self.fn();
-return self}, function($ctx1) {$ctx1.fill(self,"basicNew", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicNew",{}, smalltalk.Behavior)})},
 args: [],
 source: "basicNew\x0a\x09<return new self.fn()>",
 messageSends: [],
@@ -142,7 +142,7 @@ return smalltalk.withContext(function($ctx1) {
     	smalltalk.removeMethod(aMethod)
 		smalltalk.init(self);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
 args: ["aMethod"],
 source: "basicRemoveCompiledMethod: aMethod\x0a\x09<\x0a    \x09smalltalk.removeMethod(aMethod)\x0a\x09\x09smalltalk.init(self);\x0a    >",
 messageSends: [],
@@ -161,10 +161,10 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodDictionary())._keys())._includes_(_st(aSelector)._asString()))._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._superclass())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._superclass())._canUnderstand_(aSelector);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canUnderstand:", [aSelector], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector}, smalltalk.Behavior)})},
 args: ["aSelector"],
 source: "canUnderstand: aSelector\x0a\x09^(self methodDictionary keys includes: aSelector asString) or: [\x0a\x09\x09self superclass notNil and: [self superclass canUnderstand: aSelector]]",
 messageSends: ["or:", "and:", "canUnderstand:", "superclass", "notNil", "includes:", "asString", "keys", "methodDictionary"],
@@ -187,7 +187,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"comment", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"comment",{}, smalltalk.Behavior)})},
 args: [],
 source: "comment\x0a    ^(self basicAt: 'comment') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
@@ -208,7 +208,7 @@ $1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
 _st($1)._theClass_(self);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"comment:", [aString], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString}, smalltalk.Behavior)})},
 args: ["aString"],
 source: "comment: aString\x0a    self basicAt: 'comment' put: aString.\x0a    SystemAnnouncer current\x0a    \x09announce: (ClassCommentChanged new\x0a        \x09theClass: self;\x0a            yourself)",
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"],
@@ -229,7 +229,7 @@ _st($2)._class_(self);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp",{}, smalltalk.Behavior)})},
 args: [],
 source: "commentStamp\x0a    ^ClassCommentReader new\x0a\x09class: self;\x0a\x09yourself",
 messageSends: ["class:", "new", "yourself"],
@@ -247,7 +247,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._commentStamp();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:", [aStamp,prior], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior}, smalltalk.Behavior)})},
 args: ["aStamp", "prior"],
 source: "commentStamp: aStamp prior: prior\x0a        ^self commentStamp",
 messageSends: ["commentStamp"],
@@ -263,7 +263,7 @@ category: 'compiling',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
-return self}, function($ctx1) {$ctx1.fill(self,"compile:", [aString], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Behavior)})},
 args: ["aString"],
 source: "compile: aString\x0a\x09self compile: aString category: ''",
 messageSends: ["compile:category:"],
@@ -279,7 +279,7 @@ category: 'compiling',
 fn: function (aString,anotherString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
-return self}, function($ctx1) {$ctx1.fill(self,"compile:category:", [aString,anotherString], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:category:",{aString:aString,anotherString:anotherString}, smalltalk.Behavior)})},
 args: ["aString", "anotherString"],
 source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString \x0a        forClass: self \x0a        category: anotherString",
 messageSends: ["install:forClass:category:", "new"],
@@ -295,7 +295,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "";
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Behavior)})},
 args: [],
 source: "definition\x0a\x09^ ''",
 messageSends: [],
@@ -313,7 +313,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"includesSelector:", [aSymbol], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
 args: ["aSymbol"],
 source: "includesSelector: aSymbol\x0a\x09^ self methodDictionary includesKey: aSymbol asString",
 messageSends: ["includesKey:", "asString", "methodDictionary"],
@@ -331,7 +331,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:", [aClass], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass}, smalltalk.Behavior)})},
 args: ["aClass"],
 source: "inheritsFrom: aClass\x0a\x09^aClass allSubclasses includes: self",
 messageSends: ["includes:", "allSubclasses"],
@@ -347,7 +347,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.iVarNames;
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames",{}, smalltalk.Behavior)})},
 args: [],
 source: "instanceVariableNames\x0a\x09<return self.iVarNames>",
 messageSends: [],
@@ -369,7 +369,7 @@ try {
 lookupClass=self;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(lookupClass).__eq(nil);
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(lookupClass)._includesSelector_(selector);
 if(smalltalk.assert($3)){
@@ -378,12 +378,12 @@ throw $early=[$4];
 };
 lookupClass=_st(lookupClass)._superclass();
 return lookupClass;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._whileFalse_($2);
 return nil;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"lookupSelector:", [selector], {lookupClass:lookupClass}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass}, smalltalk.Behavior)})},
 args: ["selector"],
 source: "lookupSelector: selector\x0a\x09\x22Look up the given selector in my methodDictionary.\x0a\x09Return the corresponding method if found.\x0a\x09Otherwise chase the superclass chain and try again.\x0a\x09Return nil if no method is found.\x22\x0a    \x0a\x09| lookupClass |\x0a    \x0a\x09lookupClass := self.\x0a\x09[ lookupClass = nil ] whileFalse: [\x0a      \x09(lookupClass includesSelector: selector)\x0a\x09\x09\x09\x09ifTrue: [ ^ lookupClass methodAt: selector ].\x0a\x09\x09\x09lookupClass := lookupClass superclass ].\x0a\x09^ nil",
 messageSends: ["whileFalse:", "ifTrue:", "methodAt:", "includesSelector:", "superclass", "="],
@@ -401,7 +401,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodAt:", [aSymbol], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
 args: ["aSymbol"],
 source: "methodAt: aSymbol\x0a\x09^ self methodDictionary at: aSymbol asString",
 messageSends: ["at:", "asString", "methodDictionary"],
@@ -424,7 +424,7 @@ return smalltalk.withContext(function($ctx1) { 
var dict = smalltalk.HashedColle
 		}
 	};
 	return dict;
-return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{}, smalltalk.Behavior)})},
 args: [],
 source: "methodDictionary\x0a\x09<var dict = smalltalk.HashedCollection._new();\x0a\x09var methods = self.methods;\x0a\x09for(var i in methods) {\x0a\x09\x09if(methods[i].selector) {\x0a\x09\x09\x09dict._at_put_(methods[i].selector, methods[i]);\x0a\x09\x09}\x0a\x09};\x0a\x09return dict>",
 messageSends: [],
@@ -442,7 +442,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._values();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methods", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methods",{}, smalltalk.Behavior)})},
 args: [],
 source: "methods\x0a\x09^ self methodDictionary values",
 messageSends: ["values", "methodDictionary"],
@@ -463,7 +463,7 @@ _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:", [aString], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString}, smalltalk.Behavior)})},
 args: ["aString"],
 source: "methodsFor: aString\x0a\x09^ClassCategoryReader new\x0a\x09    class: self category: aString;\x0a\x09    yourself",
 messageSends: ["class:category:", "new", "yourself"],
@@ -481,7 +481,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._methodsFor_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:", [aString,aStamp], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp}, smalltalk.Behavior)})},
 args: ["aString", "aStamp"],
 source: "methodsFor: aString stamp: aStamp\x0a\x09\x22Added for compatibility, right now ignores stamp.\x22\x0a\x09^self methodsFor: aString",
 messageSends: ["methodsFor:"],
@@ -499,9 +499,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._methodDictionary())._values())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:", [aString], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString}, smalltalk.Behavior)})},
 args: ["aString"],
 source: "methodsInProtocol: aString\x0a\x09^ self methodDictionary values select: [ :each | each protocol = aString ]",
 messageSends: ["select:", "=", "protocol", "values", "methodDictionary"],
@@ -517,7 +517,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.className || nil;
-return self}, function($ctx1) {$ctx1.fill(self,"name", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.Behavior)})},
 args: [],
 source: "name\x0a\x09<return self.className || nil>",
 messageSends: [],
@@ -535,7 +535,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._basicNew())._initialize();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Behavior)})},
 args: [],
 source: "new\x0a\x09^self basicNew initialize",
 messageSends: ["initialize", "basicNew"],
@@ -553,7 +553,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("organization");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"organization", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"organization",{}, smalltalk.Behavior)})},
 args: [],
 source: "organization\x0a\x09^ self basicAt: 'organization'",
 messageSends: ["basicAt:"],
@@ -571,7 +571,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocols", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"protocols",{}, smalltalk.Behavior)})},
 args: [],
 source: "protocols\x0a   ^ self organization elements sorted",
 messageSends: ["sorted", "elements", "organization"],
@@ -591,12 +591,12 @@ return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st((smalltalk
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Array))._new();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._add_(m);
-}, function($ctx2) {$ctx2.fillBlock([m], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
+}, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
-}, function($ctx2) {$ctx2.fillBlock([category], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:", [aBlock], {methodsByCategory:methodsByCategory}, smalltalk.Behavior)})},
+}, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory}, smalltalk.Behavior)})},
 args: ["aBlock"],
 source: "protocolsDo: aBlock\x0a\x09\x22Execute aBlock for each method category with\x0a\x09its collection of methods in the sort order of category name.\x22\x0a\x0a\x09| methodsByCategory |\x0a\x09methodsByCategory := HashedCollection new.\x0a\x09self methodDictionary values do: [:m |\x0a\x09\x09(methodsByCategory at: m category ifAbsentPut: [Array new])\x0a \x09\x09\x09add: m]. \x0a\x09self protocols do: [:category |\x0a\x09\x09aBlock value: category value: (methodsByCategory at: category)]",
 messageSends: ["new", "do:", "add:", "at:ifAbsentPut:", "category", "values", "methodDictionary", "value:value:", "at:", "protocols"],
@@ -612,7 +612,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.fn.prototype;
-return self}, function($ctx1) {$ctx1.fill(self,"prototype", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"prototype",{}, smalltalk.Behavior)})},
 args: [],
 source: "prototype\x0a\x09<return self.fn.prototype>",
 messageSends: [],
@@ -634,7 +634,7 @@ _st($1)._theClass_(self);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:", [aMethod], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
 args: ["aMethod"],
 source: "removeCompiledMethod: aMethod\x0a\x09self basicRemoveCompiledMethod: aMethod.\x0a    \x0a    SystemAnnouncer current\x0a   \x09\x09announce: (MethodRemoved new\x0a        \x09theClass: self;\x0a            method: aMethod;\x0a            yourself)",
 messageSends: ["basicRemoveCompiledMethod:", "announce:", "theClass:", "new", "method:", "yourself", "current"],
@@ -652,7 +652,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._keys();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectors", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"selectors",{}, smalltalk.Behavior)})},
 args: [],
 source: "selectors\x0a\x09^ self methodDictionary keys",
 messageSends: ["keys", "methodDictionary"],
@@ -668,7 +668,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.subclasses(self);
-return self}, function($ctx1) {$ctx1.fill(self,"subclasses", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"subclasses",{}, smalltalk.Behavior)})},
 args: [],
 source: "subclasses\x0a\x09<return smalltalk.subclasses(self)>",
 messageSends: [],
@@ -684,7 +684,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.superclass || nil;
-return self}, function($ctx1) {$ctx1.fill(self,"superclass", [], {}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superclass",{}, smalltalk.Behavior)})},
 args: [],
 source: "superclass\x0a\x09<return self.superclass || nil>",
 messageSends: [],
@@ -702,7 +702,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._class();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Behavior)})},
 args: [],
 source: "theMetaClass\x0a\x09^ self class",
 messageSends: ["class"],
@@ -720,7 +720,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Behavior)})},
 args: [],
 source: "theNonMetaClass\x0a\x09^ self",
 messageSends: [],
@@ -741,7 +741,7 @@ _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses", [], {}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{}, smalltalk.Behavior)})},
 args: [],
 source: "withAllSubclasses\x0a\x09^(Array with: self) addAll: self allSubclasses; yourself",
 messageSends: ["addAll:", "allSubclasses", "with:", "yourself"],
@@ -763,7 +763,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("smalltalk.").__comma(_st(self)._name());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Class)})},
 args: [],
 source: "asJavascript\x0a\x09^ 'smalltalk.', self name",
 messageSends: [",", "name"],
@@ -786,7 +786,7 @@ $1="Unclassified";
 $1=_st(_st(self)._package())._name();
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category", [], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.Class)})},
 args: [],
 source: "category\x0a\x09^self package ifNil: ['Unclassified'] ifNotNil: [self package name]",
 messageSends: ["ifNil:ifNotNil:", "name", "package"],
@@ -812,18 +812,18 @@ $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
 _st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
 return $5;
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Class)})},
 args: [],
 source: "definition\x0a\x09^ String streamContents: [ :stream |\x0a\x09\x09stream \x0a\x09    \x09nextPutAll: self superclass asString;\x0a\x09    \x09nextPutAll: ' subclass: #';\x0a\x09    \x09nextPutAll: self name;\x0a\x09    \x09nextPutAll: String lf, String tab;\x0a\x09    \x09nextPutAll: 'instanceVariableNames: '''.\x0a\x09\x09self instanceVariableNames \x0a          \x09do: [ :each | stream nextPutAll: each ] \x0a\x09    \x09separatedBy: [ stream nextPutAll: ' ' ].\x0a\x09\x09stream\x0a\x09    \x09nextPutAll: '''', String lf, String tab;\x0a\x09    \x09nextPutAll: 'package: ''';\x0a\x09    \x09nextPutAll: self category;\x0a\x09    \x09nextPutAll: '''' ]",
 messageSends: ["streamContents:", "nextPutAll:", "asString", "superclass", "name", ",", "tab", "lf", "do:separatedBy:", "instanceVariableNames", "category"],
@@ -839,7 +839,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClass", [], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"isClass",{}, smalltalk.Class)})},
 args: [],
 source: "isClass\x0a\x09^true",
 messageSends: [],
@@ -855,7 +855,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pkg;
-return self}, function($ctx1) {$ctx1.fill(self,"package", [], {}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package",{}, smalltalk.Class)})},
 args: [],
 source: "package\x0a\x09<return self.pkg>",
 messageSends: [],
@@ -871,7 +871,7 @@ category: 'accessing',
 fn: function (aPackage){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:", [aPackage], {}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.Class)})},
 args: ["aPackage"],
 source: "package: aPackage\x0a\x09<self.pkg = aPackage>",
 messageSends: [],
@@ -889,7 +889,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Class)})},
 args: [],
 source: "printString\x0a\x09^self name",
 messageSends: ["name"],
@@ -905,7 +905,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
-return self}, function($ctx1) {$ctx1.fill(self,"rename:", [aString], {}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString}, smalltalk.Class)})},
 args: ["aString"],
 source: "rename: aString\x0a\x09ClassBuilder new renameClass: self to: aString",
 messageSends: ["renameClass:to:", "new"],
@@ -923,7 +923,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:", [aString,anotherString], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString}, smalltalk.Class)})},
 args: ["aString", "anotherString"],
 source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for compatibility.\x22\x0a\x09^self subclass: aString instanceVariableNames: anotherString package: nil",
 messageSends: ["subclass:instanceVariableNames:package:"],
@@ -942,7 +942,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:", [aString,aString2,aString3], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
 args: ["aString", "aString2", "aString3"],
 source: "subclass: aString instanceVariableNames: aString2 category: aString3\x0a\x09\x22Kept for compatibility.\x22\x0a\x09self deprecatedAPI.\x0a\x09^self subclass: aString instanceVariableNames: aString2 package: aString3",
 messageSends: ["deprecatedAPI", "subclass:instanceVariableNames:package:"],
@@ -960,7 +960,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:", [aString,aString2,classVars,pools,aString3], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3:aString3}, smalltalk.Class)})},
 args: ["aString", "aString2", "classVars", "pools", "aString3"],
 source: "subclass: aString instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3\x0a\x09\x22Just ignore class variables and pools. Added for compatibility.\x22\x0a\x09^self subclass: aString instanceVariableNames: aString2 package: aString3",
 messageSends: ["subclass:instanceVariableNames:package:"],
@@ -978,7 +978,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:", [aString,aString2,aString3], {}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
 args: ["aString", "aString2", "aString3"],
 source: "subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09^ClassBuilder new\x0a\x09    superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3",
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"],
@@ -1000,7 +1000,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Metaclass)})},
 args: [],
 source: "asJavascript\x0a\x09^ 'smalltalk.', self instanceClass name, '.klass'",
 messageSends: [",", "name", "instanceClass"],
@@ -1024,13 +1024,13 @@ $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(each);
-}, function($ctx3) {$ctx3.fillBlock([each], {})})}),(function(){
+}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return _st(stream)._nextPutAll_("'");
-}, function($ctx2) {$ctx2.fillBlock([stream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Metaclass)})},
 args: [],
 source: "definition\x0a\x09^ String streamContents: [ :stream |\x0a\x09\x09stream \x0a\x09   \x09 \x09nextPutAll: self asString;\x0a\x09    \x09nextPutAll: ' class ';\x0a\x09    \x09nextPutAll: 'instanceVariableNames: '''.\x0a\x09\x09self instanceVariableNames\x0a\x09    \x09do: [ :each | stream nextPutAll: each ]\x0a\x09    \x09separatedBy: [ stream nextPutAll: ' ' ].\x0a\x09\x09stream nextPutAll: '''' ]",
 messageSends: ["streamContents:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames"],
@@ -1046,7 +1046,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.instanceClass;
-return self}, function($ctx1) {$ctx1.fill(self,"instanceClass", [], {}, smalltalk.Metaclass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceClass",{}, smalltalk.Metaclass)})},
 args: [],
 source: "instanceClass\x0a\x09<return self.instanceClass>",
 messageSends: [],
@@ -1062,7 +1062,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:", [aCollection], {}, smalltalk.Metaclass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection}, smalltalk.Metaclass)})},
 args: ["aCollection"],
 source: "instanceVariableNames: aCollection\x0a\x09ClassBuilder new\x0a\x09    class: self instanceVariableNames: aCollection",
 messageSends: ["class:instanceVariableNames:", "new"],
@@ -1078,7 +1078,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMetaclass", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{}, smalltalk.Metaclass)})},
 args: [],
 source: "isMetaclass\x0a\x09^true",
 messageSends: [],
@@ -1096,7 +1096,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Metaclass)})},
 args: [],
 source: "printString\x0a\x09^self instanceClass name, ' class'",
 messageSends: [",", "name", "instanceClass"],
@@ -1114,7 +1114,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Metaclass)})},
 args: [],
 source: "theMetaClass\x0a\x09^ self",
 messageSends: [],
@@ -1132,7 +1132,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._instanceClass();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass", [], {}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Metaclass)})},
 args: [],
 source: "theNonMetaClass\x0a\x09^ self instanceClass",
 messageSends: ["instanceClass"],
@@ -1153,7 +1153,7 @@ fn: function (aClass,aString,aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addClass(aString, aClass, aCollection);
 	    return smalltalk[aString];
-return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:", [aClass,aString,aCollection], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:",{aClass:aClass,aString:aString,aCollection:aCollection}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString", "aCollection"],
 source: "addSubclassOf: aClass named: aString instanceVariableNames: aCollection\x0a\x09<smalltalk.addClass(aString, aClass, aCollection);\x0a\x09    return smalltalk[aString]>",
 messageSends: [],
@@ -1170,7 +1170,7 @@ fn: function (aClass,aString,aCollection,packageName){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addClass(aString, aClass, aCollection, packageName);
 	    return smalltalk[aString];
-return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:", [aClass,aString,aCollection,packageName], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString", "aCollection", "packageName"],
 source: "addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<smalltalk.addClass(aString, aClass, aCollection, packageName);\x0a\x09    return smalltalk[aString]>",
 messageSends: [],
@@ -1192,7 +1192,7 @@ _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 };
 _st(aClass)._basicAt_put_("iVarNames",_st(self)._instanceVariableNamesFor_(aString));
 _st(self)._setupClass_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "basicClass: aClass instanceVariableNames: aString\x0a\x09aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass'].\x0a\x09aClass basicAt: 'iVarNames' put: (self instanceVariableNamesFor: aString).\x0a    \x0a\x09self setupClass: aClass",
 messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:", "instanceVariableNamesFor:", "setupClass:"],
@@ -1212,7 +1212,7 @@ return smalltalk.withContext(function($ctx1) {
 		delete smalltalk[aClass.className];
 		aClass.className = aString;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "basicRenameClass: aClass to: aString\x0a\x09<\x0a\x09\x09smalltalk[aString] = aClass;\x0a\x09\x09delete smalltalk[aClass.className];\x0a\x09\x09aClass.className = aString;\x0a\x09>",
 messageSends: [],
@@ -1233,7 +1233,7 @@ $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:", [aClass,aString], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "class: aClass instanceVariableNames: aString\x0a\x09self basicClass: aClass instanceVariableNames: aString.\x0a    \x0a    SystemAnnouncer current\x0a    \x09announce: (ClassDefinitionChanged new\x0a        \x09theClass: aClass;\x0a            yourself)",
 messageSends: ["basicClass:instanceVariableNames:", "announce:", "theClass:", "new", "yourself", "current"],
@@ -1254,14 +1254,14 @@ newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClas
 _st(self)._setupClass_(newClass);
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),newClass,_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(newClass)._class(),_st(each)._category());
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(newClass);
 $1=newClass;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"copyClass:named:", [aClass,aString], {newClass:newClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "copyClass: aClass named: aString\x0a\x09| newClass |\x0a\x0a\x09newClass := self \x0a\x09\x09addSubclassOf: aClass superclass\x0a\x09\x09named: aString \x0a\x09\x09instanceVariableNames: aClass instanceVariableNames \x0a\x09\x09package: aClass package name.\x0a\x0a\x09self setupClass: newClass.\x0a\x0a\x09aClass methodDictionary values do: [:each |\x0a\x09\x09Compiler new install: each source forClass: newClass category: each category].\x0a\x0a\x09aClass class methodDictionary values do: [:each |\x0a\x09\x09Compiler new install: each source forClass: newClass class category: each category].\x0a\x0a\x09self setupClass: newClass.\x0a\x09^newClass",
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "superclass", "instanceVariableNames", "name", "package", "setupClass:", "do:", "install:forClass:category:", "source", "category", "new", "values", "methodDictionary", "class"],
@@ -1279,9 +1279,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:", [aString], {}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aString"],
 source: "instanceVariableNamesFor: aString\x0a\x09^(aString tokenize: ' ') reject: [:each | each isEmpty]",
 messageSends: ["reject:", "isEmpty", "tokenize:"],
@@ -1302,7 +1302,7 @@ $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:", [aClass,aString], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "renameClass: aClass to: aString\x0a\x09self basicRenameClass: aClass to: aString.\x0a    \x0a    SystemAnnouncer current\x0a    \x09announce: (ClassRenamed new\x0a        \x09theClass: aClass;\x0a            yourself)\x0a    \x09",
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"],
@@ -1318,7 +1318,7 @@ category: 'class creation',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:", [aClass], {}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.ClassBuilder)})},
 args: ["aClass"],
 source: "setupClass: aClass\x0a\x09<smalltalk.init(aClass);>",
 messageSends: [],
@@ -1336,7 +1336,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:", [aClass,aString], {}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "superclass: aClass subclass: aString\x0a\x09^self superclass: aClass subclass: aString instanceVariableNames: '' package: nil",
 messageSends: ["superclass:subclass:instanceVariableNames:package:"],
@@ -1371,7 +1371,7 @@ $8=_st($7)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 $9=newClass;
 return $9;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:", [aClass,aString,aString2,aString3], {newClass:newClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:",{aClass:aClass,aString:aString,aString2:aString2,aString3:aString3,newClass:newClass}, smalltalk.ClassBuilder)})},
 args: ["aClass", "aString", "aString2", "aString3"],
 source: "superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09| newClass |\x0a\x09\x0a    newClass := self addSubclassOf: aClass\x0a\x09\x09named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)\x0a\x09\x09package: (aString3 ifNil: ['unclassified']).\x0a\x09self setupClass: newClass.\x0a    \x0a    SystemAnnouncer current \x0a    \x09announce: (ClassAdded new\x0a        \x09theClass: newClass;\x0a            yourself).\x0a    \x0a\x09^newClass",
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
@@ -1392,7 +1392,7 @@ fn: function (aClass,aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 self["@category"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"class:category:", [aClass,aString], {}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString}, smalltalk.ClassCategoryReader)})},
 args: ["aClass", "aString"],
 source: "class: aClass category: aString\x0a\x09class := aClass.\x0a\x09category := aString",
 messageSends: [],
@@ -1408,7 +1408,7 @@ category: 'private',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
-return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:", [aString], {}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString}, smalltalk.ClassCategoryReader)})},
 args: ["aString"],
 source: "compileMethod: aString\x0a\x09Compiler new install: aString forClass: class category: category",
 messageSends: ["install:forClass:category:", "new"],
@@ -1425,7 +1425,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09chunkParser := ChunkParser new.",
 messageSends: ["initialize", "new"],
@@ -1445,11 +1445,11 @@ return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
 return _st(chunk)._isEmpty();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._whileFalse_((function(){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st((smalltalk.Compiler || Compiler))._new())._setupClass_(self["@class"]);
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})},
 args: ["aChunkParser"],
 source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09[chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty] whileFalse: [\x0a\x09    self compileMethod: chunk].\x0a\x09Compiler new setupClass: class",
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"],
@@ -1469,7 +1469,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"class:", [aClass], {}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})},
 args: ["aClass"],
 source: "class: aClass\x0a\x09class := aClass",
 messageSends: [],
@@ -1486,7 +1486,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@chunkParser"]=_st((smalltalk.ChunkParser || ChunkParser))._new();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09chunkParser := ChunkParser new.",
 messageSends: ["initialize", "new"],
@@ -1508,7 +1508,7 @@ $1=_st(chunk)._isEmpty();
 if(! smalltalk.assert($1)){
 _st(self)._setComment_(chunk);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:", [aChunkParser], {chunk:chunk}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})},
 args: ["aChunkParser"],
 source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty ifFalse: [\x0a\x09    self setComment: chunk].",
 messageSends: ["nextChunk", "ifFalse:", "setComment:", "isEmpty"],
@@ -1524,7 +1524,7 @@ category: 'private',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"setComment:", [aString], {}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})},
 args: ["aString"],
 source: "setComment: aString\x0a    class comment: aString",
 messageSends: ["comment:"],
@@ -1554,12 +1554,12 @@ return _st(children)._add_(each);
 } else {
 return _st(others)._add_(each);
 };
-}, function($ctx2) {$ctx2.fillBlock([each], {})})});
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
 _st($1)._do_($2);
 self["@nodes"]=_st(children)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,_st(_st(self)._level()).__plus((1)));
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:", [aCollection], {children:children,others:others}, smalltalk.ClassSorterNode)})},
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})},
 args: ["aCollection"],
 source: "getNodesFrom: aCollection\x0a\x09| children others |\x0a\x09children := #().\x0a\x09others := #().\x0a\x09aCollection do: [:each |\x0a\x09\x09(each superclass = self theClass)\x0a\x09\x09\x09ifTrue: [children add: each]\x0a\x09\x09\x09ifFalse: [others add: each]].\x0a\x09nodes:= children collect: [:each |\x0a\x09\x09ClassSorterNode on: each classes: others level: self level + 1]",
 messageSends: ["do:", "ifTrue:ifFalse:", "add:", "=", "theClass", "superclass", "collect:", "on:classes:level:", "+", "level"],
@@ -1577,7 +1577,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@level"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"level", [], {}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})},
 args: [],
 source: "level\x0a\x09^level",
 messageSends: [],
@@ -1593,7 +1593,7 @@ category: 'accessing',
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"level:", [anInteger], {}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})},
 args: ["anInteger"],
 source: "level: anInteger\x0a\x09level := anInteger",
 messageSends: [],
@@ -1611,7 +1611,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@nodes"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes", [], {}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})},
 args: [],
 source: "nodes\x0a\x09^nodes",
 messageSends: [],
@@ -1629,7 +1629,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass", [], {}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})},
 args: [],
 source: "theClass\x0a\x09^theClass",
 messageSends: [],
@@ -1645,7 +1645,7 @@ category: 'accessing',
 fn: function (aClass){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:", [aClass], {}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})},
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
@@ -1663,10 +1663,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aCollection)._add_(_st(self)._theClass());
 _st(_st(_st(self)._nodes())._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
-}, function($ctx2) {$ctx2.fillBlock([a,b], {})})})))._do_((function(aNode){
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(aNode){
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(aCollection);
-}, function($ctx2) {$ctx2.fillBlock([aNode], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:", [aCollection], {}, smalltalk.ClassSorterNode)})},
+}, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})},
 args: ["aCollection"],
 source: "traverseClassesWith: aCollection\x0a\x09\x22sort classes alphabetically Issue #143\x22\x0a\x0a\x09aCollection add: self theClass.\x0a\x09(self nodes sorted: [:a :b | a theClass name <= b theClass name ]) do: [:aNode |\x0a\x09\x09aNode traverseClassesWith: aCollection ].",
 messageSends: ["add:", "theClass", "do:", "traverseClassesWith:", "sorted:", "<=", "name", "nodes"],
@@ -1690,7 +1690,7 @@ _st($2)._getNodesFrom_(aCollection);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:classes:level:", [aClass,aCollection,anInteger], {}, smalltalk.ClassSorterNode.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger}, smalltalk.ClassSorterNode.klass)})},
 args: ["aClass", "aCollection", "anInteger"],
 source: "on: aClass classes: aCollection level: anInteger\x0a\x09^self new\x0a\x09\x09theClass: aClass;\x0a\x09\x09level: anInteger;\x0a\x09\x09getNodesFrom: aCollection;\x0a\x09\x09yourself",
 messageSends: ["theClass:", "new", "level:", "getNodesFrom:", "yourself"],

File diff suppressed because it is too large
+ 136 - 136
js/Kernel-Collections.deploy.js


File diff suppressed because it is too large
+ 136 - 136
js/Kernel-Collections.js


+ 26 - 26
js/Kernel-Exceptions.deploy.js

@@ -7,7 +7,7 @@ selector: "context",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.context;
-return self}, function($ctx1) {$ctx1.fill(self,"context", [], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -18,7 +18,7 @@ selector: "isSmalltalkError",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.smalltalkError === true;
-return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkError", [], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkError",{}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -29,7 +29,7 @@ selector: "jsStack",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.stack;
-return self}, function($ctx1) {$ctx1.fill(self,"jsStack", [], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"jsStack",{}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -42,7 +42,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageText"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.Error)})}
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -53,7 +53,7 @@ selector: "messageText:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"messageText:", [aString], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -64,7 +64,7 @@ selector: "signal",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
-return self}, function($ctx1) {$ctx1.fill(self,"signal", [], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -76,7 +76,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 _st(self)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signal:", [aString], {}, smalltalk.Error)})}
+return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error)})}
 }),
 smalltalk.Error);
 
@@ -90,7 +90,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal", [], {}, smalltalk.Error.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error.klass)})}
 }),
 smalltalk.Error.klass);
 
@@ -103,7 +103,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal:", [aString], {}, smalltalk.Error.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error.klass)})}
 }),
 smalltalk.Error.klass);
 
@@ -118,7 +118,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@message"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"message", [], {}, smalltalk.MessageNotUnderstood)})}
+}, function($ctx1) {$ctx1.fill(self,"message",{}, smalltalk.MessageNotUnderstood)})}
 }),
 smalltalk.MessageNotUnderstood);
 
@@ -129,7 +129,7 @@ selector: "message:",
 fn: function (aMessage){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
-return self}, function($ctx1) {$ctx1.fill(self,"message:", [aMessage], {}, smalltalk.MessageNotUnderstood)})}
+return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage}, smalltalk.MessageNotUnderstood)})}
 }),
 smalltalk.MessageNotUnderstood);
 
@@ -142,7 +142,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._receiver())._asString()).__comma(" does not understand #")).__comma(_st(_st(self)._message())._selector());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.MessageNotUnderstood)})}
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.MessageNotUnderstood)})}
 }),
 smalltalk.MessageNotUnderstood);
 
@@ -155,7 +155,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.MessageNotUnderstood)})}
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MessageNotUnderstood)})}
 }),
 smalltalk.MessageNotUnderstood);
 
@@ -166,7 +166,7 @@ selector: "receiver:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [anObject], {}, smalltalk.MessageNotUnderstood)})}
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.MessageNotUnderstood)})}
 }),
 smalltalk.MessageNotUnderstood);
 
@@ -182,7 +182,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@object"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"object", [], {}, smalltalk.NonBooleanReceiver)})}
+}, function($ctx1) {$ctx1.fill(self,"object",{}, smalltalk.NonBooleanReceiver)})}
 }),
 smalltalk.NonBooleanReceiver);
 
@@ -193,7 +193,7 @@ selector: "object:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"object:", [anObject], {}, smalltalk.NonBooleanReceiver)})}
+return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject}, smalltalk.NonBooleanReceiver)})}
 }),
 smalltalk.NonBooleanReceiver);
 
@@ -214,7 +214,7 @@ $1;
 _st(self)._logErrorContext_(_st(anError)._context());
 };
 _st(self)._logError_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:", [anError], {}, smalltalk.ErrorHandler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.ErrorHandler)})}
 }),
 smalltalk.ErrorHandler);
 
@@ -225,7 +225,7 @@ selector: "log:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"log:", [aString], {}, smalltalk.ErrorHandler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString}, smalltalk.ErrorHandler)})}
 }),
 smalltalk.ErrorHandler);
 
@@ -243,7 +243,7 @@ $1;
 _st(self)._logContext_(_st(aContext)._home());
 };
 _st(self)._log_(_st(_st(_st(_st(aContext)._receiver())._asString()).__comma(">>")).__comma(_st(_st(aContext)._selector())._asString()));
-return self}, function($ctx1) {$ctx1.fill(self,"logContext:", [aContext], {}, smalltalk.ErrorHandler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"logContext:",{aContext:aContext}, smalltalk.ErrorHandler)})}
 }),
 smalltalk.ErrorHandler);
 
@@ -254,7 +254,7 @@ selector: "logError:",
 fn: function (anError){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
-return self}, function($ctx1) {$ctx1.fill(self,"logError:", [anError], {}, smalltalk.ErrorHandler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError}, smalltalk.ErrorHandler)})}
 }),
 smalltalk.ErrorHandler);
 
@@ -273,9 +273,9 @@ return $3;
 } else {
 return _st(self)._logContext_(_st(aContext)._home());
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotNil_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:", [aContext], {}, smalltalk.ErrorHandler)})}
+return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext}, smalltalk.ErrorHandler)})}
 }),
 smalltalk.ErrorHandler);
 
@@ -296,7 +296,7 @@ $1=self["@current"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.ErrorHandler.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.ErrorHandler.klass)})}
 }),
 smalltalk.ErrorHandler.klass);
 
@@ -307,7 +307,7 @@ selector: "initialize",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._register();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ErrorHandler.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ErrorHandler.klass)})}
 }),
 smalltalk.ErrorHandler.klass);
 
@@ -318,7 +318,7 @@ selector: "register",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.ErrorHandler || ErrorHandler))._setCurrent_(_st(self)._new());
-return self}, function($ctx1) {$ctx1.fill(self,"register", [], {}, smalltalk.ErrorHandler.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"register",{}, smalltalk.ErrorHandler.klass)})}
 }),
 smalltalk.ErrorHandler.klass);
 
@@ -329,7 +329,7 @@ selector: "setCurrent:",
 fn: function (anHandler){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
-return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:", [anHandler], {}, smalltalk.ErrorHandler.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler}, smalltalk.ErrorHandler.klass)})}
 }),
 smalltalk.ErrorHandler.klass);
 

+ 26 - 26
js/Kernel-Exceptions.js

@@ -8,7 +8,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.context;
-return self}, function($ctx1) {$ctx1.fill(self,"context", [], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.Error)})},
 args: [],
 source: "context\x0a\x09<return self.context>",
 messageSends: [],
@@ -24,7 +24,7 @@ category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.smalltalkError === true;
-return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkError", [], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkError",{}, smalltalk.Error)})},
 args: [],
 source: "isSmalltalkError\x0a\x09<return self.smalltalkError === true>",
 messageSends: [],
@@ -40,7 +40,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.stack;
-return self}, function($ctx1) {$ctx1.fill(self,"jsStack", [], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"jsStack",{}, smalltalk.Error)})},
 args: [],
 source: "jsStack\x0a\x09<return self.stack>",
 messageSends: [],
@@ -58,7 +58,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageText"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.Error)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.Error)})},
 args: [],
 source: "messageText\x0a\x09^messageText",
 messageSends: [],
@@ -74,7 +74,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"messageText:", [aString], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString}, smalltalk.Error)})},
 args: ["aString"],
 source: "messageText: aString\x0a\x09messageText := aString",
 messageSends: [],
@@ -90,7 +90,7 @@ category: 'signaling',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
-return self}, function($ctx1) {$ctx1.fill(self,"signal", [], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error)})},
 args: [],
 source: "signal\x0a\x09<self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self)>",
 messageSends: [],
@@ -107,7 +107,7 @@ fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 _st(self)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signal:", [aString], {}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error)})},
 args: ["aString"],
 source: "signal: aString\x0a\x09self messageText: aString.\x0a\x09self signal",
 messageSends: ["messageText:", "signal"],
@@ -126,7 +126,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal", [], {}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error.klass)})},
 args: [],
 source: "signal\x0a\x09^self new signal",
 messageSends: ["signal", "new"],
@@ -144,7 +144,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal_(aString);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal:", [aString], {}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error.klass)})},
 args: ["aString"],
 source: "signal: aString\x0a\x09    ^self new\x0a\x09\x09signal: aString",
 messageSends: ["signal:", "new"],
@@ -164,7 +164,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@message"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"message", [], {}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"message",{}, smalltalk.MessageNotUnderstood)})},
 args: [],
 source: "message\x0a\x09^message",
 messageSends: [],
@@ -180,7 +180,7 @@ category: 'accessing',
 fn: function (aMessage){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
-return self}, function($ctx1) {$ctx1.fill(self,"message:", [aMessage], {}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage}, smalltalk.MessageNotUnderstood)})},
 args: ["aMessage"],
 source: "message: aMessage\x0a\x09message := aMessage",
 messageSends: [],
@@ -198,7 +198,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._receiver())._asString()).__comma(" does not understand #")).__comma(_st(_st(self)._message())._selector());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText", [], {}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.MessageNotUnderstood)})},
 args: [],
 source: "messageText\x0a\x09^self receiver asString, ' does not understand #', self message selector",
 messageSends: [",", "selector", "message", "asString", "receiver"],
@@ -216,7 +216,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MessageNotUnderstood)})},
 args: [],
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
@@ -232,7 +232,7 @@ category: 'accessing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:", [anObject], {}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.MessageNotUnderstood)})},
 args: ["anObject"],
 source: "receiver: anObject\x0a\x09receiver := anObject",
 messageSends: [],
@@ -253,7 +253,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@object"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"object", [], {}, smalltalk.NonBooleanReceiver)})},
+}, function($ctx1) {$ctx1.fill(self,"object",{}, smalltalk.NonBooleanReceiver)})},
 args: [],
 source: "object\x0a\x09^ object",
 messageSends: [],
@@ -269,7 +269,7 @@ category: 'accessing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"object:", [anObject], {}, smalltalk.NonBooleanReceiver)})},
+return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject}, smalltalk.NonBooleanReceiver)})},
 args: ["anObject"],
 source: "object: anObject\x0a\x09object := anObject",
 messageSends: [],
@@ -295,7 +295,7 @@ $1;
 _st(self)._logErrorContext_(_st(anError)._context());
 };
 _st(self)._logError_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:", [anError], {}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.ErrorHandler)})},
 args: ["anError"],
 source: "handleError: anError\x0a\x09anError context ifNotNil: [self logErrorContext: anError context].\x0a\x09self logError: anError",
 messageSends: ["ifNotNil:", "logErrorContext:", "context", "logError:"],
@@ -311,7 +311,7 @@ category: 'private',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"log:", [aString], {}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString}, smalltalk.ErrorHandler)})},
 args: ["aString"],
 source: "log: aString\x0a\x09console log: aString",
 messageSends: ["log:"],
@@ -334,7 +334,7 @@ $1;
 _st(self)._logContext_(_st(aContext)._home());
 };
 _st(self)._log_(_st(_st(_st(_st(aContext)._receiver())._asString()).__comma(">>")).__comma(_st(_st(aContext)._selector())._asString()));
-return self}, function($ctx1) {$ctx1.fill(self,"logContext:", [aContext], {}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logContext:",{aContext:aContext}, smalltalk.ErrorHandler)})},
 args: ["aContext"],
 source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home].\x0a\x09self log: aContext receiver asString, '>>', aContext selector asString\x0a",
 messageSends: ["ifNotNil:", "logContext:", "home", "log:", ",", "asString", "selector", "receiver"],
@@ -350,7 +350,7 @@ category: 'private',
 fn: function (anError){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
-return self}, function($ctx1) {$ctx1.fill(self,"logError:", [anError], {}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError}, smalltalk.ErrorHandler)})},
 args: ["anError"],
 source: "logError: anError\x0a\x09self log: anError messageText",
 messageSends: ["log:", "messageText"],
@@ -374,9 +374,9 @@ return $3;
 } else {
 return _st(self)._logContext_(_st(aContext)._home());
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ifNotNil_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:", [aContext], {}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext}, smalltalk.ErrorHandler)})},
 args: ["aContext"],
 source: "logErrorContext: aContext\x0a\x09aContext ifNotNil: [\x0a\x09\x09aContext home ifNotNil: [\x0a\x09\x09\x09self logContext: aContext home]]",
 messageSends: ["ifNotNil:", "logContext:", "home"],
@@ -402,7 +402,7 @@ $1=self["@current"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.ErrorHandler.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.ErrorHandler.klass)})},
 args: [],
 source: "current\x0a\x09^current ifNil: [current := self new]",
 messageSends: ["ifNil:", "new"],
@@ -418,7 +418,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._register();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ErrorHandler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ErrorHandler.klass)})},
 args: [],
 source: "initialize\x0a\x09self register",
 messageSends: ["register"],
@@ -434,7 +434,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.ErrorHandler || ErrorHandler))._setCurrent_(_st(self)._new());
-return self}, function($ctx1) {$ctx1.fill(self,"register", [], {}, smalltalk.ErrorHandler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"register",{}, smalltalk.ErrorHandler.klass)})},
 args: [],
 source: "register\x0a\x09ErrorHandler setCurrent: self new",
 messageSends: ["setCurrent:", "new"],
@@ -450,7 +450,7 @@ category: 'accessing',
 fn: function (anHandler){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
-return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:", [anHandler], {}, smalltalk.ErrorHandler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler}, smalltalk.ErrorHandler.klass)})},
 args: ["anHandler"],
 source: "setCurrent: anHandler\x0a\x09current := anHandler",
 messageSends: [],

+ 74 - 85
js/Kernel-Methods.deploy.js

@@ -7,7 +7,7 @@ selector: "applyTo:arguments:",
 fn: function (anObject,aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:", [anObject,aCollection], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -18,7 +18,7 @@ selector: "compiledSource",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.toString();
-return self}, function($ctx1) {$ctx1.fill(self,"compiledSource", [], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"compiledSource",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -29,7 +29,7 @@ selector: "ensure:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
-return self}, function($ctx1) {$ctx1.fill(self,"ensure:", [aBlock], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -40,7 +40,7 @@ selector: "fork",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ForkPool || ForkPool))._default())._fork_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"fork", [], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"fork",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -51,7 +51,7 @@ selector: "new",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -62,7 +62,7 @@ selector: "newValue:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:", [anObject], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -73,7 +73,7 @@ selector: "newValue:value:",
 fn: function (anObject,anObject2){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:", [anObject,anObject2], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -84,7 +84,7 @@ selector: "newValue:value:value:",
 fn: function (anObject,anObject2,anObject3){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:", [anObject,anObject2,anObject3], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:",{anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -95,7 +95,7 @@ selector: "numArgs",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.length;
-return self}, function($ctx1) {$ctx1.fill(self,"numArgs", [], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"numArgs",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -115,10 +115,10 @@ return _st(aBlock)._value_(error);
 } else {
 return _st(error)._signal();
 };
-}, function($ctx2) {$ctx2.fillBlock([error], {})})});
+}, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1)})});
 $1=_st($2)._try_catch_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:do:", [anErrorClass,aBlock], {}, smalltalk.BlockClosure)})}
+}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -131,7 +131,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timeToRun", [], {}, smalltalk.BlockClosure)})}
+}, function($ctx1) {$ctx1.fill(self,"timeToRun",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -142,7 +142,7 @@ selector: "value",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self();;
-return self}, function($ctx1) {$ctx1.fill(self,"value", [], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -153,7 +153,7 @@ selector: "value:",
 fn: function (anArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:", [anArg], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -164,7 +164,7 @@ selector: "value:value:",
 fn: function (firstArg,secondArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:", [firstArg,secondArg], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -175,7 +175,7 @@ selector: "value:value:value:",
 fn: function (firstArg,secondArg,thirdArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:", [firstArg,secondArg,thirdArg], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg:thirdArg}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -189,7 +189,7 @@ return smalltalk.withContext(function($ctx1) {
     	var interval = setInterval(self, aNumber);
     	return smalltalk.Timeout._on_(interval);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:", [aNumber], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -200,7 +200,7 @@ selector: "valueWithPossibleArguments:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:", [aCollection], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -214,7 +214,7 @@ return smalltalk.withContext(function($ctx1) {
     	var timeout = setTimeout(self, aNumber);
     	return smalltalk.Timeout._on_(timeout);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:", [aNumber], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -225,8 +225,8 @@ selector: "whileFalse",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse", [], {}, smalltalk.BlockClosure)})}
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -237,7 +237,7 @@ selector: "whileFalse:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:", [aBlock], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -248,8 +248,8 @@ selector: "whileTrue",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue", [], {}, smalltalk.BlockClosure)})}
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -260,7 +260,7 @@ selector: "whileTrue:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:", [aBlock], {}, smalltalk.BlockClosure)})}
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock}, smalltalk.BlockClosure)})}
 }),
 smalltalk.BlockClosure);
 
@@ -274,7 +274,7 @@ selector: "arguments",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.args || [];
-return self}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.CompiledMethod)})}
+return self}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -292,7 +292,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -313,11 +313,11 @@ $1;
 _st(_st(_st(self)._methodClass())._organization())._addElement_(aString);
 _st(_st(_st(_st(self)._methodClass())._methods())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._category()).__eq(oldCategory);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})))._ifEmpty_((function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._ifEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"category:", [aString], {oldCategory:oldCategory}, smalltalk.CompiledMethod)})}
+return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -330,7 +330,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("fn");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fn", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"fn",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -341,7 +341,7 @@ selector: "fn:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fn:", [aBlock], {}, smalltalk.CompiledMethod)})}
+return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -354,7 +354,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("messageSends");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -367,7 +367,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("methodClass");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodClass", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"methodClass",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -380,7 +380,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._category();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -393,7 +393,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("referencedClasses");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"referencedClasses", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -406,7 +406,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("selector");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -417,7 +417,7 @@ selector: "selector:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.CompiledMethod)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -435,7 +435,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.CompiledMethod)})}
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -446,7 +446,7 @@ selector: "source:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.CompiledMethod)})}
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.CompiledMethod)})}
 }),
 smalltalk.CompiledMethod);
 
@@ -461,7 +461,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 self["@poolSize"]=_st(self["@poolSize"]).__plus((1));
-return self}, function($ctx1) {$ctx1.fill(self,"addWorker", [], {}, smalltalk.ForkPool)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addWorker",{}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -474,7 +474,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize", [], {}, smalltalk.ForkPool)})}
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -490,7 +490,7 @@ if(smalltalk.assert($1)){
 _st(self)._addWorker();
 };
 _st(self["@queue"])._back_(aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fork:", [aBlock], {}, smalltalk.ForkPool)})}
+return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -504,7 +504,7 @@ return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._i
 self["@poolSize"]=(0);
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@worker"]=_st(self)._makeWorker();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ForkPool)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -523,19 +523,19 @@ return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@pool
 self["@poolSize"];
 block=_st(self["@queue"])._frontIfAbsent_((function(){
 return smalltalk.withContext(function($ctx3) {
return sentinel;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 block;
 $2=_st(block).__eq_eq(sentinel);
 if(! smalltalk.assert($2)){
 return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(block)._value();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._ensure_((function(){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._ensure_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addWorker();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 };
-}, function($ctx2) {$ctx2.fillBlock([], {block:block})})});
+}, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"makeWorker", [], {sentinel:sentinel}, smalltalk.ForkPool)})}
+}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -553,7 +553,7 @@ $1=_st(self)._defaultMaxPoolSize();
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"maxPoolSize", [], {}, smalltalk.ForkPool)})}
+}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -564,7 +564,7 @@ selector: "maxPoolSize:",
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:", [anInteger], {}, smalltalk.ForkPool)})}
+return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger}, smalltalk.ForkPool)})}
 }),
 smalltalk.ForkPool);
 
@@ -585,7 +585,7 @@ $1=self["@default"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"default", [], {}, smalltalk.ForkPool.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"default",{}, smalltalk.ForkPool.klass)})}
 }),
 smalltalk.ForkPool.klass);
 
@@ -596,7 +596,7 @@ selector: "defaultMaxPoolSize",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (100);
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize", [], {}, smalltalk.ForkPool.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool.klass)})}
 }),
 smalltalk.ForkPool.klass);
 
@@ -607,7 +607,7 @@ selector: "resetDefault",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@default"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"resetDefault", [], {}, smalltalk.ForkPool.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"resetDefault",{}, smalltalk.ForkPool.klass)})}
 }),
 smalltalk.ForkPool.klass);
 
@@ -622,7 +622,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@arguments"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.Message)})}
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -633,7 +633,7 @@ selector: "arguments:",
 fn: function (anArray){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [anArray], {}, smalltalk.Message)})}
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -651,9 +651,9 @@ _st($2)._nextPutAll_("(");
 _st($2)._nextPutAll_(self["@selector"]);
 $3=_st($2)._nextPutAll_(")");
 return $3;
-}, function($ctx2) {$ctx2.fillBlock([aStream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Message)})}
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -666,7 +666,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.Message)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -677,7 +677,7 @@ selector: "selector:",
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.Message)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -690,7 +690,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendTo:", [anObject], {}, smalltalk.Message)})}
+}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject}, smalltalk.Message)})}
 }),
 smalltalk.Message);
 
@@ -708,23 +708,12 @@ _st($2)._arguments_(anArray);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:arguments:", [aString,anArray], {}, smalltalk.Message.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray}, smalltalk.Message.klass)})}
 }),
 smalltalk.Message.klass);
 
 
 smalltalk.addClass('MethodContext', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.addMethod(
-"_arguments",
-smalltalk.method({
-selector: "arguments",
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self.args;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.MethodContext)})}
-}),
-smalltalk.MethodContext);
-
 smalltalk.addMethod(
 "_asString",
 smalltalk.method({
@@ -739,7 +728,7 @@ $1=_st(_st("a block (in ").__comma(_st(_st(self)._methodContext())._asString()))
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asString", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"asString",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -750,7 +739,7 @@ selector: "home",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.methodContext || self.homeContext;
-return self}, function($ctx1) {$ctx1.fill(self,"home", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"home",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -763,7 +752,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._selector())._isNil();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockContext", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -774,7 +763,7 @@ selector: "locals",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.locals;
-return self}, function($ctx1) {$ctx1.fill(self,"locals", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -787,7 +776,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -805,7 +794,7 @@ return $2;
 };
 $3=_st(self)._home();
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"methodContext", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"methodContext",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -816,7 +805,7 @@ selector: "outerContext",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.homeContext;
-return self}, function($ctx1) {$ctx1.fill(self,"outerContext", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -827,7 +816,7 @@ selector: "pc",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pc;
-return self}, function($ctx1) {$ctx1.fill(self,"pc", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -840,7 +829,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(smalltalk.Object.fn.prototype._printString.apply(_st(self), [])).__comma("(")).__comma(_st(self)._asString())).__comma(")");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -851,7 +840,7 @@ selector: "receiver",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.receiver;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -868,7 +857,7 @@ return smalltalk.withContext(function($ctx1) {
         	return nil;
         }
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.MethodContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 
@@ -882,7 +871,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 $1=_st(self)._locals();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.MethodContext)})}
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.MethodContext)})}
 }),
 smalltalk.MethodContext);
 

+ 74 - 90
js/Kernel-Methods.js

@@ -9,7 +9,7 @@ category: 'evaluating',
 fn: function (anObject,aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:", [anObject,aCollection], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection}, smalltalk.BlockClosure)})},
 args: ["anObject", "aCollection"],
 source: "applyTo: anObject arguments: aCollection\x0a\x09<return self.apply(anObject, aCollection)>",
 messageSends: [],
@@ -25,7 +25,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.toString();
-return self}, function($ctx1) {$ctx1.fill(self,"compiledSource", [], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compiledSource",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "compiledSource\x0a\x09<return self.toString()>",
 messageSends: [],
@@ -41,7 +41,7 @@ category: 'evaluating',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
-return self}, function($ctx1) {$ctx1.fill(self,"ensure:", [aBlock], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
 args: ["aBlock"],
 source: "ensure: aBlock\x0a\x09<try{return self()}finally{aBlock._value()}>",
 messageSends: [],
@@ -57,7 +57,7 @@ category: 'timeout/interval',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ForkPool || ForkPool))._default())._fork_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"fork", [], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fork",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "fork\x0a\x09ForkPool default fork: self",
 messageSends: ["fork:", "default"],
@@ -73,7 +73,7 @@ category: 'evaluating',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "new\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self()>",
 messageSends: [],
@@ -89,7 +89,7 @@ category: 'evaluating',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:", [anObject], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject}, smalltalk.BlockClosure)})},
 args: ["anObject"],
 source: "newValue: anObject\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject)>",
 messageSends: [],
@@ -105,7 +105,7 @@ category: 'evaluating',
 fn: function (anObject,anObject2){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:", [anObject,anObject2], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2}, smalltalk.BlockClosure)})},
 args: ["anObject", "anObject2"],
 source: "newValue:  anObject value: anObject2\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject, anObject2)>",
 messageSends: [],
@@ -121,7 +121,7 @@ category: 'evaluating',
 fn: function (anObject,anObject2,anObject3){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:", [anObject,anObject2,anObject3], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:",{anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.BlockClosure)})},
 args: ["anObject", "anObject2", "anObject3"],
 source: "newValue:  anObject value: anObject2 value: anObject3\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject, anObject2)>",
 messageSends: [],
@@ -137,7 +137,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.length;
-return self}, function($ctx1) {$ctx1.fill(self,"numArgs", [], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"numArgs",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "numArgs\x0a\x09<return self.length>",
 messageSends: [],
@@ -162,10 +162,10 @@ return _st(aBlock)._value_(error);
 } else {
 return _st(error)._signal();
 };
-}, function($ctx2) {$ctx2.fillBlock([error], {})})});
+}, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1)})});
 $1=_st($2)._try_catch_($3,$4);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:do:", [anErrorClass,aBlock], {}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock}, smalltalk.BlockClosure)})},
 args: ["anErrorClass", "aBlock"],
 source: "on: anErrorClass do: aBlock\x0a\x09^self try: self catch: [:error |\x0a\x09    (error isKindOf: anErrorClass) \x0a\x09     ifTrue: [aBlock value: error]\x0a\x09     ifFalse: [error signal]]",
 messageSends: ["try:catch:", "ifTrue:ifFalse:", "value:", "signal", "isKindOf:"],
@@ -183,7 +183,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timeToRun", [], {}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"timeToRun",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "timeToRun\x0a\x09\x22Answer the number of milliseconds taken to execute this block.\x22\x0a\x0a\x09^ Date millisecondsToRun: self",
 messageSends: ["millisecondsToRun:"],
@@ -199,7 +199,7 @@ category: 'evaluating',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self();;
-return self}, function($ctx1) {$ctx1.fill(self,"value", [], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "value\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self();>",
 messageSends: [],
@@ -215,7 +215,7 @@ category: 'evaluating',
 fn: function (anArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:", [anArg], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg}, smalltalk.BlockClosure)})},
 args: ["anArg"],
 source: "value: anArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(anArg);>",
 messageSends: [],
@@ -231,7 +231,7 @@ category: 'evaluating',
 fn: function (firstArg,secondArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:", [firstArg,secondArg], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg}, smalltalk.BlockClosure)})},
 args: ["firstArg", "secondArg"],
 source: "value: firstArg value: secondArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg);>",
 messageSends: [],
@@ -247,7 +247,7 @@ category: 'evaluating',
 fn: function (firstArg,secondArg,thirdArg){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:", [firstArg,secondArg,thirdArg], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg:thirdArg}, smalltalk.BlockClosure)})},
 args: ["firstArg", "secondArg", "thirdArg"],
 source: "value: firstArg value: secondArg value: thirdArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg, thirdArg);>",
 messageSends: [],
@@ -266,7 +266,7 @@ return smalltalk.withContext(function($ctx1) {
     	var interval = setInterval(self, aNumber);
     	return smalltalk.Timeout._on_(interval);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:", [aNumber], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
 args: ["aNumber"],
 source: "valueWithInterval: aNumber\x0a\x09<\x0a    \x09var interval = setInterval(self, aNumber);\x0a    \x09return smalltalk.Timeout._on_(interval);\x0a    >",
 messageSends: [],
@@ -282,7 +282,7 @@ category: 'evaluating',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:", [aCollection], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection}, smalltalk.BlockClosure)})},
 args: ["aCollection"],
 source: "valueWithPossibleArguments: aCollection\x0a\x09<return self.apply(null, aCollection);>",
 messageSends: [],
@@ -301,7 +301,7 @@ return smalltalk.withContext(function($ctx1) {
     	var timeout = setTimeout(self, aNumber);
     	return smalltalk.Timeout._on_(timeout);
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:", [aNumber], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
 args: ["aNumber"],
 source: "valueWithTimeout: aNumber\x0a\x09<\x0a    \x09var timeout = setTimeout(self, aNumber);\x0a    \x09return smalltalk.Timeout._on_(timeout);\x0a    >",
 messageSends: [],
@@ -317,8 +317,8 @@ category: 'controlling',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse", [], {}, smalltalk.BlockClosure)})},
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "whileFalse\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileFalse: []",
 messageSends: ["whileFalse:"],
@@ -334,7 +334,7 @@ category: 'controlling',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:", [aBlock], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
 args: ["aBlock"],
 source: "whileFalse: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(!self()) {aBlock()}>",
 messageSends: [],
@@ -350,8 +350,8 @@ category: 'controlling',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
-return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue", [], {}, smalltalk.BlockClosure)})},
+return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{}, smalltalk.BlockClosure)})},
 args: [],
 source: "whileTrue\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileTrue: []",
 messageSends: ["whileTrue:"],
@@ -367,7 +367,7 @@ category: 'controlling',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:", [aBlock], {}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
 args: ["aBlock"],
 source: "whileTrue: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(self()) {aBlock()}>",
 messageSends: [],
@@ -387,7 +387,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.args || [];
-return self}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "arguments\x0a\x09<return self.args || []>",
 messageSends: [],
@@ -410,7 +410,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "category\x0a\x09^(self basicAt: 'category') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
@@ -436,11 +436,11 @@ $1;
 _st(_st(_st(self)._methodClass())._organization())._addElement_(aString);
 _st(_st(_st(_st(self)._methodClass())._methods())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._category()).__eq(oldCategory);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})))._ifEmpty_((function(){
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._ifEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"category:", [aString], {oldCategory:oldCategory}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory}, smalltalk.CompiledMethod)})},
 args: ["aString"],
 source: "category: aString\x0a\x09| oldCategory |\x0a    oldCategory := self category.\x0a\x09self basicAt: 'category' put: aString.\x0a    \x0a    self methodClass ifNotNil: [\x0a    \x09self methodClass organization addElement: aString.\x0a    \x0a\x09\x09(self methodClass methods \x0a    \x09\x09select: [ :each | each category = oldCategory ])\x0a        \x09ifEmpty: [ self methodClass organization removeElement: oldCategory ] ]",
 messageSends: ["category", "basicAt:put:", "ifNotNil:", "addElement:", "organization", "methodClass", "ifEmpty:", "removeElement:", "select:", "=", "methods"],
@@ -458,7 +458,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("fn");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fn", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"fn",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "fn\x0a\x09^self basicAt: 'fn'",
 messageSends: ["basicAt:"],
@@ -474,7 +474,7 @@ category: 'accessing',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fn:", [aBlock], {}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock}, smalltalk.CompiledMethod)})},
 args: ["aBlock"],
 source: "fn: aBlock\x0a\x09self basicAt: 'fn' put: aBlock",
 messageSends: ["basicAt:put:"],
@@ -492,7 +492,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("messageSends");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "messageSends\x0a\x09^self basicAt: 'messageSends'",
 messageSends: ["basicAt:"],
@@ -510,7 +510,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("methodClass");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodClass", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"methodClass",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "methodClass\x0a\x09^self basicAt: 'methodClass'",
 messageSends: ["basicAt:"],
@@ -528,7 +528,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._category();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "protocol\x0a\x09^ self category",
 messageSends: ["category"],
@@ -546,7 +546,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("referencedClasses");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"referencedClasses", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "referencedClasses\x0a\x09^self basicAt: 'referencedClasses'",
 messageSends: ["basicAt:"],
@@ -564,7 +564,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("selector");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "selector\x0a\x09^self basicAt: 'selector'",
 messageSends: ["basicAt:"],
@@ -580,7 +580,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.CompiledMethod)})},
 args: ["aString"],
 source: "selector: aString\x0a\x09self basicAt: 'selector' put: aString",
 messageSends: ["basicAt:put:"],
@@ -603,7 +603,7 @@ $1="";
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source", [], {}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.CompiledMethod)})},
 args: [],
 source: "source\x0a\x09^(self basicAt: 'source') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
@@ -619,7 +619,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"source:", [aString], {}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.CompiledMethod)})},
 args: ["aString"],
 source: "source: aString\x0a\x09self basicAt: 'source' put: aString",
 messageSends: ["basicAt:put:"],
@@ -640,7 +640,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 self["@poolSize"]=_st(self["@poolSize"]).__plus((1));
-return self}, function($ctx1) {$ctx1.fill(self,"addWorker", [], {}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addWorker",{}, smalltalk.ForkPool)})},
 args: [],
 source: "addWorker\x0a\x09worker valueWithTimeout: 0.\x0a    poolSize := poolSize + 1",
 messageSends: ["valueWithTimeout:", "+"],
@@ -658,7 +658,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize", [], {}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool)})},
 args: [],
 source: "defaultMaxPoolSize\x0a\x09^ self class defaultMaxPoolSize",
 messageSends: ["defaultMaxPoolSize", "class"],
@@ -679,7 +679,7 @@ if(smalltalk.assert($1)){
 _st(self)._addWorker();
 };
 _st(self["@queue"])._back_(aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fork:", [aBlock], {}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock}, smalltalk.ForkPool)})},
 args: ["aBlock"],
 source: "fork: aBlock\x0a\x09poolSize < self maxPoolSize ifTrue: [ self addWorker ].\x0a\x09queue back: aBlock",
 messageSends: ["ifTrue:", "addWorker", "<", "maxPoolSize", "back:"],
@@ -698,7 +698,7 @@ return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._i
 self["@poolSize"]=(0);
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@worker"]=_st(self)._makeWorker();
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ForkPool)})},
 args: [],
 source: "initialize\x0a    super initialize.\x0a    \x0a\x09poolSize := 0.\x0a    queue := Queue new.\x0a    worker := self makeWorker",
 messageSends: ["initialize", "new", "makeWorker"],
@@ -722,19 +722,19 @@ return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@pool
 self["@poolSize"];
 block=_st(self["@queue"])._frontIfAbsent_((function(){
 return smalltalk.withContext(function($ctx3) {
return sentinel;
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 block;
 $2=_st(block).__eq_eq(sentinel);
 if(! smalltalk.assert($2)){
 return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(block)._value();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._ensure_((function(){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._ensure_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addWorker();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 };
-}, function($ctx2) {$ctx2.fillBlock([], {block:block})})});
+}, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"makeWorker", [], {sentinel:sentinel}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel}, smalltalk.ForkPool)})},
 args: [],
 source: "makeWorker\x0a\x09| sentinel |\x0a    sentinel := Object new.\x0a    ^[ | block |\x0a        poolSize := poolSize - 1.\x0a\x09\x09block := queue frontIfAbsent: [ sentinel ].\x0a        block == sentinel ifFalse: [\x0a        \x09[ block value ] ensure: [ self addWorker ]]]",
 messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="],
@@ -757,7 +757,7 @@ $1=_st(self)._defaultMaxPoolSize();
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"maxPoolSize", [], {}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{}, smalltalk.ForkPool)})},
 args: [],
 source: "maxPoolSize\x0a\x09^ maxPoolSize ifNil: [ self defaultMaxPoolSize ]",
 messageSends: ["ifNil:", "defaultMaxPoolSize"],
@@ -773,7 +773,7 @@ category: 'accessing',
 fn: function (anInteger){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:", [anInteger], {}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger}, smalltalk.ForkPool)})},
 args: ["anInteger"],
 source: "maxPoolSize: anInteger\x0a\x09maxPoolSize := anInteger",
 messageSends: [],
@@ -799,7 +799,7 @@ $1=self["@default"];
 $1=$2;
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"default", [], {}, smalltalk.ForkPool.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"default",{}, smalltalk.ForkPool.klass)})},
 args: [],
 source: "default\x0a\x09^default ifNil: [ default := self new ]",
 messageSends: ["ifNil:", "new"],
@@ -815,7 +815,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (100);
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize", [], {}, smalltalk.ForkPool.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool.klass)})},
 args: [],
 source: "defaultMaxPoolSize\x0a\x09^100",
 messageSends: [],
@@ -831,7 +831,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@default"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"resetDefault", [], {}, smalltalk.ForkPool.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"resetDefault",{}, smalltalk.ForkPool.klass)})},
 args: [],
 source: "resetDefault\x0a\x09default := nil",
 messageSends: [],
@@ -852,7 +852,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@arguments"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.Message)})},
 args: [],
 source: "arguments\x0a\x09^arguments",
 messageSends: [],
@@ -868,7 +868,7 @@ category: 'accessing',
 fn: function (anArray){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:", [anArray], {}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray}, smalltalk.Message)})},
 args: ["anArray"],
 source: "arguments: anArray\x0a\x09arguments := anArray",
 messageSends: [],
@@ -891,9 +891,9 @@ _st($2)._nextPutAll_("(");
 _st($2)._nextPutAll_(self["@selector"]);
 $3=_st($2)._nextPutAll_(")");
 return $3;
-}, function($ctx2) {$ctx2.fillBlock([aStream], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Message)})},
 args: [],
 source: "printString\x0a\x09^ String streamContents: [:aStream|  \x0a                                  \x09\x09\x09\x09aStream \x0a                                  \x09\x09\x09\x09\x09nextPutAll: super printString;\x0a                                  \x09\x09\x09\x09\x09nextPutAll: '(';\x0a                                  \x09\x09\x09\x09\x09nextPutAll: selector;\x0a                                  \x09\x09\x09\x09\x09nextPutAll: ')' \x09\x09\x09\x09]",
 messageSends: ["streamContents:", "nextPutAll:", "printString"],
@@ -911,7 +911,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.Message)})},
 args: [],
 source: "selector\x0a\x09^selector",
 messageSends: [],
@@ -927,7 +927,7 @@ category: 'accessing',
 fn: function (aString){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:", [aString], {}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.Message)})},
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
@@ -945,7 +945,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendTo:", [anObject], {}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject}, smalltalk.Message)})},
 args: ["anObject"],
 source: "sendTo: anObject\x0a\x09^ anObject perform: self selector withArguments: self arguments",
 messageSends: ["perform:withArguments:", "selector", "arguments"],
@@ -968,7 +968,7 @@ _st($2)._arguments_(anArray);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:arguments:", [aString,anArray], {}, smalltalk.Message.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray}, smalltalk.Message.klass)})},
 args: ["aString", "anArray"],
 source: "selector: aString arguments: anArray\x0a\x09^self new\x0a\x09\x09selector: aString;\x0a\x09\x09arguments: anArray;\x0a\x09\x09yourself",
 messageSends: ["selector:", "new", "arguments:", "yourself"],
@@ -979,22 +979,6 @@ smalltalk.Message.klass);
 
 smalltalk.addClass('MethodContext', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.MethodContext.comment="MethodContext holds all the dynamic state associated with the execution of either a method activation resulting from a message send. That is used to build the call stack while debugging.\x0a  \x0aMethodContext instances are JavaScript `SmalltalkMethodContext` objects defined in boot.js \x0a\x0aCurrent limitation: MethodContext instances are not created on Block evaluation. That means it's actually impossible to debug inside a Block."
-smalltalk.addMethod(
-"_arguments",
-smalltalk.method({
-selector: "arguments",
-category: 'accessing',
-fn: function (){
-var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self.args;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments", [], {}, smalltalk.MethodContext)})},
-args: [],
-source: "arguments\x0a\x09<return self.args>",
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.MethodContext);
-
 smalltalk.addMethod(
 "_asString",
 smalltalk.method({
@@ -1010,7 +994,7 @@ $1=_st(_st("a block (in ").__comma(_st(_st(self)._methodContext())._asString()))
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asString", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"asString",{}, smalltalk.MethodContext)})},
 args: [],
 source: "asString\x0a\x09^self isBlockContext \x0a    \x09ifTrue: [ 'a block (in ', self methodContext asString, ')' ]\x0a      \x09ifFalse: [ self receiver class printString, ' >> ', self selector ]",
 messageSends: ["ifTrue:ifFalse:", ",", "asString", "methodContext", "selector", "printString", "class", "receiver", "isBlockContext"],
@@ -1026,7 +1010,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.methodContext || self.homeContext;
-return self}, function($ctx1) {$ctx1.fill(self,"home", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"home",{}, smalltalk.MethodContext)})},
 args: [],
 source: "home\x0a\x09<return self.methodContext || self.homeContext>",
 messageSends: [],
@@ -1044,7 +1028,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._selector())._isNil();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockContext", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{}, smalltalk.MethodContext)})},
 args: [],
 source: "isBlockContext\x0a\x09\x22Block context do not have selectors.\x22\x0a    \x0a\x09^ self selector isNil",
 messageSends: ["isNil", "selector"],
@@ -1060,7 +1044,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.locals;
-return self}, function($ctx1) {$ctx1.fill(self,"locals", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.MethodContext)})},
 args: [],
 source: "locals\x0a\x09<return self.locals>",
 messageSends: [],
@@ -1078,7 +1062,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodContext)})},
 args: [],
 source: "method\x0a\x09^self methodContext receiver class lookupSelector: self methodContext selector",
 messageSends: ["lookupSelector:", "selector", "methodContext", "class", "receiver"],
@@ -1101,7 +1085,7 @@ return $2;
 };
 $3=_st(self)._home();
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"methodContext", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"methodContext",{}, smalltalk.MethodContext)})},
 args: [],
 source: "methodContext\x0a\x09self isBlockContext ifFalse: [ ^ self ].\x0a    \x0a    ^ self home",
 messageSends: ["ifFalse:", "isBlockContext", "home"],
@@ -1117,7 +1101,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.homeContext;
-return self}, function($ctx1) {$ctx1.fill(self,"outerContext", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.MethodContext)})},
 args: [],
 source: "outerContext\x0a\x09<return self.homeContext>",
 messageSends: [],
@@ -1133,7 +1117,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pc;
-return self}, function($ctx1) {$ctx1.fill(self,"pc", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.MethodContext)})},
 args: [],
 source: "pc\x0a\x09<return self.pc>",
 messageSends: [],
@@ -1151,7 +1135,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(smalltalk.Object.fn.prototype._printString.apply(_st(self), [])).__comma("(")).__comma(_st(self)._asString())).__comma(")");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.MethodContext)})},
 args: [],
 source: "printString\x0a\x09^super printString, '(', self asString, ')'",
 messageSends: [",", "asString", "printString"],
@@ -1167,7 +1151,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.receiver;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MethodContext)})},
 args: [],
 source: "receiver\x0a\x09<return self.receiver>",
 messageSends: [],
@@ -1189,7 +1173,7 @@ return smalltalk.withContext(function($ctx1) {
         	return nil;
         }
     ;
-return self}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodContext)})},
 args: [],
 source: "selector\x0a\x09<\x0a    \x09if(self.selector) {\x0a        \x09return smalltalk.convertSelector(self.selector);\x0a        } else {\x0a        \x09return nil;\x0a        }\x0a    >",
 messageSends: [],
@@ -1208,7 +1192,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 $1=_st(self)._locals();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps", [], {}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.MethodContext)})},
 args: [],
 source: "temps\x0a\x09self deprecatedAPI.\x0a    \x0a\x09^ self locals",
 messageSends: ["deprecatedAPI", "locals"],

File diff suppressed because it is too large
+ 116 - 116
js/Kernel-Objects.deploy.js


File diff suppressed because it is too large
+ 116 - 116
js/Kernel-Objects.js


File diff suppressed because it is too large
+ 161 - 161
js/Kernel-Tests.deploy.js


File diff suppressed because it is too large
+ 161 - 161
js/Kernel-Tests.js


+ 12 - 12
js/Kernel-Transcript.deploy.js

@@ -6,7 +6,7 @@ smalltalk.method({
 selector: "clear",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"clear", [], {}, smalltalk.ConsoleTranscript)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"clear",{}, smalltalk.ConsoleTranscript)})}
 }),
 smalltalk.ConsoleTranscript);
 
@@ -16,7 +16,7 @@ smalltalk.method({
 selector: "cr",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"cr", [], {}, smalltalk.ConsoleTranscript)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"cr",{}, smalltalk.ConsoleTranscript)})}
 }),
 smalltalk.ConsoleTranscript);
 
@@ -26,7 +26,7 @@ smalltalk.method({
 selector: "open",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"open", [], {}, smalltalk.ConsoleTranscript)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"open",{}, smalltalk.ConsoleTranscript)})}
 }),
 smalltalk.ConsoleTranscript);
 
@@ -37,7 +37,7 @@ selector: "show:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
console.log(String(string._asString()));
-return self}, function($ctx1) {$ctx1.fill(self,"show:", [anObject], {}, smalltalk.ConsoleTranscript)})}
+return self}, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject}, smalltalk.ConsoleTranscript)})}
 }),
 smalltalk.ConsoleTranscript);
 
@@ -49,7 +49,7 @@ selector: "initialize",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.Transcript || Transcript))._register_(_st(self)._new());
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ConsoleTranscript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ConsoleTranscript.klass)})}
 }),
 smalltalk.ConsoleTranscript.klass);
 
@@ -64,7 +64,7 @@ selector: "clear",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._clear();
-return self}, function($ctx1) {$ctx1.fill(self,"clear", [], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"clear",{}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -75,7 +75,7 @@ selector: "cr",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(_st((smalltalk.String || String))._cr());
-return self}, function($ctx1) {$ctx1.fill(self,"cr", [], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"cr",{}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -88,7 +88,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@current"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.Transcript.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -99,7 +99,7 @@ selector: "new",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -110,7 +110,7 @@ selector: "open",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._open();
-return self}, function($ctx1) {$ctx1.fill(self,"open", [], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"open",{}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -121,7 +121,7 @@ selector: "register:",
 fn: function (aTranscript){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=aTranscript;
-return self}, function($ctx1) {$ctx1.fill(self,"register:", [aTranscript], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"register:",{aTranscript:aTranscript}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 
@@ -132,7 +132,7 @@ selector: "show:",
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"show:", [anObject], {}, smalltalk.Transcript.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject}, smalltalk.Transcript.klass)})}
 }),
 smalltalk.Transcript.klass);
 

+ 12 - 12
js/Kernel-Transcript.js

@@ -7,7 +7,7 @@ selector: "clear",
 category: 'printing',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"clear", [], {}, smalltalk.ConsoleTranscript)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"clear",{}, smalltalk.ConsoleTranscript)})},
 args: [],
 source: "clear\x0a\x09\x22no op\x22",
 messageSends: [],
@@ -22,7 +22,7 @@ selector: "cr",
 category: 'printing',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"cr", [], {}, smalltalk.ConsoleTranscript)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"cr",{}, smalltalk.ConsoleTranscript)})},
 args: [],
 source: "cr\x0a\x09\x22no op\x22",
 messageSends: [],
@@ -37,7 +37,7 @@ selector: "open",
 category: 'actions',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"open", [], {}, smalltalk.ConsoleTranscript)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"open",{}, smalltalk.ConsoleTranscript)})},
 args: [],
 source: "open",
 messageSends: [],
@@ -53,7 +53,7 @@ category: 'printing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
console.log(String(string._asString()));
-return self}, function($ctx1) {$ctx1.fill(self,"show:", [anObject], {}, smalltalk.ConsoleTranscript)})},
+return self}, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject}, smalltalk.ConsoleTranscript)})},
 args: ["anObject"],
 source: "show: anObject\x0a\x09<console.log(String(string._asString()))>",
 messageSends: [],
@@ -70,7 +70,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.Transcript || Transcript))._register_(_st(self)._new());
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.ConsoleTranscript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ConsoleTranscript.klass)})},
 args: [],
 source: "initialize\x0a\x09Transcript register: self new",
 messageSends: ["register:", "new"],
@@ -90,7 +90,7 @@ category: 'printing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._clear();
-return self}, function($ctx1) {$ctx1.fill(self,"clear", [], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"clear",{}, smalltalk.Transcript.klass)})},
 args: [],
 source: "clear\x0a    self current clear",
 messageSends: ["clear", "current"],
@@ -106,7 +106,7 @@ category: 'printing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(_st((smalltalk.String || String))._cr());
-return self}, function($ctx1) {$ctx1.fill(self,"cr", [], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"cr",{}, smalltalk.Transcript.klass)})},
 args: [],
 source: "cr\x0a    self current show: String cr",
 messageSends: ["show:", "cr", "current"],
@@ -124,7 +124,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@current"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current", [], {}, smalltalk.Transcript.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.Transcript.klass)})},
 args: [],
 source: "current\x0a    ^current",
 messageSends: [],
@@ -140,7 +140,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Transcript.klass)})},
 args: [],
 source: "new\x0a    self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
@@ -156,7 +156,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._open();
-return self}, function($ctx1) {$ctx1.fill(self,"open", [], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"open",{}, smalltalk.Transcript.klass)})},
 args: [],
 source: "open\x0a    self current open",
 messageSends: ["open", "current"],
@@ -172,7 +172,7 @@ category: 'instance creation',
 fn: function (aTranscript){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=aTranscript;
-return self}, function($ctx1) {$ctx1.fill(self,"register:", [aTranscript], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"register:",{aTranscript:aTranscript}, smalltalk.Transcript.klass)})},
 args: ["aTranscript"],
 source: "register: aTranscript\x0a\x09current := aTranscript",
 messageSends: [],
@@ -188,7 +188,7 @@ category: 'printing',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"show:", [anObject], {}, smalltalk.Transcript.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject}, smalltalk.Transcript.klass)})},
 args: ["anObject"],
 source: "show: anObject\x0a    self current show: anObject",
 messageSends: ["show:", "current"],

+ 51 - 51
js/SUnit-Tests.deploy.js

@@ -8,7 +8,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -20,7 +20,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 _st(self)._assert_(_st(self["@empty"])._includes_((5)));
-return self}, function($ctx1) {$ctx1.fill(self,"testAdd", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testAdd",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -32,7 +32,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 _st(self)._assert_(_st(_st(self["@empty"])._size()).__eq((100)));
-return self}, function($ctx1) {$ctx1.fill(self,"testGrow", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -44,11 +44,11 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testIllegal", [], {}, smalltalk.ExampleSetTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -60,7 +60,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
-return self}, function($ctx1) {$ctx1.fill(self,"testIncludes", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testIncludes",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -74,7 +74,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(_st(self[
 _st(self)._assert_(_st(_st(self["@full"])._occurrencesOf_((5))).__eq((1)));
 _st(self["@full"])._add_((5));
 _st(self)._assert_(_st(_st(self["@full"])._occurrencesOf_((5))).__eq((1)));
-return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -87,7 +87,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
-return self}, function($ctx1) {$ctx1.fill(self,"testRemove", [], {}, smalltalk.ExampleSetTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testRemove",{}, smalltalk.ExampleSetTest)})}
 }),
 smalltalk.ExampleSetTest);
 
@@ -106,8 +106,8 @@ self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 return _st(self)._error_("Intentional");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeError", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -121,8 +121,8 @@ return smalltalk.withContext(function($ctx1) { 
self["@flag"]="bad";
 _st(self)._timeout_((10));
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -138,8 +138,8 @@ self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 return _st(self)._assert_(false);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -154,9 +154,9 @@ _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._timeout_((5));
 return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._valueWithTimeout_((10));
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -171,9 +171,9 @@ _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._timeout_((20));
 return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._valueWithTimeout_((10));
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -186,8 +186,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._timeout_((4));
 _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -198,7 +198,7 @@ selector: "setUp",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@flag"]="ok";
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -211,9 +211,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})))._sorted();
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._sorted();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sortedSelectors:", [aCollection], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx1) {$ctx1.fill(self,"sortedSelectors:",{aCollection:aCollection}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -224,7 +224,7 @@ selector: "tearDown",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_("ok",self["@flag"]);
-return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -238,7 +238,7 @@ var suite,runner,result,assertBlock;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$6,$5,$3;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
@@ -246,7 +246,7 @@ assertBlock=_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(["fakeError"],_st(self)._sortedSelectors_(_st(result)._errors()));
 _st(self)._assert_equals_(["fakeErrorFailingInTearDown", "fakeFailure"],_st(self)._sortedSelectors_(_st(result)._failures()));
 return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(runner)._announcer();
 $2=(smalltalk.ResultAnnouncement || ResultAnnouncement);
 $3=(function(ann){
@@ -254,12 +254,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(_st(ann)._result()).__eq_e
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
$6=_st(_st(result)._runs()).__eq(_st(result)._total());
 return _st($6)._ifTrue_(assertBlock);
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($4)._ifTrue_($5);
-}, function($ctx2) {$ctx2.fillBlock([ann], {})})});
+}, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})});
 _st($1)._on_do_($2,$3);
 _st(runner)._run();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncErrorsAndFailures", [], {suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncErrorsAndFailures",{suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -271,15 +271,15 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
-return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
-return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._finished();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout", [], {}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -291,12 +291,12 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -311,7 +311,7 @@ _st(self)._timeout_((0));
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._finished();
 _st(self)._deny_(_st(self)._isAsync());
-return self}, function($ctx1) {$ctx1.fill(self,"testIsAsyncReturnsCorrectValues", [], {}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testIsAsyncReturnsCorrectValues",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -328,8 +328,8 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._assert_(true);
 _st(self)._finished();
 self["@flag"]="ok";
 return self["@flag"];
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"testPass", [], {}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"testPass",{}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -343,7 +343,7 @@ var suite,runner,result,assertBlock;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$6,$5,$3;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
@@ -351,7 +351,7 @@ assertBlock=_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._assert_(_st(_st(result)._errors())._isEmpty());
 _st(self)._assert_equals_(["fakeMultipleTimeoutFailing", "fakeTimeout"],_st(self)._sortedSelectors_(_st(result)._failures()));
 return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(runner)._announcer();
 $2=(smalltalk.ResultAnnouncement || ResultAnnouncement);
 $3=(function(ann){
@@ -359,12 +359,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(_st(ann)._result()).__eq_e
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
$6=_st(_st(result)._runs()).__eq(_st(result)._total());
 return _st($6)._ifTrue_(assertBlock);
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($4)._ifTrue_($5);
-}, function($ctx2) {$ctx2.fillBlock([ann], {})})});
+}, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})});
 _st($1)._on_do_($2,$3);
 _st(runner)._run();
-return self}, function($ctx1) {$ctx1.fill(self,"testTimeouts", [], {suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testTimeouts",{suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 
@@ -385,7 +385,7 @@ self["@flag"];
 x=_st(x).__plus((1));
 x;
 return _st(self)._assert_equals_((1),x);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((0));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._finished();
 self["@flag"]="ok";
@@ -393,8 +393,8 @@ self["@flag"];
 x=_st(x).__plus((1));
 x;
 return _st(self)._assert_equals_((1),x);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((0));
-return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun", [], {x:x}, smalltalk.SUnitAsyncTest)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
+return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x}, smalltalk.SUnitAsyncTest)})}
 }),
 smalltalk.SUnitAsyncTest);
 

+ 51 - 51
js/SUnit-Tests.js

@@ -10,7 +10,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "setUp\x0a\x09empty := Set new.\x0a\x09full := Set with: 5 with: #abc",
 messageSends: ["new", "with:with:"],
@@ -27,7 +27,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 _st(self)._assert_(_st(self["@empty"])._includes_((5)));
-return self}, function($ctx1) {$ctx1.fill(self,"testAdd", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAdd",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testAdd\x0a\x09empty add: 5.\x0a\x09self assert: (empty includes: 5)",
 messageSends: ["add:", "assert:", "includes:"],
@@ -44,7 +44,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 _st(self)._assert_(_st(_st(self["@empty"])._size()).__eq((100)));
-return self}, function($ctx1) {$ctx1.fill(self,"testGrow", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testGrow\x0a\x09empty addAll: (1 to: 100).\x0a\x09self assert: empty size = 100",
 messageSends: ["addAll:", "to:", "assert:", "=", "size"],
@@ -61,11 +61,11 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testIllegal", [], {}, smalltalk.ExampleSetTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testIllegal\x0a\x09self \x0a\x09\x09should: [empty at: 5] \x0a\x09\x09raise: Error.\x0a\x09self \x0a\x09\x09should: [empty at: 5 put: #abc] \x0a\x09\x09raise: Error",
 messageSends: ["should:raise:", "at:", "at:put:"],
@@ -82,7 +82,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
-return self}, function($ctx1) {$ctx1.fill(self,"testIncludes", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testIncludes",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testIncludes\x0a\x09self assert: (full includes: 5).\x0a\x09self assert: (full includes: #abc)",
 messageSends: ["assert:", "includes:"],
@@ -101,7 +101,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(_st(self[
 _st(self)._assert_(_st(_st(self["@full"])._occurrencesOf_((5))).__eq((1)));
 _st(self["@full"])._add_((5));
 _st(self)._assert_(_st(_st(self["@full"])._occurrencesOf_((5))).__eq((1)));
-return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testOccurrences\x0a\x09self assert: (empty occurrencesOf: 0) = 0.\x0a\x09self assert: (full occurrencesOf: 5) = 1.\x0a\x09full add: 5.\x0a\x09self assert: (full occurrencesOf: 5) = 1",
 messageSends: ["assert:", "=", "occurrencesOf:", "add:"],
@@ -119,7 +119,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
-return self}, function($ctx1) {$ctx1.fill(self,"testRemove", [], {}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testRemove",{}, smalltalk.ExampleSetTest)})},
 args: [],
 source: "testRemove\x0a\x09full remove: 5.\x0a\x09self assert: (full includes: #abc).\x0a\x09self deny: (full includes: 5)",
 messageSends: ["remove:", "assert:", "includes:", "deny:"],
@@ -143,8 +143,8 @@ self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 return _st(self)._error_("Intentional");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeError", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeError\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
@@ -163,8 +163,8 @@ return smalltalk.withContext(function($ctx1) { 
self["@flag"]="bad";
 _st(self)._timeout_((10));
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeErrorFailingInTearDown\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
@@ -185,8 +185,8 @@ self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 return _st(self)._assert_(false);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeFailure\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"],
@@ -206,9 +206,9 @@ _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._timeout_((5));
 return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._valueWithTimeout_((10));
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeMultipleTimeoutFailing\x0a\x09self timeout: 100.\x0a    (self async: [\x0a\x09\x09self timeout: 5.\x0a        (self async: [ self finished ]) valueWithTimeout: 10\x0a\x09]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
@@ -228,9 +228,9 @@ _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._timeout_((20));
 return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
-}, function($ctx3) {$ctx3.fillBlock([], {})})})))._valueWithTimeout_((10));
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeMultipleTimeoutPassing\x0a\x09self timeout: 10.\x0a    (self async: [\x0a\x09\x09self timeout: 20.\x0a        (self async: [ self finished ]) valueWithTimeout: 10\x0a\x09]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
@@ -248,8 +248,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._timeout_((4));
 _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "fakeTimeout\x0a\x09self timeout: 4.\x0a    (self async: [ self finished ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
@@ -265,7 +265,7 @@ category: 'running',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@flag"]="ok";
-return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "setUp\x0a\x09flag := 'ok'",
 messageSends: [],
@@ -283,9 +283,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
-}, function($ctx2) {$ctx2.fillBlock([each], {})})})))._sorted();
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._sorted();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sortedSelectors:", [aCollection], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx1) {$ctx1.fill(self,"sortedSelectors:",{aCollection:aCollection}, smalltalk.SUnitAsyncTest)})},
 args: ["aCollection"],
 source: "sortedSelectors: aCollection\x0a\x09^(aCollection collect: [:each | each selector]) sorted",
 messageSends: ["sorted", "collect:", "selector"],
@@ -301,7 +301,7 @@ category: 'running',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_("ok",self["@flag"]);
-return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "tearDown\x0a\x09self assert: 'ok' equals: flag",
 messageSends: ["assert:equals:"],
@@ -320,7 +320,7 @@ var suite,runner,result,assertBlock;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$6,$5,$3;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
@@ -328,7 +328,7 @@ assertBlock=_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(["fakeError"],_st(self)._sortedSelectors_(_st(result)._errors()));
 _st(self)._assert_equals_(["fakeErrorFailingInTearDown", "fakeFailure"],_st(self)._sortedSelectors_(_st(result)._failures()));
 return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(runner)._announcer();
 $2=(smalltalk.ResultAnnouncement || ResultAnnouncement);
 $3=(function(ann){
@@ -336,12 +336,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(_st(ann)._result()).__eq_e
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
$6=_st(_st(result)._runs()).__eq(_st(result)._total());
 return _st($6)._ifTrue_(assertBlock);
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($4)._ifTrue_($5);
-}, function($ctx2) {$ctx2.fillBlock([ann], {})})});
+}, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})});
 _st($1)._on_do_($2,$3);
 _st(runner)._run();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncErrorsAndFailures", [], {suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncErrorsAndFailures",{suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testAsyncErrorsAndFailures\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeError' 'fakeErrorFailingInTearDown' 'fakeFailure' 'testPass') collect: [ :each | self class selector: each ].\x0a    runner := TestSuiteRunner on: suite.\x0a    self timeout: 200.\x0a\x09result := runner result.\x0a    assertBlock := self async: [\x0a\x09\x09self assert: #('fakeError') equals: (self sortedSelectors: result errors).\x0a\x09\x09self assert: #('fakeErrorFailingInTearDown' 'fakeFailure') equals: (self sortedSelectors: result failures).\x0a\x09\x09self finished\x0a  \x09].\x0a    runner announcer on: ResultAnnouncement do: [:ann |\x0a    \x09ann result == result  ifTrue: [ result runs = result total ifTrue: assertBlock ]].\x0a\x09runner run",
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "sortedSelectors:", "errors", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
@@ -358,15 +358,15 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
-return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
-return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._finished();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout", [], {}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testAsyncNeedsTimeout\x0a    self should: [ self async: [ ] ] raise: Error.\x0a    self timeout: 0.\x0a    self shouldnt: [ self async: [ ] ] raise: Error.\x0a    self finished",
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"],
@@ -383,12 +383,12 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testFinishedNeedsTimeout\x0a    self should: [ self finished ] raise: Error.\x0a    self timeout: 0.\x0a    self shouldnt: [ self finished ] raise: Error.",
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"],
@@ -408,7 +408,7 @@ _st(self)._timeout_((0));
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._finished();
 _st(self)._deny_(_st(self)._isAsync());
-return self}, function($ctx1) {$ctx1.fill(self,"testIsAsyncReturnsCorrectValues", [], {}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testIsAsyncReturnsCorrectValues",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testIsAsyncReturnsCorrectValues\x0a    self deny: self isAsync.\x0a    self timeout: 0.\x0a    self assert: self isAsync.\x0a    self finished.\x0a    self deny: self isAsync",
 messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"],
@@ -430,8 +430,8 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._assert_(true);
 _st(self)._finished();
 self["@flag"]="ok";
 return self["@flag"];
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"testPass", [], {}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
+return self}, function($ctx1) {$ctx1.fill(self,"testPass",{}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testPass\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"],
@@ -450,7 +450,7 @@ var suite,runner,result,assertBlock;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$6,$5,$3;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
@@ -458,7 +458,7 @@ assertBlock=_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._assert_(_st(_st(result)._errors())._isEmpty());
 _st(self)._assert_equals_(["fakeMultipleTimeoutFailing", "fakeTimeout"],_st(self)._sortedSelectors_(_st(result)._failures()));
 return _st(self)._finished();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $1=_st(runner)._announcer();
 $2=(smalltalk.ResultAnnouncement || ResultAnnouncement);
 $3=(function(ann){
@@ -466,12 +466,12 @@ return smalltalk.withContext(function($ctx2) {
$4=_st(_st(ann)._result()).__eq_e
 $5=(function(){
 return smalltalk.withContext(function($ctx3) {
$6=_st(_st(result)._runs()).__eq(_st(result)._total());
 return _st($6)._ifTrue_(assertBlock);
-}, function($ctx3) {$ctx3.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
 return _st($4)._ifTrue_($5);
-}, function($ctx2) {$ctx2.fillBlock([ann], {})})});
+}, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})});
 _st($1)._on_do_($2,$3);
 _st(runner)._run();
-return self}, function($ctx1) {$ctx1.fill(self,"testTimeouts", [], {suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTimeouts",{suite:suite,runner:runner,result:result,assertBlock:assertBlock}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testTimeouts\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeTimeout' 'fakeMultipleTimeoutFailing' 'fakeMultipleTimeoutPassing' 'testPass') collect: [ :each | self class selector: each ].\x0a    runner := TestSuiteRunner on: suite.\x0a    self timeout: 200.\x0a\x09result := runner result.\x0a    assertBlock := self async: [\x0a\x09\x09self assert: result errors isEmpty.\x0a\x09\x09self assert: #('fakeMultipleTimeoutFailing' 'fakeTimeout') equals: (self sortedSelectors: result failures).\x0a\x09\x09self finished\x0a  \x09].\x0a    runner announcer on: ResultAnnouncement do: [:ann |\x0a    \x09ann result == result  ifTrue: [ result runs = result total ifTrue: assertBlock ]].\x0a\x09runner run",
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:", "isEmpty", "errors", "assert:equals:", "sortedSelectors:", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
@@ -497,7 +497,7 @@ self["@flag"];
 x=_st(x).__plus((1));
 x;
 return _st(self)._assert_equals_((1),x);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((0));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self)._finished();
 self["@flag"]="ok";
@@ -505,8 +505,8 @@ self["@flag"];
 x=_st(x).__plus((1));
 x;
 return _st(self)._assert_equals_((1),x);
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_((0));
-return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun", [], {x:x}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
+return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x}, smalltalk.SUnitAsyncTest)})},
 args: [],
 source: "testTwoAsyncPassesWithFinishedOnlyOneIsRun\x0a\x09| x |\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    x := 0.\x0a    flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: 1 equals: x ]) valueWithTimeout: 0.\x0a    flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: 1 equals: x ]) valueWithTimeout: 0.",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"],

+ 86 - 86
js/SUnit.deploy.js

@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result", [], {}, smalltalk.ResultAnnouncement)})}
+}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})}
 }),
 smalltalk.ResultAnnouncement);
 
@@ -20,7 +20,7 @@ selector: "result:",
 fn: function (aTestResult){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:", [aTestResult], {}, smalltalk.ResultAnnouncement)})}
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})}
 }),
 smalltalk.ResultAnnouncement);
 
@@ -34,7 +34,7 @@ selector: "assert:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
-return self}, function($ctx1) {$ctx1.fill(self,"assert:", [aBoolean], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -49,7 +49,7 @@ $1=aBoolean;
 if(! smalltalk.assert($1)){
 _st(self)._signalFailure_(aString);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"assert:description:", [aBoolean,aString], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -62,7 +62,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._assert_description_(_st(expected).__eq(actual),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assert:equals:", [expected,actual], {}, smalltalk.TestCase)})}
+}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{expected:expected,actual:actual}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -81,9 +81,9 @@ return smalltalk.withContext(function($ctx2) {
$2=_st(self)._isAsync();
 if(smalltalk.assert($2)){
 return _st(c)._execute_(aBlock);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"async:", [aBlock], {c:c}, smalltalk.TestCase)})}
+}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -94,7 +94,7 @@ selector: "context:",
 fn: function (aRunningTestContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:", [aRunningTestContext], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -105,7 +105,7 @@ selector: "deny:",
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
-return self}, function($ctx1) {$ctx1.fill(self,"deny:", [aBoolean], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -120,7 +120,7 @@ $1=_st(self)._isAsync();
 if(! smalltalk.assert($1)){
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:", [aString], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -132,7 +132,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 self["@asyncTimeout"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"finished", [], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -145,7 +145,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self["@asyncTimeout"])._notNil();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAsync", [], {}, smalltalk.TestCase)})}
+}, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -157,7 +157,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 _st(self)._perform_(_st(self)._selector());
-return self}, function($ctx1) {$ctx1.fill(self,"performTest", [], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"performTest",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -168,7 +168,7 @@ selector: "runCase",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.TestContext || TestContext))._testCase_(self))._start();
-return self}, function($ctx1) {$ctx1.fill(self,"runCase", [], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"runCase",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -181,7 +181,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@testSelector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.TestCase)})}
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -192,7 +192,7 @@ selector: "setTestSelector:",
 fn: function (aSelector){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
-return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:", [aSelector], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -202,7 +202,7 @@ smalltalk.method({
 selector: "setUp",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.TestCase)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -213,7 +213,7 @@ selector: "should:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
-return self}, function($ctx1) {$ctx1.fill(self,"should:", [aBlock], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -226,10 +226,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st((function(){
 return smalltalk.withContext(function($ctx2) {
_st(aBlock)._value();
 return false;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_(anExceptionClass,(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return true;
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})})));
-return self}, function($ctx1) {$ctx1.fill(self,"should:raise:", [aBlock,anExceptionClass], {}, smalltalk.TestCase)})}
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
+return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -242,10 +242,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st((function(){
 return smalltalk.withContext(function($ctx2) {
_st(aBlock)._value();
 return true;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_(anExceptionClass,(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return false;
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})})));
-return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:", [aBlock,anExceptionClass], {}, smalltalk.TestCase)})}
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
+return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -259,7 +259,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:", [aString], {}, smalltalk.TestCase)})}
+return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -269,7 +269,7 @@ smalltalk.method({
 selector: "tearDown",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.TestCase)})}
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -289,8 +289,8 @@ _st(self["@asyncTimeout"])._clearTimeout();
 self["@asyncTimeout"]=(0);
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_(aNumber);
-return self}, function($ctx1) {$ctx1.fill(self,"timeout:", [aNumber], {}, smalltalk.TestCase)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
+return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})}
 }),
 smalltalk.TestCase);
 
@@ -310,7 +310,7 @@ _st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
 };
 $2=selectors;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allTestSelectors", [], {selectors:selectors}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -323,9 +323,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._allTestSelectors())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"buildSuite", [], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -338,7 +338,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name()).__eq("TestCase");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAbstract", [], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -351,7 +351,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.TestCase || TestCase);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot", [], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -367,7 +367,7 @@ _st($2)._setTestSelector_(aSelector);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:", [aSelector], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -380,7 +380,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors", [], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -393,9 +393,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testSelectors", [], {}, smalltalk.TestCase.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})}
 }),
 smalltalk.TestCase.klass);
 
@@ -416,12 +416,12 @@ failed;
 _st(aBlock)._value();
 failed=false;
 return failed;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._context_(nil);
 $3=_st(failed)._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@testCase"])._isAsync();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($3)){
 _st(self["@testCase"])._finished();
 };
@@ -429,9 +429,9 @@ $4=_st(self["@testCase"])._isAsync();
 if(! smalltalk.assert($4)){
 return _st(self["@testCase"])._tearDown();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ensure_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"execute:", [aBlock], {failed:failed}, smalltalk.TestContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})}
 }),
 smalltalk.TestContext);
 
@@ -444,8 +444,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._execute_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return _st(self["@testCase"])._performTest();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"start", [], {}, smalltalk.TestContext)})}
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})}
 }),
 smalltalk.TestContext);
 
@@ -456,7 +456,7 @@ selector: "testCase:",
 fn: function (aTestCase){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
-return self}, function($ctx1) {$ctx1.fill(self,"testCase:", [aTestCase], {}, smalltalk.TestContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})}
 }),
 smalltalk.TestContext);
 
@@ -473,7 +473,7 @@ _st($2)._testCase_(aTestCase);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:", [aTestCase], {}, smalltalk.TestContext.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})}
 }),
 smalltalk.TestContext.klass);
 
@@ -489,17 +489,17 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$3,$2;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._withErrorReporting_((function(){
 return smalltalk.withContext(function($ctx3) {
return smalltalk.TestContext.fn.prototype._execute_.apply(_st(self), [aBlock]);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(self["@testCase"])._isAsync();
 if(! smalltalk.assert($3)){
 _st(self["@result"])._increaseRuns();
 return _st(self["@finished"])._value();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ensure_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"execute:", [aBlock], {}, smalltalk.ReportingTestContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
 }),
 smalltalk.ReportingTestContext);
 
@@ -510,7 +510,7 @@ selector: "finished:",
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"finished:", [aBlock], {}, smalltalk.ReportingTestContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
 }),
 smalltalk.ReportingTestContext);
 
@@ -521,7 +521,7 @@ selector: "result:",
 fn: function (aTestResult){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:", [aTestResult], {}, smalltalk.ReportingTestContext)})}
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})}
 }),
 smalltalk.ReportingTestContext);
 
@@ -534,11 +534,11 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
-}, function($ctx3) {$ctx3.fillBlock([ex], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:", [aBlock], {}, smalltalk.ReportingTestContext)})}
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
 }),
 smalltalk.ReportingTestContext);
 
@@ -556,7 +556,7 @@ _st($2)._finished_(aBlock);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:", [aTestCase,aTestResult,aBlock], {}, smalltalk.ReportingTestContext.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock}, smalltalk.ReportingTestContext.klass)})}
 }),
 smalltalk.ReportingTestContext.klass);
 
@@ -572,7 +572,7 @@ selector: "addError:",
 fn: function (anError){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"addError:", [anError], {}, smalltalk.TestResult)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -583,7 +583,7 @@ selector: "addFailure:",
 fn: function (aFailure){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
-return self}, function($ctx1) {$ctx1.fill(self,"addFailure:", [aFailure], {}, smalltalk.TestResult)})}
+return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -596,7 +596,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@errors"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"errors", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -609,7 +609,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@failures"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"failures", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -620,7 +620,7 @@ selector: "increaseRuns",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@runs"]=_st(self["@runs"]).__plus((1));
-return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns", [], {}, smalltalk.TestResult)})}
+return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -636,7 +636,7 @@ self["@runs"]=(0);
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@total"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.TestResult)})}
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -652,7 +652,7 @@ if(! smalltalk.assert($2)){
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nextRunDo:", [aBlock], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -666,13 +666,13 @@ return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return _st(aTestCase)._runCase();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
-}, function($ctx3) {$ctx3.fillBlock([ex], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"runCase:", [aTestCase], {}, smalltalk.TestResult)})}
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -685,7 +685,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@runs"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"runs", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -704,12 +704,12 @@ return "success";
 } else {
 return "failure";
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,(function(){
 return smalltalk.withContext(function($ctx2) {
return "error";
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"status", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -722,7 +722,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@timestamp"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timestamp", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -735,7 +735,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@total"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"total", [], {}, smalltalk.TestResult)})}
+}, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -746,7 +746,7 @@ selector: "total:",
 fn: function (aNumber){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
-return self}, function($ctx1) {$ctx1.fill(self,"total:", [aNumber], {}, smalltalk.TestResult)})}
+return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})}
 }),
 smalltalk.TestResult);
 
@@ -762,7 +762,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcer"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcer", [], {}, smalltalk.TestSuiteRunner)})}
+}, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -775,9 +775,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"contextOf:", [anInteger], {}, smalltalk.TestSuiteRunner)})}
+}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -799,8 +799,8 @@ $1=_st(runs).__lt(_st(self["@result"])._total());
 if(smalltalk.assert($1)){
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {runs:runs})})});
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.TestSuiteRunner)})}
+}, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -813,7 +813,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result", [], {}, smalltalk.TestSuiteRunner)})}
+}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -825,7 +825,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
-return self}, function($ctx1) {$ctx1.fill(self,"resume", [], {}, smalltalk.TestSuiteRunner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -837,7 +837,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 _st(self)._resume();
-return self}, function($ctx1) {$ctx1.fill(self,"run", [], {}, smalltalk.TestSuiteRunner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -848,7 +848,7 @@ selector: "suite:",
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"suite:", [aCollection], {}, smalltalk.TestSuiteRunner)})}
+return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})}
 }),
 smalltalk.TestSuiteRunner);
 
@@ -860,7 +860,7 @@ selector: "new",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.TestSuiteRunner.klass)})}
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.TestSuiteRunner.klass)})}
 }),
 smalltalk.TestSuiteRunner.klass);
 
@@ -873,7 +873,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aCollection], {}, smalltalk.TestSuiteRunner.klass)})}
+}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})}
 }),
 smalltalk.TestSuiteRunner.klass);
 

+ 86 - 86
js/SUnit.js

@@ -10,7 +10,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result", [], {}, smalltalk.ResultAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})},
 args: [],
 source: "result\x0a\x09^result",
 messageSends: [],
@@ -26,7 +26,7 @@ category: 'accessing',
 fn: function (aTestResult){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:", [aTestResult], {}, smalltalk.ResultAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})},
 args: ["aTestResult"],
 source: "result: aTestResult\x0a\x09result := aTestResult",
 messageSends: [],
@@ -46,7 +46,7 @@ category: 'testing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
-return self}, function($ctx1) {$ctx1.fill(self,"assert:", [aBoolean], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
 args: ["aBoolean"],
 source: "assert: aBoolean\x0a\x09self assert: aBoolean description: 'Assertion failed'",
 messageSends: ["assert:description:"],
@@ -66,7 +66,7 @@ $1=aBoolean;
 if(! smalltalk.assert($1)){
 _st(self)._signalFailure_(aString);
 };
-return self}, function($ctx1) {$ctx1.fill(self,"assert:description:", [aBoolean,aString], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})},
 args: ["aBoolean", "aString"],
 source: "assert: aBoolean description: aString\x0a\x09aBoolean ifFalse: [self signalFailure: aString]",
 messageSends: ["ifFalse:", "signalFailure:"],
@@ -84,7 +84,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._assert_description_(_st(expected).__eq(actual),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assert:equals:", [expected,actual], {}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{expected:expected,actual:actual}, smalltalk.TestCase)})},
 args: ["expected", "actual"],
 source: "assert: expected equals: actual\x0a\x09^ self assert: (expected = actual) description: 'Expected: ', expected asString, ' but was: ', actual asString",
 messageSends: ["assert:description:", "=", ",", "asString"],
@@ -108,9 +108,9 @@ return smalltalk.withContext(function($ctx2) {
$2=_st(self)._isAsync();
 if(smalltalk.assert($2)){
 return _st(c)._execute_(aBlock);
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"async:", [aBlock], {c:c}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})},
 args: ["aBlock"],
 source: "async: aBlock\x0a\x09| c |\x0a\x09self errorIfNotAsync: '#async'.\x0a    c := context.\x0a    ^ [ self isAsync ifTrue: [ c execute: aBlock ] ]",
 messageSends: ["errorIfNotAsync:", "ifTrue:", "execute:", "isAsync"],
@@ -126,7 +126,7 @@ category: 'accessing',
 fn: function (aRunningTestContext){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:", [aRunningTestContext], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})},
 args: ["aRunningTestContext"],
 source: "context: aRunningTestContext\x0a\x09context := aRunningTestContext",
 messageSends: [],
@@ -142,7 +142,7 @@ category: 'testing',
 fn: function (aBoolean){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
-return self}, function($ctx1) {$ctx1.fill(self,"deny:", [aBoolean], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
 args: ["aBoolean"],
 source: "deny: aBoolean\x0a\x09self assert: aBoolean not",
 messageSends: ["assert:", "not"],
@@ -162,7 +162,7 @@ $1=_st(self)._isAsync();
 if(! smalltalk.assert($1)){
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:", [aString], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})},
 args: ["aString"],
 source: "errorIfNotAsync: aString\x0a\x09self isAsync ifFalse: [ \x0a    \x09self error: aString, ' used without prior #timeout:' ]",
 messageSends: ["ifFalse:", "error:", ",", "isAsync"],
@@ -179,7 +179,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 self["@asyncTimeout"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"finished", [], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})},
 args: [],
 source: "finished\x0a\x09self errorIfNotAsync: '#finished'.\x0a\x09asyncTimeout := nil",
 messageSends: ["errorIfNotAsync:"],
@@ -197,7 +197,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self["@asyncTimeout"])._notNil();
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAsync", [], {}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})},
 args: [],
 source: "isAsync\x0a\x09^asyncTimeout notNil",
 messageSends: ["notNil"],
@@ -214,7 +214,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 _st(self)._perform_(_st(self)._selector());
-return self}, function($ctx1) {$ctx1.fill(self,"performTest", [], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"performTest",{}, smalltalk.TestCase)})},
 args: [],
 source: "performTest\x0a\x09asyncTimeout := nil.\x0a\x09self perform: self selector",
 messageSends: ["perform:", "selector"],
@@ -230,7 +230,7 @@ category: 'running',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.TestContext || TestContext))._testCase_(self))._start();
-return self}, function($ctx1) {$ctx1.fill(self,"runCase", [], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"runCase",{}, smalltalk.TestCase)})},
 args: [],
 source: "runCase\x0a\x09\x22Runs a test case in isolated context, leaking all errors.\x22\x0a\x0a\x09(TestContext testCase: self) start",
 messageSends: ["start", "testCase:"],
@@ -248,7 +248,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@testSelector"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector", [], {}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})},
 args: [],
 source: "selector\x0a\x09^testSelector",
 messageSends: [],
@@ -264,7 +264,7 @@ category: 'accessing',
 fn: function (aSelector){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
-return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:", [aSelector], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})},
 args: ["aSelector"],
 source: "setTestSelector: aSelector\x0a\x09testSelector := aSelector",
 messageSends: [],
@@ -279,7 +279,7 @@ selector: "setUp",
 category: 'running',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"setUp", [], {}, smalltalk.TestCase)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.TestCase)})},
 args: [],
 source: "setUp",
 messageSends: [],
@@ -295,7 +295,7 @@ category: 'testing',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
-return self}, function($ctx1) {$ctx1.fill(self,"should:", [aBlock], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})},
 args: ["aBlock"],
 source: "should: aBlock\x0a\x09self assert: aBlock value",
 messageSends: ["assert:", "value"],
@@ -313,10 +313,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st((function(){
 return smalltalk.withContext(function($ctx2) {
_st(aBlock)._value();
 return false;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_(anExceptionClass,(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return true;
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})})));
-return self}, function($ctx1) {$ctx1.fill(self,"should:raise:", [aBlock,anExceptionClass], {}, smalltalk.TestCase)})},
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
+return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
 args: ["aBlock", "anExceptionClass"],
 source: "should: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. false] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | true])",
 messageSends: ["assert:", "on:do:", "value"],
@@ -334,10 +334,10 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st((function(){
 return smalltalk.withContext(function($ctx2) {
_st(aBlock)._value();
 return true;
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_(anExceptionClass,(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return false;
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})})));
-return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:", [aBlock,anExceptionClass], {}, smalltalk.TestCase)})},
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
+return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
 args: ["aBlock", "anExceptionClass"],
 source: "shouldnt: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. true] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | false])",
 messageSends: ["assert:", "on:do:", "value"],
@@ -356,7 +356,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:", [aString], {}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})},
 args: ["aString"],
 source: "signalFailure: aString\x0a\x09TestFailure new\x0a\x09\x09messageText: aString;\x0a\x09\x09signal",
 messageSends: ["messageText:", "new", "signal"],
@@ -371,7 +371,7 @@ selector: "tearDown",
 category: 'running',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown", [], {}, smalltalk.TestCase)})},
+return smalltalk.withContext(function($ctx1) { 
return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{}, smalltalk.TestCase)})},
 args: [],
 source: "tearDown",
 messageSends: [],
@@ -396,8 +396,8 @@ _st(self["@asyncTimeout"])._clearTimeout();
 self["@asyncTimeout"]=(0);
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
-}, function($ctx2) {$ctx2.fillBlock([], {})})})))._valueWithTimeout_(aNumber);
-return self}, function($ctx1) {$ctx1.fill(self,"timeout:", [aNumber], {}, smalltalk.TestCase)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
+return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})},
 args: ["aNumber"],
 source: "timeout: aNumber\x0a\x09\x22Set a grace time timeout in milliseconds to run the test asynchronously\x22\x0a    \x0a\x09asyncTimeout ifNotNil: [ asyncTimeout clearTimeout ].\x0a    \x0a     \x22to allow #async: message send without throwing an error\x22\x0a\x09asyncTimeout := 0.\x0a    \x0a\x09asyncTimeout := (self async: [ \x0a    \x09self assert: false description: 'SUnit grace time exhausted' ])\x0a        \x09valueWithTimeout: aNumber",
 messageSends: ["ifNotNil:", "clearTimeout", "valueWithTimeout:", "async:", "assert:description:"],
@@ -422,7 +422,7 @@ _st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
 };
 $2=selectors;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allTestSelectors", [], {selectors:selectors}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors}, smalltalk.TestCase.klass)})},
 args: [],
 source: "allTestSelectors\x0a\x09| selectors |\x0a\x09selectors := self testSelectors.\x0a\x09self shouldInheritSelectors ifTrue: [\x0a\x09\x09selectors addAll: self superclass allTestSelectors].\x0a\x09^selectors",
 messageSends: ["testSelectors", "ifTrue:", "addAll:", "allTestSelectors", "superclass", "shouldInheritSelectors"],
@@ -440,9 +440,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._allTestSelectors())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"buildSuite", [], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})},
 args: [],
 source: "buildSuite\x0a\x09^self allTestSelectors collect: [:each | self selector: each]",
 messageSends: ["collect:", "selector:", "allTestSelectors"],
@@ -460,7 +460,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name()).__eq("TestCase");
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAbstract", [], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})},
 args: [],
 source: "isAbstract\x0a\x09^ self name = 'TestCase'",
 messageSends: ["=", "name"],
@@ -478,7 +478,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.TestCase || TestCase);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot", [], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})},
 args: [],
 source: "lookupHierarchyRoot\x0a\x09^TestCase",
 messageSends: [],
@@ -499,7 +499,7 @@ _st($2)._setTestSelector_(aSelector);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:", [aSelector], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})},
 args: ["aSelector"],
 source: "selector: aSelector\x0a\x09^self new\x0a\x09\x09setTestSelector: aSelector;\x0a\x09\x09yourself",
 messageSends: ["setTestSelector:", "new", "yourself"],
@@ -517,7 +517,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors", [], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})},
 args: [],
 source: "shouldInheritSelectors\x0a\x09^self ~= self lookupHierarchyRoot",
 messageSends: ["~=", "lookupHierarchyRoot"],
@@ -535,9 +535,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
-}, function($ctx2) {$ctx2.fillBlock([each], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testSelectors", [], {}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})},
 args: [],
 source: "testSelectors\x0a\x09^self methodDictionary keys select: [:each | each match: '^test']",
 messageSends: ["select:", "match:", "keys", "methodDictionary"],
@@ -564,12 +564,12 @@ failed;
 _st(aBlock)._value();
 failed=false;
 return failed;
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._context_(nil);
 $3=_st(failed)._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@testCase"])._isAsync();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($3)){
 _st(self["@testCase"])._finished();
 };
@@ -577,9 +577,9 @@ $4=_st(self["@testCase"])._isAsync();
 if(! smalltalk.assert($4)){
 return _st(self["@testCase"])._tearDown();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ensure_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"execute:", [aBlock], {failed:failed}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})},
 args: ["aBlock"],
 source: "execute: aBlock\x0a\x09| failed |\x0a    \x0a    testCase context: self.\x0a    [ \x0a    \x09failed := true. \x0a        aBlock value. \x0a        failed := false \x0a\x09] \x0a    \x09ensure: [\x0a        \x09testCase context: nil.\x0a            \x0a        \x09(failed and: [ testCase isAsync ]) ifTrue: [ \x0a            \x09testCase finished ].\x0a        \x09testCase isAsync ifFalse: [ \x0a        \x09\x09testCase tearDown ] ]",
 messageSends: ["context:", "ensure:", "ifTrue:", "finished", "and:", "isAsync", "ifFalse:", "tearDown", "value"],
@@ -597,8 +597,8 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._execute_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return _st(self["@testCase"])._performTest();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"start", [], {}, smalltalk.TestContext)})},
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})},
 args: [],
 source: "start\x0a\x09self execute: [ \x0a    \x09testCase setUp. \x0a        testCase performTest ]",
 messageSends: ["execute:", "setUp", "performTest"],
@@ -614,7 +614,7 @@ category: 'accessing',
 fn: function (aTestCase){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
-return self}, function($ctx1) {$ctx1.fill(self,"testCase:", [aTestCase], {}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})},
 args: ["aTestCase"],
 source: "testCase: aTestCase\x0a\x09testCase := aTestCase",
 messageSends: [],
@@ -636,7 +636,7 @@ _st($2)._testCase_(aTestCase);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:", [aTestCase], {}, smalltalk.TestContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})},
 args: ["aTestCase"],
 source: "testCase: aTestCase\x0a\x09^self new\x0a        testCase: aTestCase;\x0a        yourself",
 messageSends: ["testCase:", "new", "yourself"],
@@ -658,17 +658,17 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$3,$2;
 $1=(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._withErrorReporting_((function(){
 return smalltalk.withContext(function($ctx3) {
return smalltalk.TestContext.fn.prototype._execute_.apply(_st(self), [aBlock]);
-}, function($ctx3) {$ctx3.fillBlock([], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $2=(function(){
 return smalltalk.withContext(function($ctx2) {
$3=_st(self["@testCase"])._isAsync();
 if(! smalltalk.assert($3)){
 _st(self["@result"])._increaseRuns();
 return _st(self["@finished"])._value();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 _st($1)._ensure_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"execute:", [aBlock], {}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 source: "execute: aBlock\x0a    [ \x0a    \x09self withErrorReporting: [ super execute: aBlock ] \x0a\x09]\x0a    \x09ensure: [ \x0a        \x09testCase isAsync ifFalse: [ \x0a            \x09result increaseRuns. finished value ] ]",
 messageSends: ["ensure:", "ifFalse:", "increaseRuns", "value", "isAsync", "withErrorReporting:", "execute:"],
@@ -684,7 +684,7 @@ category: 'accessing',
 fn: function (aBlock){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"finished:", [aBlock], {}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 source: "finished: aBlock\x0a\x09finished := aBlock",
 messageSends: [],
@@ -700,7 +700,7 @@ category: 'accessing',
 fn: function (aTestResult){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:", [aTestResult], {}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})},
 args: ["aTestResult"],
 source: "result: aTestResult\x0a\x09result := aTestResult",
 messageSends: [],
@@ -718,11 +718,11 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
-}, function($ctx3) {$ctx3.fillBlock([ex], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:", [aBlock], {}, smalltalk.ReportingTestContext)})},
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 source: "withErrorReporting: aBlock\x0a \x09[ aBlock\x0a\x09\x09on: TestFailure \x0a\x09\x09do: [ :ex | result addFailure: testCase ] \x0a\x09]\x0a    \x09on: Error \x0a        do: [ :ex | result addError: testCase ]",
 messageSends: ["on:do:", "addError:", "addFailure:"],
@@ -745,7 +745,7 @@ _st($2)._finished_(aBlock);
 $3=_st($2)._yourself();
 $1=$3;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:", [aTestCase,aTestResult,aBlock], {}, smalltalk.ReportingTestContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock}, smalltalk.ReportingTestContext.klass)})},
 args: ["aTestCase", "aTestResult", "aBlock"],
 source: "testCase: aTestCase result: aTestResult finished: aBlock\x0a\x09^(super testCase: aTestCase)\x0a        result: aTestResult;\x0a        finished: aBlock;\x0a        yourself",
 messageSends: ["result:", "testCase:", "finished:", "yourself"],
@@ -768,7 +768,7 @@ category: 'accessing',
 fn: function (anError){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"addError:", [anError], {}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})},
 args: ["anError"],
 source: "addError: anError\x0a\x09self errors add: anError",
 messageSends: ["add:", "errors"],
@@ -784,7 +784,7 @@ category: 'accessing',
 fn: function (aFailure){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
-return self}, function($ctx1) {$ctx1.fill(self,"addFailure:", [aFailure], {}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})},
 args: ["aFailure"],
 source: "addFailure: aFailure\x0a\x09self failures add: aFailure",
 messageSends: ["add:", "failures"],
@@ -802,7 +802,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@errors"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"errors", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})},
 args: [],
 source: "errors\x0a\x09^errors",
 messageSends: [],
@@ -820,7 +820,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@failures"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"failures", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})},
 args: [],
 source: "failures\x0a\x09^failures",
 messageSends: [],
@@ -836,7 +836,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@runs"]=_st(self["@runs"]).__plus((1));
-return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns", [], {}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns",{}, smalltalk.TestResult)})},
 args: [],
 source: "increaseRuns\x0a\x09runs := runs + 1",
 messageSends: ["+"],
@@ -857,7 +857,7 @@ self["@runs"]=(0);
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@total"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09timestamp := Date now.\x0a\x09runs := 0.\x0a\x09errors := Array new.\x0a\x09failures := Array new.\x0a\x09total := 0",
 messageSends: ["initialize", "now", "new"],
@@ -878,7 +878,7 @@ if(! smalltalk.assert($2)){
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 };
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nextRunDo:", [aBlock], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})},
 args: ["aBlock"],
 source: "nextRunDo: aBlock\x0a\x22Runs aBlock with index of next run\x0aor does nothing if no more runs\x22\x0a^self runs == self total\x0a\x09ifFalse: [ aBlock value: self runs + 1 ]",
 messageSends: ["ifFalse:", "value:", "+", "runs", "==", "total"],
@@ -897,13 +897,13 @@ return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return _st(aTestCase)._runCase();
-}, function($ctx3) {$ctx3.fillBlock([], {})})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
-}, function($ctx3) {$ctx3.fillBlock([ex], {})})}));
-}, function($ctx2) {$ctx2.fillBlock([], {})})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
-}, function($ctx2) {$ctx2.fillBlock([ex], {})})}));
-return self}, function($ctx1) {$ctx1.fill(self,"runCase:", [aTestCase], {}, smalltalk.TestResult)})},
+}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})},
 args: ["aTestCase"],
 source: "runCase: aTestCase\x0a\x09[[\x09self increaseRuns.\x0a    \x09aTestCase runCase]\x0a\x09on: TestFailure do: [:ex | self addFailure: aTestCase]]\x0a\x09on: Error do: [:ex | self addError: aTestCase]\x0a",
 messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"],
@@ -921,7 +921,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@runs"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"runs", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})},
 args: [],
 source: "runs\x0a\x09^runs",
 messageSends: [],
@@ -945,12 +945,12 @@ return "success";
 } else {
 return "failure";
 };
-}, function($ctx2) {$ctx2.fillBlock([], {})})});
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 $1=_st($2)._ifTrue_ifFalse_($3,(function(){
 return smalltalk.withContext(function($ctx2) {
return "error";
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"status", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})},
 args: [],
 source: "status\x0a\x09^self errors isEmpty \x0a\x09\x09ifTrue: [\x0a\x09\x09\x09self failures isEmpty \x0a\x09\x09\x09\x09ifTrue: ['success']\x0a\x09\x09\x09\x09ifFalse: ['failure']]\x0a\x09\x09ifFalse: ['error']",
 messageSends: ["ifTrue:ifFalse:", "isEmpty", "failures", "errors"],
@@ -968,7 +968,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@timestamp"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timestamp", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})},
 args: [],
 source: "timestamp\x0a\x09^timestamp",
 messageSends: [],
@@ -986,7 +986,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@total"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"total", [], {}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})},
 args: [],
 source: "total\x0a\x09^total",
 messageSends: [],
@@ -1002,7 +1002,7 @@ category: 'accessing',
 fn: function (aNumber){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
-return self}, function($ctx1) {$ctx1.fill(self,"total:", [aNumber], {}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})},
 args: ["aNumber"],
 source: "total: aNumber\x0a\x09total := aNumber",
 messageSends: [],
@@ -1023,7 +1023,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcer"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcer", [], {}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})},
 args: [],
 source: "announcer\x0a\x09^announcer",
 messageSends: [],
@@ -1041,9 +1041,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
-}, function($ctx2) {$ctx2.fillBlock([], {})})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"contextOf:", [anInteger], {}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})},
 args: ["anInteger"],
 source: "contextOf: anInteger\x0a   \x09^ReportingTestContext testCase: (suite at: anInteger) result: result finished: [ self resume ]",
 messageSends: ["testCase:result:finished:", "at:", "resume"],
@@ -1070,8 +1070,8 @@ $1=_st(runs).__lt(_st(self["@result"])._total());
 if(smalltalk.assert($1)){
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 };
-}, function($ctx2) {$ctx2.fillBlock([], {runs:runs})})});
-return self}, function($ctx1) {$ctx1.fill(self,"initialize", [], {}, smalltalk.TestSuiteRunner)})},
+}, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})},
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09announcer := Announcer new.\x0a    result := TestResult new.\x0a    runNextTest := [ | runs | runs := result runs. runs < result total ifTrue: [ (self contextOf: runs + 1) start ]].",
 messageSends: ["initialize", "new", "runs", "ifTrue:", "start", "contextOf:", "+", "<", "total"],
@@ -1089,7 +1089,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result", [], {}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})},
 args: [],
 source: "result\x0a\x09^result",
 messageSends: [],
@@ -1106,7 +1106,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
-return self}, function($ctx1) {$ctx1.fill(self,"resume", [], {}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.TestSuiteRunner)})},
 args: [],
 source: "resume\x0a\x09runNextTest fork.\x0a    announcer announce: (ResultAnnouncement new result: result)",
 messageSends: ["fork", "announce:", "result:", "new"],
@@ -1123,7 +1123,7 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 _st(self)._resume();
-return self}, function($ctx1) {$ctx1.fill(self,"run", [], {}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})},
 args: [],
 source: "run\x0a\x09result total: suite size.\x0a\x09self resume",
 messageSends: ["total:", "size", "resume"],
@@ -1139,7 +1139,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"suite:", [aCollection], {}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})},
 args: ["aCollection"],
 source: "suite: aCollection\x0a\x09suite := aCollection",
 messageSends: [],
@@ -1156,7 +1156,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
-return self}, function($ctx1) {$ctx1.fill(self,"new", [], {}, smalltalk.TestSuiteRunner.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.TestSuiteRunner.klass)})},
 args: [],
 source: "new\x0a\x09self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
@@ -1174,7 +1174,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:", [aCollection], {}, smalltalk.TestSuiteRunner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})},
 args: ["aCollection"],
 source: "on: aCollection\x0a\x09^super new suite: aCollection",
 messageSends: ["suite:", "new"],

+ 4 - 9
js/boot.js

@@ -730,7 +730,6 @@ function SmalltalkMethodContext(home, setup) {
 }
 
 // Fallbacks
-SmalltalkMethodContext.prototype.args = [];
 SmalltalkMethodContext.prototype.locals = {};
 SmalltalkMethodContext.prototype.receiver = null;
 SmalltalkMethodContext.prototype.selector = null;
@@ -738,20 +737,16 @@ SmalltalkMethodContext.prototype.lookupClass = null;
 
 inherits(SmalltalkMethodContext, SmalltalkObject);
 
-SmalltalkMethodContext.prototype.fill = function(receiver, selector, args, locals, lookupClass) {
+SmalltalkMethodContext.prototype.fill = function(receiver, selector, locals, lookupClass) {
     this.receiver    = receiver;
     this.selector    = selector;
-    this.args        = args || [];
     this.locals      = locals || {};
     this.lookupClass = lookupClass;
 };
 
-SmalltalkMethodContext.prototype.fillBlock = function(args, locals, ctx) {
-    this.args        = args || [];
-    this.locals      = locals || {};
-    if(ctx) {
-        this.methodContext = ctx;
-    }
+SmalltalkMethodContext.prototype.fillBlock = function(locals, ctx) {
+    this.locals        = locals || {};
+    this.methodContext = ctx;
 };
 
 SmalltalkMethodContext.prototype.init = function() {

+ 21 - 19
st/Compiler-IR.st

@@ -416,6 +416,12 @@ arguments: aCollection
 	arguments := aCollection
 !
 
+locals
+	^ self arguments copy
+    	addAll: (self tempDeclarations collect: [ :each | each name ]); 
+        yourself
+!
+
 scope: aScope
 	super scope: aScope.
 	aScope instruction: self
@@ -474,6 +480,12 @@ isMethod
 	^ true
 !
 
+locals
+	^ self arguments copy
+    	addAll: (self tempDeclarations collect: [ :each | each name ]); 
+        yourself
+!
+
 messageSends
 	^ messageSends
 !
@@ -1050,19 +1062,14 @@ nextPutBlockContextFor: anIRClosure during: aBlock
     
     self 
     	nextPutAll: '}, function(', anIRClosure scope alias, ') {';
-        nextPutAll: anIRClosure scope alias, '.fillBlock(['.
+        nextPutAll: anIRClosure scope alias, '.fillBlock({'.
     
-    anIRClosure arguments 
-    	do: [ :each | self nextPutAll: each asVariableName ]
-      	separatedBy: [ self nextPutAll: ','  ].
-    self nextPutAll: '], {'.
-    
-    anIRClosure tempDeclarations 
+    anIRClosure locals 
     	do: [ :each |
     		self 
-        		nextPutAll: each name asVariableName;
+        		nextPutAll: each asVariableName;
            	 	nextPutAll: ':';
-        		nextPutAll: each name asVariableName]
+        		nextPutAll: each asVariableName]
 		separatedBy: [ self nextPutAll: ',' ].
     
     self
@@ -1088,19 +1095,14 @@ nextPutContextFor: aMethod during: aBlock
     
     self 
     	nextPutAll: '}, function(', aMethod scope alias, ') {', aMethod scope alias; 
-        nextPutAll: '.fill(self,', aMethod selector asJavascript, ', ['.
-    
-    aMethod arguments 
-    	do: [ :each | self nextPutAll: each asVariableName ]
-      	separatedBy: [ self nextPutAll: ','  ].
-    self nextPutAll: '], {'.
-    
-    aMethod tempDeclarations 
+        nextPutAll: '.fill(self,', aMethod selector asJavascript, ',{'.
+
+    aMethod locals 
     	do: [ :each |
     		self 
-        		nextPutAll: each name asVariableName;
+        		nextPutAll: each asVariableName;
            	 	nextPutAll: ':';
-        		nextPutAll: each name asVariableName]
+        		nextPutAll: each asVariableName]
 		separatedBy: [ self nextPutAll: ',' ].
     
     self

+ 1 - 9
st/IDE.st

@@ -1315,8 +1315,6 @@ allVariables
 	| all |
 	all := Dictionary new.
 
-	self arguments withIndexDo: [:each :index |
-     	all at: each put: (selectedContext arguments at: index) ].
 	self receiver class allInstanceVariableNames do: [:each |
 		all at: each put: (self receiver instVarAt: each) ].
     
@@ -1326,12 +1324,6 @@ allVariables
     ^ all
 !
 
-arguments
-	^self method 
-		ifNil: [selectedContext arguments collect: [ :each | nil ] ]
-		ifNotNil: [ self method arguments ]
-!
-
 error
 	^error
 !
@@ -1461,7 +1453,7 @@ renderContext: aContext on: html
 	li 
 		with: aContext asString;
 		onClick: [self selectContext: aContext].
-	aContext home ifNotNil: [self renderContext: aContext outerContext on: html]
+	aContext outerContext ifNotNil: [self renderContext: aContext outerContext on: html]
 !
 
 renderTopPanelOn: html

+ 0 - 4
st/Kernel-Methods.st

@@ -355,10 +355,6 @@ Current limitation: MethodContext instances are not created on Block evaluation.
 
 !MethodContext methodsFor: 'accessing'!
 
-arguments
-	<return self.args>
-!
-
 asString
 	^self isBlockContext 
     	ifTrue: [ 'a block (in ', self methodContext asString, ')' ]

Some files were not shown because too many files changed in this diff