浏览代码

Merge pull request #405 from herby/tabs

Spaces changed to tabs; recompiling core.
Herbert Vojčík 12 年之前
父节点
当前提交
cb43e0d7c2
共有 67 个文件被更改,包括 6132 次插入6558 次删除
  1. 112 112
      js/Canvas.deploy.js
  2. 146 146
      js/Canvas.js
  3. 100 100
      js/Compiler-AST.deploy.js
  4. 105 105
      js/Compiler-AST.js
  5. 52 52
      js/Compiler-Core.deploy.js
  6. 58 58
      js/Compiler-Core.js
  7. 12 12
      js/Compiler-Exceptions.deploy.js
  8. 14 14
      js/Compiler-Exceptions.js
  9. 112 112
      js/Compiler-IR.deploy.js
  10. 123 123
      js/Compiler-IR.js
  11. 72 72
      js/Compiler-Inlining.deploy.js
  12. 92 92
      js/Compiler-Inlining.js
  13. 86 86
      js/Compiler-Semantic.deploy.js
  14. 100 100
      js/Compiler-Semantic.js
  15. 78 78
      js/Compiler-Tests.deploy.js
  16. 94 94
      js/Compiler-Tests.js
  17. 6 6
      js/Examples.deploy.js
  18. 12 12
      js/Examples.js
  19. 116 116
      js/IDE.deploy.js
  20. 150 150
      js/IDE.js
  21. 99 166
      js/Importer-Exporter.deploy.js
  22. 121 188
      js/Importer-Exporter.js
  23. 25 25
      js/Kernel-Announcements.deploy.js
  24. 25 25
      js/Kernel-Announcements.js
  25. 97 97
      js/Kernel-Classes.deploy.js
  26. 131 131
      js/Kernel-Classes.js
  27. 145 224
      js/Kernel-Collections.deploy.js
  28. 157 230
      js/Kernel-Collections.js
  29. 33 33
      js/Kernel-Exceptions.deploy.js
  30. 39 39
      js/Kernel-Exceptions.js
  31. 103 103
      js/Kernel-Methods.deploy.js
  32. 130 130
      js/Kernel-Methods.js
  33. 129 129
      js/Kernel-Objects.deploy.js
  34. 139 139
      js/Kernel-Objects.js
  35. 392 466
      js/Kernel-Tests.deploy.js
  36. 391 463
      js/Kernel-Tests.js
  37. 13 13
      js/Kernel-Transcript.deploy.js
  38. 19 19
      js/Kernel-Transcript.js
  39. 24 24
      js/SUnit-Tests.deploy.js
  40. 38 38
      js/SUnit-Tests.js
  41. 61 61
      js/SUnit.deploy.js
  42. 80 80
      js/SUnit.js
  43. 132 129
      js/Spaces.deploy.js
  44. 117 114
      js/Spaces.js
  45. 46 46
      st/Benchfib.st
  46. 166 166
      st/Canvas.st
  47. 16 16
      st/Compiler-AST.st
  48. 13 13
      st/Compiler-Core.st
  49. 2 2
      st/Compiler-Exceptions.st
  50. 123 123
      st/Compiler-IR.st
  51. 30 30
      st/Compiler-Inlining.st
  52. 146 146
      st/Compiler-Interpreter.st
  53. 27 27
      st/Compiler-Semantic.st
  54. 110 110
      st/Compiler-Tests.st
  55. 12 12
      st/Examples.st
  56. 252 252
      st/IDE.st
  57. 114 114
      st/Importer-Exporter.st
  58. 144 144
      st/Kernel-Classes.st
  59. 99 99
      st/Kernel-Collections.st
  60. 13 13
      st/Kernel-Exceptions.st
  61. 86 86
      st/Kernel-Methods.st
  62. 149 149
      st/Kernel-Objects.st
  63. 186 186
      st/Kernel-Tests.st
  64. 6 6
      st/Kernel-Transcript.st
  65. 40 40
      st/SUnit-Tests.st
  66. 64 64
      st/SUnit.st
  67. 8 8
      st/Spaces.st

文件差异内容过多而无法显示
+ 112 - 112
js/Canvas.deploy.js


文件差异内容过多而无法显示
+ 146 - 146
js/Canvas.js


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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-AST', {});
+smalltalk.addPackage('Compiler-AST');
 smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
 smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_accept_",
 "_accept_",
@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitNode_(self);
 $1=_st(aVisitor)._visitNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.Node)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -20,7 +20,7 @@ selector: "addNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
-return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode},smalltalk.Node)})},
 messageSends: ["add:", "nodes"]}),
 messageSends: ["add:", "nodes"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -31,7 +31,7 @@ selector: "isAssignmentNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -42,7 +42,7 @@ selector: "isBlockNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -53,7 +53,7 @@ selector: "isBlockSequenceNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -64,7 +64,7 @@ selector: "isImmutable",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -75,7 +75,7 @@ selector: "isNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -86,7 +86,7 @@ selector: "isReturnNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -97,7 +97,7 @@ selector: "isSendNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -108,7 +108,7 @@ selector: "isValueNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -127,7 +127,7 @@ $1=self["@nodes"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.Node)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -138,7 +138,7 @@ selector: "nodes:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -157,7 +157,7 @@ $1=self["@position"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"position",{},smalltalk.Node)})},
 messageSends: ["ifNil:", "@"]}),
 messageSends: ["ifNil:", "@"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -168,7 +168,7 @@ selector: "position:",
 fn: function (aPosition){
 fn: function (aPosition){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
-return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -186,7 +186,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{},smalltalk.Node)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -197,7 +197,7 @@ selector: "shouldBeAliased:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -215,7 +215,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{},smalltalk.Node)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -226,7 +226,7 @@ selector: "shouldBeInlined:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean},smalltalk.Node)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -247,7 +247,7 @@ return smalltalk.withContext(function($ctx3) {
return false;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{},smalltalk.Node)})},
 messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"]}),
 messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"]}),
 smalltalk.Node);
 smalltalk.Node);
 
 
@@ -263,7 +263,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.AssignmentNode)})},
 messageSends: ["visitAssignmentNode:"]}),
 messageSends: ["visitAssignmentNode:"]}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -274,7 +274,7 @@ selector: "isAssignmentNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{},smalltalk.AssignmentNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -287,7 +287,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@left"];
 $1=self["@left"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"left",{},smalltalk.AssignmentNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -298,7 +298,7 @@ selector: "left:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode},smalltalk.AssignmentNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -311,7 +311,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.AssignmentNode)})},
 messageSends: ["with:with:", "left", "right"]}),
 messageSends: ["with:with:", "left", "right"]}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -324,7 +324,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@right"];
 $1=self["@right"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"right",{},smalltalk.AssignmentNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -335,7 +335,7 @@ selector: "right:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode},smalltalk.AssignmentNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AssignmentNode);
 smalltalk.AssignmentNode);
 
 
@@ -351,7 +351,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockNode_(self);
 $1=_st(aVisitor)._visitBlockNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.BlockNode)})},
 messageSends: ["visitBlockNode:"]}),
 messageSends: ["visitBlockNode:"]}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -362,7 +362,7 @@ selector: "isBlockNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{},smalltalk.BlockNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -381,7 +381,7 @@ $1=self["@parameters"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"parameters",{},smalltalk.BlockNode)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -392,7 +392,7 @@ selector: "parameters:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection},smalltalk.BlockNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -405,7 +405,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.BlockNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -416,7 +416,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.BlockNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -431,7 +431,7 @@ $1=_st(_st(self)._shouldBeAliased())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{},smalltalk.BlockNode)})},
 messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"]}),
 messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"]}),
 smalltalk.BlockNode);
 smalltalk.BlockNode);
 
 
@@ -447,7 +447,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitCascadeNode_(self);
 $1=_st(aVisitor)._visitCascadeNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.CascadeNode)})},
 messageSends: ["visitCascadeNode:"]}),
 messageSends: ["visitCascadeNode:"]}),
 smalltalk.CascadeNode);
 smalltalk.CascadeNode);
 
 
@@ -460,7 +460,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.CascadeNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CascadeNode);
 smalltalk.CascadeNode);
 
 
@@ -471,7 +471,7 @@ selector: "receiver:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode},smalltalk.CascadeNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CascadeNode);
 smalltalk.CascadeNode);
 
 
@@ -487,7 +487,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.DynamicArrayNode)})},
 messageSends: ["visitDynamicArrayNode:"]}),
 messageSends: ["visitDynamicArrayNode:"]}),
 smalltalk.DynamicArrayNode);
 smalltalk.DynamicArrayNode);
 
 
@@ -503,7 +503,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.DynamicDictionaryNode)})},
 messageSends: ["visitDynamicDictionaryNode:"]}),
 messageSends: ["visitDynamicDictionaryNode:"]}),
 smalltalk.DynamicDictionaryNode);
 smalltalk.DynamicDictionaryNode);
 
 
@@ -519,7 +519,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.JSStatementNode)})},
 messageSends: ["visitJSStatementNode:"]}),
 messageSends: ["visitJSStatementNode:"]}),
 smalltalk.JSStatementNode);
 smalltalk.JSStatementNode);
 
 
@@ -537,7 +537,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.JSStatementNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.JSStatementNode);
 smalltalk.JSStatementNode);
 
 
@@ -548,7 +548,7 @@ selector: "source:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.JSStatementNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.JSStatementNode);
 smalltalk.JSStatementNode);
 
 
@@ -564,7 +564,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitMethodNode_(self);
 $1=_st(aVisitor)._visitMethodNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.MethodNode)})},
 messageSends: ["visitMethodNode:"]}),
 messageSends: ["visitMethodNode:"]}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -582,7 +582,7 @@ $1=[];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.MethodNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -593,7 +593,7 @@ selector: "arguments:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -606,7 +606,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@classReferences"];
 $1=self["@classReferences"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -617,7 +617,7 @@ selector: "classReferences:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -630,7 +630,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageSends"];
 $1=self["@messageSends"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -641,7 +641,7 @@ selector: "messageSends:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -654,7 +654,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -665,7 +665,7 @@ selector: "scope:",
 fn: function (aMethodScope){
 fn: function (aMethodScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -678,7 +678,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -689,7 +689,7 @@ selector: "selector:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -702,7 +702,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@source"];
 $1=self["@source"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -713,7 +713,7 @@ selector: "source:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -726,7 +726,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@superSends"];
 $1=self["@superSends"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -737,7 +737,7 @@ selector: "superSends:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection},smalltalk.MethodNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodNode);
 smalltalk.MethodNode);
 
 
@@ -753,7 +753,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitReturnNode_(self);
 $1=_st(aVisitor)._visitReturnNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ReturnNode)})},
 messageSends: ["visitReturnNode:"]}),
 messageSends: ["visitReturnNode:"]}),
 smalltalk.ReturnNode);
 smalltalk.ReturnNode);
 
 
@@ -764,7 +764,7 @@ selector: "isReturnNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{},smalltalk.ReturnNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ReturnNode);
 smalltalk.ReturnNode);
 
 
@@ -777,7 +777,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{},smalltalk.ReturnNode)})},
 messageSends: ["not", "isMethodScope", "scope"]}),
 messageSends: ["not", "isMethodScope", "scope"]}),
 smalltalk.ReturnNode);
 smalltalk.ReturnNode);
 
 
@@ -790,7 +790,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.ReturnNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ReturnNode);
 smalltalk.ReturnNode);
 
 
@@ -801,7 +801,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.ReturnNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ReturnNode);
 smalltalk.ReturnNode);
 
 
@@ -817,7 +817,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSendNode_(self);
 $1=_st(aVisitor)._visitSendNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.SendNode)})},
 messageSends: ["visitSendNode:"]}),
 messageSends: ["visitSendNode:"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -836,7 +836,7 @@ $1=self["@arguments"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.SendNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -847,7 +847,7 @@ selector: "arguments:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -870,7 +870,7 @@ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aColl
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $3=$5;
 $3=$5;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first},smalltalk.SendNode)})},
 messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"]}),
 messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -883,7 +883,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@index"];
 $1=self["@index"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"index",{},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -894,7 +894,7 @@ selector: "index:",
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -905,7 +905,7 @@ selector: "isSendNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -921,7 +921,7 @@ _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.SendNode)})},
 messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"]}),
 messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -934,7 +934,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -945,7 +945,7 @@ selector: "receiver:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -958,7 +958,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -969,7 +969,7 @@ selector: "selector:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -987,7 +987,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSend",{},smalltalk.SendNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -998,7 +998,7 @@ selector: "superSend:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean},smalltalk.SendNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -1023,7 +1023,7 @@ _st($2)._arguments_(_st(self)._arguments());
 $6=_st($2)._yourself();
 $6=_st($2)._yourself();
 $1=$6;
 $1=$6;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject},smalltalk.SendNode)})},
 messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"]}),
 messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"]}),
 smalltalk.SendNode);
 smalltalk.SendNode);
 
 
@@ -1039,7 +1039,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSequenceNode_(self);
 $1=_st(aVisitor)._visitSequenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.SequenceNode)})},
 messageSends: ["visitSequenceNode:"]}),
 messageSends: ["visitSequenceNode:"]}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1056,7 +1056,7 @@ _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{},smalltalk.SequenceNode)})},
 messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"]}),
 messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"]}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1069,7 +1069,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.SequenceNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1080,7 +1080,7 @@ selector: "scope:",
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.SequenceNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1098,7 +1098,7 @@ $1=[];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.SequenceNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1109,7 +1109,7 @@ selector: "temps:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection},smalltalk.SequenceNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SequenceNode);
 smalltalk.SequenceNode);
 
 
@@ -1125,7 +1125,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.BlockSequenceNode)})},
 messageSends: ["visitBlockSequenceNode:"]}),
 messageSends: ["visitBlockSequenceNode:"]}),
 smalltalk.BlockSequenceNode);
 smalltalk.BlockSequenceNode);
 
 
@@ -1136,7 +1136,7 @@ selector: "isBlockSequenceNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{},smalltalk.BlockSequenceNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockSequenceNode);
 smalltalk.BlockSequenceNode);
 
 
@@ -1152,7 +1152,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitValueNode_(self);
 $1=_st(aVisitor)._visitValueNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ValueNode)})},
 messageSends: ["visitValueNode:"]}),
 messageSends: ["visitValueNode:"]}),
 smalltalk.ValueNode);
 smalltalk.ValueNode);
 
 
@@ -1163,7 +1163,7 @@ selector: "isImmutable",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.ValueNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ValueNode);
 smalltalk.ValueNode);
 
 
@@ -1174,7 +1174,7 @@ selector: "isValueNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{},smalltalk.ValueNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ValueNode);
 smalltalk.ValueNode);
 
 
@@ -1187,7 +1187,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@value"];
 $1=self["@value"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"value",{},smalltalk.ValueNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ValueNode);
 smalltalk.ValueNode);
 
 
@@ -1198,7 +1198,7 @@ selector: "value:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject},smalltalk.ValueNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ValueNode);
 smalltalk.ValueNode);
 
 
@@ -1214,7 +1214,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitVariableNode_(self);
 $1=_st(aVisitor)._visitVariableNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.VariableNode)})},
 messageSends: ["visitVariableNode:"]}),
 messageSends: ["visitVariableNode:"]}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1227,7 +1227,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._binding())._alias();
 $1=_st(_st(self)._binding())._alias();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.VariableNode)})},
 messageSends: ["alias", "binding"]}),
 messageSends: ["alias", "binding"]}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1245,7 +1245,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"assigned",{},smalltalk.VariableNode)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1256,7 +1256,7 @@ selector: "assigned:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean},smalltalk.VariableNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1268,7 +1268,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 self["@assigned"]=true;
 self["@assigned"]=true;
-return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{},smalltalk.VariableNode)})},
 messageSends: ["validateAssignment", "binding"]}),
 messageSends: ["validateAssignment", "binding"]}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1281,7 +1281,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@binding"];
 $1=self["@binding"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"binding",{},smalltalk.VariableNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1292,7 +1292,7 @@ selector: "binding:",
 fn: function (aScopeVar){
 fn: function (aScopeVar){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
-return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar},smalltalk.VariableNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1303,7 +1303,7 @@ selector: "isImmutable",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.VariableNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.VariableNode);
 smalltalk.VariableNode);
 
 
@@ -1319,7 +1319,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ClassReferenceNode)})},
 messageSends: ["visitClassReferenceNode:"]}),
 messageSends: ["visitClassReferenceNode:"]}),
 smalltalk.ClassReferenceNode);
 smalltalk.ClassReferenceNode);
 
 
@@ -1332,7 +1332,7 @@ selector: "isNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Object)})},
+}, function($ctx1) {$ctx1.fill(self,"isNode",{},smalltalk.Object)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Object);
 smalltalk.Object);
 
 

+ 105 - 105
js/Compiler-AST.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-AST', {});
+smalltalk.addPackage('Compiler-AST');
 smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
 smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
 smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree.\x0a\x0aposition: holds a point containing lline- and column number of the symbol location in the original source file"
 smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree.\x0a\x0aposition: holds a point containing lline- and column number of the symbol location in the original source file"
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -11,7 +11,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitNode_(self);
 $1=_st(aVisitor)._visitNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.Node)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -27,7 +27,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nodes())._add_(aNode);
-return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode},smalltalk.Node)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "addNode: aNode\x0a\x09self nodes add: aNode",
 source: "addNode: aNode\x0a\x09self nodes add: aNode",
 messageSends: ["add:", "nodes"],
 messageSends: ["add:", "nodes"],
@@ -43,7 +43,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isAssignmentNode\x0a\x09^ false",
 source: "isAssignmentNode\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -59,7 +59,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isBlockNode\x0a\x09^false",
 source: "isBlockNode\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -75,7 +75,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isBlockSequenceNode\x0a\x09^false",
 source: "isBlockSequenceNode\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -91,7 +91,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isImmutable\x0a\x09^false",
 source: "isImmutable\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -107,7 +107,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isNode\x0a\x09^ true",
 source: "isNode\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -123,7 +123,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isReturnNode\x0a\x09^false",
 source: "isReturnNode\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -139,7 +139,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isSendNode\x0a\x09^false",
 source: "isSendNode\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -155,7 +155,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "isValueNode\x0a\x09^false",
 source: "isValueNode\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -179,7 +179,7 @@ $1=self["@nodes"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
 source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -195,7 +195,7 @@ category: 'building',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@nodes"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection},smalltalk.Node)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "nodes: aCollection\x0a\x09nodes := aCollection",
 source: "nodes: aCollection\x0a\x09nodes := aCollection",
 messageSends: [],
 messageSends: [],
@@ -219,7 +219,7 @@ $1=self["@position"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"position",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "position\x0a\x09^position ifNil: [position := 0@0]",
 source: "position\x0a\x09^position ifNil: [position := 0@0]",
 messageSends: ["ifNil:", "@"],
 messageSends: ["ifNil:", "@"],
@@ -235,7 +235,7 @@ category: 'building',
 fn: function (aPosition){
 fn: function (aPosition){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
 return smalltalk.withContext(function($ctx1) { 
self["@position"]=aPosition;
-return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition},smalltalk.Node)})},
 args: ["aPosition"],
 args: ["aPosition"],
 source: "position: aPosition\x0a\x09position := aPosition",
 source: "position: aPosition\x0a\x09position := aPosition",
 messageSends: [],
 messageSends: [],
@@ -258,7 +258,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
 source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -274,7 +274,7 @@ category: 'accessing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeAliased"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean},smalltalk.Node)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
 source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
 messageSends: [],
 messageSends: [],
@@ -297,7 +297,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{},smalltalk.Node)})},
 args: [],
 args: [],
 source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
 source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -313,7 +313,7 @@ category: 'accessing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@shouldBeInlined"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean},smalltalk.Node)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
 source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
 messageSends: [],
 messageSends: [],
@@ -339,9 +339,9 @@ return smalltalk.withContext(function($ctx3) {
return false;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})},
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{},smalltalk.Node)})},
 args: [],
 args: [],
-source: "subtreeNeedsAliasing\x0a    ^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [\x0a        (self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]",
+source: "subtreeNeedsAliasing\x0a\x09^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [\x0a\x09\x09(self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]",
 messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"],
 messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -360,7 +360,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 $1=_st(aVisitor)._visitAssignmentNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.AssignmentNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
 messageSends: ["visitAssignmentNode:"],
 messageSends: ["visitAssignmentNode:"],
@@ -376,7 +376,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{},smalltalk.AssignmentNode)})},
 args: [],
 args: [],
 source: "isAssignmentNode\x0a\x09^ true",
 source: "isAssignmentNode\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -394,7 +394,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@left"];
 $1=self["@left"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"left",{},smalltalk.AssignmentNode)})},
 args: [],
 args: [],
 source: "left\x0a\x09^left",
 source: "left\x0a\x09^left",
 messageSends: [],
 messageSends: [],
@@ -410,7 +410,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@left"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode},smalltalk.AssignmentNode)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "left: aNode\x0a\x09left := aNode",
 source: "left: aNode\x0a\x09left := aNode",
 messageSends: [],
 messageSends: [],
@@ -428,7 +428,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.AssignmentNode)})},
 args: [],
 args: [],
 source: "nodes\x0a\x09^ Array with: self left with: self right",
 source: "nodes\x0a\x09^ Array with: self left with: self right",
 messageSends: ["with:with:", "left", "right"],
 messageSends: ["with:with:", "left", "right"],
@@ -446,7 +446,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@right"];
 $1=self["@right"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})},
+}, function($ctx1) {$ctx1.fill(self,"right",{},smalltalk.AssignmentNode)})},
 args: [],
 args: [],
 source: "right\x0a\x09^right",
 source: "right\x0a\x09^right",
 messageSends: [],
 messageSends: [],
@@ -462,7 +462,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@right"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode},smalltalk.AssignmentNode)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "right: aNode\x0a\x09right := aNode",
 source: "right: aNode\x0a\x09right := aNode",
 messageSends: [],
 messageSends: [],
@@ -483,7 +483,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockNode_(self);
 $1=_st(aVisitor)._visitBlockNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.BlockNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
 messageSends: ["visitBlockNode:"],
 messageSends: ["visitBlockNode:"],
@@ -499,7 +499,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{},smalltalk.BlockNode)})},
 args: [],
 args: [],
 source: "isBlockNode\x0a\x09^true",
 source: "isBlockNode\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -523,7 +523,7 @@ $1=self["@parameters"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"parameters",{},smalltalk.BlockNode)})},
 args: [],
 args: [],
 source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
 source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -539,7 +539,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@parameters"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection},smalltalk.BlockNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "parameters: aCollection\x0a\x09parameters := aCollection",
 source: "parameters: aCollection\x0a\x09parameters := aCollection",
 messageSends: [],
 messageSends: [],
@@ -557,7 +557,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.BlockNode)})},
 args: [],
 args: [],
 source: "scope\x0a\x09^ scope",
 source: "scope\x0a\x09^ scope",
 messageSends: [],
 messageSends: [],
@@ -573,7 +573,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.BlockNode)})},
 args: ["aLexicalScope"],
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
 messageSends: [],
@@ -593,9 +593,9 @@ $1=_st(_st(self)._shouldBeAliased())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._shouldBeInlined();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.BlockNode)})},
+}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{},smalltalk.BlockNode)})},
 args: [],
 args: [],
-source: "subtreeNeedsAliasing\x0a    ^ self shouldBeAliased or: [ self shouldBeInlined ]",
+source: "subtreeNeedsAliasing\x0a\x09^ self shouldBeAliased or: [ self shouldBeInlined ]",
 messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"],
 messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -614,7 +614,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitCascadeNode_(self);
 $1=_st(aVisitor)._visitCascadeNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.CascadeNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
 messageSends: ["visitCascadeNode:"],
 messageSends: ["visitCascadeNode:"],
@@ -632,7 +632,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.CascadeNode)})},
 args: [],
 args: [],
 source: "receiver\x0a\x09^receiver",
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
 messageSends: [],
@@ -648,7 +648,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode},smalltalk.CascadeNode)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "receiver: aNode\x0a\x09receiver := aNode",
 source: "receiver: aNode\x0a\x09receiver := aNode",
 messageSends: [],
 messageSends: [],
@@ -669,7 +669,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 $1=_st(aVisitor)._visitDynamicArrayNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.DynamicArrayNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
 messageSends: ["visitDynamicArrayNode:"],
 messageSends: ["visitDynamicArrayNode:"],
@@ -690,7 +690,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.DynamicDictionaryNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
 messageSends: ["visitDynamicDictionaryNode:"],
 messageSends: ["visitDynamicDictionaryNode:"],
@@ -711,7 +711,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 $1=_st(aVisitor)._visitJSStatementNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.JSStatementNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
 messageSends: ["visitJSStatementNode:"],
 messageSends: ["visitJSStatementNode:"],
@@ -734,7 +734,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.JSStatementNode)})},
 args: [],
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -750,7 +750,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.JSStatementNode)})},
 args: ["aString"],
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
 messageSends: [],
@@ -771,7 +771,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitMethodNode_(self);
 $1=_st(aVisitor)._visitMethodNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.MethodNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
 messageSends: ["visitMethodNode:"],
 messageSends: ["visitMethodNode:"],
@@ -794,7 +794,7 @@ $1=[];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "arguments\x0a\x09^arguments ifNil: [#()]",
 source: "arguments\x0a\x09^arguments ifNil: [#()]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -810,7 +810,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection},smalltalk.MethodNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 messageSends: [],
 messageSends: [],
@@ -828,7 +828,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@classReferences"];
 $1=self["@classReferences"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "classReferences\x0a\x09^ classReferences",
 source: "classReferences\x0a\x09^ classReferences",
 messageSends: [],
 messageSends: [],
@@ -844,7 +844,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@classReferences"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection},smalltalk.MethodNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
 source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
 messageSends: [],
 messageSends: [],
@@ -862,7 +862,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageSends"];
 $1=self["@messageSends"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "messageSends\x0a\x09^ messageSends",
 source: "messageSends\x0a\x09^ messageSends",
 messageSends: [],
 messageSends: [],
@@ -878,7 +878,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@messageSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection},smalltalk.MethodNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
 source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
 messageSends: [],
 messageSends: [],
@@ -896,7 +896,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "scope\x0a\x09^ scope",
 source: "scope\x0a\x09^ scope",
 messageSends: [],
 messageSends: [],
@@ -912,7 +912,7 @@ category: 'accessing',
 fn: function (aMethodScope){
 fn: function (aMethodScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aMethodScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope},smalltalk.MethodNode)})},
 args: ["aMethodScope"],
 args: ["aMethodScope"],
 source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
 source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
 messageSends: [],
 messageSends: [],
@@ -930,7 +930,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "selector\x0a\x09^selector",
 source: "selector\x0a\x09^selector",
 messageSends: [],
 messageSends: [],
@@ -946,7 +946,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.MethodNode)})},
 args: ["aString"],
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
 messageSends: [],
@@ -964,7 +964,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@source"];
 $1=self["@source"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "source\x0a\x09^source",
 source: "source\x0a\x09^source",
 messageSends: [],
 messageSends: [],
@@ -980,7 +980,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.MethodNode)})},
 args: ["aString"],
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
 messageSends: [],
@@ -998,7 +998,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@superSends"];
 $1=self["@superSends"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{},smalltalk.MethodNode)})},
 args: [],
 args: [],
 source: "superSends\x0a\x09^ superSends",
 source: "superSends\x0a\x09^ superSends",
 messageSends: [],
 messageSends: [],
@@ -1014,7 +1014,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@superSends"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection},smalltalk.MethodNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "superSends: aCollection\x0a\x09superSends := aCollection",
 source: "superSends: aCollection\x0a\x09superSends := aCollection",
 messageSends: [],
 messageSends: [],
@@ -1035,7 +1035,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitReturnNode_(self);
 $1=_st(aVisitor)._visitReturnNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ReturnNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
 messageSends: ["visitReturnNode:"],
 messageSends: ["visitReturnNode:"],
@@ -1051,7 +1051,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{},smalltalk.ReturnNode)})},
 args: [],
 args: [],
 source: "isReturnNode\x0a\x09^ true",
 source: "isReturnNode\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1069,7 +1069,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{},smalltalk.ReturnNode)})},
 args: [],
 args: [],
 source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
 source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
 messageSends: ["not", "isMethodScope", "scope"],
 messageSends: ["not", "isMethodScope", "scope"],
@@ -1087,7 +1087,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.ReturnNode)})},
 args: [],
 args: [],
 source: "scope\x0a\x09^ scope",
 source: "scope\x0a\x09^ scope",
 messageSends: [],
 messageSends: [],
@@ -1103,7 +1103,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.ReturnNode)})},
 args: ["aLexicalScope"],
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
 messageSends: [],
@@ -1124,7 +1124,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSendNode_(self);
 $1=_st(aVisitor)._visitSendNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.SendNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
 messageSends: ["visitSendNode:"],
 messageSends: ["visitSendNode:"],
@@ -1148,7 +1148,7 @@ $1=self["@arguments"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
 source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -1164,7 +1164,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection},smalltalk.SendNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 source: "arguments: aCollection\x0a\x09arguments := aCollection",
 messageSends: [],
 messageSends: [],
@@ -1192,9 +1192,9 @@ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aColl
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $3=$5;
 $3=$5;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first},smalltalk.SendNode)})},
 args: ["aCollection"],
 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",
+source: "cascadeNodeWithMessages: aCollection\x0a\x09| first |\x0a\x09first := SendNode new\x0a\x09\x09selector: self selector;\x0a\x09\x09arguments: self arguments;\x0a\x09\x09yourself.\x0a\x09^CascadeNode new\x0a\x09\x09receiver: self receiver;\x0a\x09\x09nodes: (Array with: first), aCollection;\x0a\x09\x09yourself",
 messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
 messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
 referencedClasses: ["SendNode", "CascadeNode", "Array"]
 referencedClasses: ["SendNode", "CascadeNode", "Array"]
 }),
 }),
@@ -1210,7 +1210,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@index"];
 $1=self["@index"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"index",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "index\x0a\x09^ index",
 source: "index\x0a\x09^ index",
 messageSends: [],
 messageSends: [],
@@ -1226,7 +1226,7 @@ category: 'accessing',
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@index"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger},smalltalk.SendNode)})},
 args: ["anInteger"],
 args: ["anInteger"],
 source: "index: anInteger\x0a\x09index := anInteger",
 source: "index: anInteger\x0a\x09index := anInteger",
 messageSends: [],
 messageSends: [],
@@ -1242,7 +1242,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isSendNode",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "isSendNode\x0a\x09^ true",
 source: "isSendNode\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1263,7 +1263,7 @@ _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
 source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
 messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
 messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
@@ -1281,7 +1281,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "receiver\x0a\x09^receiver",
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
 messageSends: [],
@@ -1297,7 +1297,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode},smalltalk.SendNode)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "receiver: aNode\x0a\x09receiver := aNode",
 source: "receiver: aNode\x0a\x09receiver := aNode",
 messageSends: [],
 messageSends: [],
@@ -1315,7 +1315,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "selector\x0a\x09^selector",
 source: "selector\x0a\x09^selector",
 messageSends: [],
 messageSends: [],
@@ -1331,7 +1331,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.SendNode)})},
 args: ["aString"],
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
 messageSends: [],
@@ -1354,7 +1354,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"superSend",{},smalltalk.SendNode)})},
 args: [],
 args: [],
 source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
 source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -1370,7 +1370,7 @@ category: 'accessing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@superSend"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean},smalltalk.SendNode)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
 source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
 messageSends: [],
 messageSends: [],
@@ -1400,9 +1400,9 @@ _st($2)._arguments_(_st(self)._arguments());
 $6=_st($2)._yourself();
 $6=_st($2)._yourself();
 $1=$6;
 $1=$6;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})},
+}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject},smalltalk.SendNode)})},
 args: ["anObject"],
 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",
+source: "valueForReceiver: anObject\x0a\x09^SendNode new\x0a\x09\x09receiver: (self receiver\x0a\x09\x09ifNil: [anObject]\x0a\x09\x09ifNotNil: [self receiver valueForReceiver: anObject]);\x0a\x09\x09selector: self selector;\x0a\x09\x09arguments: self arguments;\x0a\x09\x09yourself",
 messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
 messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
 referencedClasses: ["SendNode"]
 referencedClasses: ["SendNode"]
 }),
 }),
@@ -1421,7 +1421,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitSequenceNode_(self);
 $1=_st(aVisitor)._visitSequenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.SequenceNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
 messageSends: ["visitSequenceNode:"],
 messageSends: ["visitSequenceNode:"],
@@ -1443,9 +1443,9 @@ _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{},smalltalk.SequenceNode)})},
 args: [],
 args: [],
-source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09    nodes: self nodes;\x0a\x09    temps: self temps;\x0a\x09    yourself",
+source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09\x09nodes: self nodes;\x0a\x09\x09temps: self temps;\x0a\x09\x09yourself",
 messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
 messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
 referencedClasses: ["BlockSequenceNode"]
 referencedClasses: ["BlockSequenceNode"]
 }),
 }),
@@ -1461,7 +1461,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.SequenceNode)})},
 args: [],
 args: [],
 source: "scope\x0a\x09^ scope",
 source: "scope\x0a\x09^ scope",
 messageSends: [],
 messageSends: [],
@@ -1477,7 +1477,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope},smalltalk.SequenceNode)})},
 args: ["aLexicalScope"],
 args: ["aLexicalScope"],
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
 messageSends: [],
 messageSends: [],
@@ -1500,7 +1500,7 @@ $1=[];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.SequenceNode)})},
 args: [],
 args: [],
 source: "temps\x0a\x09^temps ifNil: [#()]",
 source: "temps\x0a\x09^temps ifNil: [#()]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -1516,7 +1516,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@temps"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection},smalltalk.SequenceNode)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "temps: aCollection\x0a\x09temps := aCollection",
 source: "temps: aCollection\x0a\x09temps := aCollection",
 messageSends: [],
 messageSends: [],
@@ -1537,7 +1537,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 $1=_st(aVisitor)._visitBlockSequenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.BlockSequenceNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
 messageSends: ["visitBlockSequenceNode:"],
 messageSends: ["visitBlockSequenceNode:"],
@@ -1553,7 +1553,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{},smalltalk.BlockSequenceNode)})},
 args: [],
 args: [],
 source: "isBlockSequenceNode\x0a\x09^true",
 source: "isBlockSequenceNode\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -1574,7 +1574,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitValueNode_(self);
 $1=_st(aVisitor)._visitValueNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ValueNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
 messageSends: ["visitValueNode:"],
 messageSends: ["visitValueNode:"],
@@ -1590,7 +1590,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.ValueNode)})},
 args: [],
 args: [],
 source: "isImmutable\x0a\x09^true",
 source: "isImmutable\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -1606,7 +1606,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isValueNode",{},smalltalk.ValueNode)})},
 args: [],
 args: [],
 source: "isValueNode\x0a\x09^true",
 source: "isValueNode\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -1624,7 +1624,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@value"];
 $1=self["@value"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})},
+}, function($ctx1) {$ctx1.fill(self,"value",{},smalltalk.ValueNode)})},
 args: [],
 args: [],
 source: "value\x0a\x09^value",
 source: "value\x0a\x09^value",
 messageSends: [],
 messageSends: [],
@@ -1640,7 +1640,7 @@ category: 'accessing',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@value"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject},smalltalk.ValueNode)})},
 args: ["anObject"],
 args: ["anObject"],
 source: "value: anObject\x0a\x09value := anObject",
 source: "value: anObject\x0a\x09value := anObject",
 messageSends: [],
 messageSends: [],
@@ -1661,7 +1661,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitVariableNode_(self);
 $1=_st(aVisitor)._visitVariableNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.VariableNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
 messageSends: ["visitVariableNode:"],
 messageSends: ["visitVariableNode:"],
@@ -1679,7 +1679,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._binding())._alias();
 $1=_st(_st(self)._binding())._alias();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.VariableNode)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ self binding alias",
 source: "alias\x0a\x09^ self binding alias",
 messageSends: ["alias", "binding"],
 messageSends: ["alias", "binding"],
@@ -1702,7 +1702,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"assigned",{},smalltalk.VariableNode)})},
 args: [],
 args: [],
 source: "assigned\x0a\x09^assigned ifNil: [false]",
 source: "assigned\x0a\x09^assigned ifNil: [false]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -1718,7 +1718,7 @@ category: 'accessing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@assigned"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean},smalltalk.VariableNode)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
 source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
 messageSends: [],
 messageSends: [],
@@ -1735,7 +1735,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._binding())._validateAssignment();
 self["@assigned"]=true;
 self["@assigned"]=true;
-return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{},smalltalk.VariableNode)})},
 args: [],
 args: [],
 source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
 source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
 messageSends: ["validateAssignment", "binding"],
 messageSends: ["validateAssignment", "binding"],
@@ -1753,7 +1753,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@binding"];
 $1=self["@binding"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"binding",{},smalltalk.VariableNode)})},
 args: [],
 args: [],
 source: "binding\x0a\x09^ binding",
 source: "binding\x0a\x09^ binding",
 messageSends: [],
 messageSends: [],
@@ -1769,7 +1769,7 @@ category: 'accessing',
 fn: function (aScopeVar){
 fn: function (aScopeVar){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
 return smalltalk.withContext(function($ctx1) { 
self["@binding"]=aScopeVar;
-return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar},smalltalk.VariableNode)})},
 args: ["aScopeVar"],
 args: ["aScopeVar"],
 source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
 source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
 messageSends: [],
 messageSends: [],
@@ -1785,7 +1785,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})},
+}, function($ctx1) {$ctx1.fill(self,"isImmutable",{},smalltalk.VariableNode)})},
 args: [],
 args: [],
 source: "isImmutable\x0a\x09^false",
 source: "isImmutable\x0a\x09^false",
 messageSends: [],
 messageSends: [],
@@ -1806,7 +1806,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 $1=_st(aVisitor)._visitClassReferenceNode_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.ClassReferenceNode)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
 messageSends: ["visitClassReferenceNode:"],
 messageSends: ["visitClassReferenceNode:"],
@@ -1824,7 +1824,7 @@ category: '*Compiler-AST',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Object)})},
+}, function($ctx1) {$ctx1.fill(self,"isNode",{},smalltalk.Object)})},
 args: [],
 args: [],
 source: "isNode\x0a\x09^ false",
 source: "isNode\x0a\x09^ false",
 messageSends: [],
 messageSends: [],

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

@@ -14,7 +14,7 @@ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.Compiler)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -25,7 +25,7 @@ selector: "codeGeneratorClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -38,7 +38,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["compileNode:", "parse:"]}),
 messageSends: ["compileNode:", "parse:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -53,7 +53,7 @@ _st(self)._currentClass_(aClass);
 _st(self)._source_(aString);
 _st(self)._source_(aString);
 $1=_st(self)._compile_(aString);
 $1=_st(self)._compile_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass},smalltalk.Compiler)})},
 messageSends: ["currentClass:", "source:", "compile:"]}),
 messageSends: ["currentClass:", "source:", "compile:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -68,7 +68,7 @@ _st(self)._currentClass_((smalltalk.DoIt || DoIt));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["currentClass:", "source:", ",", "compileNode:", "parse:", "source"]}),
 messageSends: ["currentClass:", "source:", ",", "compileNode:", "parse:", "source"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -83,7 +83,7 @@ _st(self)._currentClass_(_st(anObject)._class());
 _st(self)._source_(_st(_st("xxxDoIt ^[").__comma(aString)).__comma("] value"));
 _st(self)._source_(_st(_st("xxxDoIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:on:",{aString:aString,anObject:anObject}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:on:",{aString:aString,anObject:anObject},smalltalk.Compiler)})},
 messageSends: ["currentClass:", "class", "source:", ",", "compileNode:", "parse:", "source"]}),
 messageSends: ["currentClass:", "class", "source:", ",", "compileNode:", "parse:", "source"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -103,7 +103,7 @@ result=_st(generator)._compileNode_(aNode);
 _st(self)._unknownVariables_([]);
 _st(self)._unknownVariables_([]);
 $3=result;
 $3=result;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result},smalltalk.Compiler)})},
 messageSends: ["new", "codeGeneratorClass", "source:", "source", "currentClass:", "currentClass", "compileNode:", "unknownVariables:"]}),
 messageSends: ["new", "codeGeneratorClass", "source:", "source", "currentClass:", "currentClass", "compileNode:", "unknownVariables:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -116,7 +116,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 $1=self["@currentClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -127,7 +127,7 @@ selector: "currentClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -138,7 +138,7 @@ selector: "eval:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -151,7 +151,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._evaluateExpression_on_(aString,_st((smalltalk.DoIt || DoIt))._new());
 $1=_st(self)._evaluateExpression_on_(aString,_st((smalltalk.DoIt || DoIt))._new());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["evaluateExpression:on:", "new"]}),
 messageSends: ["evaluateExpression:on:", "new"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -170,7 +170,7 @@ result=_st(anObject)._xxxDoIt();
 _st(_st(anObject)._class())._removeCompiledMethod_(method);
 _st(_st(anObject)._class())._removeCompiledMethod_(method);
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:on:",{aString:aString,anObject:anObject,result:result,method:method}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:on:",{aString:aString,anObject:anObject,result:result,method:method},smalltalk.Compiler)})},
 messageSends: ["eval:", "compileExpression:on:", "category:", "addCompiledMethod:", "class", "xxxDoIt", "removeCompiledMethod:"]}),
 messageSends: ["eval:", "compileExpression:on:", "category:", "addCompiledMethod:", "class", "xxxDoIt", "removeCompiledMethod:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -183,7 +183,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(self)._eval_(_st(self)._compile_forClass_(aString,aBehavior)),aBehavior,anotherString);
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(self)._eval_(_st(self)._compile_forClass_(aString,aBehavior)),aBehavior,anotherString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString},smalltalk.Compiler)})},
 messageSends: ["installMethod:forClass:category:", "eval:", "compile:forClass:", "new"]}),
 messageSends: ["installMethod:forClass:category:", "eval:", "compile:forClass:", "new"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -196,7 +196,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["parse:", "current"]}),
 messageSends: ["parse:", "current"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -209,7 +209,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["parse:", ","]}),
 messageSends: ["parse:", ","]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -228,7 +228,7 @@ $1=_st(aClass)._isMetaclass();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._recompile_(_st(aClass)._class());
 _st(self)._recompile_(_st(aClass)._class());
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass},smalltalk.Compiler)})},
 messageSends: ["do:", "log:", ",", "selector", "name", "install:forClass:category:", "source", "category", "methodDictionary", "ifFalse:", "recompile:", "class", "isMetaclass"]}),
 messageSends: ["do:", "log:", ",", "selector", "name", "install:forClass:category:", "source", "category", "methodDictionary", "ifFalse:", "recompile:", "class", "isMetaclass"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -248,7 +248,7 @@ return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{},smalltalk.Compiler)})},
 messageSends: ["do:", "show:", "cr", "valueWithTimeout:", "recompile:", "classes", "current"]}),
 messageSends: ["do:", "show:", "cr", "valueWithTimeout:", "recompile:", "classes", "current"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -266,7 +266,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.Compiler)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -277,7 +277,7 @@ selector: "source:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -290,7 +290,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@unknownVariables"];
 $1=self["@unknownVariables"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -301,7 +301,7 @@ selector: "unknownVariables:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection},smalltalk.Compiler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Compiler);
 smalltalk.Compiler);
 
 
@@ -313,7 +313,7 @@ selector: "recompile:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass},smalltalk.Compiler.klass)})},
 messageSends: ["recompile:", "new"]}),
 messageSends: ["recompile:", "new"]}),
 smalltalk.Compiler.klass);
 smalltalk.Compiler.klass);
 
 
@@ -326,7 +326,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
 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);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._recompile_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{},smalltalk.Compiler.klass)})},
 messageSends: ["do:", "recompile:", "classes", "current"]}),
 messageSends: ["do:", "recompile:", "classes", "current"]}),
 smalltalk.Compiler.klass);
 smalltalk.Compiler.klass);
 
 
@@ -344,7 +344,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._accept_(self);
 $1=_st(aNode)._accept_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["accept:"]}),
 messageSends: ["accept:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -359,7 +359,7 @@ $1=_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection},smalltalk.NodeVisitor)})},
 messageSends: ["collect:", "visit:"]}),
 messageSends: ["collect:", "visit:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -372,7 +372,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -385,7 +385,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -398,7 +398,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitSequenceNode_(aNode);
 $1=_st(self)._visitSequenceNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitSequenceNode:"]}),
 messageSends: ["visitSequenceNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -411,7 +411,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -424,7 +424,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitVariableNode_(aNode);
 $1=_st(self)._visitVariableNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitVariableNode:"]}),
 messageSends: ["visitVariableNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -437,7 +437,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -450,7 +450,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -463,7 +463,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -476,7 +476,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -489,7 +489,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitAll:", "nodes"]}),
 messageSends: ["visitAll:", "nodes"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -502,7 +502,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -515,7 +515,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -528,7 +528,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -541,7 +541,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -554,7 +554,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 messageSends: ["visitNode:"]}),
 messageSends: ["visitNode:"]}),
 smalltalk.NodeVisitor);
 smalltalk.NodeVisitor);
 
 
@@ -580,7 +580,7 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.AbstractCodeGenerator)})},
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -591,7 +591,7 @@ selector: "compileNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
-return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode},smalltalk.AbstractCodeGenerator)})},
 messageSends: ["subclassResponsibility"]}),
 messageSends: ["subclassResponsibility"]}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -604,7 +604,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 $1=self["@currentClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{},smalltalk.AbstractCodeGenerator)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -615,7 +615,7 @@ selector: "currentClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass},smalltalk.AbstractCodeGenerator)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -626,7 +626,7 @@ selector: "pseudoVariables",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "true", "false", "nil", "thisContext"];
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -644,7 +644,7 @@ $1=_st(aString).__comma("_");
 $1=aString;
 $1=aString;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString},smalltalk.AbstractCodeGenerator)})},
 messageSends: ["ifTrue:ifFalse:", ",", "includes:", "reservedWords", "current"]}),
 messageSends: ["ifTrue:ifFalse:", ",", "includes:", "reservedWords", "current"]}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -662,7 +662,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.AbstractCodeGenerator)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -673,7 +673,7 @@ selector: "source:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.AbstractCodeGenerator)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
 
 
@@ -695,7 +695,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $3=_st($2)._contents();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream},smalltalk.CodeGenerator)})},
 messageSends: ["visit:", "semanticAnalyzer", "translator", "irTranslator", "contents"]}),
 messageSends: ["visit:", "semanticAnalyzer", "translator", "irTranslator", "contents"]}),
 smalltalk.CodeGenerator);
 smalltalk.CodeGenerator);
 
 
@@ -708,7 +708,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.CodeGenerator);
 smalltalk.CodeGenerator);
 
 
@@ -721,7 +721,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{},smalltalk.CodeGenerator)})},
 messageSends: ["on:", "currentClass"]}),
 messageSends: ["on:", "currentClass"]}),
 smalltalk.CodeGenerator);
 smalltalk.CodeGenerator);
 
 
@@ -738,7 +738,7 @@ _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{},smalltalk.CodeGenerator)})},
 messageSends: ["source:", "source", "new", "theClass:", "currentClass", "yourself"]}),
 messageSends: ["source:", "source", "new", "theClass:", "currentClass", "yourself"]}),
 smalltalk.CodeGenerator);
 smalltalk.CodeGenerator);
 
 

+ 58 - 58
js/Compiler-Core.js

@@ -1,6 +1,6 @@
 smalltalk.addPackage('Compiler-Core');
 smalltalk.addPackage('Compiler-Core');
 smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables', 'codeGeneratorClass'], 'Compiler-Core');
 smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables', 'codeGeneratorClass'], 'Compiler-Core');
-smalltalk.Compiler.comment="I provide the public interface for compiling Amber source code into JavaScript.\x0a\x0aThe code generator used to produce JavaScript can be plugged with `#codeGeneratorClass`. \x0aThe default code generator is an instance of `InlinedCodeGenerator`"
+smalltalk.Compiler.comment="I provide the public interface for compiling Amber source code into JavaScript.\x0a\x0aThe code generator used to produce JavaScript can be plugged with `#codeGeneratorClass`.\x0aThe default code generator is an instance of `InlinedCodeGenerator`"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_codeGeneratorClass",
 "_codeGeneratorClass",
 smalltalk.method({
 smalltalk.method({
@@ -16,7 +16,7 @@ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.Compiler)})},
 args: [],
 args: [],
 source: "codeGeneratorClass\x0a\x09^codeGeneratorClass ifNil: [InliningCodeGenerator]",
 source: "codeGeneratorClass\x0a\x09^codeGeneratorClass ifNil: [InliningCodeGenerator]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -32,7 +32,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@codeGeneratorClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass:",{aClass:aClass},smalltalk.Compiler)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "codeGeneratorClass: aClass\x0a\x09codeGeneratorClass := aClass",
 source: "codeGeneratorClass: aClass\x0a\x09codeGeneratorClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -50,7 +50,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 $1=_st(self)._compileNode_(_st(self)._parse_(aString));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
 source: "compile: aString\x0a\x09^self compileNode: (self parse: aString)",
 source: "compile: aString\x0a\x09^self compileNode: (self parse: aString)",
 messageSends: ["compileNode:", "parse:"],
 messageSends: ["compileNode:", "parse:"],
@@ -70,7 +70,7 @@ _st(self)._currentClass_(aClass);
 _st(self)._source_(aString);
 _st(self)._source_(aString);
 $1=_st(self)._compile_(aString);
 $1=_st(self)._compile_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compile:forClass:",{aString:aString,aClass:aClass},smalltalk.Compiler)})},
 args: ["aString", "aClass"],
 args: ["aString", "aClass"],
 source: "compile: aString forClass: aClass\x0a\x09self currentClass: aClass.\x0a\x09self source: aString.\x0a\x09^self compile: aString",
 source: "compile: aString forClass: aClass\x0a\x09self currentClass: aClass.\x0a\x09self source: aString.\x0a\x09^self compile: aString",
 messageSends: ["currentClass:", "source:", "compile:"],
 messageSends: ["currentClass:", "source:", "compile:"],
@@ -90,7 +90,7 @@ _st(self)._currentClass_((smalltalk.DoIt || DoIt));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 _st(self)._source_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
 source: "compileExpression: aString\x0a\x09self currentClass: DoIt.\x0a\x09self source: 'doIt ^[', aString, '] value'.\x0a\x09^self compileNode: (self parse: self source)",
 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"],
 messageSends: ["currentClass:", "source:", ",", "compileNode:", "parse:", "source"],
@@ -110,7 +110,7 @@ _st(self)._currentClass_(_st(anObject)._class());
 _st(self)._source_(_st(_st("xxxDoIt ^[").__comma(aString)).__comma("] value"));
 _st(self)._source_(_st(_st("xxxDoIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileExpression:on:",{aString:aString,anObject:anObject}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileExpression:on:",{aString:aString,anObject:anObject},smalltalk.Compiler)})},
 args: ["aString", "anObject"],
 args: ["aString", "anObject"],
 source: "compileExpression: aString on: anObject\x0a\x09self currentClass: anObject class.\x0a\x09self source: 'xxxDoIt ^[', aString, '] value'.\x0a\x09^self compileNode: (self parse: self source)",
 source: "compileExpression: aString on: anObject\x0a\x09self currentClass: anObject class.\x0a\x09self source: 'xxxDoIt ^[', aString, '] value'.\x0a\x09^self compileNode: (self parse: self source)",
 messageSends: ["currentClass:", "class", "source:", ",", "compileNode:", "parse:", "source"],
 messageSends: ["currentClass:", "class", "source:", ",", "compileNode:", "parse:", "source"],
@@ -135,7 +135,7 @@ result=_st(generator)._compileNode_(aNode);
 _st(self)._unknownVariables_([]);
 _st(self)._unknownVariables_([]);
 $3=result;
 $3=result;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,generator:generator,result:result},smalltalk.Compiler)})},
 args: ["aNode"],
 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",
 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:"],
 messageSends: ["new", "codeGeneratorClass", "source:", "source", "currentClass:", "currentClass", "compileNode:", "unknownVariables:"],
@@ -153,7 +153,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 $1=self["@currentClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{},smalltalk.Compiler)})},
 args: [],
 args: [],
 source: "currentClass\x0a\x09^currentClass",
 source: "currentClass\x0a\x09^currentClass",
 messageSends: [],
 messageSends: [],
@@ -169,7 +169,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass},smalltalk.Compiler)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -185,7 +185,7 @@ category: 'compiling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
 return smalltalk.withContext(function($ctx1) { 
return eval(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
 source: "eval: aString\x0a\x09<return eval(aString)>",
 source: "eval: aString\x0a\x09<return eval(aString)>",
 messageSends: [],
 messageSends: [],
@@ -203,7 +203,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._evaluateExpression_on_(aString,_st((smalltalk.DoIt || DoIt))._new());
 $1=_st(self)._evaluateExpression_on_(aString,_st((smalltalk.DoIt || DoIt))._new());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
 source: "evaluateExpression: aString\x0a\x09\x22Unlike #eval: evaluate a Smalltalk expression and answer the returned object\x22\x0a\x09^ self evaluateExpression: aString on: DoIt new",
 source: "evaluateExpression: aString\x0a\x09\x22Unlike #eval: evaluate a Smalltalk expression and answer the returned object\x22\x0a\x09^ self evaluateExpression: aString on: DoIt new",
 messageSends: ["evaluateExpression:on:", "new"],
 messageSends: ["evaluateExpression:on:", "new"],
@@ -227,9 +227,9 @@ result=_st(anObject)._xxxDoIt();
 _st(_st(anObject)._class())._removeCompiledMethod_(method);
 _st(_st(anObject)._class())._removeCompiledMethod_(method);
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:on:",{aString:aString,anObject:anObject,result:result,method:method}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"evaluateExpression:on:",{aString:aString,anObject:anObject,result:result,method:method},smalltalk.Compiler)})},
 args: ["aString", "anObject"],
 args: ["aString", "anObject"],
-source: "evaluateExpression: aString on: anObject\x0a\x09\x22Unlike #eval: evaluate a Smalltalk expression with anObject as the receiver and answer the returned object\x22\x0a\x09| result method |\x0a    method := self eval: (self compileExpression: aString on: anObject).\x0a    method category: 'xxxDoIt'.\x0a\x09anObject class addCompiledMethod: method.\x0a\x09result := anObject xxxDoIt.\x0a\x09anObject class removeCompiledMethod: method.\x0a\x09^result",
+source: "evaluateExpression: aString on: anObject\x0a\x09\x22Unlike #eval: evaluate a Smalltalk expression with anObject as the receiver and answer the returned object\x22\x0a\x09| result method |\x0a\x09method := self eval: (self compileExpression: aString on: anObject).\x0a\x09method category: 'xxxDoIt'.\x0a\x09anObject class addCompiledMethod: method.\x0a\x09result := anObject xxxDoIt.\x0a\x09anObject class removeCompiledMethod: method.\x0a\x09^result",
 messageSends: ["eval:", "compileExpression:on:", "category:", "addCompiledMethod:", "class", "xxxDoIt", "removeCompiledMethod:"],
 messageSends: ["eval:", "compileExpression:on:", "category:", "addCompiledMethod:", "class", "xxxDoIt", "removeCompiledMethod:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -245,9 +245,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(self)._eval_(_st(self)._compile_forClass_(aString,aBehavior)),aBehavior,anotherString);
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(self)._eval_(_st(self)._compile_forClass_(aString,aBehavior)),aBehavior,anotherString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString},smalltalk.Compiler)})},
 args: ["aString", "aBehavior", "anotherString"],
 args: ["aString", "aBehavior", "anotherString"],
-source: "install: aString forClass: aBehavior category: anotherString\x0a   \x09^ ClassBuilder new\x0a    \x09installMethod: (self eval: (self compile: aString forClass: aBehavior))\x0a        forClass: aBehavior\x0a        category: anotherString",
+source: "install: aString forClass: aBehavior category: anotherString\x0a\x09^ ClassBuilder new\x0a\x09\x09installMethod: (self eval: (self compile: aString forClass: aBehavior))\x0a\x09\x09forClass: aBehavior\x0a\x09\x09category: anotherString",
 messageSends: ["installMethod:forClass:category:", "eval:", "compile:forClass:", "new"],
 messageSends: ["installMethod:forClass:category:", "eval:", "compile:forClass:", "new"],
 referencedClasses: ["ClassBuilder"]
 referencedClasses: ["ClassBuilder"]
 }),
 }),
@@ -263,9 +263,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
-source: "parse: aString\x0a    ^Smalltalk current parse: aString",
+source: "parse: aString\x0a\x09^Smalltalk current parse: aString",
 messageSends: ["parse:", "current"],
 messageSends: ["parse:", "current"],
 referencedClasses: ["Smalltalk"]
 referencedClasses: ["Smalltalk"]
 }),
 }),
@@ -281,9 +281,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 $1=_st(self)._parse_(_st(_st("doIt ^[").__comma(aString)).__comma("] value"));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"parseExpression:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
-source: "parseExpression: aString\x0a    ^self parse: 'doIt ^[', aString, '] value'",
+source: "parseExpression: aString\x0a\x09^self parse: 'doIt ^[', aString, '] value'",
 messageSends: ["parse:", ","],
 messageSends: ["parse:", ","],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -305,7 +305,7 @@ $1=_st(aClass)._isMetaclass();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._recompile_(_st(aClass)._class());
 _st(self)._recompile_(_st(aClass)._class());
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass},smalltalk.Compiler)})},
 args: ["aClass"],
 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\x09\x22self setupClass: aClass.\x22\x0a\x09aClass isMetaclass ifFalse: [self recompile: aClass class]",
 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\x09\x22self setupClass: aClass.\x22\x0a\x09aClass isMetaclass ifFalse: [self recompile: aClass class]",
 messageSends: ["do:", "log:", ",", "selector", "name", "install:forClass:category:", "source", "category", "methodDictionary", "ifFalse:", "recompile:", "class", "isMetaclass"],
 messageSends: ["do:", "log:", ",", "selector", "name", "install:forClass:category:", "source", "category", "methodDictionary", "ifFalse:", "recompile:", "class", "isMetaclass"],
@@ -330,7 +330,7 @@ return _st((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._recompile_(each);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._valueWithTimeout_((100));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{},smalltalk.Compiler)})},
 args: [],
 args: [],
 source: "recompileAll\x0a\x09Smalltalk current classes do: [:each |\x0a\x09\x09Transcript show: each; cr.\x0a\x09\x09[self recompile: each] valueWithTimeout: 100]",
 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"],
 messageSends: ["do:", "show:", "cr", "valueWithTimeout:", "recompile:", "classes", "current"],
@@ -353,7 +353,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.Compiler)})},
 args: [],
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -369,7 +369,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
 messageSends: [],
@@ -387,7 +387,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@unknownVariables"];
 $1=self["@unknownVariables"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.Compiler)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{},smalltalk.Compiler)})},
 args: [],
 args: [],
 source: "unknownVariables\x0a\x09^unknownVariables",
 source: "unknownVariables\x0a\x09^unknownVariables",
 messageSends: [],
 messageSends: [],
@@ -403,7 +403,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@unknownVariables"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection}, smalltalk.Compiler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"unknownVariables:",{aCollection:aCollection},smalltalk.Compiler)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "unknownVariables: aCollection\x0a\x09unknownVariables := aCollection",
 source: "unknownVariables: aCollection\x0a\x09unknownVariables := aCollection",
 messageSends: [],
 messageSends: [],
@@ -420,7 +420,7 @@ category: 'compiling',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._recompile_(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass}, smalltalk.Compiler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompile:",{aClass:aClass},smalltalk.Compiler.klass)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "recompile: aClass\x0a\x09self new recompile: aClass",
 source: "recompile: aClass\x0a\x09self new recompile: aClass",
 messageSends: ["recompile:", "new"],
 messageSends: ["recompile:", "new"],
@@ -438,7 +438,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
 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);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._recompile_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{}, smalltalk.Compiler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"recompileAll",{},smalltalk.Compiler.klass)})},
 args: [],
 args: [],
 source: "recompileAll\x0a\x09Smalltalk current classes do: [:each |\x0a\x09\x09self recompile: each]",
 source: "recompileAll\x0a\x09Smalltalk current classes do: [:each |\x0a\x09\x09self recompile: each]",
 messageSends: ["do:", "recompile:", "classes", "current"],
 messageSends: ["do:", "recompile:", "classes", "current"],
@@ -463,7 +463,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aNode)._accept_(self);
 $1=_st(aNode)._accept_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visit: aNode\x0a\x09^ aNode accept: self",
 source: "visit: aNode\x0a\x09^ aNode accept: self",
 messageSends: ["accept:"],
 messageSends: ["accept:"],
@@ -483,7 +483,7 @@ $1=_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAll:",{aCollection:aCollection},smalltalk.NodeVisitor)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "visitAll: aCollection\x0a\x09^ aCollection collect: [ :each | self visit: each ]",
 source: "visitAll: aCollection\x0a\x09^ aCollection collect: [ :each | self visit: each ]",
 messageSends: ["collect:", "visit:"],
 messageSends: ["collect:", "visit:"],
@@ -501,7 +501,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitAssignmentNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitAssignmentNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -519,7 +519,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitBlockNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitBlockNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -537,7 +537,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitSequenceNode_(aNode);
 $1=_st(self)._visitSequenceNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitBlockSequenceNode: aNode\x0a\x09^ self visitSequenceNode: aNode",
 source: "visitBlockSequenceNode: aNode\x0a\x09^ self visitSequenceNode: aNode",
 messageSends: ["visitSequenceNode:"],
 messageSends: ["visitSequenceNode:"],
@@ -555,7 +555,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitCascadeNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitCascadeNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -573,7 +573,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitVariableNode_(aNode);
 $1=_st(self)._visitVariableNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitClassReferenceNode: aNode\x0a\x09^ self visitVariableNode: aNode",
 source: "visitClassReferenceNode: aNode\x0a\x09^ self visitVariableNode: aNode",
 messageSends: ["visitVariableNode:"],
 messageSends: ["visitVariableNode:"],
@@ -591,7 +591,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitDynamicArrayNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitDynamicArrayNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -609,7 +609,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitDynamicDictionaryNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitDynamicDictionaryNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -627,7 +627,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitJSStatementNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitJSStatementNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -645,7 +645,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitMethodNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitMethodNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -663,7 +663,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 $1=_st(self)._visitAll_(_st(aNode)._nodes());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitNode: aNode\x0a\x09^ self visitAll: aNode nodes",
 source: "visitNode: aNode\x0a\x09^ self visitAll: aNode nodes",
 messageSends: ["visitAll:", "nodes"],
 messageSends: ["visitAll:", "nodes"],
@@ -681,7 +681,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitReturnNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitReturnNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -699,7 +699,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitSendNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitSendNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -717,7 +717,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitSequenceNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitSequenceNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -735,7 +735,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitValueNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitValueNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -753,7 +753,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._visitNode_(aNode);
 $1=_st(self)._visitNode_(aNode);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.NodeVisitor)})},
+}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode},smalltalk.NodeVisitor)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitVariableNode: aNode\x0a\x09^ self visitNode: aNode",
 source: "visitVariableNode: aNode\x0a\x09^ self visitNode: aNode",
 messageSends: ["visitNode:"],
 messageSends: ["visitNode:"],
@@ -785,9 +785,9 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.AbstractCodeGenerator)})},
 args: ["aClass"],
 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]]",
+source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09\x09ifTrue: [aClass instanceClass name, '.klass']\x0a\x09\x09ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09\x09ifTrue: ['nil']\x0a\x09\x09\x09ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -801,7 +801,7 @@ category: 'compiling',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
 return smalltalk.withContext(function($ctx1) { 
_st(self)._subclassResponsibility();
-return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode},smalltalk.AbstractCodeGenerator)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "compileNode: aNode\x0a\x09self subclassResponsibility",
 source: "compileNode: aNode\x0a\x09self subclassResponsibility",
 messageSends: ["subclassResponsibility"],
 messageSends: ["subclassResponsibility"],
@@ -819,7 +819,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@currentClass"];
 $1=self["@currentClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"currentClass",{}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"currentClass",{},smalltalk.AbstractCodeGenerator)})},
 args: [],
 args: [],
 source: "currentClass\x0a\x09^currentClass",
 source: "currentClass\x0a\x09^currentClass",
 messageSends: [],
 messageSends: [],
@@ -835,7 +835,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@currentClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass},smalltalk.AbstractCodeGenerator)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 source: "currentClass: aClass\x0a\x09currentClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -851,7 +851,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "true", "false", "nil", "thisContext"];
 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: [],
 args: [],
 source: "pseudoVariables\x0a\x09^#('self' 'super' 'true' 'false' 'nil' 'thisContext')",
 source: "pseudoVariables\x0a\x09^#('self' 'super' 'true' 'false' 'nil' 'thisContext')",
 messageSends: [],
 messageSends: [],
@@ -874,7 +874,7 @@ $1=_st(aString).__comma("_");
 $1=aString;
 $1=aString;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"safeVariableNameFor:",{aString:aString},smalltalk.AbstractCodeGenerator)})},
 args: ["aString"],
 args: ["aString"],
 source: "safeVariableNameFor: aString\x0a\x09^(Smalltalk current reservedWords includes: aString)\x0a\x09\x09ifTrue: [aString, '_']\x0a\x09\x09ifFalse: [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"],
 messageSends: ["ifTrue:ifFalse:", ",", "includes:", "reservedWords", "current"],
@@ -897,7 +897,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.AbstractCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.AbstractCodeGenerator)})},
 args: [],
 args: [],
 source: "source\x0a\x09^source ifNil: ['']",
 source: "source\x0a\x09^source ifNil: ['']",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -913,7 +913,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@source"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.AbstractCodeGenerator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.AbstractCodeGenerator)})},
 args: ["aString"],
 args: ["aString"],
 source: "source: aString\x0a\x09source := aString",
 source: "source: aString\x0a\x09source := aString",
 messageSends: [],
 messageSends: [],
@@ -941,7 +941,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $3=_st($2)._contents();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream},smalltalk.CodeGenerator)})},
 args: ["aNode"],
 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",
 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"],
 messageSends: ["visit:", "semanticAnalyzer", "translator", "irTranslator", "contents"],
@@ -959,7 +959,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 $1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 args: [],
 args: [],
 source: "irTranslator\x0a\x09^ IRJSTranslator new",
 source: "irTranslator\x0a\x09^ IRJSTranslator new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -977,7 +977,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 $1=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(self)._currentClass());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{},smalltalk.CodeGenerator)})},
 args: [],
 args: [],
 source: "semanticAnalyzer\x0a\x09^ SemanticAnalyzer on: self currentClass",
 source: "semanticAnalyzer\x0a\x09^ SemanticAnalyzer on: self currentClass",
 messageSends: ["on:", "currentClass"],
 messageSends: ["on:", "currentClass"],
@@ -999,7 +999,7 @@ _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.CodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{},smalltalk.CodeGenerator)})},
 args: [],
 args: [],
 source: "translator\x0a\x09^ IRASTTranslator new\x0a\x09\x09source: self source;\x0a\x09\x09theClass: self currentClass;\x0a\x09\x09yourself",
 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"],
 messageSends: ["source:", "source", "new", "theClass:", "currentClass", "yourself"],

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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Exceptions', {});
+smalltalk.addPackage('Compiler-Exceptions');
 smalltalk.addClass('CompilerError', smalltalk.Error, [], 'Compiler-Exceptions');
 smalltalk.addClass('CompilerError', smalltalk.Error, [], 'Compiler-Exceptions');
 
 
 
 
@@ -21,7 +21,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.InvalidAssignmentError)})},
 messageSends: [",", "variableName"]}),
 messageSends: [",", "variableName"]}),
 smalltalk.InvalidAssignmentError);
 smalltalk.InvalidAssignmentError);
 
 
@@ -34,7 +34,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.InvalidAssignmentError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.InvalidAssignmentError);
 smalltalk.InvalidAssignmentError);
 
 
@@ -45,7 +45,7 @@ selector: "variableName:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.InvalidAssignmentError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.InvalidAssignmentError);
 smalltalk.InvalidAssignmentError);
 
 
@@ -61,7 +61,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.ShadowingVariableError)})},
 messageSends: [",", "variableName"]}),
 messageSends: [",", "variableName"]}),
 smalltalk.ShadowingVariableError);
 smalltalk.ShadowingVariableError);
 
 
@@ -74,7 +74,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.ShadowingVariableError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ShadowingVariableError);
 smalltalk.ShadowingVariableError);
 
 
@@ -85,7 +85,7 @@ selector: "variableName:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.ShadowingVariableError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ShadowingVariableError);
 smalltalk.ShadowingVariableError);
 
 
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
 $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.UnknownVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.UnknownVariableError)})},
 messageSends: [",", "variableName"]}),
 messageSends: [",", "variableName"]}),
 smalltalk.UnknownVariableError);
 smalltalk.UnknownVariableError);
 
 
@@ -114,7 +114,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.UnknownVariableError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.UnknownVariableError);
 smalltalk.UnknownVariableError);
 
 
@@ -125,7 +125,7 @@ selector: "variableName:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.UnknownVariableError)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.UnknownVariableError);
 smalltalk.UnknownVariableError);
 
 
@@ -139,7 +139,7 @@ selector: "basicSignal:",
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
throw anError;
 return smalltalk.withContext(function($ctx1) { 
throw anError;
-return self}, function($ctx1) {$ctx1.fill(self,"basicSignal:",{anError:anError}, smalltalk.RethrowErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSignal:",{anError:anError},smalltalk.RethrowErrorHandler)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.RethrowErrorHandler);
 smalltalk.RethrowErrorHandler);
 
 
@@ -151,7 +151,7 @@ fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.ErrorHandler.fn.prototype._handleError_.apply(_st(self), [anError]);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.ErrorHandler.fn.prototype._handleError_.apply(_st(self), [anError]);
 _st(self)._basicSignal_(anError);
 _st(self)._basicSignal_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.RethrowErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},smalltalk.RethrowErrorHandler)})},
 messageSends: ["handleError:", "basicSignal:"]}),
 messageSends: ["handleError:", "basicSignal:"]}),
 smalltalk.RethrowErrorHandler);
 smalltalk.RethrowErrorHandler);
 
 

+ 14 - 14
js/Compiler-Exceptions.js

@@ -1,10 +1,10 @@
-smalltalk.addPackage('Compiler-Exceptions', {});
+smalltalk.addPackage('Compiler-Exceptions');
 smalltalk.addClass('CompilerError', smalltalk.Error, [], 'Compiler-Exceptions');
 smalltalk.addClass('CompilerError', smalltalk.Error, [], 'Compiler-Exceptions');
 smalltalk.CompilerError.comment="I am the common superclass of all compiling errors."
 smalltalk.CompilerError.comment="I am the common superclass of all compiling errors."
 
 
 
 
 smalltalk.addClass('ParseError', smalltalk.CompilerError, [], 'Compiler-Exceptions');
 smalltalk.addClass('ParseError', smalltalk.CompilerError, [], 'Compiler-Exceptions');
-smalltalk.ParseError.comment="Instance of ParseError are signaled on any parsing error. \x0aSee `Smalltalk >> #parse:`"
+smalltalk.ParseError.comment="Instance of ParseError are signaled on any parsing error.\x0aSee `Smalltalk >> #parse:`"
 
 
 
 
 smalltalk.addClass('SemanticError', smalltalk.CompilerError, [], 'Compiler-Exceptions');
 smalltalk.addClass('SemanticError', smalltalk.CompilerError, [], 'Compiler-Exceptions');
@@ -27,7 +27,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.InvalidAssignmentError)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^ ' Invalid assignment to variable: ', self variableName",
 source: "messageText\x0a\x09^ ' Invalid assignment to variable: ', self variableName",
 messageSends: [",", "variableName"],
 messageSends: [",", "variableName"],
@@ -45,7 +45,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.InvalidAssignmentError)})},
 args: [],
 args: [],
 source: "variableName\x0a\x09^ variableName",
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
 messageSends: [],
@@ -61,7 +61,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.InvalidAssignmentError)})},
 args: ["aString"],
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],
 messageSends: [],
@@ -83,7 +83,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.ShadowingVariableError)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^ 'Variable shadowing error: ', self variableName, ' is already defined'",
 source: "messageText\x0a\x09^ 'Variable shadowing error: ', self variableName, ' is already defined'",
 messageSends: [",", "variableName"],
 messageSends: [",", "variableName"],
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.ShadowingVariableError)})},
 args: [],
 args: [],
 source: "variableName\x0a\x09^ variableName",
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
 messageSends: [],
@@ -117,7 +117,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.ShadowingVariableError)})},
 args: ["aString"],
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],
 messageSends: [],
@@ -139,7 +139,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
 $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.UnknownVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.UnknownVariableError)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^ 'Unknown Variable error: ', self variableName, ' is not defined'",
 source: "messageText\x0a\x09^ 'Unknown Variable error: ', self variableName, ' is not defined'",
 messageSends: [",", "variableName"],
 messageSends: [",", "variableName"],
@@ -157,7 +157,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@variableName"];
 $1=self["@variableName"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})},
+}, function($ctx1) {$ctx1.fill(self,"variableName",{},smalltalk.UnknownVariableError)})},
 args: [],
 args: [],
 source: "variableName\x0a\x09^ variableName",
 source: "variableName\x0a\x09^ variableName",
 messageSends: [],
 messageSends: [],
@@ -173,7 +173,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@variableName"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})},
+return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString},smalltalk.UnknownVariableError)})},
 args: ["aString"],
 args: ["aString"],
 source: "variableName: aString\x0a\x09variableName := aString",
 source: "variableName: aString\x0a\x09variableName := aString",
 messageSends: [],
 messageSends: [],
@@ -193,7 +193,7 @@ category: 'error handling',
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
throw anError;
 return smalltalk.withContext(function($ctx1) { 
throw anError;
-return self}, function($ctx1) {$ctx1.fill(self,"basicSignal:",{anError:anError}, smalltalk.RethrowErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSignal:",{anError:anError},smalltalk.RethrowErrorHandler)})},
 args: ["anError"],
 args: ["anError"],
 source: "basicSignal: anError\x0a\x09<throw anError>",
 source: "basicSignal: anError\x0a\x09<throw anError>",
 messageSends: [],
 messageSends: [],
@@ -210,9 +210,9 @@ fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.ErrorHandler.fn.prototype._handleError_.apply(_st(self), [anError]);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.ErrorHandler.fn.prototype._handleError_.apply(_st(self), [anError]);
 _st(self)._basicSignal_(anError);
 _st(self)._basicSignal_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.RethrowErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},smalltalk.RethrowErrorHandler)})},
 args: ["anError"],
 args: ["anError"],
-source: "handleError: anError\x0a\x09super handleError: anError.\x0a    self basicSignal: anError",
+source: "handleError: anError\x0a\x09super handleError: anError.\x0a\x09self basicSignal: anError",
 messageSends: ["handleError:", "basicSignal:"],
 messageSends: ["handleError:", "basicSignal:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),

文件差异内容过多而无法显示
+ 112 - 112
js/Compiler-IR.deploy.js


文件差异内容过多而无法显示
+ 123 - 123
js/Compiler-IR.js


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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Inlining', {});
+smalltalk.addPackage('Compiler-Inlining');
 smalltalk.addClass('IRInlinedAssignment', smalltalk.IRAssignment, [], 'Compiler-Inlining');
 smalltalk.addClass('IRInlinedAssignment', smalltalk.IRAssignment, [], 'Compiler-Inlining');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_accept_",
 "_accept_",
@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedAssignment)})},
 messageSends: ["visitIRInlinedAssignment:"]}),
 messageSends: ["visitIRInlinedAssignment:"]}),
 smalltalk.IRInlinedAssignment);
 smalltalk.IRInlinedAssignment);
 
 
@@ -20,7 +20,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedAssignment)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedAssignment);
 smalltalk.IRInlinedAssignment);
 
 
@@ -34,7 +34,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedClosure)})},
 messageSends: ["visitIRInlinedClosure:"]}),
 messageSends: ["visitIRInlinedClosure:"]}),
 smalltalk.IRInlinedClosure);
 smalltalk.IRInlinedClosure);
 
 
@@ -45,7 +45,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedClosure);
 smalltalk.IRInlinedClosure);
 
 
@@ -61,7 +61,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedReturn)})},
 messageSends: ["visitIRInlinedReturn:"]}),
 messageSends: ["visitIRInlinedReturn:"]}),
 smalltalk.IRInlinedReturn);
 smalltalk.IRInlinedReturn);
 
 
@@ -72,7 +72,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedReturn)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedReturn);
 smalltalk.IRInlinedReturn);
 
 
@@ -88,7 +88,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedNonLocalReturn)})},
 messageSends: ["visitIRInlinedNonLocalReturn:"]}),
 messageSends: ["visitIRInlinedNonLocalReturn:"]}),
 smalltalk.IRInlinedNonLocalReturn);
 smalltalk.IRInlinedNonLocalReturn);
 
 
@@ -99,7 +99,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedNonLocalReturn)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedNonLocalReturn);
 smalltalk.IRInlinedNonLocalReturn);
 
 
@@ -113,7 +113,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSend)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedSend)})},
 messageSends: ["visitInlinedSend:"]}),
 messageSends: ["visitInlinedSend:"]}),
 smalltalk.IRInlinedSend);
 smalltalk.IRInlinedSend);
 
 
@@ -124,7 +124,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSend)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedSend)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedSend);
 smalltalk.IRInlinedSend);
 
 
@@ -138,7 +138,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfFalse)})},
 messageSends: ["visitIRInlinedIfFalse:"]}),
 messageSends: ["visitIRInlinedIfFalse:"]}),
 smalltalk.IRInlinedIfFalse);
 smalltalk.IRInlinedIfFalse);
 
 
@@ -152,7 +152,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfNilIfNotNil)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfNilIfNotNil)})},
 messageSends: ["visitIRInlinedIfNilIfNotNil:"]}),
 messageSends: ["visitIRInlinedIfNilIfNotNil:"]}),
 smalltalk.IRInlinedIfNilIfNotNil);
 smalltalk.IRInlinedIfNilIfNotNil);
 
 
@@ -166,7 +166,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrue)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfTrue)})},
 messageSends: ["visitIRInlinedIfTrue:"]}),
 messageSends: ["visitIRInlinedIfTrue:"]}),
 smalltalk.IRInlinedIfTrue);
 smalltalk.IRInlinedIfTrue);
 
 
@@ -180,7 +180,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrueIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfTrueIfFalse)})},
 messageSends: ["visitIRInlinedIfTrueIfFalse:"]}),
 messageSends: ["visitIRInlinedIfTrueIfFalse:"]}),
 smalltalk.IRInlinedIfTrueIfFalse);
 smalltalk.IRInlinedIfTrueIfFalse);
 
 
@@ -194,7 +194,7 @@ selector: "accept:",
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSequence)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedSequence)})},
 messageSends: ["visitIRInlinedSequence:"]}),
 messageSends: ["visitIRInlinedSequence:"]}),
 smalltalk.IRInlinedSequence);
 smalltalk.IRInlinedSequence);
 
 
@@ -205,7 +205,7 @@ selector: "isInlined",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSequence)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedSequence)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRInlinedSequence);
 smalltalk.IRInlinedSequence);
 
 
@@ -224,7 +224,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{},smalltalk.IRInliner)})},
 messageSends: ["translator:", "new", "yourself"]}),
 messageSends: ["translator:", "new", "yourself"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -240,7 +240,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{},smalltalk.IRInliner)})},
 messageSends: ["translator:", "new", "yourself"]}),
 messageSends: ["translator:", "new", "yourself"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -256,7 +256,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"returnInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"returnInliner",{},smalltalk.IRInliner)})},
 messageSends: ["translator:", "new", "yourself"]}),
 messageSends: ["translator:", "new", "yourself"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -272,7 +272,7 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"sendInliner",{},smalltalk.IRInliner)})},
 messageSends: ["translator:", "new", "yourself"]}),
 messageSends: ["translator:", "new", "yourself"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -289,7 +289,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSen
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment},smalltalk.IRInliner)})},
 messageSends: ["and:", "shouldInlineSend:", "last", "instructions", "isSend", "not", "isInlined"]}),
 messageSends: ["and:", "shouldInlineSend:", "last", "instructions", "isSend", "not", "isInlined"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -306,7 +306,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSen
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn},smalltalk.IRInliner)})},
 messageSends: ["and:", "shouldInlineSend:", "first", "instructions", "isSend", "not", "isInlined"]}),
 messageSends: ["and:", "shouldInlineSend:", "first", "instructions", "isSend", "not", "isInlined"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -321,7 +321,7 @@ $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend},smalltalk.IRInliner)})},
 messageSends: ["and:", "shouldInline:", "not", "isInlined"]}),
 messageSends: ["and:", "shouldInline:", "not", "isInlined"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -350,7 +350,7 @@ return $4;
 };
 };
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn},smalltalk.IRInliner)})},
 messageSends: ["ifTrue:", "removeNonLocalReturn:", "scope", "methodScope", "scope:", "new", "yourself", "do:", "add:", "instructions", "replaceWith:", "canInlineNonLocalReturns", "visitIRNonLocalReturn:"]}),
 messageSends: ["ifTrue:", "removeNonLocalReturn:", "scope", "methodScope", "scope:", "new", "yourself", "do:", "add:", "instructions", "replaceWith:", "canInlineNonLocalReturns", "visitIRNonLocalReturn:"]}),
 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]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment},smalltalk.IRInliner)})},
 messageSends: ["ifTrue:ifFalse:", "inlineAssignment:", "assignmentInliner", "visitIRAssignment:", "shouldInlineAssignment:"]}),
 messageSends: ["ifTrue:ifFalse:", "inlineAssignment:", "assignmentInliner", "visitIRAssignment:", "shouldInlineAssignment:"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -386,7 +386,7 @@ $1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn},smalltalk.IRInliner)})},
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "nonLocalReturnInliner", "transformNonLocalReturn:", "shouldInlineReturn:"]}),
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "nonLocalReturnInliner", "transformNonLocalReturn:", "shouldInlineReturn:"]}),
 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]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn},smalltalk.IRInliner)})},
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "returnInliner", "visitIRReturn:", "shouldInlineReturn:"]}),
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "returnInliner", "visitIRReturn:", "shouldInlineReturn:"]}),
 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]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend},smalltalk.IRInliner)})},
 messageSends: ["ifTrue:ifFalse:", "inlineSend:", "sendInliner", "visitIRSend:", "shouldInlineSend:"]}),
 messageSends: ["ifTrue:ifFalse:", "inlineSend:", "sendInliner", "visitIRSend:", "shouldInlineSend:"]}),
 smalltalk.IRInliner);
 smalltalk.IRInliner);
 
 
@@ -436,7 +436,7 @@ selector: "visitIRInlinedAssignment:",
 fn: function (anIRInlinedAssignment){
 fn: function (anIRInlinedAssignment){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["visit:", "last", "instructions"]}),
 messageSends: ["visit:", "last", "instructions"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -449,7 +449,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["do:", "visit:", "instructions"]}),
 messageSends: ["do:", "visit:", "instructions"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -466,7 +466,7 @@ return _st(_st(self)._stream())._nextPutAll_(")");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -483,7 +483,7 @@ return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -502,7 +502,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"]}),
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -519,7 +519,7 @@ return _st(_st(self)._stream())._nextPutAll_(")");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -538,7 +538,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"]}),
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -553,7 +553,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["nextPutStatementWith:", "visit:", "last", "instructions", "stream", "nextPutNonLocalReturnWith:"]}),
 messageSends: ["nextPutStatementWith:", "visit:", "last", "instructions", "stream", "nextPutNonLocalReturnWith:"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -564,7 +564,7 @@ selector: "visitIRInlinedReturn:",
 fn: function (anIRInlinedReturn){
 fn: function (anIRInlinedReturn){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["visit:", "last", "instructions"]}),
 messageSends: ["visit:", "last", "instructions"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -579,7 +579,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._stream())._
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence},smalltalk.IRInliningJSTranslator)})},
 messageSends: ["do:", "nextPutStatementWith:", "visit:", "stream", "instructions"]}),
 messageSends: ["do:", "nextPutStatementWith:", "visit:", "stream", "instructions"]}),
 smalltalk.IRInliningJSTranslator);
 smalltalk.IRInliningJSTranslator);
 
 
@@ -595,7 +595,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:", "new"]}),
 messageSends: ["inlinedSend:with:", "new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -608,7 +608,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["perform:withArguments:"]}),
 messageSends: ["perform:withArguments:"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -628,7 +628,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"]}),
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -641,7 +641,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:with:", "new"]}),
 messageSends: ["inlinedSend:with:with:", "new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -661,7 +661,7 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"]}),
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -674,7 +674,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:with:", "new"]}),
 messageSends: ["inlinedSend:with:with:", "new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -687,7 +687,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:", "new"]}),
 messageSends: ["inlinedSend:with:", "new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -700,7 +700,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 messageSends: ["inlinedSend:with:with:", "new"]}),
 messageSends: ["inlinedSend:with:with:", "new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -738,7 +738,7 @@ return _st(sequence)._add_(_st(statements)._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=inlinedClosure;
 $3=inlinedClosure;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure: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)})},
 messageSends: ["inlinedClosure", "scope:", "scope", "do:", "ifFalse:", "add:", "isSequence", "instructions", "inlinedSequence", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"]}),
 messageSends: ["inlinedClosure", "scope:", "scope", "do:", "ifFalse:", "add:", "isSequence", "instructions", "inlinedSequence", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -752,7 +752,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._send_(anIRSend);
 _st(self)._send_(anIRSend);
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend},smalltalk.IRSendInliner)})},
 messageSends: ["send:", "perform:withArguments:", "selector", "send", "allButFirst", "instructions"]}),
 messageSends: ["send:", "perform:withArguments:", "selector", "send", "allButFirst", "instructions"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -765,7 +765,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{},smalltalk.IRSendInliner)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -792,7 +792,7 @@ $4=_st($3)._add_(inlinedClosure);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $5=inlinedSend;
 $5=inlinedSend;
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure},smalltalk.IRSendInliner)})},
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"]}),
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -829,7 +829,7 @@ $6=_st($5)._add_(inlinedClosure2);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $7=inlinedSend;
 $7=inlinedSend;
 return $7;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction: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)})},
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"]}),
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -842,7 +842,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{},smalltalk.IRSendInliner)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -853,7 +853,7 @@ selector: "inliningError:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString},smalltalk.IRSendInliner)})},
 messageSends: ["signal:"]}),
 messageSends: ["signal:"]}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -866,7 +866,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@send"];
 $1=self["@send"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"send",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"send",{},smalltalk.IRSendInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -877,7 +877,7 @@ selector: "send:",
 fn: function (anIRSend){
 fn: function (anIRSend){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
-return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend},smalltalk.IRSendInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -890,7 +890,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@translator"];
 $1=self["@translator"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{},smalltalk.IRSendInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -901,7 +901,7 @@ selector: "translator:",
 fn: function (anASTTranslator){
 fn: function (anASTTranslator){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
-return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator},smalltalk.IRSendInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRSendInliner);
 smalltalk.IRSendInliner);
 
 
@@ -913,7 +913,7 @@ selector: "inlinedSelectors",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRSendInliner.klass);
 smalltalk.IRSendInliner.klass);
 
 
@@ -939,7 +939,7 @@ throw $early=[false];
 return true;
 return true;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner.klass)})},
 messageSends: ["ifFalse:", "includes:", "selector", "inlinedSelectors", "do:", "isClosure", "allButFirst", "instructions"]}),
 messageSends: ["ifFalse:", "includes:", "selector", "inlinedSelectors", "do:", "isClosure", "allButFirst", "instructions"]}),
 smalltalk.IRSendInliner.klass);
 smalltalk.IRSendInliner.klass);
 
 
@@ -954,7 +954,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@assignment"];
 $1=self["@assignment"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignment",{}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignment",{},smalltalk.IRAssignmentInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRAssignmentInliner);
 smalltalk.IRAssignmentInliner);
 
 
@@ -965,7 +965,7 @@ selector: "assignment:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode}, smalltalk.IRAssignmentInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode},smalltalk.IRAssignmentInliner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.IRAssignmentInliner);
 smalltalk.IRAssignmentInliner);
 
 
@@ -986,7 +986,7 @@ _st(anIRAssignment)._replaceWith_(inlinedAssignment);
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 $1=inlinedAssignment;
 $1=inlinedAssignment;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment},smalltalk.IRAssignmentInliner)})},
 messageSends: ["assignment:", "new", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"]}),
 messageSends: ["assignment:", "new", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"]}),
 smalltalk.IRAssignmentInliner);
 smalltalk.IRAssignmentInliner);
 
 
@@ -1012,7 +1012,7 @@ return _st(_st(statements)._last())._replaceWith_($3);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=inlinedClosure;
 $4=inlinedClosure;
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements},smalltalk.IRAssignmentInliner)})},
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifTrue:", "replaceWith:", "add:", "first", "assignment", "new", "copy", "yourself", "canBeAssigned"]}),
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifTrue:", "replaceWith:", "add:", "first", "assignment", "new", "copy", "yourself", "canBeAssigned"]}),
 smalltalk.IRAssignmentInliner);
 smalltalk.IRAssignmentInliner);
 
 
@@ -1028,7 +1028,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure},smalltalk.IRNonLocalReturnInliner)})},
 messageSends: ["inlineCLosure:"]}),
 messageSends: ["inlineCLosure:"]}),
 smalltalk.IRNonLocalReturnInliner);
 smalltalk.IRNonLocalReturnInliner);
 
 
@@ -1041,7 +1041,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRNonLocalReturnInliner)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.IRNonLocalReturnInliner);
 smalltalk.IRNonLocalReturnInliner);
 
 
@@ -1069,7 +1069,7 @@ return _st(_st(statements)._last())._replaceWith_($3);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=closure;
 $4=closure;
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements},smalltalk.IRReturnInliner)})},
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifFalse:", "replaceWith:", "add:", "copy", "new", "yourself", "isReturn"]}),
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifFalse:", "replaceWith:", "add:", "copy", "new", "yourself", "isReturn"]}),
 smalltalk.IRReturnInliner);
 smalltalk.IRReturnInliner);
 
 
@@ -1089,7 +1089,7 @@ _st(anIRReturn)._replaceWith_(return_);
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 $1=return_;
 $1=return_;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_},smalltalk.IRReturnInliner)})},
 messageSends: ["inlinedReturn", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"]}),
 messageSends: ["inlinedReturn", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"]}),
 smalltalk.IRReturnInliner);
 smalltalk.IRReturnInliner);
 
 
@@ -1102,7 +1102,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRReturnInliner)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.IRReturnInliner);
 smalltalk.IRReturnInliner);
 
 
@@ -1125,7 +1125,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $3=_st($2)._contents();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream},smalltalk.InliningCodeGenerator)})},
 messageSends: ["visit:", "semanticAnalyzer", "translator", "inliner", "irTranslator", "contents"]}),
 messageSends: ["visit:", "semanticAnalyzer", "translator", "inliner", "irTranslator", "contents"]}),
 smalltalk.InliningCodeGenerator);
 smalltalk.InliningCodeGenerator);
 
 
@@ -1138,7 +1138,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inliner",{}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"inliner",{},smalltalk.InliningCodeGenerator)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.InliningCodeGenerator);
 smalltalk.InliningCodeGenerator);
 
 
@@ -1151,7 +1151,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.InliningCodeGenerator)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.InliningCodeGenerator);
 smalltalk.InliningCodeGenerator);
 
 

+ 92 - 92
js/Compiler-Inlining.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Inlining', {});
+smalltalk.addPackage('Compiler-Inlining');
 smalltalk.addClass('IRInlinedAssignment', smalltalk.IRAssignment, [], 'Compiler-Inlining');
 smalltalk.addClass('IRInlinedAssignment', smalltalk.IRAssignment, [], 'Compiler-Inlining');
 smalltalk.IRInlinedAssignment.comment="I represent an inlined assignment instruction."
 smalltalk.IRInlinedAssignment.comment="I represent an inlined assignment instruction."
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -11,7 +11,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedAssignment)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedAssignment: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedAssignment: self",
 messageSends: ["visitIRInlinedAssignment:"],
 messageSends: ["visitIRInlinedAssignment:"],
@@ -27,7 +27,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedAssignment)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedAssignment)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -47,7 +47,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedClosure_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedClosure)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedClosure: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedClosure: self",
 messageSends: ["visitIRInlinedClosure:"],
 messageSends: ["visitIRInlinedClosure:"],
@@ -63,7 +63,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedClosure)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -85,7 +85,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 $1=_st(aVisitor)._visitIRInlinedReturn_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedReturn)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedReturn: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedReturn: self",
 messageSends: ["visitIRInlinedReturn:"],
 messageSends: ["visitIRInlinedReturn:"],
@@ -101,7 +101,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedReturn)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -123,7 +123,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedNonLocalReturn)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedNonLocalReturn: self",
 source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedNonLocalReturn: self",
 messageSends: ["visitIRInlinedNonLocalReturn:"],
 messageSends: ["visitIRInlinedNonLocalReturn:"],
@@ -139,7 +139,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedNonLocalReturn)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedNonLocalReturn)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -159,7 +159,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitInlinedSend_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSend)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedSend)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitInlinedSend: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitInlinedSend: self",
 messageSends: ["visitInlinedSend:"],
 messageSends: ["visitInlinedSend:"],
@@ -175,7 +175,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSend)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedSend)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -194,7 +194,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfFalse)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfFalse: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfFalse: self",
 messageSends: ["visitIRInlinedIfFalse:"],
 messageSends: ["visitIRInlinedIfFalse:"],
@@ -213,7 +213,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfNilIfNotNil_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfNilIfNotNil)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfNilIfNotNil)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfNilIfNotNil: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfNilIfNotNil: self",
 messageSends: ["visitIRInlinedIfNilIfNotNil:"],
 messageSends: ["visitIRInlinedIfNilIfNotNil:"],
@@ -232,7 +232,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrue_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrue)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfTrue)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrue: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrue: self",
 messageSends: ["visitIRInlinedIfTrue:"],
 messageSends: ["visitIRInlinedIfTrue:"],
@@ -251,7 +251,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedIfTrueIfFalse_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrueIfFalse)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedIfTrueIfFalse)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrueIfFalse: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedIfTrueIfFalse: self",
 messageSends: ["visitIRInlinedIfTrueIfFalse:"],
 messageSends: ["visitIRInlinedIfTrueIfFalse:"],
@@ -271,7 +271,7 @@ category: 'visiting',
 fn: function (aVisitor){
 fn: function (aVisitor){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
 return smalltalk.withContext(function($ctx1) { 
_st(aVisitor)._visitIRInlinedSequence_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSequence)})},
+return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedSequence)})},
 args: ["aVisitor"],
 args: ["aVisitor"],
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedSequence: self",
 source: "accept: aVisitor\x0a\x09aVisitor visitIRInlinedSequence: self",
 messageSends: ["visitIRInlinedSequence:"],
 messageSends: ["visitIRInlinedSequence:"],
@@ -287,7 +287,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSequence)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedSequence)})},
 args: [],
 args: [],
 source: "isInlined\x0a\x09^ true",
 source: "isInlined\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -312,9 +312,9 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{},smalltalk.IRInliner)})},
 args: [],
 args: [],
-source: "assignmentInliner\x0a\x09^ IRAssignmentInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
+source: "assignmentInliner\x0a\x09^ IRAssignmentInliner new\x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
 messageSends: ["translator:", "new", "yourself"],
 referencedClasses: ["IRAssignmentInliner"]
 referencedClasses: ["IRAssignmentInliner"]
 }),
 }),
@@ -333,9 +333,9 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{},smalltalk.IRInliner)})},
 args: [],
 args: [],
-source: "nonLocalReturnInliner\x0a\x09^ IRNonLocalReturnInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
+source: "nonLocalReturnInliner\x0a\x09^ IRNonLocalReturnInliner new\x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
 messageSends: ["translator:", "new", "yourself"],
 referencedClasses: ["IRNonLocalReturnInliner"]
 referencedClasses: ["IRNonLocalReturnInliner"]
 }),
 }),
@@ -354,9 +354,9 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"returnInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"returnInliner",{},smalltalk.IRInliner)})},
 args: [],
 args: [],
-source: "returnInliner\x0a\x09^ IRReturnInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
+source: "returnInliner\x0a\x09^ IRReturnInliner new\x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
 messageSends: ["translator:", "new", "yourself"],
 referencedClasses: ["IRReturnInliner"]
 referencedClasses: ["IRReturnInliner"]
 }),
 }),
@@ -375,9 +375,9 @@ _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendInliner",{}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"sendInliner",{},smalltalk.IRInliner)})},
 args: [],
 args: [],
-source: "sendInliner\x0a\x09^ IRSendInliner new \x0a\x09\x09translator: self;\x0a\x09\x09yourself",
+source: "sendInliner\x0a\x09^ IRSendInliner new\x0a\x09\x09translator: self;\x0a\x09\x09yourself",
 messageSends: ["translator:", "new", "yourself"],
 messageSends: ["translator:", "new", "yourself"],
 referencedClasses: ["IRSendInliner"]
 referencedClasses: ["IRSendInliner"]
 }),
 }),
@@ -397,9 +397,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSen
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment},smalltalk.IRInliner)})},
 args: ["anIRAssignment"],
 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) ]]",
+source: "shouldInlineAssignment: anIRAssignment\x0a\x09^ anIRAssignment isInlined not and: [\x0a\x09\x09anIRAssignment instructions last isSend and: [\x0a\x09\x09\x09self shouldInlineSend: (anIRAssignment instructions last) ]]",
 messageSends: ["and:", "shouldInlineSend:", "last", "instructions", "isSend", "not", "isInlined"],
 messageSends: ["and:", "shouldInlineSend:", "last", "instructions", "isSend", "not", "isInlined"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -419,9 +419,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._shouldInlineSen
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn},smalltalk.IRInliner)})},
 args: ["anIRReturn"],
 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) ]]",
+source: "shouldInlineReturn: anIRReturn\x0a\x09^ anIRReturn isInlined not and: [\x0a\x09\x09anIRReturn instructions first isSend and: [\x0a\x09\x09\x09self shouldInlineSend: (anIRReturn instructions first) ]]",
 messageSends: ["and:", "shouldInlineSend:", "first", "instructions", "isSend", "not", "isInlined"],
 messageSends: ["and:", "shouldInlineSend:", "first", "instructions", "isSend", "not", "isInlined"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -439,7 +439,7 @@ $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
 return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.IRSendInliner || IRSendInliner))._shouldInline_(anIRSend);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend},smalltalk.IRInliner)})},
 args: ["anIRSend"],
 args: ["anIRSend"],
 source: "shouldInlineSend: anIRSend\x0a\x09^ anIRSend isInlined not and: [\x0a\x09\x09IRSendInliner shouldInline: anIRSend ]",
 source: "shouldInlineSend: anIRSend\x0a\x09^ anIRSend isInlined not and: [\x0a\x09\x09IRSendInliner shouldInline: anIRSend ]",
 messageSends: ["and:", "shouldInline:", "not", "isInlined"],
 messageSends: ["and:", "shouldInline:", "not", "isInlined"],
@@ -473,7 +473,7 @@ return $4;
 };
 };
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn},smalltalk.IRInliner)})},
 args: ["anIRNonLocalReturn"],
 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",
 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:"],
 messageSends: ["ifTrue:", "removeNonLocalReturn:", "scope", "methodScope", "scope:", "new", "yourself", "do:", "add:", "instructions", "replaceWith:", "canInlineNonLocalReturns", "visitIRNonLocalReturn:"],
@@ -496,9 +496,9 @@ $1=_st(_st(self)._assignmentInliner())._inlineAssignment_(anIRAssignment);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment},smalltalk.IRInliner)})},
 args: ["anIRAssignment"],
 args: ["anIRAssignment"],
-source: "visitIRAssignment: anIRAssignment\x0a\x09^ (self shouldInlineAssignment: anIRAssignment) \x0a\x09\x09ifTrue: [ self assignmentInliner inlineAssignment: anIRAssignment ]\x0a\x09\x09ifFalse: [ super visitIRAssignment: 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:"],
 messageSends: ["ifTrue:ifFalse:", "inlineAssignment:", "assignmentInliner", "visitIRAssignment:", "shouldInlineAssignment:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -519,9 +519,9 @@ $1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn},smalltalk.IRInliner)})},
 args: ["anIRNonLocalReturn"],
 args: ["anIRNonLocalReturn"],
-source: "visitIRNonLocalReturn: anIRNonLocalReturn\x0a\x09^ (self shouldInlineReturn: anIRNonLocalReturn) \x0a\x09\x09ifTrue: [ self nonLocalReturnInliner inlineReturn: anIRNonLocalReturn ]\x0a\x09\x09ifFalse: [ self transformNonLocalReturn: 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:"],
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "nonLocalReturnInliner", "transformNonLocalReturn:", "shouldInlineReturn:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -542,9 +542,9 @@ $1=_st(_st(self)._returnInliner())._inlineReturn_(anIRReturn);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn},smalltalk.IRInliner)})},
 args: ["anIRReturn"],
 args: ["anIRReturn"],
-source: "visitIRReturn: anIRReturn\x0a\x09^ (self shouldInlineReturn: anIRReturn) \x0a\x09\x09ifTrue: [ self returnInliner inlineReturn: anIRReturn ]\x0a\x09\x09ifFalse: [ super visitIRReturn: 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:"],
 messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "returnInliner", "visitIRReturn:", "shouldInlineReturn:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -565,7 +565,7 @@ $1=_st(_st(self)._sendInliner())._inlineSend_(anIRSend);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
 $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend},smalltalk.IRInliner)})},
 args: ["anIRSend"],
 args: ["anIRSend"],
 source: "visitIRSend: anIRSend\x0a\x09^ (self shouldInlineSend: anIRSend)\x0a\x09\x09ifTrue: [ self sendInliner inlineSend: anIRSend ]\x0a\x09\x09ifFalse: [ super visitIRSend: 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:"],
 messageSends: ["ifTrue:ifFalse:", "inlineSend:", "sendInliner", "visitIRSend:", "shouldInlineSend:"],
@@ -585,7 +585,7 @@ category: 'visiting',
 fn: function (anIRInlinedAssignment){
 fn: function (anIRInlinedAssignment){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedAssignment)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedAssignment"],
 args: ["anIRInlinedAssignment"],
 source: "visitIRInlinedAssignment: anIRInlinedAssignment\x0a\x09self visit: anIRInlinedAssignment instructions last",
 source: "visitIRInlinedAssignment: anIRInlinedAssignment\x0a\x09self visit: anIRInlinedAssignment instructions last",
 messageSends: ["visit:", "last", "instructions"],
 messageSends: ["visit:", "last", "instructions"],
@@ -603,7 +603,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx1) { 
_st(_st(anIRInlinedClosure)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedClosure"],
 args: ["anIRInlinedClosure"],
 source: "visitIRInlinedClosure: anIRInlinedClosure\x0a\x09anIRInlinedClosure instructions do: [ :each |\x0a\x09\x09self visit: each ]",
 source: "visitIRInlinedClosure: anIRInlinedClosure\x0a\x09anIRInlinedClosure instructions do: [ :each |\x0a\x09\x09self visit: each ]",
 messageSends: ["do:", "visit:", "instructions"],
 messageSends: ["do:", "visit:", "instructions"],
@@ -625,9 +625,9 @@ return _st(_st(self)._stream())._nextPutAll_(")");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfFalse"],
 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 ]",
+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"],
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -647,9 +647,9 @@ return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfNil"],
 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 ]",
+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"],
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -671,9 +671,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._third());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfNilIfNotNil"],
 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 ]",
+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"],
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -693,9 +693,9 @@ return _st(_st(self)._stream())._nextPutAll_(")");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfTrue"],
 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 ]",
+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"],
 messageSends: ["nextPutIf:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "last"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -717,9 +717,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
 return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._third());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedIfTrueIfFalse"],
 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 ]",
+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"],
 messageSends: ["nextPutIfElse:with:with:", "nextPutAll:", "stream", "visit:", "first", "instructions", "second", "third"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -737,7 +737,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._visit_(_st(_st(
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
 _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedReturn"],
 args: ["anIRInlinedReturn"],
 source: "visitIRInlinedNonLocalReturn: anIRInlinedReturn\x0a\x09self stream nextPutStatementWith: [\x0a\x09\x09self visit: anIRInlinedReturn instructions last ].\x0a\x09self stream nextPutNonLocalReturnWith: [ ]",
 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:"],
 messageSends: ["nextPutStatementWith:", "visit:", "last", "instructions", "stream", "nextPutNonLocalReturnWith:"],
@@ -753,7 +753,7 @@ category: 'visiting',
 fn: function (anIRInlinedReturn){
 fn: function (anIRInlinedReturn){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._visit_(_st(_st(anIRInlinedReturn)._instructions())._last());
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedReturn"],
 args: ["anIRInlinedReturn"],
 source: "visitIRInlinedReturn: anIRInlinedReturn\x0a\x09self visit: anIRInlinedReturn instructions last",
 source: "visitIRInlinedReturn: anIRInlinedReturn\x0a\x09self visit: anIRInlinedReturn instructions last",
 messageSends: ["visit:", "last", "instructions"],
 messageSends: ["visit:", "last", "instructions"],
@@ -773,9 +773,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._stream())._
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._visit_(each);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRInliningJSTranslator)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence},smalltalk.IRInliningJSTranslator)})},
 args: ["anIRInlinedSequence"],
 args: ["anIRInlinedSequence"],
-source: "visitIRInlinedSequence: anIRInlinedSequence\x0a\x09anIRInlinedSequence instructions do: [ :each | \x0a\x09\x09self stream nextPutStatementWith: [ self visit: each ]]",
+source: "visitIRInlinedSequence: anIRInlinedSequence\x0a\x09anIRInlinedSequence instructions do: [ :each |\x0a\x09\x09self stream nextPutStatementWith: [ self visit: each ]]",
 messageSends: ["do:", "nextPutStatementWith:", "visit:", "stream", "instructions"],
 messageSends: ["do:", "nextPutStatementWith:", "visit:", "stream", "instructions"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -795,7 +795,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 args: ["anIRInstruction"],
 source: "ifFalse: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfFalse new with: anIRInstruction",
 source: "ifFalse: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfFalse new with: anIRInstruction",
 messageSends: ["inlinedSend:with:", "new"],
 messageSends: ["inlinedSend:with:", "new"],
@@ -813,7 +813,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifFalse: anIRInstruction ifTrue: anotherIRInstruction\x0a\x09^ self perform: #ifTrue:ifFalse: withArguments: { anotherIRInstruction. anIRInstruction }",
 source: "ifFalse: anIRInstruction ifTrue: anotherIRInstruction\x0a\x09^ self perform: #ifTrue:ifFalse: withArguments: { anotherIRInstruction. anIRInstruction }",
 messageSends: ["perform:withArguments:"],
 messageSends: ["perform:withArguments:"],
@@ -838,9 +838,9 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 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)",
+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"],
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"],
 referencedClasses: ["IRInlinedIfNilIfNotNil", "IRClosure", "IRBlockSequence"]
 referencedClasses: ["IRInlinedIfNilIfNotNil", "IRClosure", "IRBlockSequence"]
 }),
 }),
@@ -856,7 +856,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifNil: anIRInstruction ifNotNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anIRInstruction with: anotherIRInstruction",
 source: "ifNil: anIRInstruction ifNotNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anIRInstruction with: anotherIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -881,9 +881,9 @@ _st($2)._add_($4);
 $5=_st($2)._yourself();
 $5=_st($2)._yourself();
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 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",
+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"],
 messageSends: ["inlinedSend:with:with:", "new", "scope:", "copy", "scope", "add:", "first", "instructions", "send", "yourself"],
 referencedClasses: ["IRInlinedIfNilIfNotNil", "IRClosure", "IRBlockSequence"]
 referencedClasses: ["IRInlinedIfNilIfNotNil", "IRClosure", "IRBlockSequence"]
 }),
 }),
@@ -899,7 +899,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifNotNil: anIRInstruction ifNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anotherIRInstruction with: anIRInstruction",
 source: "ifNotNil: anIRInstruction ifNil: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfNilIfNotNil new with: anotherIRInstruction with: anIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -917,7 +917,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction"],
 args: ["anIRInstruction"],
 source: "ifTrue: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrue new with: anIRInstruction",
 source: "ifTrue: anIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrue new with: anIRInstruction",
 messageSends: ["inlinedSend:with:", "new"],
 messageSends: ["inlinedSend:with:", "new"],
@@ -935,7 +935,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},smalltalk.IRSendInliner)})},
 args: ["anIRInstruction", "anotherIRInstruction"],
 args: ["anIRInstruction", "anotherIRInstruction"],
 source: "ifTrue: anIRInstruction ifFalse: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrueIfFalse new with: anIRInstruction with: anotherIRInstruction",
 source: "ifTrue: anIRInstruction ifFalse: anotherIRInstruction\x0a\x09^ self inlinedSend: IRInlinedIfTrueIfFalse new with: anIRInstruction with: anotherIRInstruction",
 messageSends: ["inlinedSend:with:with:", "new"],
 messageSends: ["inlinedSend:with:with:", "new"],
@@ -978,9 +978,9 @@ return _st(sequence)._add_(_st(statements)._last());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=inlinedClosure;
 $3=inlinedClosure;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure: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"],
 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",
+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"],
 messageSends: ["inlinedClosure", "scope:", "scope", "do:", "ifFalse:", "add:", "isSequence", "instructions", "inlinedSequence", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -997,9 +997,9 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._send_(anIRSend);
 _st(self)._send_(anIRSend);
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend},smalltalk.IRSendInliner)})},
 args: ["anIRSend"],
 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",
+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"],
 messageSends: ["send:", "perform:withArguments:", "selector", "send", "allButFirst", "instructions"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1015,7 +1015,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
 source: "inlinedClosure\x0a\x09^ IRInlinedClosure new",
 source: "inlinedClosure\x0a\x09^ IRInlinedClosure new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -1047,7 +1047,7 @@ $4=_st($3)._add_(inlinedClosure);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $5=inlinedSend;
 $5=inlinedSend;
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure},smalltalk.IRSendInliner)})},
 args: ["inlinedSend", "anIRInstruction"],
 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",
 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:"],
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"],
@@ -1089,7 +1089,7 @@ $6=_st($5)._add_(inlinedClosure2);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 _st(_st(self)._send())._replaceWith_(inlinedSend);
 $7=inlinedSend;
 $7=inlinedSend;
 return $7;
 return $7;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction: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"],
 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",
 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:"],
 messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"],
@@ -1107,7 +1107,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
 source: "inlinedSequence\x0a\x09^ IRInlinedSequence new",
 source: "inlinedSequence\x0a\x09^ IRInlinedSequence new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -1123,7 +1123,7 @@ category: 'error handling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.InliningError || InliningError))._signal_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString},smalltalk.IRSendInliner)})},
 args: ["aString"],
 args: ["aString"],
 source: "inliningError: aString\x0a\x09InliningError signal: aString",
 source: "inliningError: aString\x0a\x09InliningError signal: aString",
 messageSends: ["signal:"],
 messageSends: ["signal:"],
@@ -1141,7 +1141,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@send"];
 $1=self["@send"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"send",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"send",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
 source: "send\x0a\x09^ send",
 source: "send\x0a\x09^ send",
 messageSends: [],
 messageSends: [],
@@ -1157,7 +1157,7 @@ category: 'accessing',
 fn: function (anIRSend){
 fn: function (anIRSend){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
 return smalltalk.withContext(function($ctx1) { 
self["@send"]=anIRSend;
-return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend},smalltalk.IRSendInliner)})},
 args: ["anIRSend"],
 args: ["anIRSend"],
 source: "send: anIRSend\x0a\x09send := anIRSend",
 source: "send: anIRSend\x0a\x09send := anIRSend",
 messageSends: [],
 messageSends: [],
@@ -1175,7 +1175,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@translator"];
 $1=self["@translator"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.IRSendInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"translator",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
 source: "translator\x0a\x09^ translator",
 source: "translator\x0a\x09^ translator",
 messageSends: [],
 messageSends: [],
@@ -1191,7 +1191,7 @@ category: 'accessing',
 fn: function (anASTTranslator){
 fn: function (anASTTranslator){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
 return smalltalk.withContext(function($ctx1) { 
self["@translator"]=anASTTranslator;
-return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator}, smalltalk.IRSendInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator},smalltalk.IRSendInliner)})},
 args: ["anASTTranslator"],
 args: ["anASTTranslator"],
 source: "translator: anASTTranslator\x0a\x09translator := anASTTranslator",
 source: "translator: anASTTranslator\x0a\x09translator := anASTTranslator",
 messageSends: [],
 messageSends: [],
@@ -1208,7 +1208,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
 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: [],
 args: [],
 source: "inlinedSelectors\x0a\x09^ #('ifTrue:' 'ifFalse:' 'ifTrue:ifFalse:' 'ifFalse:ifTrue:' 'ifNil:' 'ifNotNil:' 'ifNil:ifNotNil:' 'ifNotNil:ifNil')",
 source: "inlinedSelectors\x0a\x09^ #('ifTrue:' 'ifFalse:' 'ifTrue:ifFalse:' 'ifFalse:ifTrue:' 'ifNil:' 'ifNotNil:' 'ifNil:ifNotNil:' 'ifNotNil:ifNil')",
 messageSends: [],
 messageSends: [],
@@ -1239,7 +1239,7 @@ throw $early=[false];
 return true;
 return true;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction},smalltalk.IRSendInliner.klass)})},
 args: ["anIRInstruction"],
 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",
 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"],
 messageSends: ["ifFalse:", "includes:", "selector", "inlinedSelectors", "do:", "isClosure", "allButFirst", "instructions"],
@@ -1249,7 +1249,7 @@ smalltalk.IRSendInliner.klass);
 
 
 
 
 smalltalk.addClass('IRAssignmentInliner', smalltalk.IRSendInliner, ['assignment'], 'Compiler-Inlining');
 smalltalk.addClass('IRAssignmentInliner', smalltalk.IRSendInliner, ['assignment'], 'Compiler-Inlining');
-smalltalk.IRAssignmentInliner.comment="I inline message sends together with assignments by moving them around into the inline closure instructions. \x0a\x0a##Example\x0a\x0a\x09foo\x0a\x09\x09| a |\x0a\x09\x09a := true ifTrue: [ 1 ]\x0a\x0aWill produce:\x0a\x0a\x09if(smalltalk.assert(true) {\x0a\x09\x09a = 1;\x0a\x09};"
+smalltalk.IRAssignmentInliner.comment="I inline message sends together with assignments by moving them around into the inline closure instructions.\x0a\x0a##Example\x0a\x0a\x09foo\x0a\x09\x09| a |\x0a\x09\x09a := true ifTrue: [ 1 ]\x0a\x0aWill produce:\x0a\x0a\x09if(smalltalk.assert(true) {\x0a\x09\x09a = 1;\x0a\x09};"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_assignment",
 "_assignment",
 smalltalk.method({
 smalltalk.method({
@@ -1260,7 +1260,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@assignment"];
 $1=self["@assignment"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assignment",{}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"assignment",{},smalltalk.IRAssignmentInliner)})},
 args: [],
 args: [],
 source: "assignment\x0a\x09^ assignment",
 source: "assignment\x0a\x09^ assignment",
 messageSends: [],
 messageSends: [],
@@ -1276,7 +1276,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@assignment"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode}, smalltalk.IRAssignmentInliner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode},smalltalk.IRAssignmentInliner)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "assignment: aNode\x0a\x09assignment := aNode",
 source: "assignment: aNode\x0a\x09assignment := aNode",
 messageSends: [],
 messageSends: [],
@@ -1302,7 +1302,7 @@ _st(anIRAssignment)._replaceWith_(inlinedAssignment);
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
 $1=inlinedAssignment;
 $1=inlinedAssignment;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment},smalltalk.IRAssignmentInliner)})},
 args: ["anIRAssignment"],
 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",
 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"],
 messageSends: ["assignment:", "new", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"],
@@ -1333,7 +1333,7 @@ return _st(_st(statements)._last())._replaceWith_($3);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=inlinedClosure;
 $4=inlinedClosure;
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements},smalltalk.IRAssignmentInliner)})},
 args: ["anIRClosure"],
 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",
 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"],
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifTrue:", "replaceWith:", "add:", "first", "assignment", "new", "copy", "yourself", "canBeAssigned"],
@@ -1354,7 +1354,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure},smalltalk.IRNonLocalReturnInliner)})},
 args: ["anIRClosure"],
 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",
 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:"],
 messageSends: ["inlineCLosure:"],
@@ -1372,7 +1372,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRNonLocalReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRNonLocalReturnInliner)})},
 args: [],
 args: [],
 source: "inlinedReturn\x0a\x09^ IRInlinedNonLocalReturn new",
 source: "inlinedReturn\x0a\x09^ IRInlinedNonLocalReturn new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -1406,7 +1406,7 @@ return _st(_st(statements)._last())._replaceWith_($3);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=closure;
 $4=closure;
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements},smalltalk.IRReturnInliner)})},
 args: ["anIRClosure"],
 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",
 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"],
 messageSends: ["inlineClosure:", "instructions", "last", "ifNotEmpty:", "ifFalse:", "replaceWith:", "add:", "copy", "new", "yourself", "isReturn"],
@@ -1431,7 +1431,7 @@ _st(anIRReturn)._replaceWith_(return_);
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
 $1=return_;
 $1=return_;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_},smalltalk.IRReturnInliner)})},
 args: ["anIRReturn"],
 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",
 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"],
 messageSends: ["inlinedReturn", "do:", "add:", "instructions", "replaceWith:", "inlineSend:", "last"],
@@ -1449,7 +1449,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRReturnInliner)})},
+}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRReturnInliner)})},
 args: [],
 args: [],
 source: "inlinedReturn\x0a\x09^ IRInlinedReturn new",
 source: "inlinedReturn\x0a\x09^ IRInlinedReturn new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -1478,7 +1478,7 @@ _st($2)._visit_(ir);
 $3=_st($2)._contents();
 $3=_st($2)._contents();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream},smalltalk.InliningCodeGenerator)})},
 args: ["aNode"],
 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",
 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"],
 messageSends: ["visit:", "semanticAnalyzer", "translator", "inliner", "irTranslator", "contents"],
@@ -1496,7 +1496,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 $1=_st((smalltalk.IRInliner || IRInliner))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inliner",{}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"inliner",{},smalltalk.InliningCodeGenerator)})},
 args: [],
 args: [],
 source: "inliner\x0a\x09^ IRInliner new",
 source: "inliner\x0a\x09^ IRInliner new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -1514,7 +1514,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.InliningCodeGenerator)})},
+}, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.InliningCodeGenerator)})},
 args: [],
 args: [],
 source: "irTranslator\x0a\x09^ IRInliningJSTranslator new",
 source: "irTranslator\x0a\x09^ IRInliningJSTranslator new",
 messageSends: ["new"],
 messageSends: ["new"],

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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Semantic', {});
+smalltalk.addPackage('Compiler-Semantic');
 smalltalk.addClass('LexicalScope', smalltalk.Object, ['node', 'instruction', 'temps', 'args', 'outerScope'], 'Compiler-Semantic');
 smalltalk.addClass('LexicalScope', smalltalk.Object, ['node', 'instruction', 'temps', 'args', 'outerScope'], 'Compiler-Semantic');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_addArg_",
 "_addArg_",
@@ -8,7 +8,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st((smalltalk.ArgVar || ArgVar))._on_(aString));
 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);
 _st(_st(_st(self)._args())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString},smalltalk.LexicalScope)})},
 messageSends: ["at:put:", "on:", "args", "scope:", "at:"]}),
 messageSends: ["at:put:", "on:", "args", "scope:", "at:"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -20,7 +20,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st((smalltalk.TempVar || TempVar))._on_(aString));
 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);
 _st(_st(_st(self)._temps())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString},smalltalk.LexicalScope)})},
 messageSends: ["at:put:", "on:", "temps", "scope:", "at:"]}),
 messageSends: ["at:put:", "on:", "temps", "scope:", "at:"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -33,7 +33,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.LexicalScope)})},
 messageSends: [",", "asString", "scopeLevel"]}),
 messageSends: [",", "asString", "scopeLevel"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -46,7 +46,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{},smalltalk.LexicalScope)})},
 messageSends: [",", "keys", "temps", "args"]}),
 messageSends: [",", "keys", "temps", "args"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -65,7 +65,7 @@ $1=self["@args"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"args",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"args",{},smalltalk.LexicalScope)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -84,7 +84,7 @@ return smalltalk.withContext(function($ctx4) {
return nil;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode},smalltalk.LexicalScope)})},
 messageSends: ["at:ifAbsent:", "value", "temps", "args", "pseudoVars"]}),
 messageSends: ["at:ifAbsent:", "value", "temps", "args", "pseudoVars"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -99,7 +99,7 @@ $1=_st(_st(self)._isInlined())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{},smalltalk.LexicalScope)})},
 messageSends: ["and:", "canInlineNonLocalReturns", "outerScope", "isInlined"]}),
 messageSends: ["and:", "canInlineNonLocalReturns", "outerScope", "isInlined"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -112,7 +112,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@instruction"];
 $1=self["@instruction"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instruction",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"instruction",{},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -123,7 +123,7 @@ selector: "instruction:",
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
-return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -136,7 +136,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isMethodScope())._not();
 $1=_st(_st(self)._isMethodScope())._not();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{},smalltalk.LexicalScope)})},
 messageSends: ["not", "isMethodScope"]}),
 messageSends: ["not", "isMethodScope"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -151,7 +151,7 @@ $1=_st(_st(_st(self)._instruction())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.LexicalScope)})},
 messageSends: ["and:", "isInlined", "instruction", "notNil"]}),
 messageSends: ["and:", "isInlined", "instruction", "notNil"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -162,7 +162,7 @@ selector: "isMethodScope",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -189,7 +189,7 @@ $1;
 };
 };
 $3=lookup;
 $3=lookup;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup},smalltalk.LexicalScope)})},
 messageSends: ["bindingFor:", "ifNil:", "ifNotNil:", "lookupVariable:", "outerScope"]}),
 messageSends: ["bindingFor:", "ifNil:", "ifNotNil:", "lookupVariable:", "outerScope"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -207,7 +207,7 @@ $1=$2;
 $1=_st(_st(self)._outerScope())._methodScope();
 $1=_st(_st(self)._outerScope())._methodScope();
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{},smalltalk.LexicalScope)})},
 messageSends: ["ifNotNil:", "methodScope", "outerScope"]}),
 messageSends: ["ifNotNil:", "methodScope", "outerScope"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -220,7 +220,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 $1=self["@node"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -231,7 +231,7 @@ selector: "node:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -244,7 +244,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerScope"];
 $1=self["@outerScope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"outerScope",{},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -255,7 +255,7 @@ selector: "outerScope:",
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope},smalltalk.LexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -268,7 +268,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodScope())._pseudoVars();
 $1=_st(_st(self)._methodScope())._pseudoVars();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{},smalltalk.LexicalScope)})},
 messageSends: ["pseudoVars", "methodScope"]}),
 messageSends: ["pseudoVars", "methodScope"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -292,7 +292,7 @@ return $3;
 };
 };
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{},smalltalk.LexicalScope)})},
 messageSends: ["ifNil:", "outerScope", "ifTrue:", "scopeLevel", "isInlined", "+"]}),
 messageSends: ["ifNil:", "outerScope", "ifTrue:", "scopeLevel", "isInlined", "+"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -311,7 +311,7 @@ $1=self["@temps"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.LexicalScope)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.LexicalScope);
 smalltalk.LexicalScope);
 
 
@@ -326,7 +326,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st((smalltalk.InstanceVar || InstanceVar))._on_(aString));
 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);
 _st(_st(_st(self)._iVars())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString},smalltalk.MethodLexicalScope)})},
 messageSends: ["at:put:", "on:", "iVars", "scope:", "at:"]}),
 messageSends: ["at:put:", "on:", "iVars", "scope:", "at:"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -337,7 +337,7 @@ selector: "addNonLocalReturn:",
 fn: function (aScope){
 fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
-return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope},smalltalk.MethodLexicalScope)})},
 messageSends: ["add:", "nonLocalReturns"]}),
 messageSends: ["add:", "nonLocalReturns"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -350,7 +350,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{},smalltalk.MethodLexicalScope)})},
 messageSends: [",", "keys", "iVars", "allVariableNames"]}),
 messageSends: [",", "keys", "iVars", "allVariableNames"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -370,7 +370,7 @@ return smalltalk.withContext(function($ctx2) {
return nil;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:", "at:ifAbsent:", "value", "iVars", "bindingFor:"]}),
 messageSends: ["ifNil:", "at:ifAbsent:", "value", "iVars", "bindingFor:"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -381,7 +381,7 @@ selector: "canInlineNonLocalReturns",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{},smalltalk.MethodLexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -394,7 +394,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._localReturn();
 $1=_st(self)._localReturn();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["localReturn"]}),
 messageSends: ["localReturn"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -407,7 +407,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["notEmpty", "nonLocalReturns"]}),
 messageSends: ["notEmpty", "nonLocalReturns"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -426,7 +426,7 @@ $1=self["@iVars"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"iVars",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"iVars",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -437,7 +437,7 @@ selector: "isMethodScope",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{},smalltalk.MethodLexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -455,7 +455,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"localReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"localReturn",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:"]}),
 messageSends: ["ifNil:"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -466,7 +466,7 @@ selector: "localReturn:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean},smalltalk.MethodLexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -479,7 +479,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{},smalltalk.MethodLexicalScope)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -498,7 +498,7 @@ $1=self["@nonLocalReturns"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -524,7 +524,7 @@ $1;
 };
 };
 $4=self["@pseudoVars"];
 $4=self["@pseudoVars"];
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:", "new", "do:", "at:put:", "scope:", "methodScope", "on:", "yourself", "pseudoVariableNames", "current"]}),
 messageSends: ["ifNil:", "new", "do:", "at:put:", "scope:", "methodScope", "on:", "yourself", "pseudoVariableNames", "current"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -536,7 +536,7 @@ fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope},smalltalk.MethodLexicalScope)})},
 messageSends: ["remove:ifAbsent:", "nonLocalReturns"]}),
 messageSends: ["remove:ifAbsent:", "nonLocalReturns"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -555,7 +555,7 @@ $1=self["@unknownVariables"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{},smalltalk.MethodLexicalScope)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.MethodLexicalScope);
 smalltalk.MethodLexicalScope);
 
 
@@ -571,7 +571,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name())._asVariableName();
 $1=_st(_st(self)._name())._asVariableName();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.ScopeVar)})},
 messageSends: ["asVariableName", "name"]}),
 messageSends: ["asVariableName", "name"]}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -582,7 +582,7 @@ selector: "isArgVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -593,7 +593,7 @@ selector: "isClassRefVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -604,7 +604,7 @@ selector: "isInstanceVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -615,7 +615,7 @@ selector: "isPseudoVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -626,7 +626,7 @@ selector: "isTempVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -637,7 +637,7 @@ selector: "isUnknownVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -650,7 +650,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@name"];
 $1=self["@name"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"name",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -661,7 +661,7 @@ selector: "name:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -674,7 +674,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -685,7 +685,7 @@ selector: "scope:",
 fn: function (aScope){
 fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope},smalltalk.ScopeVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -705,7 +705,7 @@ _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{},smalltalk.ScopeVar)})},
 messageSends: ["ifTrue:", "variableName:", "name", "new", "signal", "or:", "isPseudoVar", "isArgVar"]}),
 messageSends: ["ifTrue:", "variableName:", "name", "new", "signal", "or:", "isPseudoVar", "isArgVar"]}),
 smalltalk.ScopeVar);
 smalltalk.ScopeVar);
 
 
@@ -722,7 +722,7 @@ _st($2)._name_(aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString}, smalltalk.ScopeVar.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString},smalltalk.ScopeVar.klass)})},
 messageSends: ["name:", "new", "yourself"]}),
 messageSends: ["name:", "new", "yourself"]}),
 smalltalk.ScopeVar.klass);
 smalltalk.ScopeVar.klass);
 
 
@@ -737,7 +737,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 $1=self["@node"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.AliasVar)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{},smalltalk.AliasVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AliasVar);
 smalltalk.AliasVar);
 
 
@@ -748,7 +748,7 @@ selector: "node:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.AliasVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode},smalltalk.AliasVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AliasVar);
 smalltalk.AliasVar);
 
 
@@ -762,7 +762,7 @@ selector: "isArgVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ArgVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{},smalltalk.ArgVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ArgVar);
 smalltalk.ArgVar);
 
 
@@ -778,7 +778,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.ClassRefVar)})},
 messageSends: [",", "name"]}),
 messageSends: [",", "name"]}),
 smalltalk.ClassRefVar);
 smalltalk.ClassRefVar);
 
 
@@ -789,7 +789,7 @@ selector: "isClassRefVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{},smalltalk.ClassRefVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassRefVar);
 smalltalk.ClassRefVar);
 
 
@@ -805,7 +805,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.InstanceVar)})},
 messageSends: [",", "name"]}),
 messageSends: [",", "name"]}),
 smalltalk.InstanceVar);
 smalltalk.InstanceVar);
 
 
@@ -816,7 +816,7 @@ selector: "isInstanceVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{},smalltalk.InstanceVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.InstanceVar);
 smalltalk.InstanceVar);
 
 
@@ -832,7 +832,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 $1=_st(self)._name();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.PseudoVar)})},
 messageSends: ["name"]}),
 messageSends: ["name"]}),
 smalltalk.PseudoVar);
 smalltalk.PseudoVar);
 
 
@@ -843,7 +843,7 @@ selector: "isPseudoVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{},smalltalk.PseudoVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.PseudoVar);
 smalltalk.PseudoVar);
 
 
@@ -857,7 +857,7 @@ selector: "isTempVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.TempVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{},smalltalk.TempVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TempVar);
 smalltalk.TempVar);
 
 
@@ -871,7 +871,7 @@ selector: "isUnknownVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.UnknownVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{},smalltalk.UnknownVar)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.UnknownVar);
 smalltalk.UnknownVar);
 
 
@@ -893,7 +893,7 @@ $1=self["@classReferences"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -907,7 +907,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 _st($1)._variableName_(aString);
 _st($1)._variableName_(aString);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 messageSends: ["variableName:", "new", "signal"]}),
 messageSends: ["variableName:", "new", "signal"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -931,7 +931,7 @@ $3;
 } else {
 } else {
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier},smalltalk.SemanticAnalyzer)})},
 messageSends: ["value", "ifTrue:ifFalse:", "variableName:", "new", "signal", "add:", "unknownVariables", "methodScope", "and:", "isVariableGloballyUndefined:", "not", "includes:"]}),
 messageSends: ["value", "ifTrue:ifFalse:", "variableName:", "new", "signal", "add:", "unknownVariables", "methodScope", "and:", "isVariableGloballyUndefined:", "not", "includes:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -942,7 +942,7 @@ selector: "isVariableGloballyUndefined:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
-return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -961,7 +961,7 @@ $1=self["@messageSends"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -974,7 +974,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["newScopeOfClass:"]}),
 messageSends: ["newScopeOfClass:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -987,7 +987,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["newScopeOfClass:"]}),
 messageSends: ["newScopeOfClass:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1003,7 +1003,7 @@ _st($2)._outerScope_(self["@currentScope"]);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass},smalltalk.SemanticAnalyzer)})},
 messageSends: ["outerScope:", "new", "yourself"]}),
 messageSends: ["outerScope:", "new", "yourself"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1021,7 +1021,7 @@ $1;
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"];
 self["@currentScope"];
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"popScope",{}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"popScope",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifNotNil:", "outerScope"]}),
 messageSends: ["ifNotNil:", "outerScope"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1033,7 +1033,7 @@ fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 self["@currentScope"]=aScope;
 self["@currentScope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope},smalltalk.SemanticAnalyzer)})},
 messageSends: ["outerScope:"]}),
 messageSends: ["outerScope:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1052,7 +1052,7 @@ $1=self["@superSends"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1065,7 +1065,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.SemanticAnalyzer)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1076,7 +1076,7 @@ selector: "theClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.SemanticAnalyzer)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1093,7 +1093,7 @@ $1;
 } else {
 } else {
 _st(self)._errorShadowingVariable_(aString);
 _st(self)._errorShadowingVariable_(aString);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifNotNil:", "errorShadowingVariable:", "lookupVariable:"]}),
 messageSends: ["ifNotNil:", "errorShadowingVariable:", "lookupVariable:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1105,7 +1105,7 @@ fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 _st(_st(aNode)._left())._beAssigned();
 _st(_st(aNode)._left())._beAssigned();
-return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["visitAssignmentNode:", "beAssigned", "left"]}),
 messageSends: ["visitAssignmentNode:", "beAssigned", "left"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1124,7 +1124,7 @@ return _st(self["@currentScope"])._addArg_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 _st(self)._popScope();
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["pushScope:", "newBlockScope", "scope:", "node:", "do:", "validateVariableScope:", "addArg:", "parameters", "visitBlockNode:", "popScope"]}),
 messageSends: ["pushScope:", "newBlockScope", "scope:", "node:", "do:", "validateVariableScope:", "addArg:", "parameters", "visitBlockNode:", "popScope"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1145,7 +1145,7 @@ _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["do:", "receiver:", "receiver", "nodes", "visitCascadeNode:", "ifTrue:", "superSend:", "superSend", "first"]}),
 messageSends: ["do:", "receiver:", "receiver", "nodes", "visitCascadeNode:", "ifTrue:", "superSend:", "superSend", "first"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1161,7 +1161,7 @@ $1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
 _st($1)._name_(_st(aNode)._value());
 _st($1)._name_(_st(aNode)._value());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(aNode)._binding_($2);
 _st(aNode)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["add:", "value", "classReferences", "binding:", "name:", "new", "yourself"]}),
 messageSends: ["add:", "value", "classReferences", "binding:", "name:", "new", "yourself"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1188,7 +1188,7 @@ _st($1)._classReferences_(_st(self)._classReferences());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 _st(self)._popScope();
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["pushScope:", "newMethodScope", "scope:", "node:", "do:", "addIVar:", "allInstanceVariableNames", "theClass", "validateVariableScope:", "addArg:", "arguments", "visitMethodNode:", "classReferences:", "classReferences", "messageSends:", "keys", "messageSends", "superSends:", "superSends", "popScope"]}),
 messageSends: ["pushScope:", "newMethodScope", "scope:", "node:", "do:", "addIVar:", "allInstanceVariableNames", "theClass", "validateVariableScope:", "addArg:", "arguments", "visitMethodNode:", "classReferences:", "classReferences", "messageSends:", "keys", "messageSends", "superSends:", "superSends", "popScope"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1207,7 +1207,7 @@ _st(self["@currentScope"])._localReturn_(true);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 };
 };
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["scope:", "ifTrue:ifFalse:", "localReturn:", "addNonLocalReturn:", "methodScope", "isMethodScope", "visitReturnNode:"]}),
 messageSends: ["scope:", "ifTrue:ifFalse:", "localReturn:", "addNonLocalReturn:", "methodScope", "isMethodScope", "visitReturnNode:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1239,7 +1239,7 @@ return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set)
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["ifTrue:ifFalse:", "superSend:", "value:", "receiver", "at:ifAbsentPut:", "selector", "new", "superSends", "add:", "at:", "ifTrue:", "shouldBeInlined:", "shouldBeAliased:", "includes:", "inlinedSelectors", "=", "value", "messageSends", "index:", "size", "visitSendNode:"]}),
 messageSends: ["ifTrue:ifFalse:", "superSend:", "value:", "receiver", "at:ifAbsentPut:", "selector", "new", "superSends", "add:", "at:", "ifTrue:", "shouldBeInlined:", "shouldBeAliased:", "includes:", "inlinedSelectors", "=", "value", "messageSends", "index:", "size", "visitSendNode:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1254,7 +1254,7 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_
 return _st(self["@currentScope"])._addTemp_(each);
 return _st(self["@currentScope"])._addTemp_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["do:", "validateVariableScope:", "addTemp:", "temps", "visitSequenceNode:"]}),
 messageSends: ["do:", "validateVariableScope:", "addTemp:", "temps", "visitSequenceNode:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1277,7 +1277,7 @@ $2=$5;
 $2=$3;
 $2=$3;
 };
 };
 _st($1)._binding_($2);
 _st($1)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 messageSends: ["binding:", "ifNil:", "errorUnknownVariable:", "name:", "value", "new", "yourself", "lookupVariable:"]}),
 messageSends: ["binding:", "ifNil:", "errorUnknownVariable:", "name:", "value", "new", "yourself", "lookupVariable:"]}),
 smalltalk.SemanticAnalyzer);
 smalltalk.SemanticAnalyzer);
 
 
@@ -1294,7 +1294,7 @@ _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass}, smalltalk.SemanticAnalyzer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass},smalltalk.SemanticAnalyzer.klass)})},
 messageSends: ["theClass:", "new", "yourself"]}),
 messageSends: ["theClass:", "new", "yourself"]}),
 smalltalk.SemanticAnalyzer.klass);
 smalltalk.SemanticAnalyzer.klass);
 
 

+ 100 - 100
js/Compiler-Semantic.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Semantic', {});
+smalltalk.addPackage('Compiler-Semantic');
 smalltalk.addClass('LexicalScope', smalltalk.Object, ['node', 'instruction', 'temps', 'args', 'outerScope'], 'Compiler-Semantic');
 smalltalk.addClass('LexicalScope', smalltalk.Object, ['node', 'instruction', 'temps', 'args', 'outerScope'], 'Compiler-Semantic');
 smalltalk.LexicalScope.comment="I represent a lexical scope where variable names are associated with ScopeVars\x0aInstances are used for block scopes. Method scopes are instances of MethodLexicalScope.\x0a\x0aI am attached to a ScopeVar and method/block nodes.\x0aEach context (method/closure) get a fresh scope that inherits from its outer scope."
 smalltalk.LexicalScope.comment="I represent a lexical scope where variable names are associated with ScopeVars\x0aInstances are used for block scopes. Method scopes are instances of MethodLexicalScope.\x0a\x0aI am attached to a ScopeVar and method/block nodes.\x0aEach context (method/closure) get a fresh scope that inherits from its outer scope."
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -10,7 +10,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st((smalltalk.ArgVar || ArgVar))._on_(aString));
 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);
 _st(_st(_st(self)._args())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString},smalltalk.LexicalScope)})},
 args: ["aString"],
 args: ["aString"],
 source: "addArg: aString\x0a\x09self args at: aString put: (ArgVar on: aString).\x0a\x09(self args at: aString) scope: self",
 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:"],
 messageSends: ["at:put:", "on:", "args", "scope:", "at:"],
@@ -27,7 +27,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st((smalltalk.TempVar || TempVar))._on_(aString));
 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);
 _st(_st(_st(self)._temps())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString},smalltalk.LexicalScope)})},
 args: ["aString"],
 args: ["aString"],
 source: "addTemp: aString\x0a\x09self temps at: aString put: (TempVar on: aString).\x0a\x09(self temps at: aString) scope: self",
 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:"],
 messageSends: ["at:put:", "on:", "temps", "scope:", "at:"],
@@ -45,7 +45,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ '$ctx', self scopeLevel asString",
 source: "alias\x0a\x09^ '$ctx', self scopeLevel asString",
 messageSends: [",", "asString", "scopeLevel"],
 messageSends: [",", "asString", "scopeLevel"],
@@ -63,7 +63,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "allVariableNames\x0a\x09^ self args keys, self temps keys",
 source: "allVariableNames\x0a\x09^ self args keys, self temps keys",
 messageSends: [",", "keys", "temps", "args"],
 messageSends: [",", "keys", "temps", "args"],
@@ -87,7 +87,7 @@ $1=self["@args"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"args",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"args",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "args\x0a\x09^ args ifNil: [ args := Dictionary new ]",
 source: "args\x0a\x09^ args ifNil: [ args := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -111,9 +111,9 @@ return smalltalk.withContext(function($ctx4) {
return nil;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode},smalltalk.LexicalScope)})},
 args: ["aStringOrNode"],
 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 ]]]",
+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"],
 messageSends: ["at:ifAbsent:", "value", "temps", "args", "pseudoVars"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -131,7 +131,7 @@ $1=_st(_st(self)._isInlined())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._outerScope())._canInlineNonLocalReturns();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "canInlineNonLocalReturns\x0a\x09^ self isInlined and: [ self outerScope canInlineNonLocalReturns ]",
 source: "canInlineNonLocalReturns\x0a\x09^ self isInlined and: [ self outerScope canInlineNonLocalReturns ]",
 messageSends: ["and:", "canInlineNonLocalReturns", "outerScope", "isInlined"],
 messageSends: ["and:", "canInlineNonLocalReturns", "outerScope", "isInlined"],
@@ -149,7 +149,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@instruction"];
 $1=self["@instruction"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instruction",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"instruction",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "instruction\x0a\x09^ instruction",
 source: "instruction\x0a\x09^ instruction",
 messageSends: [],
 messageSends: [],
@@ -165,7 +165,7 @@ category: 'accessing',
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
 return smalltalk.withContext(function($ctx1) { 
self["@instruction"]=anIRInstruction;
-return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction},smalltalk.LexicalScope)})},
 args: ["anIRInstruction"],
 args: ["anIRInstruction"],
 source: "instruction: anIRInstruction\x0a\x09instruction := anIRInstruction",
 source: "instruction: anIRInstruction\x0a\x09instruction := anIRInstruction",
 messageSends: [],
 messageSends: [],
@@ -183,7 +183,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._isMethodScope())._not();
 $1=_st(_st(self)._isMethodScope())._not();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockScope",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "isBlockScope\x0a\x09^ self isMethodScope not",
 source: "isBlockScope\x0a\x09^ self isMethodScope not",
 messageSends: ["not", "isMethodScope"],
 messageSends: ["not", "isMethodScope"],
@@ -203,9 +203,9 @@ $1=_st(_st(_st(self)._instruction())._notNil())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._instruction())._isInlined();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
-source: "isInlined\x0a\x09^ self instruction notNil and: [\x0a      \x09self instruction isInlined ]",
+source: "isInlined\x0a\x09^ self instruction notNil and: [\x0a\x09\x09self instruction isInlined ]",
 messageSends: ["and:", "isInlined", "instruction", "notNil"],
 messageSends: ["and:", "isInlined", "instruction", "notNil"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -219,7 +219,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "isMethodScope\x0a\x09^ false",
 source: "isMethodScope\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -251,9 +251,9 @@ $1;
 };
 };
 $3=lookup;
 $3=lookup;
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup},smalltalk.LexicalScope)})},
 args: ["aNode"],
 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",
+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"],
 messageSends: ["bindingFor:", "ifNil:", "ifNotNil:", "lookupVariable:", "outerScope"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -274,7 +274,7 @@ $1=$2;
 $1=_st(_st(self)._outerScope())._methodScope();
 $1=_st(_st(self)._outerScope())._methodScope();
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "methodScope\x0a\x09^ self outerScope ifNotNil: [\x0a\x09\x09self outerScope methodScope ]",
 source: "methodScope\x0a\x09^ self outerScope ifNotNil: [\x0a\x09\x09self outerScope methodScope ]",
 messageSends: ["ifNotNil:", "methodScope", "outerScope"],
 messageSends: ["ifNotNil:", "methodScope", "outerScope"],
@@ -292,7 +292,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 $1=self["@node"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "node\x0a\x09\x22Answer the node in which I am defined\x22\x0a\x09\x0a\x09^ node",
 source: "node\x0a\x09\x22Answer the node in which I am defined\x22\x0a\x09\x0a\x09^ node",
 messageSends: [],
 messageSends: [],
@@ -308,7 +308,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode},smalltalk.LexicalScope)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "node: aNode\x0a\x09node := aNode",
 source: "node: aNode\x0a\x09node := aNode",
 messageSends: [],
 messageSends: [],
@@ -326,7 +326,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@outerScope"];
 $1=self["@outerScope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"outerScope",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"outerScope",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "outerScope\x0a\x09^ outerScope",
 source: "outerScope\x0a\x09^ outerScope",
 messageSends: [],
 messageSends: [],
@@ -342,7 +342,7 @@ category: 'accessing',
 fn: function (aLexicalScope){
 fn: function (aLexicalScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
 return smalltalk.withContext(function($ctx1) { 
self["@outerScope"]=aLexicalScope;
-return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope}, smalltalk.LexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope},smalltalk.LexicalScope)})},
 args: ["aLexicalScope"],
 args: ["aLexicalScope"],
 source: "outerScope: aLexicalScope\x0a\x09outerScope := aLexicalScope",
 source: "outerScope: aLexicalScope\x0a\x09outerScope := aLexicalScope",
 messageSends: [],
 messageSends: [],
@@ -360,7 +360,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodScope())._pseudoVars();
 $1=_st(_st(self)._methodScope())._pseudoVars();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "pseudoVars\x0a\x09^ self methodScope pseudoVars",
 source: "pseudoVars\x0a\x09^ self methodScope pseudoVars",
 messageSends: ["pseudoVars", "methodScope"],
 messageSends: ["pseudoVars", "methodScope"],
@@ -389,9 +389,9 @@ return $3;
 };
 };
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"scopeLevel",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
-source: "scopeLevel\x0a\x09self outerScope ifNil: [ ^ 1 ].\x0a\x09self isInlined ifTrue: [ ^ self outerScope scopeLevel ].\x0a    \x0a\x09^ self outerScope scopeLevel + 1",
+source: "scopeLevel\x0a\x09self outerScope ifNil: [ ^ 1 ].\x0a\x09self isInlined ifTrue: [ ^ self outerScope scopeLevel ].\x0a\x09\x0a\x09^ self outerScope scopeLevel + 1",
 messageSends: ["ifNil:", "outerScope", "ifTrue:", "scopeLevel", "isInlined", "+"],
 messageSends: ["ifNil:", "outerScope", "ifTrue:", "scopeLevel", "isInlined", "+"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -413,7 +413,7 @@ $1=self["@temps"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.LexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.LexicalScope)})},
 args: [],
 args: [],
 source: "temps\x0a\x09^ temps ifNil: [ temps := Dictionary new ]",
 source: "temps\x0a\x09^ temps ifNil: [ temps := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -434,7 +434,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st((smalltalk.InstanceVar || InstanceVar))._on_(aString));
 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);
 _st(_st(_st(self)._iVars())._at_(aString))._scope_(self);
-return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString},smalltalk.MethodLexicalScope)})},
 args: ["aString"],
 args: ["aString"],
 source: "addIVar: aString\x0a\x09self iVars at: aString put: (InstanceVar on: aString).\x0a\x09(self iVars at: aString) scope: self",
 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:"],
 messageSends: ["at:put:", "on:", "iVars", "scope:", "at:"],
@@ -450,7 +450,7 @@ category: 'adding',
 fn: function (aScope){
 fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._add_(aScope);
-return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope},smalltalk.MethodLexicalScope)})},
 args: ["aScope"],
 args: ["aScope"],
 source: "addNonLocalReturn: aScope\x0a\x09self nonLocalReturns add: aScope",
 source: "addNonLocalReturn: aScope\x0a\x09self nonLocalReturns add: aScope",
 messageSends: ["add:", "nonLocalReturns"],
 messageSends: ["add:", "nonLocalReturns"],
@@ -468,7 +468,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"allVariableNames",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "allVariableNames\x0a\x09^ super allVariableNames, self iVars keys",
 source: "allVariableNames\x0a\x09^ super allVariableNames, self iVars keys",
 messageSends: [",", "keys", "iVars", "allVariableNames"],
 messageSends: [",", "keys", "iVars", "allVariableNames"],
@@ -493,7 +493,7 @@ return smalltalk.withContext(function($ctx2) {
return nil;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode},smalltalk.MethodLexicalScope)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "bindingFor: aNode\x0a\x09^ (super bindingFor: aNode) ifNil: [\x0a\x09\x09self iVars at: aNode value ifAbsent: [ nil ]]",
 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:"],
 messageSends: ["ifNil:", "at:ifAbsent:", "value", "iVars", "bindingFor:"],
@@ -509,7 +509,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "canInlineNonLocalReturns\x0a\x09^ true",
 source: "canInlineNonLocalReturns\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -527,7 +527,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._localReturn();
 $1=_st(self)._localReturn();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "hasLocalReturn\x0a\x09^ self localReturn",
 source: "hasLocalReturn\x0a\x09^ self localReturn",
 messageSends: ["localReturn"],
 messageSends: ["localReturn"],
@@ -545,7 +545,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 $1=_st(_st(self)._nonLocalReturns())._notEmpty();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "hasNonLocalReturn\x0a\x09^ self nonLocalReturns notEmpty",
 source: "hasNonLocalReturn\x0a\x09^ self nonLocalReturns notEmpty",
 messageSends: ["notEmpty", "nonLocalReturns"],
 messageSends: ["notEmpty", "nonLocalReturns"],
@@ -569,7 +569,7 @@ $1=self["@iVars"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"iVars",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"iVars",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "iVars\x0a\x09^ iVars ifNil: [ iVars := Dictionary new ]",
 source: "iVars\x0a\x09^ iVars ifNil: [ iVars := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -585,7 +585,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"isMethodScope",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "isMethodScope\x0a\x09^ true",
 source: "isMethodScope\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -608,7 +608,7 @@ $1=false;
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"localReturn",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"localReturn",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "localReturn\x0a\x09^ localReturn ifNil: [ false ]",
 source: "localReturn\x0a\x09^ localReturn ifNil: [ false ]",
 messageSends: ["ifNil:"],
 messageSends: ["ifNil:"],
@@ -624,7 +624,7 @@ category: 'accessing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
 return smalltalk.withContext(function($ctx1) { 
self["@localReturn"]=aBoolean;
-return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean},smalltalk.MethodLexicalScope)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "localReturn: aBoolean\x0a\x09localReturn := aBoolean",
 source: "localReturn: aBoolean\x0a\x09localReturn := aBoolean",
 messageSends: [],
 messageSends: [],
@@ -642,7 +642,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"methodScope",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "methodScope\x0a\x09^ self",
 source: "methodScope\x0a\x09^ self",
 messageSends: [],
 messageSends: [],
@@ -666,7 +666,7 @@ $1=self["@nonLocalReturns"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "nonLocalReturns\x0a\x09^ nonLocalReturns ifNil: [ nonLocalReturns := OrderedCollection new ]",
 source: "nonLocalReturns\x0a\x09^ nonLocalReturns ifNil: [ nonLocalReturns := OrderedCollection new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -697,7 +697,7 @@ $1;
 };
 };
 $4=self["@pseudoVars"];
 $4=self["@pseudoVars"];
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{},smalltalk.MethodLexicalScope)})},
 args: [],
 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",
 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"],
 messageSends: ["ifNil:", "new", "do:", "at:put:", "scope:", "methodScope", "on:", "yourself", "pseudoVariableNames", "current"],
@@ -714,7 +714,7 @@ fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._nonLocalReturns())._remove_ifAbsent_(aScope,(function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})},
+return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope},smalltalk.MethodLexicalScope)})},
 args: ["aScope"],
 args: ["aScope"],
 source: "removeNonLocalReturn: aScope\x0a\x09self nonLocalReturns remove: aScope ifAbsent: []",
 source: "removeNonLocalReturn: aScope\x0a\x09self nonLocalReturns remove: aScope ifAbsent: []",
 messageSends: ["remove:ifAbsent:", "nonLocalReturns"],
 messageSends: ["remove:ifAbsent:", "nonLocalReturns"],
@@ -738,7 +738,7 @@ $1=self["@unknownVariables"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.MethodLexicalScope)})},
+}, function($ctx1) {$ctx1.fill(self,"unknownVariables",{},smalltalk.MethodLexicalScope)})},
 args: [],
 args: [],
 source: "unknownVariables\x0a\x09^ unknownVariables ifNil: [ unknownVariables := OrderedCollection new ]",
 source: "unknownVariables\x0a\x09^ unknownVariables ifNil: [ unknownVariables := OrderedCollection new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -749,7 +749,7 @@ smalltalk.MethodLexicalScope);
 
 
 
 
 smalltalk.addClass('ScopeVar', smalltalk.Object, ['scope', 'name'], 'Compiler-Semantic');
 smalltalk.addClass('ScopeVar', smalltalk.Object, ['scope', 'name'], 'Compiler-Semantic');
-smalltalk.ScopeVar.comment="I am an entry in a LexicalScope that gets associated with variable nodes of the same name.  \x0aThere are 4 different subclasses of vars: temp vars, local vars, args, and unknown/global vars."
+smalltalk.ScopeVar.comment="I am an entry in a LexicalScope that gets associated with variable nodes of the same name.\x0aThere are 4 different subclasses of vars: temp vars, local vars, args, and unknown/global vars."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_alias",
 "_alias",
 smalltalk.method({
 smalltalk.method({
@@ -760,7 +760,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name())._asVariableName();
 $1=_st(_st(self)._name())._asVariableName();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ self name asVariableName",
 source: "alias\x0a\x09^ self name asVariableName",
 messageSends: ["asVariableName", "name"],
 messageSends: ["asVariableName", "name"],
@@ -776,7 +776,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isArgVar\x0a\x09^ false",
 source: "isArgVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -792,7 +792,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isClassRefVar\x0a\x09^ false",
 source: "isClassRefVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -808,7 +808,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isInstanceVar\x0a\x09^ false",
 source: "isInstanceVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -824,7 +824,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isPseudoVar\x0a\x09^ false",
 source: "isPseudoVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -840,7 +840,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isTempVar\x0a\x09^ false",
 source: "isTempVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -856,7 +856,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return false;
 return smalltalk.withContext(function($ctx1) { 
return false;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "isUnknownVar\x0a\x09^ false",
 source: "isUnknownVar\x0a\x09^ false",
 messageSends: [],
 messageSends: [],
@@ -874,7 +874,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@name"];
 $1=self["@name"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"name",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "name\x0a\x09^ name",
 source: "name\x0a\x09^ name",
 messageSends: [],
 messageSends: [],
@@ -890,7 +890,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@name"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString},smalltalk.ScopeVar)})},
 args: ["aString"],
 args: ["aString"],
 source: "name: aString\x0a\x09name := aString",
 source: "name: aString\x0a\x09name := aString",
 messageSends: [],
 messageSends: [],
@@ -908,7 +908,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@scope"];
 $1=self["@scope"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ScopeVar)})},
+}, function($ctx1) {$ctx1.fill(self,"scope",{},smalltalk.ScopeVar)})},
 args: [],
 args: [],
 source: "scope\x0a\x09^ scope",
 source: "scope\x0a\x09^ scope",
 messageSends: [],
 messageSends: [],
@@ -924,7 +924,7 @@ category: 'accessing',
 fn: function (aScope){
 fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
 return smalltalk.withContext(function($ctx1) { 
self["@scope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope},smalltalk.ScopeVar)})},
 args: ["aScope"],
 args: ["aScope"],
 source: "scope: aScope\x0a\x09scope := aScope",
 source: "scope: aScope\x0a\x09scope := aScope",
 messageSends: [],
 messageSends: [],
@@ -949,7 +949,7 @@ _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{}, smalltalk.ScopeVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{},smalltalk.ScopeVar)})},
 args: [],
 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]",
 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"],
 messageSends: ["ifTrue:", "variableName:", "name", "new", "signal", "or:", "isPseudoVar", "isArgVar"],
@@ -971,9 +971,9 @@ _st($2)._name_(aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString}, smalltalk.ScopeVar.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString},smalltalk.ScopeVar.klass)})},
 args: ["aString"],
 args: ["aString"],
-source: "on: aString\x0a\x09^ self new \x0a\x09\x09name: aString;\x0a\x09\x09yourself",
+source: "on: aString\x0a\x09^ self new\x0a\x09\x09name: aString;\x0a\x09\x09yourself",
 messageSends: ["name:", "new", "yourself"],
 messageSends: ["name:", "new", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -992,7 +992,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@node"];
 $1=self["@node"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.AliasVar)})},
+}, function($ctx1) {$ctx1.fill(self,"node",{},smalltalk.AliasVar)})},
 args: [],
 args: [],
 source: "node\x0a\x09^ node",
 source: "node\x0a\x09^ node",
 messageSends: [],
 messageSends: [],
@@ -1008,7 +1008,7 @@ category: 'accessing',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
 return smalltalk.withContext(function($ctx1) { 
self["@node"]=aNode;
-return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.AliasVar)})},
+return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode},smalltalk.AliasVar)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "node: aNode\x0a\x09node := aNode",
 source: "node: aNode\x0a\x09node := aNode",
 messageSends: [],
 messageSends: [],
@@ -1028,7 +1028,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ArgVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isArgVar",{},smalltalk.ArgVar)})},
 args: [],
 args: [],
 source: "isArgVar\x0a\x09^ true",
 source: "isArgVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1050,7 +1050,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.ClassRefVar)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ '(smalltalk.', self name, ' || ', self name, ')'",
 source: "alias\x0a\x09^ '(smalltalk.', self name, ' || ', self name, ')'",
 messageSends: [",", "name"],
 messageSends: [",", "name"],
@@ -1066,7 +1066,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ClassRefVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{},smalltalk.ClassRefVar)})},
 args: [],
 args: [],
 source: "isClassRefVar\x0a\x09^ true",
 source: "isClassRefVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1088,7 +1088,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.InstanceVar)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ 'self[\x22@', self name, '\x22]'",
 source: "alias\x0a\x09^ 'self[\x22@', self name, '\x22]'",
 messageSends: [",", "name"],
 messageSends: [",", "name"],
@@ -1104,7 +1104,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.InstanceVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{},smalltalk.InstanceVar)})},
 args: [],
 args: [],
 source: "isInstanceVar\x0a\x09^ true",
 source: "isInstanceVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1126,7 +1126,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 $1=_st(self)._name();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"alias",{},smalltalk.PseudoVar)})},
 args: [],
 args: [],
 source: "alias\x0a\x09^ self name",
 source: "alias\x0a\x09^ self name",
 messageSends: ["name"],
 messageSends: ["name"],
@@ -1142,7 +1142,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.PseudoVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{},smalltalk.PseudoVar)})},
 args: [],
 args: [],
 source: "isPseudoVar\x0a\x09^ true",
 source: "isPseudoVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1162,7 +1162,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.TempVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isTempVar",{},smalltalk.TempVar)})},
 args: [],
 args: [],
 source: "isTempVar\x0a\x09^ true",
 source: "isTempVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1182,7 +1182,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.UnknownVar)})},
+}, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{},smalltalk.UnknownVar)})},
 args: [],
 args: [],
 source: "isUnknownVar\x0a\x09^ true",
 source: "isUnknownVar\x0a\x09^ true",
 messageSends: [],
 messageSends: [],
@@ -1210,7 +1210,7 @@ $1=self["@classReferences"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"classReferences",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "classReferences\x0a\x09^ classReferences ifNil: [ classReferences := Set new ]",
 source: "classReferences\x0a\x09^ classReferences ifNil: [ classReferences := Set new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -1229,7 +1229,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
 _st($1)._variableName_(aString);
 _st($1)._variableName_(aString);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 args: ["aString"],
 source: "errorShadowingVariable: aString\x0a\x09ShadowingVariableError new\x0a\x09\x09variableName: aString;\x0a\x09\x09signal",
 source: "errorShadowingVariable: aString\x0a\x09ShadowingVariableError new\x0a\x09\x09variableName: aString;\x0a\x09\x09signal",
 messageSends: ["variableName:", "new", "signal"],
 messageSends: ["variableName:", "new", "signal"],
@@ -1258,9 +1258,9 @@ $3;
 } else {
 } else {
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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' 'document' '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 ]",
+source: "errorUnknownVariable: aNode\x0a\x09\x22Throw an error if the variable is undeclared in the global JS scope (i.e. window).\x0a\x09We allow four variable names in addition: `jQuery`, `window`, `process` and `global`\x0a\x09for nodejs and browser environments.\x0a\x09\x0a\x09This is only to make sure compilation works on both browser-based and nodejs environments.\x0a\x09The ideal solution would be to use a pragma instead\x22\x0a\x0a\x09| identifier |\x0a\x09identifier := aNode value.\x0a\x09\x0a\x09((#('jQuery' 'window' 'document' 'process' 'global') includes: identifier) not\x0a\x09\x09and: [ self isVariableGloballyUndefined: identifier ])\x0a\x09\x09\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:"],
 messageSends: ["value", "ifTrue:ifFalse:", "variableName:", "new", "signal", "add:", "unknownVariables", "methodScope", "and:", "isVariableGloballyUndefined:", "not", "includes:"],
 referencedClasses: ["UnknownVariableError"]
 referencedClasses: ["UnknownVariableError"]
 }),
 }),
@@ -1274,7 +1274,7 @@ category: 'testing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
 return smalltalk.withContext(function($ctx1) { 
return eval('typeof ' + aString + ' == "undefined"');
-return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 args: ["aString"],
 source: "isVariableGloballyUndefined: aString\x0a\x09<return eval('typeof ' + aString + ' == \x22undefined\x22')>",
 source: "isVariableGloballyUndefined: aString\x0a\x09<return eval('typeof ' + aString + ' == \x22undefined\x22')>",
 messageSends: [],
 messageSends: [],
@@ -1298,7 +1298,7 @@ $1=self["@messageSends"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "messageSends\x0a\x09^ messageSends ifNil: [ messageSends := Dictionary new ]",
 source: "messageSends\x0a\x09^ messageSends ifNil: [ messageSends := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -1316,7 +1316,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newBlockScope",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "newBlockScope\x0a\x09^ self newScopeOfClass: LexicalScope",
 source: "newBlockScope\x0a\x09^ self newScopeOfClass: LexicalScope",
 messageSends: ["newScopeOfClass:"],
 messageSends: ["newScopeOfClass:"],
@@ -1334,7 +1334,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newMethodScope",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "newMethodScope\x0a\x09^ self newScopeOfClass: MethodLexicalScope",
 source: "newMethodScope\x0a\x09^ self newScopeOfClass: MethodLexicalScope",
 messageSends: ["newScopeOfClass:"],
 messageSends: ["newScopeOfClass:"],
@@ -1355,9 +1355,9 @@ _st($2)._outerScope_(self["@currentScope"]);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass},smalltalk.SemanticAnalyzer)})},
 args: ["aLexicalScopeClass"],
 args: ["aLexicalScopeClass"],
-source: "newScopeOfClass: aLexicalScopeClass\x0a\x09^ aLexicalScopeClass new \x0a\x09\x09outerScope: currentScope;\x0a\x09\x09yourself",
+source: "newScopeOfClass: aLexicalScopeClass\x0a\x09^ aLexicalScopeClass new\x0a\x09\x09outerScope: currentScope;\x0a\x09\x09yourself",
 messageSends: ["outerScope:", "new", "yourself"],
 messageSends: ["outerScope:", "new", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1378,7 +1378,7 @@ $1;
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"]=_st(self["@currentScope"])._outerScope();
 self["@currentScope"];
 self["@currentScope"];
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"popScope",{}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"popScope",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "popScope\x0a\x09currentScope ifNotNil: [\x0a\x09\x09currentScope := currentScope outerScope ]",
 source: "popScope\x0a\x09currentScope ifNotNil: [\x0a\x09\x09currentScope := currentScope outerScope ]",
 messageSends: ["ifNotNil:", "outerScope"],
 messageSends: ["ifNotNil:", "outerScope"],
@@ -1395,7 +1395,7 @@ fn: function (aScope){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 return smalltalk.withContext(function($ctx1) { 
_st(aScope)._outerScope_(self["@currentScope"]);
 self["@currentScope"]=aScope;
 self["@currentScope"]=aScope;
-return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope},smalltalk.SemanticAnalyzer)})},
 args: ["aScope"],
 args: ["aScope"],
 source: "pushScope: aScope\x0a\x09aScope outerScope: currentScope.\x0a\x09currentScope := aScope",
 source: "pushScope: aScope\x0a\x09aScope outerScope: currentScope.\x0a\x09currentScope := aScope",
 messageSends: ["outerScope:"],
 messageSends: ["outerScope:"],
@@ -1419,7 +1419,7 @@ $1=self["@superSends"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"superSends",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "superSends\x0a\x09^ superSends ifNil: [ superSends := Dictionary new ]",
 source: "superSends\x0a\x09^ superSends ifNil: [ superSends := Dictionary new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -1437,7 +1437,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SemanticAnalyzer)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
 source: "theClass\x0a\x09^ theClass",
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
 messageSends: [],
@@ -1453,7 +1453,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.SemanticAnalyzer)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -1475,7 +1475,7 @@ $1;
 } else {
 } else {
 _st(self)._errorShadowingVariable_(aString);
 _st(self)._errorShadowingVariable_(aString);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString},smalltalk.SemanticAnalyzer)})},
 args: ["aString"],
 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 ]",
 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:"],
 messageSends: ["ifNotNil:", "errorShadowingVariable:", "lookupVariable:"],
@@ -1492,7 +1492,7 @@ fn: function (aNode){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.NodeVisitor.fn.prototype._visitAssignmentNode_.apply(_st(self), [aNode]);
 _st(_st(aNode)._left())._beAssigned();
 _st(_st(aNode)._left())._beAssigned();
-return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitAssignmentNode: aNode\x0a\x09super visitAssignmentNode: aNode.\x0a\x09aNode left beAssigned",
 source: "visitAssignmentNode: aNode\x0a\x09super visitAssignmentNode: aNode.\x0a\x09aNode left beAssigned",
 messageSends: ["visitAssignmentNode:", "beAssigned", "left"],
 messageSends: ["visitAssignmentNode:", "beAssigned", "left"],
@@ -1516,9 +1516,9 @@ return _st(self["@currentScope"])._addArg_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
 _st(self)._popScope();
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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",
+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"],
 messageSends: ["pushScope:", "newBlockScope", "scope:", "node:", "do:", "validateVariableScope:", "addArg:", "parameters", "visitBlockNode:", "popScope"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1542,9 +1542,9 @@ _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
 return smalltalk.withContext(function($ctx2) {
return _st(each)._superSend_(true);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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 ]]",
+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"],
 messageSends: ["do:", "receiver:", "receiver", "nodes", "visitCascadeNode:", "ifTrue:", "superSend:", "superSend", "first"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1563,7 +1563,7 @@ $1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
 _st($1)._name_(_st(aNode)._value());
 _st($1)._name_(_st(aNode)._value());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(aNode)._binding_($2);
 _st(aNode)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 args: ["aNode"],
 source: "visitClassReferenceNode: aNode\x0a\x09self classReferences add: aNode value.\x0a\x09aNode binding: (ClassRefVar new name: aNode value; yourself)",
 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"],
 messageSends: ["add:", "value", "classReferences", "binding:", "name:", "new", "yourself"],
@@ -1595,9 +1595,9 @@ _st($1)._classReferences_(_st(self)._classReferences());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
 _st(self)._popScope();
 _st(self)._popScope();
-return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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",
+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\x09\x09superSends: 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"],
 messageSends: ["pushScope:", "newMethodScope", "scope:", "node:", "do:", "addIVar:", "allInstanceVariableNames", "theClass", "validateVariableScope:", "addArg:", "arguments", "visitMethodNode:", "classReferences:", "classReferences", "messageSends:", "keys", "messageSends", "superSends:", "superSends", "popScope"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1619,7 +1619,7 @@ _st(self["@currentScope"])._localReturn_(true);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
 };
 };
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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",
 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:"],
 messageSends: ["scope:", "ifTrue:ifFalse:", "localReturn:", "addNonLocalReturn:", "methodScope", "isMethodScope", "visitReturnNode:"],
@@ -1656,9 +1656,9 @@ return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set)
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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",
+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\x09\x09\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:"],
 messageSends: ["ifTrue:ifFalse:", "superSend:", "value:", "receiver", "at:ifAbsentPut:", "selector", "new", "superSends", "add:", "at:", "ifTrue:", "shouldBeInlined:", "shouldBeAliased:", "includes:", "inlinedSelectors", "=", "value", "messageSends", "index:", "size", "visitSendNode:"],
 referencedClasses: ["Set", "IRSendInliner"]
 referencedClasses: ["Set", "IRSendInliner"]
 }),
 }),
@@ -1676,9 +1676,9 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._validateVariableScope_
 return _st(self["@currentScope"])._addTemp_(each);
 return _st(self["@currentScope"])._addTemp_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
 smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
-return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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",
+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:"],
 messageSends: ["do:", "validateVariableScope:", "addTemp:", "temps", "visitSequenceNode:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1704,9 +1704,9 @@ $2=$5;
 $2=$3;
 $2=$3;
 };
 };
 _st($1)._binding_($2);
 _st($1)._binding_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode},smalltalk.SemanticAnalyzer)})},
 args: ["aNode"],
 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 ])",
+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:"],
 messageSends: ["binding:", "ifNil:", "errorUnknownVariable:", "name:", "value", "new", "yourself", "lookupVariable:"],
 referencedClasses: ["UnknownVar"]
 referencedClasses: ["UnknownVar"]
 }),
 }),
@@ -1726,7 +1726,7 @@ _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass}, smalltalk.SemanticAnalyzer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass},smalltalk.SemanticAnalyzer.klass)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "on: aClass\x0a\x09^ self new\x0a\x09\x09theClass: aClass;\x0a\x09\x09yourself",
 source: "on: aClass\x0a\x09^ self new\x0a\x09\x09theClass: aClass;\x0a\x09\x09yourself",
 messageSends: ["theClass:", "new", "yourself"],
 messageSends: ["theClass:", "new", "yourself"],

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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Tests', {});
+smalltalk.addPackage('Compiler-Tests');
 smalltalk.addClass('AbstractASTInterpreterTest', smalltalk.TestCase, [], 'Compiler-Tests');
 smalltalk.addClass('AbstractASTInterpreterTest', smalltalk.TestCase, [], 'Compiler-Tests');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_analyze_forClass_",
 "_analyze_forClass_",
@@ -10,7 +10,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 $1=aNode;
 $1=aNode;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["visit:", "on:"]}),
 messageSends: ["visit:", "on:"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -23,7 +23,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["interpret:withArguments:", "new"]}),
 messageSends: ["interpret:withArguments:", "new"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -46,7 +46,7 @@ _st($2)._interpret_(_st(_st(_st(self)._parse_forClass_(aString,_st(anObject)._cl
 $3=_st($2)._result();
 $3=_st($2)._result();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:receiver:withArguments:",{aString:aString,anObject:anObject,aDictionary:aDictionary,ctx:ctx}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:receiver:withArguments:",{aString:aString,anObject:anObject,aDictionary:aDictionary,ctx:ctx},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["new", "receiver:", "keysAndValuesDo:", "localAt:put:", "context:", "interpreter", "interpret:", "first", "nodes", "parse:forClass:", "class", "result"]}),
 messageSends: ["new", "receiver:", "keysAndValuesDo:", "localAt:put:", "context:", "interpreter", "interpret:", "first", "nodes", "parse:forClass:", "class", "result"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -59,7 +59,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_receiver_withArguments_(aString,_st((smalltalk.Object || Object))._new(),aDictionary);
 $1=_st(self)._interpret_receiver_withArguments_(aString,_st((smalltalk.Object || Object))._new(),aDictionary);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["interpret:receiver:withArguments:", "new"]}),
 messageSends: ["interpret:receiver:withArguments:", "new"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -72,7 +72,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclassResponsibility();
 $1=_st(self)._subclassResponsibility();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["subclassResponsibility"]}),
 messageSends: ["subclassResponsibility"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -85,7 +85,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["parse:", "current"]}),
 messageSends: ["parse:", "current"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -98,7 +98,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["analyze:forClass:", "parse:"]}),
 messageSends: ["analyze:forClass:", "parse:"]}),
 smalltalk.AbstractASTInterpreterTest);
 smalltalk.AbstractASTInterpreterTest);
 
 
@@ -114,7 +114,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 $1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -125,7 +125,7 @@ selector: "testBinarySend",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo 2+3+4"),(9));
 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)})},
 messageSends: ["assert:equals:", "interpret:"]}),
 messageSends: ["assert:equals:", "interpret:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -138,7 +138,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]"),(1));
 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 true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]"),(2));
 _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)})},
 messageSends: ["assert:equals:", "interpret:"]}),
 messageSends: ["assert:equals:", "interpret:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -149,7 +149,7 @@ selector: "testCascade",
 fn: function (){
 fn: function (){
 var self=this;
 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 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)})},
 messageSends: ["assert:equals:", "interpret:", "with:with:"]}),
 messageSends: ["assert:equals:", "interpret:", "with:with:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -160,7 +160,7 @@ selector: "testDynamicArray",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ {1+1. 2+2}"),[(2), (4)]);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ {1+1. 2+2}"),[(2), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArray",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArray",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:"]}),
 messageSends: ["assert:equals:", "interpret:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -171,7 +171,7 @@ selector: "testDynamicDictionary",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ #{1->1. 2->3}"),smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((1)),_st((2)).__minus_gt((3))]));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ #{1->1. 2->3}"),smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((1)),_st((2)).__minus_gt((3))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionary",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionary",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:", "->"]}),
 messageSends: ["assert:equals:", "interpret:", "->"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -183,7 +183,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo <return 2+3>"),(5));
 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));
 _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)})},
 messageSends: ["assert:equals:", "interpret:", "interpret:withArguments:", "->"]}),
 messageSends: ["assert:equals:", "interpret:", "interpret:withArguments:", "->"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -194,7 +194,7 @@ selector: "testInstVarAccess",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ x",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ x",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAccess",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAccess",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"]}),
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -205,7 +205,7 @@ selector: "testInstVarAssignment",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st((smalltalk.Point || Point))._new(),smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((2))])),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st((smalltalk.Point || Point))._new(),smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((2))])),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAssignment",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAssignment",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "new", "->"]}),
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "new", "->"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -216,7 +216,7 @@ selector: "testNonlocalReturn",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ]. ^2"),(1));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ]. ^2"),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testNonlocalReturn",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNonlocalReturn",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:"]}),
 messageSends: ["assert:equals:", "interpret:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -227,7 +227,7 @@ selector: "testReceiver",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ self",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),_st((2)).__at((3)));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ self",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),_st((2)).__at((3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testReceiver",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testReceiver",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"]}),
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -238,7 +238,7 @@ selector: "testTempAssignment",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo | a | a := 2. ^ a"),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo | a | a := 2. ^ a"),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testTempAssignment",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTempAssignment",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["assert:equals:", "interpret:"]}),
 messageSends: ["assert:equals:", "interpret:"]}),
 smalltalk.ASTInterpreterTest);
 smalltalk.ASTInterpreterTest);
 
 
@@ -260,7 +260,7 @@ $1=self["@interpreter"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTSteppingInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTSteppingInterpreterTest)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.ASTSteppingInterpreterTest);
 smalltalk.ASTSteppingInterpreterTest);
 
 
@@ -280,7 +280,7 @@ _st(_st(self)._interpreter())._step();
 _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
 _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_(_st(_st(self)._interpreter())._atEnd());
 _st(self)._assert_(_st(_st(self)._interpreter())._atEnd());
-return self}, function($ctx1) {$ctx1.fill(self,"testAtEnd",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAtEnd",{},smalltalk.ASTSteppingInterpreterTest)})},
 messageSends: ["interpret:", "deny:", "atEnd", "interpreter", "step", "assert:"]}),
 messageSends: ["interpret:", "deny:", "atEnd", "interpreter", "step", "assert:"]}),
 smalltalk.ASTSteppingInterpreterTest);
 smalltalk.ASTSteppingInterpreterTest);
 
 
@@ -299,7 +299,7 @@ _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(2));
 _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(2));
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(3));
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(3));
-return self}, function($ctx1) {$ctx1.fill(self,"testMessageSend",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testMessageSend",{},smalltalk.ASTSteppingInterpreterTest)})},
 messageSends: ["interpret:", "step", "interpreter", "assert:equals:", "value", "currentNode", "result"]}),
 messageSends: ["interpret:", "step", "interpreter", "assert:equals:", "value", "currentNode", "result"]}),
 smalltalk.ASTSteppingInterpreterTest);
 smalltalk.ASTSteppingInterpreterTest);
 
 
@@ -314,7 +314,7 @@ _st(_st(self)._interpreter())._step();
 _st(self)._assert_(_st(_st(_st(self)._interpreter())._result())._isNil());
 _st(self)._assert_(_st(_st(_st(self)._interpreter())._result())._isNil());
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(1));
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testSimpleStepping",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testSimpleStepping",{},smalltalk.ASTSteppingInterpreterTest)})},
 messageSends: ["interpret:", "step", "interpreter", "assert:", "isNil", "result", "assert:equals:"]}),
 messageSends: ["interpret:", "step", "interpreter", "assert:", "isNil", "result", "assert:equals:"]}),
 smalltalk.ASTSteppingInterpreterTest);
 smalltalk.ASTSteppingInterpreterTest);
 
 
@@ -330,7 +330,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -346,7 +346,7 @@ _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compiler",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"compiler",{},smalltalk.CodeGeneratorTest)})},
 messageSends: ["codeGeneratorClass:", "codeGeneratorClass", "new", "yourself"]}),
 messageSends: ["codeGeneratorClass:", "codeGeneratorClass", "new", "yourself"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -357,7 +357,7 @@ selector: "setUp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=_st(_st(self)._targetClass())._new();
 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)})},
 messageSends: ["new", "targetClass"]}),
 messageSends: ["new", "targetClass"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -372,7 +372,7 @@ return smalltalk.withContext(function($ctx1) { 
method=_st(_st(self)._compiler()
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(self)._assert_equals_(anObject,result);
 _st(self)._assert_equals_(anObject,result);
-return self}, function($ctx1) {$ctx1.fill(self,"should:return:",{aString:aString,anObject: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)})},
 messageSends: ["install:forClass:category:", "targetClass", "compiler", "perform:", "selector", "removeCompiledMethod:", "assert:equals:"]}),
 messageSends: ["install:forClass:category:", "targetClass", "compiler", "perform:", "selector", "removeCompiledMethod:", "assert:equals:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -385,7 +385,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.DoIt || DoIt);
 $1=(smalltalk.DoIt || DoIt);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"targetClass",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -395,7 +395,7 @@ smalltalk.method({
 selector: "tearDown",
 selector: "tearDown",
 fn: function (){
 fn: function (){
 var self=this;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -408,7 +408,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo | a | a := true ifTrue: [ 1 ]. ^ a",(1));
 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 := false ifTrue: [ 1 ]. ^ a",nil);
 _st(self)._should_return_("foo | a | ^ a := true ifTrue: [ 1 ]",(1));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -421,7 +421,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)]);
 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 | 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)]);
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -432,7 +432,7 @@ selector: "testCascades",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ Array new add: 3; add: 4; yourself",[(3), (4)]);
 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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -442,8 +442,8 @@ smalltalk.method({
 selector: "testDynamicArrayElementsOrdered",
 selector: "testDynamicArrayElementsOrdered",
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ { x. true ifTrue: [ x := 2 ] }\x0a",[(1), (2)]);
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered",{},smalltalk.CodeGeneratorTest)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -453,8 +453,8 @@ smalltalk.method({
 selector: "testDynamicDictionaryElementsOrdered",
 selector: "testDynamicDictionaryElementsOrdered",
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 'foo'->1.\x0a\x09^ #{ 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)})},
 messageSends: ["should:return:", "->"]}),
 messageSends: ["should:return:", "->"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -464,11 +464,11 @@ smalltalk.method({
 selector: "testInnerTemporalDependentElementsOrdered",
 selector: "testInnerTemporalDependentElementsOrdered",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((smalltalk.Array || Array)),_st("bar").__minus_gt((2))]);
-_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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((smalltalk.Array || Array)),_st("bar").__minus_gt((2))]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ 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\x09| x |\x0a\x09x := 1.\x0a\x09^ { 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ #{ '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)})},
 messageSends: ["should:return:", "->"]}),
 messageSends: ["should:return:", "->"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -487,7 +487,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 ^ #{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 ^ #hello",smalltalk.symbolFor("hello"));
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
 _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)})},
 messageSends: ["should:return:", "->"]}),
 messageSends: ["should:return:", "->"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -502,7 +502,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo self asString",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));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -517,7 +517,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ^ 1 + 2 * 3",(9));
 _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: 3",[(1), (2), (3)]);
 _st(self)._should_return_("foo ^ 1 to: 5 by: 2",[(1), (3), (5)]);
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -531,7 +531,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 ifTrue: [ 1 ] ]",nil);
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]",self["@receiver"]);
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -545,7 +545,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 [ ^ 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 | a b | a := 1. b := 2. [ ^ a + b ] value. self halt",(3));
 _st(self)._should_return_("foo [ :x | ^ x + x ] value: 4. ^ 2",(8));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -555,9 +555,9 @@ smalltalk.method({
 selector: "testSendReceiverAndArgumentsOrdered",
 selector: "testSendReceiverAndArgumentsOrdered",
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a",[(1), (2)]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[(smalltalk.Array || Array),(2)]);
+return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -571,7 +571,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 false ifFalse: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ]",(2));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -585,7 +585,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 false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]",(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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -599,7 +599,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 ^ nil ifNil: [ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ]",(2));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -613,7 +613,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 ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(2));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -627,7 +627,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 ^ nil ifNotNil: [ 2 ]",nil);
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo nil ifNotNil: [ ^ 2 ]",self["@receiver"]);
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -641,7 +641,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 true ifTrue: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ]",(2));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -655,7 +655,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 true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]",(2));
 _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)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
 
 
@@ -671,7 +671,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.InliningCodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.InliningCodeGeneratorTest);
 smalltalk.InliningCodeGeneratorTest);
 
 
@@ -692,7 +692,7 @@ $2=_st($1)._yourself();
 node=$2;
 node=$2;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
 _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)})},
 messageSends: ["value:", "new", "yourself", "visit:", "assert:", "isClassRefVar", "binding"]}),
 messageSends: ["value:", "new", "yourself", "visit:", "assert:", "isClassRefVar", "binding"]}),
 smalltalk.ScopeVarTest);
 smalltalk.ScopeVarTest);
 
 
@@ -711,7 +711,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addIVar_("bzzz");
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
 _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)})},
 messageSends: ["value:", "new", "yourself", "addIVar:", "assert:", "isInstanceVar", "bindingFor:"]}),
 messageSends: ["value:", "new", "yourself", "addIVar:", "assert:", "isInstanceVar", "bindingFor:"]}),
 smalltalk.ScopeVarTest);
 smalltalk.ScopeVarTest);
 
 
@@ -732,7 +732,7 @@ node=$2;
 node;
 node;
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars},smalltalk.ScopeVarTest)})},
 messageSends: ["do:", "value:", "new", "yourself", "assert:", "isPseudoVar", "bindingFor:"]}),
 messageSends: ["do:", "value:", "new", "yourself", "assert:", "isPseudoVar", "bindingFor:"]}),
 smalltalk.ScopeVarTest);
 smalltalk.ScopeVarTest);
 
 
@@ -751,7 +751,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addTemp_("bzzz");
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
 _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)})},
 messageSends: ["value:", "new", "yourself", "addTemp:", "assert:", "isTempVar", "bindingFor:"]}),
 messageSends: ["value:", "new", "yourself", "addTemp:", "assert:", "isTempVar", "bindingFor:"]}),
 smalltalk.ScopeVarTest);
 smalltalk.ScopeVarTest);
 
 
@@ -768,7 +768,7 @@ _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
 _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isNil());
 _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)})},
 messageSends: ["value:", "new", "yourself", "assert:", "isNil", "bindingFor:"]}),
 messageSends: ["value:", "new", "yourself", "assert:", "isNil", "bindingFor:"]}),
 smalltalk.ScopeVarTest);
 smalltalk.ScopeVarTest);
 
 
@@ -782,7 +782,7 @@ selector: "setUp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_((smalltalk.Object || Object));
 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)})},
 messageSends: ["on:"]}),
 messageSends: ["on:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -798,7 +798,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -813,7 +813,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. ^ a";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(ast)._scope())._hasNonLocalReturn());
 _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)})},
 messageSends: ["parse:", "visit:", "deny:", "hasNonLocalReturn", "scope"]}),
 messageSends: ["parse:", "visit:", "deny:", "hasNonLocalReturn", "scope"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -828,7 +828,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ ^ a]
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(ast)._scope())._hasNonLocalReturn());
 _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)})},
 messageSends: ["parse:", "visit:", "assert:", "hasNonLocalReturn", "scope"]}),
 messageSends: ["parse:", "visit:", "assert:", "hasNonLocalReturn", "scope"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -843,7 +843,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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()));
 _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)})},
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "last", "nodes", "first"]}),
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "last", "nodes", "first"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -858,7 +858,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ | b |
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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()));
 _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)})},
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "first", "nodes", "last"]}),
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "first", "nodes", "last"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -874,7 +874,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_equals_(_st(_st(ast)._scope())._scopeLevel(),(1));
 _st(self)._assert_equals_(_st(_st(ast)._scope())._scopeLevel(),(1));
 _st(self)._assert_equals_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel(),(3));
 _st(self)._assert_equals_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel(),(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)})},
 messageSends: ["parse:", "visit:", "assert:equals:", "scopeLevel", "scope", "first", "nodes", "last"]}),
 messageSends: ["parse:", "visit:", "assert:equals:", "scopeLevel", "scope", "first", "nodes", "last"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -890,7 +890,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -906,7 +906,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -920,7 +920,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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)})},
 messageSends: ["parse:", "visit:"]}),
 messageSends: ["parse:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -936,7 +936,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -950,7 +950,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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)})},
 messageSends: ["parse:", "visit:"]}),
 messageSends: ["parse:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -964,7 +964,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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)})},
 messageSends: ["parse:", "visit:"]}),
 messageSends: ["parse:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -980,7 +980,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 
@@ -998,7 +998,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(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(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()));
 _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)})},
 messageSends: ["parse:", "visit:", "assert:", "isTempVar", "binding", "receiver", "first", "nodes", "==", "scope", "left", "last"]}),
 messageSends: ["parse:", "visit:", "assert:", "isTempVar", "binding", "receiver", "first", "nodes", "==", "scope", "left", "last"]}),
 smalltalk.SemanticAnalyzerTest);
 smalltalk.SemanticAnalyzerTest);
 
 

+ 94 - 94
js/Compiler-Tests.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Compiler-Tests', {});
+smalltalk.addPackage('Compiler-Tests');
 smalltalk.addClass('AbstractASTInterpreterTest', smalltalk.TestCase, [], 'Compiler-Tests');
 smalltalk.addClass('AbstractASTInterpreterTest', smalltalk.TestCase, [], 'Compiler-Tests');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_analyze_forClass_",
 "_analyze_forClass_",
@@ -11,9 +11,9 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
 $1=aNode;
 $1=aNode;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aNode", "aClass"],
 args: ["aNode", "aClass"],
-source: "analyze: aNode forClass: aClass\x0a\x09(SemanticAnalyzer on: aClass) visit: aNode.\x0a    ^ aNode",
+source: "analyze: aNode forClass: aClass\x0a\x09(SemanticAnalyzer on: aClass) visit: aNode.\x0a\x09^ aNode",
 messageSends: ["visit:", "on:"],
 messageSends: ["visit:", "on:"],
 referencedClasses: ["SemanticAnalyzer"]
 referencedClasses: ["SemanticAnalyzer"]
 }),
 }),
@@ -29,9 +29,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString"],
 args: ["aString"],
-source: "interpret: aString\x0a\x09^ self \x0a    \x09interpret: aString \x0a        withArguments: Dictionary new",
+source: "interpret: aString\x0a\x09^ self\x0a\x09\x09interpret: aString\x0a\x09\x09withArguments: Dictionary new",
 messageSends: ["interpret:withArguments:", "new"],
 messageSends: ["interpret:withArguments:", "new"],
 referencedClasses: ["Dictionary"]
 referencedClasses: ["Dictionary"]
 }),
 }),
@@ -57,9 +57,9 @@ _st($2)._interpret_(_st(_st(_st(self)._parse_forClass_(aString,_st(anObject)._cl
 $3=_st($2)._result();
 $3=_st($2)._result();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:receiver:withArguments:",{aString:aString,anObject:anObject,aDictionary:aDictionary,ctx:ctx}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:receiver:withArguments:",{aString:aString,anObject:anObject,aDictionary:aDictionary,ctx:ctx},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString", "anObject", "aDictionary"],
 args: ["aString", "anObject", "aDictionary"],
-source: "interpret: aString receiver: anObject withArguments: aDictionary\x0a\x09\x22The food is a methodNode. Interpret the sequenceNode only\x22\x0a    \x0a    | ctx |\x0a    \x0a    ctx := AIContext new.\x0a    ctx receiver: anObject.\x0a    aDictionary keysAndValuesDo: [ :key :value |\x0a    \x09ctx localAt: key put: value ].\x0a    \x0a    ^ self interpreter\x0a    \x09context: ctx;\x0a    \x09interpret: (self parse: aString forClass: anObject class) \x0a        \x09nodes first;\x0a        result",
+source: "interpret: aString receiver: anObject withArguments: aDictionary\x0a\x09\x22The food is a methodNode. Interpret the sequenceNode only\x22\x0a\x09\x0a\x09| ctx |\x0a\x09\x0a\x09ctx := AIContext new.\x0a\x09ctx receiver: anObject.\x0a\x09aDictionary keysAndValuesDo: [ :key :value |\x0a\x09\x09ctx localAt: key put: value ].\x0a\x09\x0a\x09^ self interpreter\x0a\x09\x09context: ctx;\x0a\x09\x09interpret: (self parse: aString forClass: anObject class)\x0a\x09\x09\x09nodes first;\x0a\x09\x09result",
 messageSends: ["new", "receiver:", "keysAndValuesDo:", "localAt:put:", "context:", "interpreter", "interpret:", "first", "nodes", "parse:forClass:", "class", "result"],
 messageSends: ["new", "receiver:", "keysAndValuesDo:", "localAt:put:", "context:", "interpreter", "interpret:", "first", "nodes", "parse:forClass:", "class", "result"],
 referencedClasses: ["AIContext"]
 referencedClasses: ["AIContext"]
 }),
 }),
@@ -75,9 +75,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._interpret_receiver_withArguments_(aString,_st((smalltalk.Object || Object))._new(),aDictionary);
 $1=_st(self)._interpret_receiver_withArguments_(aString,_st((smalltalk.Object || Object))._new(),aDictionary);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString", "aDictionary"],
 args: ["aString", "aDictionary"],
-source: "interpret: aString withArguments: aDictionary\x0a\x09^ self \x0a    \x09interpret: aString \x0a        receiver: Object new\x0a        withArguments: aDictionary",
+source: "interpret: aString withArguments: aDictionary\x0a\x09^ self\x0a\x09\x09interpret: aString\x0a\x09\x09receiver: Object new\x0a\x09\x09withArguments: aDictionary",
 messageSends: ["interpret:receiver:withArguments:", "new"],
 messageSends: ["interpret:receiver:withArguments:", "new"],
 referencedClasses: ["Object"]
 referencedClasses: ["Object"]
 }),
 }),
@@ -93,7 +93,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclassResponsibility();
 $1=_st(self)._subclassResponsibility();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.AbstractASTInterpreterTest)})},
 args: [],
 args: [],
 source: "interpreter\x0a\x09^ self subclassResponsibility",
 source: "interpreter\x0a\x09^ self subclassResponsibility",
 messageSends: ["subclassResponsibility"],
 messageSends: ["subclassResponsibility"],
@@ -111,7 +111,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString"],
 args: ["aString"],
 source: "parse: aString\x0a\x09^ Smalltalk current parse: aString",
 source: "parse: aString\x0a\x09^ Smalltalk current parse: aString",
 messageSends: ["parse:", "current"],
 messageSends: ["parse:", "current"],
@@ -129,7 +129,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString", "aClass"],
 args: ["aString", "aClass"],
 source: "parse: aString forClass: aClass\x0a\x09^ self analyze: (self parse: aString) forClass: aClass",
 source: "parse: aString forClass: aClass\x0a\x09^ self analyze: (self parse: aString) forClass: aClass",
 messageSends: ["analyze:forClass:", "parse:"],
 messageSends: ["analyze:forClass:", "parse:"],
@@ -150,7 +150,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 $1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
 source: "interpreter\x0a\x09^ ASTInterpreter new",
 source: "interpreter\x0a\x09^ ASTInterpreter new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -166,7 +166,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo 2+3+4"),(9));
 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: [],
 args: [],
 source: "testBinarySend\x0a\x09self assert: (self interpret: 'foo 2+3+4') equals: 9",
 source: "testBinarySend\x0a\x09self assert: (self interpret: 'foo 2+3+4') equals: 9",
 messageSends: ["assert:equals:", "interpret:"],
 messageSends: ["assert:equals:", "interpret:"],
@@ -184,9 +184,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]"),(1));
 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 true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]"),(1));
 _st(self)._assert_equals_(_st(self)._interpret_("foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]"),(2));
 _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: [],
 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",
+source: "testBlockLiteral\x0a\x09self assert: (self interpret: 'foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 1.\x0a\x09self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]') equals: 1.\x0a\x09self assert: (self interpret: 'foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 2",
 messageSends: ["assert:equals:", "interpret:"],
 messageSends: ["assert:equals:", "interpret:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -200,7 +200,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 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 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: [],
 args: [],
 source: "testCascade\x0a\x09self assert: (self interpret: 'foo ^ OrderedCollection new add: 2; add: 3; yourself') equals: (OrderedCollection with: 2 with: 3)",
 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:"],
 messageSends: ["assert:equals:", "interpret:", "with:with:"],
@@ -216,7 +216,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ {1+1. 2+2}"),[(2), (4)]);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ {1+1. 2+2}"),[(2), (4)]);
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArray",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArray",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
 source: "testDynamicArray\x0a\x09self assert: (self interpret: 'foo ^ {1+1. 2+2}') equals: #(2 4)",
 source: "testDynamicArray\x0a\x09self assert: (self interpret: 'foo ^ {1+1. 2+2}') equals: #(2 4)",
 messageSends: ["assert:equals:", "interpret:"],
 messageSends: ["assert:equals:", "interpret:"],
@@ -232,7 +232,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ #{1->1. 2->3}"),smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((1)),_st((2)).__minus_gt((3))]));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ #{1->1. 2->3}"),smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((1)),_st((2)).__minus_gt((3))]));
-return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionary",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionary",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
 source: "testDynamicDictionary\x0a\x09self assert: (self interpret: 'foo ^ #{1->1. 2->3}') equals: #{1->1. 2->3}",
 source: "testDynamicDictionary\x0a\x09self assert: (self interpret: 'foo ^ #{1->1. 2->3}') equals: #{1->1. 2->3}",
 messageSends: ["assert:equals:", "interpret:", "->"],
 messageSends: ["assert:equals:", "interpret:", "->"],
@@ -249,9 +249,9 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo <return 2+3>"),(5));
 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));
 _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: [],
 args: [],
-source: "testInlinedJSStatement\x0a\x09self assert: (self interpret: 'foo <return 2+3>') equals: 5.\x0a    \x0a    self \x0a    \x09assert: (self \x0a    \x09\x09interpret: 'foo: anInteger <return 2 + anInteger>' \x0a        \x09withArguments: #{ 'anInteger' -> 3}) \x0a\x09\x09equals: 5",
+source: "testInlinedJSStatement\x0a\x09self assert: (self interpret: 'foo <return 2+3>') equals: 5.\x0a\x09\x0a\x09self\x0a\x09\x09assert: (self\x0a\x09\x09\x09interpret: 'foo: anInteger <return 2 + anInteger>'\x0a\x09\x09\x09withArguments: #{ 'anInteger' -> 3})\x0a\x09\x09equals: 5",
 messageSends: ["assert:equals:", "interpret:", "interpret:withArguments:", "->"],
 messageSends: ["assert:equals:", "interpret:", "interpret:withArguments:", "->"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -265,9 +265,9 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ x",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ x",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAccess",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAccess",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
-source: "testInstVarAccess\x0a\x09self \x0a    \x09assert: (self \x0a    \x09\x09interpret: 'foo ^ x'\x0a        \x09receiver: 2@3\x0a        \x09withArguments: #{})\x0a        equals: 2",
+source: "testInstVarAccess\x0a\x09self\x0a\x09\x09assert: (self\x0a\x09\x09\x09interpret: 'foo ^ x'\x0a\x09\x09\x09receiver: 2@3\x0a\x09\x09\x09withArguments: #{})\x0a\x09\x09equals: 2",
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"],
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -281,9 +281,9 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st((smalltalk.Point || Point))._new(),smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((2))])),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st((smalltalk.Point || Point))._new(),smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((2))])),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAssignment",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAssignment",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
-source: "testInstVarAssignment\x0a\x09self \x0a    \x09assert: (self \x0a    \x09\x09interpret: 'foo: anInteger x := anInteger. ^ x'\x0a        \x09receiver: Point new\x0a        \x09withArguments: #{'anInteger' -> 2})\x0a        equals: 2",
+source: "testInstVarAssignment\x0a\x09self\x0a\x09\x09assert: (self\x0a\x09\x09\x09interpret: 'foo: anInteger x := anInteger. ^ x'\x0a\x09\x09\x09receiver: Point new\x0a\x09\x09\x09withArguments: #{'anInteger' -> 2})\x0a\x09\x09equals: 2",
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "new", "->"],
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "new", "->"],
 referencedClasses: ["Point"]
 referencedClasses: ["Point"]
 }),
 }),
@@ -297,7 +297,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ]. ^2"),(1));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ]. ^2"),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testNonlocalReturn",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testNonlocalReturn",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
 source: "testNonlocalReturn\x0a\x09self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ]. ^2') equals: 1",
 source: "testNonlocalReturn\x0a\x09self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ]. ^2') equals: 1",
 messageSends: ["assert:equals:", "interpret:"],
 messageSends: ["assert:equals:", "interpret:"],
@@ -313,9 +313,9 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ self",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),_st((2)).__at((3)));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo ^ self",_st((2)).__at((3)),smalltalk.HashedCollection._fromPairs_([])),_st((2)).__at((3)));
-return self}, function($ctx1) {$ctx1.fill(self,"testReceiver",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testReceiver",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
-source: "testReceiver\x0a\x09self \x0a    \x09assert: (self \x0a    \x09\x09interpret: 'foo ^ self'\x0a        \x09receiver: 2@3\x0a        \x09withArguments: #{})\x0a        equals: 2@3",
+source: "testReceiver\x0a\x09self\x0a\x09\x09assert: (self\x0a\x09\x09\x09interpret: 'foo ^ self'\x0a\x09\x09\x09receiver: 2@3\x0a\x09\x09\x09withArguments: #{})\x0a\x09\x09equals: 2@3",
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"],
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "@"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -329,7 +329,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo | a | a := 2. ^ a"),(2));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo | a | a := 2. ^ a"),(2));
-return self}, function($ctx1) {$ctx1.fill(self,"testTempAssignment",{}, smalltalk.ASTInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTempAssignment",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
 source: "testTempAssignment\x0a\x09self assert: (self interpret: 'foo | a | a := 2. ^ a') equals: 2",
 source: "testTempAssignment\x0a\x09self assert: (self interpret: 'foo | a | a := 2. ^ a') equals: 2",
 messageSends: ["assert:equals:", "interpret:"],
 messageSends: ["assert:equals:", "interpret:"],
@@ -356,7 +356,7 @@ $1=self["@interpreter"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTSteppingInterpreterTest)})},
+}, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTSteppingInterpreterTest)})},
 args: [],
 args: [],
 source: "interpreter\x0a\x09^ interpreter ifNil: [ interpreter := ASTSteppingInterpreter new ]",
 source: "interpreter\x0a\x09^ interpreter ifNil: [ interpreter := ASTSteppingInterpreter new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -381,9 +381,9 @@ _st(_st(self)._interpreter())._step();
 _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
 _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_(_st(_st(self)._interpreter())._atEnd());
 _st(self)._assert_(_st(_st(self)._interpreter())._atEnd());
-return self}, function($ctx1) {$ctx1.fill(self,"testAtEnd",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAtEnd",{},smalltalk.ASTSteppingInterpreterTest)})},
 args: [],
 args: [],
-source: "testAtEnd\x0a\x09self interpret: 'foo 1 + 2'.\x0a    self deny: self interpreter atEnd.\x0a\x0a    self interpreter step.\x0a    self deny: self interpreter atEnd.\x0a    \x0a    self interpreter step.\x0a    self deny: self interpreter atEnd.\x0a    \x0a    self interpreter step.\x0a    self deny: self interpreter atEnd.\x0a    \x0a    self interpreter step.\x0a    self assert: self interpreter atEnd",
+source: "testAtEnd\x0a\x09self interpret: 'foo 1 + 2'.\x0a\x09self deny: self interpreter atEnd.\x0a\x0a\x09self interpreter step.\x0a\x09self deny: self interpreter atEnd.\x0a\x09\x0a\x09self interpreter step.\x0a\x09self deny: self interpreter atEnd.\x0a\x09\x0a\x09self interpreter step.\x0a\x09self deny: self interpreter atEnd.\x0a\x09\x0a\x09self interpreter step.\x0a\x09self assert: self interpreter atEnd",
 messageSends: ["interpret:", "deny:", "atEnd", "interpreter", "step", "assert:"],
 messageSends: ["interpret:", "deny:", "atEnd", "interpreter", "step", "assert:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -405,9 +405,9 @@ _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(2));
 _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(2));
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(3));
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(3));
-return self}, function($ctx1) {$ctx1.fill(self,"testMessageSend",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testMessageSend",{},smalltalk.ASTSteppingInterpreterTest)})},
 args: [],
 args: [],
-source: "testMessageSend\x0a\x09self interpret: 'foo 1 + 2'.\x0a    \x0a    \x22SequenceNode\x22\x0a    self interpreter step.\x0a    \x0a    \x22SendNode\x22\x0a    self interpreter step.\x0a    \x0a     \x22ValueNode\x22\x0a    self interpreter step.\x0a    self assert: self interpreter currentNode value equals: 1.\x0a    \x0a    \x22ValueNode\x22\x0a    self interpreter step.\x0a    self assert: self interpreter currentNode value equals: 2.\x0a    \x0a    \x22Result\x22\x0a    self interpreter step.\x0a    self assert: self interpreter result equals: 3",
+source: "testMessageSend\x0a\x09self interpret: 'foo 1 + 2'.\x0a\x09\x0a\x09\x22SequenceNode\x22\x0a\x09self interpreter step.\x0a\x09\x0a\x09\x22SendNode\x22\x0a\x09self interpreter step.\x0a\x09\x0a\x09\x22ValueNode\x22\x0a\x09self interpreter step.\x0a\x09self assert: self interpreter currentNode value equals: 1.\x0a\x09\x0a\x09\x22ValueNode\x22\x0a\x09self interpreter step.\x0a\x09self assert: self interpreter currentNode value equals: 2.\x0a\x09\x0a\x09\x22Result\x22\x0a\x09self interpreter step.\x0a\x09self assert: self interpreter result equals: 3",
 messageSends: ["interpret:", "step", "interpreter", "assert:equals:", "value", "currentNode", "result"],
 messageSends: ["interpret:", "step", "interpreter", "assert:equals:", "value", "currentNode", "result"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -425,9 +425,9 @@ _st(_st(self)._interpreter())._step();
 _st(self)._assert_(_st(_st(_st(self)._interpreter())._result())._isNil());
 _st(self)._assert_(_st(_st(_st(self)._interpreter())._result())._isNil());
 _st(_st(self)._interpreter())._step();
 _st(_st(self)._interpreter())._step();
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(1));
 _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testSimpleStepping",{}, smalltalk.ASTSteppingInterpreterTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testSimpleStepping",{},smalltalk.ASTSteppingInterpreterTest)})},
 args: [],
 args: [],
-source: "testSimpleStepping\x0a\x09self interpret: 'foo 1'.\x0a    \x0a    \x22SequenceNode\x22\x0a    self interpreter step.\x0a    \x0a    self assert: self interpreter result isNil.\x0a    \x0a    \x22ValueNode\x22\x0a    self interpreter step.\x0a    \x0a    self assert: self interpreter result equals: 1",
+source: "testSimpleStepping\x0a\x09self interpret: 'foo 1'.\x0a\x09\x0a\x09\x22SequenceNode\x22\x0a\x09self interpreter step.\x0a\x09\x0a\x09self assert: self interpreter result isNil.\x0a\x09\x0a\x09\x22ValueNode\x22\x0a\x09self interpreter step.\x0a\x09\x0a\x09self assert: self interpreter result equals: 1",
 messageSends: ["interpret:", "step", "interpreter", "assert:", "isNil", "result", "assert:equals:"],
 messageSends: ["interpret:", "step", "interpreter", "assert:", "isNil", "result", "assert:equals:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -446,7 +446,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 $1=(smalltalk.CodeGenerator || CodeGenerator);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
 source: "codeGeneratorClass\x0a\x09^ CodeGenerator",
 source: "codeGeneratorClass\x0a\x09^ CodeGenerator",
 messageSends: [],
 messageSends: [],
@@ -467,7 +467,7 @@ _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"compiler",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"compiler",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
 source: "compiler\x0a\x09^ Compiler new\x0a\x09\x09codeGeneratorClass: self codeGeneratorClass;\x0a\x09\x09yourself",
 source: "compiler\x0a\x09^ Compiler new\x0a\x09\x09codeGeneratorClass: self codeGeneratorClass;\x0a\x09\x09yourself",
 messageSends: ["codeGeneratorClass:", "codeGeneratorClass", "new", "yourself"],
 messageSends: ["codeGeneratorClass:", "codeGeneratorClass", "new", "yourself"],
@@ -483,7 +483,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=_st(_st(self)._targetClass())._new();
 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: [],
 args: [],
 source: "setUp\x0a\x09receiver := self targetClass new",
 source: "setUp\x0a\x09receiver := self targetClass new",
 messageSends: ["new", "targetClass"],
 messageSends: ["new", "targetClass"],
@@ -503,7 +503,7 @@ return smalltalk.withContext(function($ctx1) { 
method=_st(_st(self)._compiler()
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 result=_st(self["@receiver"])._perform_(_st(method)._selector());
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(_st(self)._targetClass())._removeCompiledMethod_(method);
 _st(self)._assert_equals_(anObject,result);
 _st(self)._assert_equals_(anObject,result);
-return self}, function($ctx1) {$ctx1.fill(self,"should:return:",{aString:aString,anObject: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"],
 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",
 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:"],
 messageSends: ["install:forClass:category:", "targetClass", "compiler", "perform:", "selector", "removeCompiledMethod:", "assert:equals:"],
@@ -521,7 +521,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.DoIt || DoIt);
 $1=(smalltalk.DoIt || DoIt);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"targetClass",{}, smalltalk.CodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
 source: "targetClass\x0a\x09^ DoIt",
 source: "targetClass\x0a\x09^ DoIt",
 messageSends: [],
 messageSends: [],
@@ -536,7 +536,7 @@ selector: "tearDown",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 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: [],
 args: [],
 source: "tearDown\x0a\x09\x22receiver := nil\x22",
 source: "tearDown\x0a\x09\x22receiver := nil\x22",
 messageSends: [],
 messageSends: [],
@@ -554,7 +554,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo | a | a := true ifTrue: [ 1 ]. ^ a",(1));
 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 := false ifTrue: [ 1 ]. ^ a",nil);
 _st(self)._should_return_("foo | a | ^ a := true ifTrue: [ 1 ]",(1));
 _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: [],
 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",
 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:"],
 messageSends: ["should:return:"],
@@ -572,7 +572,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)]);
 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 | 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)]);
 _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: [],
 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).",
 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:"],
 messageSends: ["should:return:"],
@@ -588,7 +588,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo ^ Array new add: 3; add: 4; yourself",[(3), (4)]);
 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: [],
 args: [],
 source: "testCascades\x0a\x09\x0a\x09self should: 'foo ^ Array new add: 3; add: 4; yourself' return: #(3 4)",
 source: "testCascades\x0a\x09\x0a\x09self should: 'foo ^ Array new add: 3; add: 4; yourself' return: #(3 4)",
 messageSends: ["should:return:"],
 messageSends: ["should:return:"],
@@ -603,10 +603,10 @@ selector: "testDynamicArrayElementsOrdered",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ { x. true ifTrue: [ x := 2 ] }\x0a",[(1), (2)]);
+return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
-source: "testDynamicArrayElementsOrdered\x0a\x09self should: 'foo\x0a  | x |\x0a  x := 1.\x0a  ^ { x. true ifTrue: [ x := 2 ] }\x0a' return: #(1 2).",
+source: "testDynamicArrayElementsOrdered\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ { x. true ifTrue: [ x := 2 ] }\x0a' return: #(1 2).",
 messageSends: ["should:return:"],
 messageSends: ["should:return:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -619,10 +619,10 @@ selector: "testDynamicDictionaryElementsOrdered",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 'foo'->1.\x0a\x09^ #{ 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)})},
 args: [],
 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}.",
+source: "testDynamicDictionaryElementsOrdered\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := ''foo''->1.\x0a\x09^ #{ x. (true ifTrue: [ x := ''bar''->2 ]) }\x0a' return: #{'foo'->1. 'bar'->2}.",
 messageSends: ["should:return:", "->"],
 messageSends: ["should:return:", "->"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -635,13 +635,13 @@ selector: "testInnerTemporalDependentElementsOrdered",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a  | x |\x0a  x := Array.\x0a  ^ x with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((smalltalk.Array || Array)),_st("bar").__minus_gt((2))]);
-_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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((smalltalk.Array || Array)),_st("bar").__minus_gt((2))]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ 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\x09| x |\x0a\x09x := 1.\x0a\x09^ { 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ #{ '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)})},
 args: [],
 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}.",
+source: "testInnerTemporalDependentElementsOrdered\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])\x0a' return: {'foo'->Array. 'bar'->2}.\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ Array with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])\x0a' return: {'foo'->1. 'bar'->2}.\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ { ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }\x0a' return: {'foo'->1. 'bar'->2}.\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ #{ ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }\x0a' return: #{'foo'->1. 'bar'->2}.",
 messageSends: ["should:return:", "->"],
 messageSends: ["should:return:", "->"],
 referencedClasses: ["Array"]
 referencedClasses: ["Array"]
 }),
 }),
@@ -663,7 +663,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 ^ #{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 ^ #hello",smalltalk.symbolFor("hello"));
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
 _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: [],
 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",
 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:", "->"],
 messageSends: ["should:return:", "->"],
@@ -683,7 +683,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo ",self["@receiver"]);
 _st(self)._should_return_("foo self asString",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));
 _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: [],
 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",
 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:"],
 messageSends: ["should:return:"],
@@ -703,7 +703,7 @@ _st(self)._should_return_("foo ^ 1 + 1",(2));
 _st(self)._should_return_("foo ^ 1 + 2 * 3",(9));
 _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: 3",[(1), (2), (3)]);
 _st(self)._should_return_("foo ^ 1 to: 5 by: 2",[(1), (3), (5)]);
 _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: [],
 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)",
 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:"],
 messageSends: ["should:return:"],
@@ -722,7 +722,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 ifTrue: [ 1 ] ]",nil);
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
 _st(self)._should_return_("foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]",self["@receiver"]);
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -741,7 +741,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 [ ^ 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 | a b | a := 1. b := 2. [ ^ a + b ] value. self halt",(3));
 _st(self)._should_return_("foo [ :x | ^ x + x ] value: 4. ^ 2",(8));
 _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: [],
 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",
 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:"],
 messageSends: ["should:return:"],
@@ -756,11 +756,11 @@ selector: "testSendReceiverAndArgumentsOrdered",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 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 smalltalk.withContext(function($ctx1) { 
_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a",[(1), (2)]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[(smalltalk.Array || Array),(2)]);
+return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 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}.",
+source: "testSendReceiverAndArgumentsOrdered\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ Array with: x with: (true ifTrue: [ x := 2 ])\x0a' return: #(1 2).\x0a\x0a\x09self should: 'foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a' return: {Array. 2}.",
 messageSends: ["should:return:"],
 messageSends: ["should:return:"],
 referencedClasses: ["Array"]
 referencedClasses: ["Array"]
 }),
 }),
@@ -777,7 +777,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 false ifFalse: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ]",(2));
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -796,7 +796,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 false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]",(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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -815,7 +815,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 ^ nil ifNil: [ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ]",(2));
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -834,7 +834,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 ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]",(2));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
 _st(self)._should_return_("foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(2));
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -853,7 +853,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 ^ nil ifNotNil: [ 2 ]",nil);
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo nil ifNotNil: [ ^ 2 ]",self["@receiver"]);
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -872,7 +872,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 true ifTrue: [ ^ 2 ]",(2));
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ]",(2));
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -891,7 +891,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 true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
 _st(self)._should_return_("foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]",(2));
 _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: [],
 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.",
 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:"],
 messageSends: ["should:return:"],
@@ -912,7 +912,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.InliningCodeGeneratorTest)})},
+}, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 args: [],
 args: [],
 source: "codeGeneratorClass\x0a\x09^ InliningCodeGenerator",
 source: "codeGeneratorClass\x0a\x09^ InliningCodeGenerator",
 messageSends: [],
 messageSends: [],
@@ -938,7 +938,7 @@ $2=_st($1)._yourself();
 node=$2;
 node=$2;
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
 _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: [],
 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",
 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"],
 messageSends: ["value:", "new", "yourself", "visit:", "assert:", "isClassRefVar", "binding"],
@@ -962,7 +962,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addIVar_("bzzz");
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
 _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: [],
 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",
 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:"],
 messageSends: ["value:", "new", "yourself", "addIVar:", "assert:", "isInstanceVar", "bindingFor:"],
@@ -988,7 +988,7 @@ node=$2;
 node;
 node;
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
 return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars},smalltalk.ScopeVarTest)})},
 args: [],
 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 ]",
 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:"],
 messageSends: ["do:", "value:", "new", "yourself", "assert:", "isPseudoVar", "bindingFor:"],
@@ -1012,7 +1012,7 @@ node=$2;
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
 _st(scope)._addTemp_("bzzz");
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
 _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: [],
 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",
 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:"],
 messageSends: ["value:", "new", "yourself", "addTemp:", "assert:", "isTempVar", "bindingFor:"],
@@ -1034,7 +1034,7 @@ _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
 _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isNil());
 _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: [],
 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",
 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:"],
 messageSends: ["value:", "new", "yourself", "assert:", "isNil", "bindingFor:"],
@@ -1053,7 +1053,7 @@ category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_((smalltalk.Object || Object));
 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: [],
 args: [],
 source: "setUp\x0a\x09analyzer := SemanticAnalyzer on: Object",
 source: "setUp\x0a\x09analyzer := SemanticAnalyzer on: Object",
 messageSends: ["on:"],
 messageSends: ["on:"],
@@ -1074,7 +1074,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
-return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 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",
 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:"],
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1094,7 +1094,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. ^ a";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._deny_(_st(_st(ast)._scope())._hasNonLocalReturn());
 _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: [],
 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",
 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"],
 messageSends: ["parse:", "visit:", "deny:", "hasNonLocalReturn", "scope"],
@@ -1114,7 +1114,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ ^ a]
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_(_st(_st(ast)._scope())._hasNonLocalReturn());
 _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: [],
 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",
 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"],
 messageSends: ["parse:", "visit:", "assert:", "hasNonLocalReturn", "scope"],
@@ -1134,7 +1134,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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()));
 _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: [],
 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.",
 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"],
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "last", "nodes", "first"],
@@ -1154,7 +1154,7 @@ return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ | b |
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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()));
 _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: [],
 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.",
 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"],
 messageSends: ["parse:", "visit:", "deny:", "==", "scope", "first", "nodes", "last"],
@@ -1175,7 +1175,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _st(self["@analyzer"])._visit_(ast);
 _st(self)._assert_equals_(_st(_st(ast)._scope())._scopeLevel(),(1));
 _st(self)._assert_equals_(_st(_st(ast)._scope())._scopeLevel(),(1));
 _st(self)._assert_equals_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel(),(3));
 _st(self)._assert_equals_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel(),(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: [],
 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 equals: 1.\x0a\x09self assert: ast nodes first nodes last nodes first nodes first scope scopeLevel equals: 3",
 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 equals: 1.\x0a\x09self assert: ast nodes first nodes last nodes first nodes first scope scopeLevel equals: 3",
 messageSends: ["parse:", "visit:", "assert:equals:", "scopeLevel", "scope", "first", "nodes", "last"],
 messageSends: ["parse:", "visit:", "assert:equals:", "scopeLevel", "scope", "first", "nodes", "last"],
@@ -1196,7 +1196,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 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",
 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:"],
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1217,7 +1217,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 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",
 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:"],
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1236,7 +1236,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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: [],
 args: [],
 source: "testVariableShadowing\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast",
 source: "testVariableShadowing\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1'.\x0a\x09ast := smalltalk parse: src.\x0a\x09analyzer visit: ast",
 messageSends: ["parse:", "visit:"],
 messageSends: ["parse:", "visit:"],
@@ -1257,7 +1257,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 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",
 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:"],
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1276,7 +1276,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | b | b := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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: [],
 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",
 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:"],
 messageSends: ["parse:", "visit:"],
@@ -1295,7 +1295,7 @@ var src,ast;
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 ast=_st(smalltalk)._parse_(src);
 _st(self["@analyzer"])._visit_(ast);
 _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: [],
 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",
 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:"],
 messageSends: ["parse:", "visit:"],
@@ -1316,7 +1316,7 @@ ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
-return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 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",
 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:"],
 messageSends: ["parse:", "should:raise:", "visit:"],
@@ -1339,7 +1339,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(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(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()));
 _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: [],
 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.",
 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"],
 messageSends: ["parse:", "visit:", "assert:", "isTempVar", "binding", "receiver", "first", "nodes", "==", "scope", "left", "last"],

+ 6 - 6
js/Examples.deploy.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Examples', {});
+smalltalk.addPackage('Examples');
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_decrease",
 "_decrease",
@@ -10,7 +10,7 @@ return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"
 _st(self["@header"])._contents_((function(html){
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"decrease",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"decrease",{},smalltalk.Counter)})},
 messageSends: ["-", "contents:", "with:", "asString"]}),
 messageSends: ["-", "contents:", "with:", "asString"]}),
 smalltalk.Counter);
 smalltalk.Counter);
 
 
@@ -24,7 +24,7 @@ return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"
 _st(self["@header"])._contents_((function(html){
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"increase",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"increase",{},smalltalk.Counter)})},
 messageSends: ["+", "contents:", "with:", "asString"]}),
 messageSends: ["+", "contents:", "with:", "asString"]}),
 smalltalk.Counter);
 smalltalk.Counter);
 
 
@@ -36,7 +36,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 self["@count"]=(0);
 self["@count"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Counter)})},
 messageSends: ["initialize"]}),
 messageSends: ["initialize"]}),
 smalltalk.Counter);
 smalltalk.Counter);
 
 
@@ -61,7 +61,7 @@ _st($5)._with_("--");
 $6=_st($5)._onClick_((function(){
 $6=_st($5)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},smalltalk.Counter)})},
 messageSends: ["with:", "asString", "h1", "yourself", "button", "onClick:", "increase", "decrease"]}),
 messageSends: ["with:", "asString", "h1", "yourself", "button", "onClick:", "increase", "decrease"]}),
 smalltalk.Counter);
 smalltalk.Counter);
 
 
@@ -73,7 +73,7 @@ selector: "tryExample",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._appendToJQuery_(_st("body")._asJQuery());
 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)})},
 messageSends: ["appendToJQuery:", "asJQuery", "new"]}),
 messageSends: ["appendToJQuery:", "asJQuery", "new"]}),
 smalltalk.Counter.klass);
 smalltalk.Counter.klass);
 
 

+ 12 - 12
js/Examples.js

@@ -1,6 +1,6 @@
-smalltalk.addPackage('Examples', {});
+smalltalk.addPackage('Examples');
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
-smalltalk.Counter.comment="This is a trivial Widget example mimicking the classic Counter example in Seaside. \x0aIn order to play with it, just select the doit below and press the Do it button in the far right corner.\x0aThen take a look in the HTML document above the IDE.\x0a\x0a        Counter new appendToJQuery: 'body' asJQuery"
+smalltalk.Counter.comment="This is a trivial Widget example mimicking the classic Counter example in Seaside.\x0aIn order to play with it, just select the doit below and press the Do it button in the far right corner.\x0aThen take a look in the HTML document above the IDE.\x0a\x0a\x09\x09Counter new appendToJQuery: 'body' asJQuery"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_decrease",
 "_decrease",
 smalltalk.method({
 smalltalk.method({
@@ -12,9 +12,9 @@ return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"
 _st(self["@header"])._contents_((function(html){
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"decrease",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"decrease",{},smalltalk.Counter)})},
 args: [],
 args: [],
-source: "decrease\x0a    count := count - 1.\x0a    header contents: [:html | html with: count asString]",
+source: "decrease\x0a\x09count := count - 1.\x0a\x09header contents: [:html | html with: count asString]",
 messageSends: ["-", "contents:", "with:", "asString"],
 messageSends: ["-", "contents:", "with:", "asString"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -31,9 +31,9 @@ return smalltalk.withContext(function($ctx1) { 
self["@count"]=_st(self["@count"
 _st(self["@header"])._contents_((function(html){
 _st(self["@header"])._contents_((function(html){
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 return smalltalk.withContext(function($ctx2) {
return _st(html)._with_(_st(self["@count"])._asString());
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"increase",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"increase",{},smalltalk.Counter)})},
 args: [],
 args: [],
-source: "increase\x0a    count := count + 1.\x0a    header contents: [:html | html with: count asString]",
+source: "increase\x0a\x09count := count + 1.\x0a\x09header contents: [:html | html with: count asString]",
 messageSends: ["+", "contents:", "with:", "asString"],
 messageSends: ["+", "contents:", "with:", "asString"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -48,9 +48,9 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Widget.fn.prototype._initialize.apply(_st(self), []);
 self["@count"]=(0);
 self["@count"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Counter)})},
 args: [],
 args: [],
-source: "initialize\x0a    super initialize.\x0a    count := 0",
+source: "initialize\x0a\x09super initialize.\x0a\x09count := 0",
 messageSends: ["initialize"],
 messageSends: ["initialize"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -78,9 +78,9 @@ _st($5)._with_("--");
 $6=_st($5)._onClick_((function(){
 $6=_st($5)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._decrease();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html}, smalltalk.Counter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},smalltalk.Counter)})},
 args: ["html"],
 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]",
+source: "renderOn: html\x0a\x09header := html h1\x0a\x09with: count asString;\x0a\x09yourself.\x0a\x09html button\x0a\x09with: '++';\x0a\x09onClick: [self increase].\x0a\x09html button\x0a\x09with: '--';\x0a\x09onClick: [self decrease]",
 messageSends: ["with:", "asString", "h1", "yourself", "button", "onClick:", "increase", "decrease"],
 messageSends: ["with:", "asString", "h1", "yourself", "button", "onClick:", "increase", "decrease"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -95,9 +95,9 @@ category: 'example',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._new())._appendToJQuery_(_st("body")._asJQuery());
 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: [],
 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",
+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\x09\x09self new appendToJQuery: 'body' asJQuery",
 messageSends: ["appendToJQuery:", "asJQuery", "new"],
 messageSends: ["appendToJQuery:", "asJQuery", "new"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),

文件差异内容过多而无法显示
+ 116 - 116
js/IDE.deploy.js


文件差异内容过多而无法显示
+ 150 - 150
js/IDE.js


+ 99 - 166
js/Importer-Exporter.deploy.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Importer-Exporter', {});
+smalltalk.addPackage('Importer-Exporter');
 smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
 smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_nextChunk",
 "_nextChunk",
@@ -7,19 +7,16 @@ selector: "nextChunk",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var char,result,chunk;
 var char,result,chunk;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 var $early={};
 var $early={};
 try {
 try {
 result=_st("")._writeStream();
 result=_st("")._writeStream();
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
-char=_st(self["@stream"])._next();
+return smalltalk.withContext(function($ctx2) {
char=_st(self["@stream"])._next();
 char;
 char;
 return _st(char)._notNil();
 return _st(char)._notNil();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(char).__eq("!");
+return smalltalk.withContext(function($ctx2) {
$1=_st(char).__eq("!");
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(self["@stream"])._peek()).__eq("!");
 $2=_st(_st(self["@stream"])._peek()).__eq("!");
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -34,7 +31,7 @@ return _st(result)._nextPut_(char);
 return nil;
 return nil;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 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)})},
 messageSends: ["writeStream", "whileTrue:", "ifTrue:", "ifTrue:ifFalse:", "next", "trimBoth", "contents", "=", "peek", "nextPut:", "notNil"]}),
 messageSends: ["writeStream", "whileTrue:", "ifTrue:", "ifTrue:ifFalse:", "next", "trimBoth", "contents", "=", "peek", "nextPut:", "notNil"]}),
 smalltalk.ChunkParser);
 smalltalk.ChunkParser);
 
 
@@ -44,9 +41,8 @@ smalltalk.method({
 selector: "stream:",
 selector: "stream:",
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-self["@stream"]=aStream;
-return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream}, smalltalk.ChunkParser)})},
+return smalltalk.withContext(function($ctx1) { 
self["@stream"]=aStream;
+return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream},smalltalk.ChunkParser)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ChunkParser);
 smalltalk.ChunkParser);
 
 
@@ -57,11 +53,10 @@ smalltalk.method({
 selector: "on:",
 selector: "on:",
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._stream_(aStream);
 $1=_st(_st(self)._new())._stream_(aStream);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream}, smalltalk.ChunkParser.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream},smalltalk.ChunkParser.klass)})},
 messageSends: ["stream:", "new"]}),
 messageSends: ["stream:", "new"]}),
 smalltalk.ChunkParser.klass);
 smalltalk.ChunkParser.klass);
 
 
@@ -73,8 +68,7 @@ smalltalk.method({
 selector: "classNameFor:",
 selector: "classNameFor:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 $2=_st(aClass)._isMetaclass();
 $2=_st(aClass)._isMetaclass();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
@@ -87,7 +81,7 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.Exporter)})},
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -97,17 +91,14 @@ smalltalk.method({
 selector: "exportAll",
 selector: "exportAll",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $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()));
+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:pkg},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportAll",{}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportAll",{},smalltalk.Exporter)})},
 messageSends: ["streamContents:", "do:", "nextPutAll:", "exportPackage:", "name", "packages", "current"]}),
 messageSends: ["streamContents:", "do:", "nextPutAll:", "exportPackage:", "name", "packages", "current"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -117,17 +108,15 @@ smalltalk.method({
 selector: "exportClass:",
 selector: "exportClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
-_st(self)._exportDefinitionOf_on_(aClass,stream);
+return smalltalk.withContext(function($ctx2) {
_st(self)._exportDefinitionOf_on_(aClass,stream);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass},smalltalk.Exporter)})},
 messageSends: ["streamContents:", "exportDefinitionOf:on:", "exportMethodsOf:on:", "exportMetaDefinitionOf:on:", "class"]}),
 messageSends: ["streamContents:", "exportDefinitionOf:on:", "exportMethodsOf:on:", "exportMetaDefinitionOf:on:", "class"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -137,19 +126,16 @@ smalltalk.method({
 selector: "exportDefinitionOf:on:",
 selector: "exportDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5,$6,$7;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 $2=_st($1)._nextPutAll_(", [");
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(", ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_("], '");
@@ -166,7 +152,7 @@ $7=_st($6)._nextPutAll_(_st(_st(aClass)._comment())._asJavascript());
 $7;
 $7;
 };
 };
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "lf", "asJavascript", "comment", "notEmpty"]}),
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "lf", "asJavascript", "comment", "notEmpty"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -176,8 +162,7 @@ smalltalk.method({
 selector: "exportMetaDefinitionOf:on:",
 selector: "exportMetaDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 $2=aStream;
 $2=aStream;
@@ -185,15 +170,13 @@ _st($2)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3;
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(",");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"]}),
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -203,8 +186,7 @@ smalltalk.method({
 selector: "exportMethod:of:on:",
 selector: "exportMethod:of:on:",
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._lf();
 _st($1)._lf();
@@ -233,7 +215,7 @@ _st($3)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($3)._nextPutAll_(");");
 _st($3)._nextPutAll_(");");
 _st($3)._lf();
 _st($3)._lf();
 $4=_st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:"]}),
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -243,20 +225,17 @@ smalltalk.method({
 selector: "exportMethodsOf:on:",
 selector: "exportMethodsOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 _st(_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());
+return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(_st(each)._category())._match_("^\x5c*");
+return smalltalk.withContext(function($ctx2) {
$1=_st(_st(each)._category())._match_("^\x5c*");
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 messageSends: ["do:", "ifFalse:", "exportMethod:of:on:", "match:", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "lf"]}),
 messageSends: ["do:", "ifFalse:", "exportMethod:of:on:", "match:", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "lf"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -267,21 +246,18 @@ selector: "exportPackage:",
 fn: function (packageName){
 fn: function (packageName){
 var self=this;
 var self=this;
 var package_;
 var package_;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
-package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
+return smalltalk.withContext(function($ctx2) {
package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
 package_;
 package_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
-return smalltalk.withContext(function($ctx3) {
-return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
+return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_},smalltalk.Exporter)})},
 messageSends: ["streamContents:", "packageAt:", "current", "exportPackageDefinitionOf:on:", "do:", "nextPutAll:", "exportClass:", "asSet", "sortedClasses", "exportPackageExtensionsOf:on:"]}),
 messageSends: ["streamContents:", "packageAt:", "current", "exportPackageDefinitionOf:on:", "do:", "nextPutAll:", "exportClass:", "asSet", "sortedClasses", "exportPackageExtensionsOf:on:"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -291,13 +267,12 @@ smalltalk.method({
 selector: "exportPackageDefinitionOf:on:",
 selector: "exportPackageDefinitionOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(package_)._name())).__comma("');"));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(package_)._name())).__comma("');"));
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream},smalltalk.Exporter)})},
 messageSends: ["nextPutAll:", ",", "name", "lf"]}),
 messageSends: ["nextPutAll:", ",", "name", "lf"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -308,26 +283,21 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name;
 var name;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 name=_st(package_)._name();
 name=_st(package_)._name();
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st([each,_st(each)._class()])._do_((function(aClass){
-return smalltalk.withContext(function($ctx3) {
-return _st(_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());
+return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
+return smalltalk.withContext(function($ctx3) {
return _st(_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:a,b:b},$ctx1)})})))._do_((function(method){
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(method){
-return smalltalk.withContext(function($ctx4) {
-$1=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
+return smalltalk.withContext(function($ctx4) {
$1=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 };
 };
 }, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream:aStream,name:name},smalltalk.Exporter)})},
 messageSends: ["name", "do:", "ifTrue:", "exportMethod:of:on:", "match:", ",", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "class", "sortedClasses:", "classes", "current"]}),
 messageSends: ["name", "do:", "ifTrue:", "exportMethod:of:on:", "match:", ",", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "class", "sortedClasses:", "classes", "current"]}),
 smalltalk.Exporter);
 smalltalk.Exporter);
 
 
@@ -340,11 +310,10 @@ smalltalk.method({
 selector: "chunkEscape:",
 selector: "chunkEscape:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString},smalltalk.ChunkExporter)})},
 messageSends: ["trimBoth", "replace:with:"]}),
 messageSends: ["trimBoth", "replace:with:"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -354,8 +323,7 @@ smalltalk.method({
 selector: "classNameFor:",
 selector: "classNameFor:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 $2=_st(aClass)._isMetaclass();
 $2=_st(aClass)._isMetaclass();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
@@ -368,7 +336,7 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.ChunkExporter)})},
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -378,24 +346,21 @@ smalltalk.method({
 selector: "exportDefinitionOf:on:",
 selector: "exportDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5,$6,$7;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._superclass()));
 _st($1)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._superclass()));
 _st($1)._nextPutAll_(_st(" subclass: #").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._nextPutAll_(_st(" subclass: #").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._lf();
 _st($1)._lf();
-$2=_st($1)._nextPutAll_("\x09instanceVariableNames: '");
+$2=_st($1)._nextPutAll_(" instanceVariableNames: '");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(" ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("'");
 _st($3)._nextPutAll_("'");
 _st($3)._lf();
 _st($3)._lf();
-_st($3)._nextPutAll_(_st(_st("\x09package: '").__comma(_st(aClass)._category())).__comma("'!"));
+_st($3)._nextPutAll_(_st(_st(" package: '").__comma(_st(aClass)._category())).__comma("'!"));
 $4=_st($3)._lf();
 $4=_st($3)._lf();
 $5=_st(_st(aClass)._comment())._notEmpty();
 $5=_st(_st(aClass)._comment())._notEmpty();
 if(smalltalk.assert($5)){
 if(smalltalk.assert($5)){
@@ -407,7 +372,7 @@ $7=_st($6)._lf();
 $7;
 $7;
 };
 };
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 messageSends: ["nextPutAll:", "classNameFor:", "superclass", ",", "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "chunkEscape:", "comment", "notEmpty"]}),
 messageSends: ["nextPutAll:", "classNameFor:", "superclass", ",", "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "chunkEscape:", "comment", "notEmpty"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -417,8 +382,7 @@ smalltalk.method({
 selector: "exportMetaDefinitionOf:on:",
 selector: "exportMetaDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 $2=aStream;
 $2=aStream;
@@ -426,11 +390,9 @@ _st($2)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._class()));
 $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3;
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(" ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=aStream;
 $4=aStream;
 _st($4)._nextPutAll_("'!");
 _st($4)._nextPutAll_("'!");
@@ -438,7 +400,7 @@ _st($4)._lf();
 $5=_st($4)._lf();
 $5=_st($4)._lf();
 $5;
 $5;
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 messageSends: ["ifFalse:", "nextPutAll:", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"]}),
 messageSends: ["ifFalse:", "nextPutAll:", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -448,15 +410,14 @@ smalltalk.method({
 selector: "exportMethod:of:on:",
 selector: "exportMethod:of:on:",
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._lf();
 _st($1)._lf();
 $2=_st($1)._nextPutAll_("!");
 $2=_st($1)._nextPutAll_("!");
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"]}),
 messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -466,23 +427,20 @@ smalltalk.method({
 selector: "exportMethods:category:of:on:",
 selector: "exportMethods:category:of:on:",
 fn: function (methods,category,aClass,aStream){
 fn: function (methods,category,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 _st(_st(methods)._sorted_((function(a,b){
 _st(_st(methods)._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
+return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._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);
+return smalltalk.withContext(function($ctx2) {
return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_(" !");
 _st($3)._nextPutAll_(" !");
 _st($3)._lf();
 _st($3)._lf();
 $4=_st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:",{methods:methods,category:category,aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:",{methods:methods,category:category,aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 messageSends: ["nextPutAll:", ",", "classNameFor:", "do:", "exportMethod:of:on:", "sorted:", "<=", "selector", "lf"]}),
 messageSends: ["nextPutAll:", ",", "classNameFor:", "do:", "exportMethod:of:on:", "sorted:", "<=", "selector", "lf"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -493,27 +451,23 @@ selector: "exportMethodsOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
 var map;
 var map;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 map=_st((smalltalk.Dictionary || Dictionary))._new();
 map=_st((smalltalk.Dictionary || Dictionary))._new();
 _st(aClass)._protocolsDo_((function(category,methods){
 _st(aClass)._protocolsDo_((function(category,methods){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(category)._match_("^\x5c*");
+return smalltalk.withContext(function($ctx2) {
$1=_st(category)._match_("^\x5c*");
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 return _st(map)._at_put_(category,methods);
 return _st(map)._at_put_(category,methods);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx2) {
-return _st(a).__lt_eq(b);
+return smalltalk.withContext(function($ctx2) {
return _st(a).__lt_eq(b);
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 var methods;
-return smalltalk.withContext(function($ctx2) {
-methods=_st(map)._at_(category);
+return smalltalk.withContext(function($ctx2) {
methods=_st(map)._at_(category);
 methods;
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, 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)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream,map:map},smalltalk.ChunkExporter)})},
 messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "do:", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys"]}),
 messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "do:", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -523,12 +477,11 @@ smalltalk.method({
 selector: "exportPackageDefinitionOf:on:",
 selector: "exportPackageDefinitionOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("'!"));
 _st($1)._nextPutAll_(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("'!"));
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream},smalltalk.ChunkExporter)})},
 messageSends: ["nextPutAll:", ",", "name", "lf"]}),
 messageSends: ["nextPutAll:", ",", "name", "lf"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -539,35 +492,29 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name,map;
 var name,map;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 name=_st(package_)._name();
 name=_st(package_)._name();
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st([each,_st(each)._class()])._do_((function(aClass){
-return smalltalk.withContext(function($ctx3) {
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
+return smalltalk.withContext(function($ctx3) {
map=_st((smalltalk.Dictionary || Dictionary))._new();
 map;
 map;
 _st(aClass)._protocolsDo_((function(category,methods){
 _st(aClass)._protocolsDo_((function(category,methods){
-return smalltalk.withContext(function($ctx4) {
-$1=_st(category)._match_(_st("^\x5c*").__comma(name));
+return smalltalk.withContext(function($ctx4) {
$1=_st(category)._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(map)._at_put_(category,methods);
 return _st(map)._at_put_(category,methods);
 };
 };
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx4) {
-return _st(a).__lt_eq(b);
+return smalltalk.withContext(function($ctx4) {
return _st(a).__lt_eq(b);
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 var methods;
-return smalltalk.withContext(function($ctx4) {
-methods=_st(map)._at_(category);
+return smalltalk.withContext(function($ctx4) {
methods=_st(map)._at_(category);
 methods;
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream: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)})},
 messageSends: ["name", "do:", "new", "protocolsDo:", "ifTrue:", "at:put:", "match:", ",", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys", "class", "sortedClasses:", "classes", "current"]}),
 messageSends: ["name", "do:", "new", "protocolsDo:", "ifTrue:", "at:put:", "match:", ",", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys", "class", "sortedClasses:", "classes", "current"]}),
 smalltalk.ChunkExporter);
 smalltalk.ChunkExporter);
 
 
@@ -580,26 +527,23 @@ smalltalk.method({
 selector: "exportDefinitionOf:on:",
 selector: "exportDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 $2=_st($1)._nextPutAll_(", [");
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(", ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 $4=_st($3)._nextPutAll_(");");
 $4=_st($3)._nextPutAll_(");");
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.StrippedExporter)})},
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "lf"]}),
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "lf"]}),
 smalltalk.StrippedExporter);
 smalltalk.StrippedExporter);
 
 
@@ -609,8 +553,7 @@ smalltalk.method({
 selector: "exportMethod:of:on:",
 selector: "exportMethod:of:on:",
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._lf();
 _st($1)._lf();
@@ -629,7 +572,7 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($1)._nextPutAll_(");");
 _st($1)._nextPutAll_(");");
 _st($1)._lf();
 _st($1)._lf();
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream:aStream},smalltalk.StrippedExporter)})},
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "compiledSource", "fn", "messageSends", "classNameFor:"]}),
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "compiledSource", "fn", "messageSends", "classNameFor:"]}),
 smalltalk.StrippedExporter);
 smalltalk.StrippedExporter);
 
 
@@ -643,18 +586,15 @@ selector: "import:",
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
 var chunk,result,parser,lastEmpty;
 var chunk,result,parser,lastEmpty;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
 parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
 lastEmpty=false;
 lastEmpty=false;
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
-chunk=_st(parser)._nextChunk();
+return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
 chunk;
 chunk;
 return _st(chunk)._isNil();
 return _st(chunk)._isNil();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(chunk)._isEmpty();
+return smalltalk.withContext(function($ctx2) {
$1=_st(chunk)._isEmpty();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 lastEmpty=true;
 lastEmpty=true;
 return lastEmpty;
 return lastEmpty;
@@ -669,7 +609,7 @@ return _st(result)._scanFrom_(parser);
 };
 };
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"import:",{aStream: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)})},
 messageSends: ["on:", "whileFalse:", "ifTrue:ifFalse:", "evaluateExpression:", "new", "ifTrue:", "scanFrom:", "isEmpty", "nextChunk", "isNil"]}),
 messageSends: ["on:", "whileFalse:", "ifTrue:ifFalse:", "evaluateExpression:", "new", "ifTrue:", "scanFrom:", "isEmpty", "nextChunk", "isNil"]}),
 smalltalk.Importer);
 smalltalk.Importer);
 
 
@@ -682,13 +622,12 @@ smalltalk.method({
 selector: "initializePackageNamed:prefix:",
 selector: "initializePackageNamed:prefix:",
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.Package || Package))._named_(packageName);
 $1=_st((smalltalk.Package || Package))._named_(packageName);
 _st($1)._setupClasses();
 _st($1)._setupClasses();
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
-return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString},smalltalk.PackageLoader)})},
 messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"]}),
 messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"]}),
 smalltalk.PackageLoader);
 smalltalk.PackageLoader);
 
 
@@ -699,20 +638,17 @@ selector: "loadPackage:prefix:",
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
 var url;
 var url;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 url=_st(_st(_st(_st("/").__comma(aString)).__comma("/js/")).__comma(packageName)).__comma(".js");
 url=_st(_st(_st(_st("/").__comma(aString)).__comma("/js/")).__comma(packageName)).__comma(".js");
 _st(jQuery)._ajax_options_(url,smalltalk.HashedCollection._fromPairs_([_st("type").__minus_gt("GET"),_st("dataType").__minus_gt("script"),_st("complete").__minus_gt((function(jqXHR,textStatus){
 _st(jQuery)._ajax_options_(url,smalltalk.HashedCollection._fromPairs_([_st("type").__minus_gt("GET"),_st("dataType").__minus_gt("script"),_st("complete").__minus_gt((function(jqXHR,textStatus){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(_st(jqXHR)._readyState()).__eq((4));
+return smalltalk.withContext(function($ctx2) {
$1=_st(_st(jqXHR)._readyState()).__eq((4));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})})),_st("error").__minus_gt((function(){
 }, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})})),_st("error").__minus_gt((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(window)._alert_(_st("Could not load package at:  ").__comma(url));
+return smalltalk.withContext(function($ctx2) {
return _st(window)._alert_(_st("Could not load package at: ").__comma(url));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:",{packageName:packageName,aString:aString,url:url}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:",{packageName:packageName,aString:aString,url:url},smalltalk.PackageLoader)})},
 messageSends: [",", "ajax:options:", "->", "ifTrue:", "initializePackageNamed:prefix:", "=", "readyState", "alert:"]}),
 messageSends: [",", "ajax:options:", "->", "ifTrue:", "initializePackageNamed:prefix:", "=", "readyState", "alert:"]}),
 smalltalk.PackageLoader);
 smalltalk.PackageLoader);
 
 
@@ -722,12 +658,10 @@ smalltalk.method({
 selector: "loadPackages:prefix:",
 selector: "loadPackages:prefix:",
 fn: function (aCollection,aString){
 fn: function (aCollection,aString){
 var self=this;
 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);
+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:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString},smalltalk.PackageLoader)})},
 messageSends: ["do:", "loadPackage:prefix:"]}),
 messageSends: ["do:", "loadPackage:prefix:"]}),
 smalltalk.PackageLoader);
 smalltalk.PackageLoader);
 
 
@@ -738,11 +672,10 @@ smalltalk.method({
 selector: "loadPackages:prefix:",
 selector: "loadPackages:prefix:",
 fn: function (aCollection,aString){
 fn: function (aCollection,aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString},smalltalk.PackageLoader.klass)})},
 messageSends: ["loadPackages:prefix:", "new"]}),
 messageSends: ["loadPackages:prefix:", "new"]}),
 smalltalk.PackageLoader.klass);
 smalltalk.PackageLoader.klass);
 
 

+ 121 - 188
js/Importer-Exporter.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Importer-Exporter', {});
+smalltalk.addPackage('Importer-Exporter');
 smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
 smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_nextChunk",
 "_nextChunk",
@@ -8,19 +8,16 @@ category: 'reading',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var char,result,chunk;
 var char,result,chunk;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 var $early={};
 var $early={};
 try {
 try {
 result=_st("")._writeStream();
 result=_st("")._writeStream();
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
-char=_st(self["@stream"])._next();
+return smalltalk.withContext(function($ctx2) {
char=_st(self["@stream"])._next();
 char;
 char;
 return _st(char)._notNil();
 return _st(char)._notNil();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue_((function(){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(char).__eq("!");
+return smalltalk.withContext(function($ctx2) {
$1=_st(char).__eq("!");
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(self["@stream"])._peek()).__eq("!");
 $2=_st(_st(self["@stream"])._peek()).__eq("!");
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -35,9 +32,9 @@ return _st(result)._nextPut_(char);
 return nil;
 return nil;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 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: [],
 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",
+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\x09\x09[char := stream next.\x0a\x09\x09char notNil] whileTrue: [\x0a\x09\x09\x09\x09char = '!' ifTrue: [\x0a\x09\x09\x09\x09\x09\x09stream peek = '!'\x0a\x09\x09\x09\x09\x09\x09\x09\x09ifTrue: [stream next \x22skipping the escape double\x22]\x0a\x09\x09\x09\x09\x09\x09\x09\x09ifFalse: [^result contents trimBoth \x22chunk end marker found\x22]].\x0a\x09\x09\x09\x09result nextPut: char].\x0a\x09^nil \x22a chunk needs to end with !\x22",
 messageSends: ["writeStream", "whileTrue:", "ifTrue:", "ifTrue:ifFalse:", "next", "trimBoth", "contents", "=", "peek", "nextPut:", "notNil"],
 messageSends: ["writeStream", "whileTrue:", "ifTrue:", "ifTrue:ifFalse:", "next", "trimBoth", "contents", "=", "peek", "nextPut:", "notNil"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -50,9 +47,8 @@ selector: "stream:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-self["@stream"]=aStream;
-return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream}, smalltalk.ChunkParser)})},
+return smalltalk.withContext(function($ctx1) { 
self["@stream"]=aStream;
+return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream},smalltalk.ChunkParser)})},
 args: ["aStream"],
 args: ["aStream"],
 source: "stream: aStream\x0a\x09stream := aStream",
 source: "stream: aStream\x0a\x09stream := aStream",
 messageSends: [],
 messageSends: [],
@@ -68,11 +64,10 @@ selector: "on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._stream_(aStream);
 $1=_st(_st(self)._new())._stream_(aStream);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream}, smalltalk.ChunkParser.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aStream:aStream},smalltalk.ChunkParser.klass)})},
 args: ["aStream"],
 args: ["aStream"],
 source: "on: aStream\x0a\x09^self new stream: aStream",
 source: "on: aStream\x0a\x09^self new stream: aStream",
 messageSends: ["stream:", "new"],
 messageSends: ["stream:", "new"],
@@ -89,8 +84,7 @@ selector: "classNameFor:",
 category: 'private',
 category: 'private',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 $2=_st(aClass)._isMetaclass();
 $2=_st(aClass)._isMetaclass();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(".klass");
@@ -103,9 +97,9 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.Exporter)})},
 args: ["aClass"],
 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]]",
+source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09\x09ifTrue: [aClass instanceClass name, '.klass']\x0a\x09\x09ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09\x09ifTrue: ['nil']\x0a\x09\x09\x09ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -118,19 +112,16 @@ selector: "exportAll",
 category: 'fileOut',
 category: 'fileOut',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $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()));
+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:pkg},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportAll",{}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportAll",{},smalltalk.Exporter)})},
 args: [],
 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)]]",
+source: "exportAll\x0a\x09\x22Export all packages in the system.\x22\x0a\x0a\x09^String streamContents: [:stream |\x0a\x09\x09Smalltalk current packages do: [:pkg |\x0a\x09\x09stream nextPutAll: (self exportPackage: pkg name)]]",
 messageSends: ["streamContents:", "do:", "nextPutAll:", "exportPackage:", "name", "packages", "current"],
 messageSends: ["streamContents:", "do:", "nextPutAll:", "exportPackage:", "name", "packages", "current"],
 referencedClasses: ["Smalltalk", "String"]
 referencedClasses: ["Smalltalk", "String"]
 }),
 }),
@@ -143,17 +134,15 @@ selector: "exportClass:",
 category: 'fileOut',
 category: 'fileOut',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
-_st(self)._exportDefinitionOf_on_(aClass,stream);
+return smalltalk.withContext(function($ctx2) {
_st(self)._exportDefinitionOf_on_(aClass,stream);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
 return _st(self)._exportMethodsOf_on_(_st(aClass)._class(),stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportClass:",{aClass:aClass},smalltalk.Exporter)})},
 args: ["aClass"],
 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]",
 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"],
 messageSends: ["streamContents:", "exportDefinitionOf:on:", "exportMethodsOf:on:", "exportMetaDefinitionOf:on:", "class"],
@@ -168,19 +157,16 @@ selector: "exportDefinitionOf:on:",
 category: 'private',
 category: 'private',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5,$6,$7;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 $2=_st($1)._nextPutAll_(", [");
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(", ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_("], '");
@@ -197,9 +183,9 @@ $7=_st($6)._nextPutAll_(_st(_st(aClass)._comment())._asJavascript());
 $7;
 $7;
 };
 };
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 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",
+source: "exportDefinitionOf: aClass on: aStream\x0a\x09aStream\x0a\x09\x09nextPutAll: 'smalltalk.addClass(';\x0a\x09\x09nextPutAll: '''', (self classNameFor: aClass), ''', ';\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);\x0a\x09\x09nextPutAll: ', ['.\x0a\x09aClass instanceVariableNames\x0a\x09\x09do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09\x09separatedBy: [aStream nextPutAll: ', '].\x0a\x09aStream\x0a\x09\x09nextPutAll: '], ''';\x0a\x09\x09nextPutAll: aClass category, '''';\x0a\x09\x09nextPutAll: ');'.\x0a\x09aClass comment notEmpty ifTrue: [\x0a\x09\x09aStream\x0a\x09\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"],
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "lf", "asJavascript", "comment", "notEmpty"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -212,8 +198,7 @@ selector: "exportMetaDefinitionOf:on:",
 category: 'private',
 category: 'private',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 $2=aStream;
 $2=aStream;
@@ -221,17 +206,15 @@ _st($2)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aCla
 $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3=_st($2)._nextPutAll_(".iVarNames = [");
 $3;
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(",");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 _st(aStream)._nextPutAll_(_st("];").__comma(_st((smalltalk.String || String))._lf()));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 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]",
+source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x09aClass class instanceVariableNames isEmpty ifFalse: [\x0a\x09\x09aStream\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass class);\x0a\x09\x09nextPutAll: '.iVarNames = ['.\x0a\x09\x09aClass class instanceVariableNames\x0a\x09\x09do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09\x09separatedBy: [aStream nextPutAll: ','].\x0a\x09\x09aStream nextPutAll: '];', String lf]",
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
 referencedClasses: ["String"]
 referencedClasses: ["String"]
 }),
 }),
@@ -244,8 +227,7 @@ selector: "exportMethod:of:on:",
 category: 'private',
 category: 'private',
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._lf();
 _st($1)._lf();
@@ -274,9 +256,9 @@ _st($3)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($3)._nextPutAll_(");");
 _st($3)._nextPutAll_(");");
 _st($3)._lf();
 _st($3)._lf();
 $4=_st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream: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"],
 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",
+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:"],
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -289,20 +271,17 @@ selector: "exportMethodsOf:on:",
 category: 'private',
 category: 'private',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
 _st(_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());
+return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(_st(each)._category())._match_("^\x5c*");
+return smalltalk.withContext(function($ctx2) {
$1=_st(_st(each)._category())._match_("^\x5c*");
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream},smalltalk.Exporter)})},
 args: ["aClass", "aStream"],
 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",
 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"],
 messageSends: ["do:", "ifFalse:", "exportMethod:of:on:", "match:", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "lf"],
@@ -318,23 +297,20 @@ category: 'fileOut',
 fn: function (packageName){
 fn: function (packageName){
 var self=this;
 var self=this;
 var package_;
 var package_;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
 $1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
-package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
+return smalltalk.withContext(function($ctx2) {
package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
 package_;
 package_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
-return smalltalk.withContext(function($ctx3) {
-return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
+return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(self)._exportClass_(each));
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
 return _st(self)._exportPackageExtensionsOf_on_(package_,stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_}, smalltalk.Exporter)})},
+}, function($ctx1) {$ctx1.fill(self,"exportPackage:",{packageName:packageName,package_:package_},smalltalk.Exporter)})},
 args: ["packageName"],
 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]",
+source: "exportPackage: packageName\x0a\x09\x22Export a given package by name.\x22\x0a\x0a\x09| package |\x0a\x09^String streamContents: [:stream |\x0a\x09\x09\x09\x09package := Smalltalk current packageAt: packageName.\x0a\x09\x09\x09\x09self 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\x09\x09package sortedClasses asSet do: [:each |\x0a\x09\x09\x09\x09\x09\x09stream nextPutAll: (self exportClass: each)].\x0a\x09\x09self exportPackageExtensionsOf: package on: stream]",
 messageSends: ["streamContents:", "packageAt:", "current", "exportPackageDefinitionOf:on:", "do:", "nextPutAll:", "exportClass:", "asSet", "sortedClasses", "exportPackageExtensionsOf:on:"],
 messageSends: ["streamContents:", "packageAt:", "current", "exportPackageDefinitionOf:on:", "do:", "nextPutAll:", "exportClass:", "asSet", "sortedClasses", "exportPackageExtensionsOf:on:"],
 referencedClasses: ["Smalltalk", "String"]
 referencedClasses: ["Smalltalk", "String"]
 }),
 }),
@@ -347,15 +323,14 @@ selector: "exportPackageDefinitionOf:on:",
 category: 'private',
 category: 'private',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 _st($1)._nextPutAll_("smalltalk.addPackage(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(package_)._name())).__comma("');"));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(package_)._name())).__comma("');"));
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.Exporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream},smalltalk.Exporter)})},
 args: ["package", "aStream"],
 args: ["package", "aStream"],
-source: "exportPackageDefinitionOf: package on: aStream\x0a\x09aStream \x0a\x09    nextPutAll: 'smalltalk.addPackage(';\x0a\x09    nextPutAll: '''', package name, ''');';\x0a        lf",
+source: "exportPackageDefinitionOf: package on: aStream\x0a\x09aStream\x0a\x09\x09nextPutAll: 'smalltalk.addPackage(';\x0a\x09\x09nextPutAll: '''', package name, ''');';\x0a\x09\x09lf",
 messageSends: ["nextPutAll:", ",", "name", "lf"],
 messageSends: ["nextPutAll:", ",", "name", "lf"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -369,28 +344,23 @@ category: 'private',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name;
 var name;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 name=_st(package_)._name();
 name=_st(package_)._name();
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st([each,_st(each)._class()])._do_((function(aClass){
-return smalltalk.withContext(function($ctx3) {
-return _st(_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());
+return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
+return smalltalk.withContext(function($ctx3) {
return _st(_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:a,b:b},$ctx1)})})))._do_((function(method){
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(method){
-return smalltalk.withContext(function($ctx4) {
-$1=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
+return smalltalk.withContext(function($ctx4) {
$1=_st(_st(method)._category())._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 return _st(self)._exportMethod_of_on_(method,aClass,aStream);
 };
 };
 }, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({method:method},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream: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"],
 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 ]]]]",
+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"],
 messageSends: ["name", "do:", "ifTrue:", "exportMethod:of:on:", "match:", ",", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "class", "sortedClasses:", "classes", "current"],
 referencedClasses: ["Smalltalk", "Package"]
 referencedClasses: ["Smalltalk", "Package"]
 }),
 }),
@@ -406,11 +376,10 @@ selector: "chunkEscape:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 $1=_st(_st(aString)._replace_with_("!","!!"))._trimBoth();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"chunkEscape:",{aString:aString},smalltalk.ChunkExporter)})},
 args: ["aString"],
 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",
 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:"],
 messageSends: ["trimBoth", "replace:with:"],
@@ -425,8 +394,7 @@ selector: "classNameFor:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 $2=_st(aClass)._isMetaclass();
 $2=_st(aClass)._isMetaclass();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
 $1=_st(_st(_st(aClass)._instanceClass())._name()).__comma(" class");
@@ -439,9 +407,9 @@ $1=_st(aClass)._name();
 };
 };
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass}, smalltalk.ChunkExporter)})},
+}, function($ctx1) {$ctx1.fill(self,"classNameFor:",{aClass:aClass},smalltalk.ChunkExporter)})},
 args: ["aClass"],
 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]]",
+source: "classNameFor: aClass\x0a\x09^aClass isMetaclass\x0a\x09\x09ifTrue: [aClass instanceClass name, ' class']\x0a\x09\x09ifFalse: [\x0a\x09\x09aClass isNil\x0a\x09\x09\x09ifTrue: ['nil']\x0a\x09\x09\x09ifFalse: [aClass name]]",
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 messageSends: ["ifTrue:ifFalse:", ",", "name", "instanceClass", "isNil", "isMetaclass"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -454,24 +422,21 @@ selector: "exportDefinitionOf:on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5,$6,$7;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._superclass()));
 _st($1)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._superclass()));
 _st($1)._nextPutAll_(_st(" subclass: #").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._nextPutAll_(_st(" subclass: #").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._lf();
 _st($1)._lf();
-$2=_st($1)._nextPutAll_("\x09instanceVariableNames: '");
+$2=_st($1)._nextPutAll_(" instanceVariableNames: '");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(" ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("'");
 _st($3)._nextPutAll_("'");
 _st($3)._lf();
 _st($3)._lf();
-_st($3)._nextPutAll_(_st(_st("\x09package: '").__comma(_st(aClass)._category())).__comma("'!"));
+_st($3)._nextPutAll_(_st(_st(" package: '").__comma(_st(aClass)._category())).__comma("'!"));
 $4=_st($3)._lf();
 $4=_st($3)._lf();
 $5=_st(_st(aClass)._comment())._notEmpty();
 $5=_st(_st(aClass)._comment())._notEmpty();
 if(smalltalk.assert($5)){
 if(smalltalk.assert($5)){
@@ -483,9 +448,9 @@ $7=_st($6)._lf();
 $7;
 $7;
 };
 };
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 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",
+source: "exportDefinitionOf: aClass on: aStream\x0a\x09\x22Chunk format.\x22\x0a\x0a\x09aStream\x0a\x09\x09nextPutAll: (self classNameFor: aClass superclass);\x0a\x09\x09nextPutAll: ' subclass: #', (self classNameFor: aClass); lf;\x0a\x09\x09nextPutAll: ' instanceVariableNames: '''.\x0a\x09aClass instanceVariableNames\x0a\x09\x09do: [:each | aStream nextPutAll: each]\x0a\x09\x09separatedBy: [aStream nextPutAll: ' '].\x0a\x09aStream\x0a\x09\x09nextPutAll: ''''; lf;\x0a\x09\x09nextPutAll: ' package: ''', aClass category, '''!'; lf.\x0a\x09aClass comment notEmpty ifTrue: [\x0a\x09\x09aStream\x0a\x09\x09nextPutAll: '!', (self classNameFor: aClass), ' commentStamp!';lf;\x0a\x09\x09nextPutAll: (self chunkEscape: aClass comment), '!';lf].\x0a\x09aStream lf",
 messageSends: ["nextPutAll:", "classNameFor:", "superclass", ",", "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "chunkEscape:", "comment", "notEmpty"],
 messageSends: ["nextPutAll:", "classNameFor:", "superclass", ",", "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "chunkEscape:", "comment", "notEmpty"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -498,8 +463,7 @@ selector: "exportMetaDefinitionOf:on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4,$5;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 $2=aStream;
 $2=aStream;
@@ -507,11 +471,9 @@ _st($2)._nextPutAll_(_st(self)._classNameFor_(_st(aClass)._class()));
 $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3=_st($2)._nextPutAll_(" instanceVariableNames: '");
 $3;
 $3;
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(_st(aClass)._class())._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(" ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(" ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $4=aStream;
 $4=aStream;
 _st($4)._nextPutAll_("'!");
 _st($4)._nextPutAll_("'!");
@@ -519,9 +481,9 @@ _st($4)._lf();
 $5=_st($4)._lf();
 $5=_st($4)._lf();
 $5;
 $5;
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMetaDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 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]",
+source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x0a\x09aClass class instanceVariableNames isEmpty ifFalse: [\x0a\x09\x09aStream\x0a\x09\x09\x09nextPutAll: (self classNameFor: aClass class);\x0a\x09\x09\x09nextPutAll: ' instanceVariableNames: '''.\x0a\x09\x09aClass class instanceVariableNames\x0a\x09\x09\x09do: [:each | aStream nextPutAll: each]\x0a\x09\x09\x09separatedBy: [aStream nextPutAll: ' '].\x0a\x09\x09aStream\x0a\x09\x09\x09nextPutAll: '''!'; lf; lf]",
 messageSends: ["ifFalse:", "nextPutAll:", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
 messageSends: ["ifFalse:", "nextPutAll:", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -534,17 +496,16 @@ selector: "exportMethod:of:on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._lf();
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._nextPutAll_(_st(self)._chunkEscape_(_st(aMethod)._source()));
 _st($1)._lf();
 _st($1)._lf();
 $2=_st($1)._nextPutAll_("!");
 $2=_st($1)._nextPutAll_("!");
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream: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"],
 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: '!'",
+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"],
 messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -557,23 +518,20 @@ selector: "exportMethods:category:of:on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (methods,category,aClass,aStream){
 fn: function (methods,category,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 _st($1)._nextPutAll_(_st("!").__comma(_st(self)._classNameFor_(aClass)));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 $2=_st($1)._nextPutAll_(_st(_st(" methodsFor: '").__comma(category)).__comma("'!"));
 _st(_st(methods)._sorted_((function(a,b){
 _st(_st(methods)._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx2) {
-return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
+return smalltalk.withContext(function($ctx2) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._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);
+return smalltalk.withContext(function($ctx2) {
return _st(self)._exportMethod_of_on_(each,aClass,aStream);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_(" !");
 _st($3)._nextPutAll_(" !");
 _st($3)._lf();
 _st($3)._lf();
 $4=_st($3)._lf();
 $4=_st($3)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethods:category:of:on:",{methods:methods,category:category,aClass:aClass,aStream: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"],
 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",
 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"],
 messageSends: ["nextPutAll:", ",", "classNameFor:", "do:", "exportMethod:of:on:", "sorted:", "<=", "selector", "lf"],
@@ -589,29 +547,25 @@ category: 'not yet classified',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
 var map;
 var map;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 map=_st((smalltalk.Dictionary || Dictionary))._new();
 map=_st((smalltalk.Dictionary || Dictionary))._new();
 _st(aClass)._protocolsDo_((function(category,methods){
 _st(aClass)._protocolsDo_((function(category,methods){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(category)._match_("^\x5c*");
+return smalltalk.withContext(function($ctx2) {
$1=_st(category)._match_("^\x5c*");
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 return _st(map)._at_put_(category,methods);
 return _st(map)._at_put_(category,methods);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
 _st(_st(_st(map)._keys())._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx2) {
-return _st(a).__lt_eq(b);
+return smalltalk.withContext(function($ctx2) {
return _st(a).__lt_eq(b);
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 var methods;
-return smalltalk.withContext(function($ctx2) {
-methods=_st(map)._at_(category);
+return smalltalk.withContext(function($ctx2) {
methods=_st(map)._at_(category);
 methods;
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 }, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, 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)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethodsOf:on:",{aClass:aClass,aStream:aStream,map:map},smalltalk.ChunkExporter)})},
 args: ["aClass", "aStream"],
 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 ]",
+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"],
 messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "do:", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys"],
 referencedClasses: ["Dictionary"]
 referencedClasses: ["Dictionary"]
 }),
 }),
@@ -624,14 +578,13 @@ selector: "exportPackageDefinitionOf:on:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("'!"));
 _st($1)._nextPutAll_(_st(_st("Smalltalk current createPackage: '").__comma(_st(package_)._name())).__comma("'!"));
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream}, smalltalk.ChunkExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{package_:package_,aStream:aStream},smalltalk.ChunkExporter)})},
 args: ["package", "aStream"],
 args: ["package", "aStream"],
-source: "exportPackageDefinitionOf: package on: aStream\x0a\x09\x22Chunk format.\x22\x0a\x0a\x09aStream \x0a\x09\x09nextPutAll: 'Smalltalk current createPackage: ''', package name, '''!';\x0a\x09\x09lf",
+source: "exportPackageDefinitionOf: package on: aStream\x0a\x09\x22Chunk format.\x22\x0a\x0a\x09aStream\x0a\x09\x09nextPutAll: 'Smalltalk current createPackage: ''', package name, '''!';\x0a\x09\x09lf",
 messageSends: ["nextPutAll:", ",", "name", "lf"],
 messageSends: ["nextPutAll:", ",", "name", "lf"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -645,37 +598,31 @@ category: 'not yet classified',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name,map;
 var name,map;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 name=_st(package_)._name();
 name=_st(package_)._name();
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
 _st(_st((smalltalk.Package || Package))._sortedClasses_(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes()))._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st([each,_st(each)._class()])._do_((function(aClass){
-return smalltalk.withContext(function($ctx3) {
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
+return smalltalk.withContext(function($ctx3) {
map=_st((smalltalk.Dictionary || Dictionary))._new();
 map;
 map;
 _st(aClass)._protocolsDo_((function(category,methods){
 _st(aClass)._protocolsDo_((function(category,methods){
-return smalltalk.withContext(function($ctx4) {
-$1=_st(category)._match_(_st("^\x5c*").__comma(name));
+return smalltalk.withContext(function($ctx4) {
$1=_st(category)._match_(_st("^\x5c*").__comma(name));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(map)._at_put_(category,methods);
 return _st(map)._at_put_(category,methods);
 };
 };
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
 return _st(_st(_st(map)._keys())._sorted_((function(a,b){
-return smalltalk.withContext(function($ctx4) {
-return _st(a).__lt_eq(b);
+return smalltalk.withContext(function($ctx4) {
return _st(a).__lt_eq(b);
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 }, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(category){
 var methods;
 var methods;
-return smalltalk.withContext(function($ctx4) {
-methods=_st(map)._at_(category);
+return smalltalk.withContext(function($ctx4) {
methods=_st(map)._at_(category);
 methods;
 methods;
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 return _st(self)._exportMethods_category_of_on_(methods,category,aClass,aStream);
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx4) {$ctx4.fillBlock({category:category,methods:methods},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"exportPackageExtensionsOf:on:",{package_:package_,aStream: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"],
 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 ]]]",
+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.\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"],
 messageSends: ["name", "do:", "new", "protocolsDo:", "ifTrue:", "at:put:", "match:", ",", "at:", "exportMethods:category:of:on:", "sorted:", "<=", "keys", "class", "sortedClasses:", "classes", "current"],
 referencedClasses: ["Dictionary", "Smalltalk", "Package"]
 referencedClasses: ["Dictionary", "Smalltalk", "Package"]
 }),
 }),
@@ -691,28 +638,25 @@ selector: "exportDefinitionOf:on:",
 category: 'private',
 category: 'private',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2,$3,$4;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_("smalltalk.addClass(");
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st(_st("'").__comma(_st(self)._classNameFor_(aClass))).__comma("', "));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(_st(aClass)._superclass())));
 $2=_st($1)._nextPutAll_(", [");
 $2=_st($1)._nextPutAll_(", [");
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(_st(_st("'").__comma(each)).__comma("'"));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(aStream)._nextPutAll_(", ");
+return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(", ");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 $3=aStream;
 $3=aStream;
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_("], '");
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 _st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
 $4=_st($3)._nextPutAll_(");");
 $4=_st($3)._nextPutAll_(");");
 _st(aStream)._lf();
 _st(aStream)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream}, smalltalk.StrippedExporter)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.StrippedExporter)})},
 args: ["aClass", "aStream"],
 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",
+source: "exportDefinitionOf: aClass on: aStream\x0a\x09aStream\x0a\x09\x09nextPutAll: 'smalltalk.addClass(';\x0a\x09\x09nextPutAll: '''', (self classNameFor: aClass), ''', ';\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);\x0a\x09\x09nextPutAll: ', ['.\x0a\x09aClass instanceVariableNames\x0a\x09\x09do: [:each | aStream nextPutAll: '''', each, '''']\x0a\x09\x09separatedBy: [aStream nextPutAll: ', '].\x0a\x09aStream\x0a\x09\x09nextPutAll: '], ''';\x0a\x09\x09nextPutAll: aClass category, '''';\x0a\x09\x09nextPutAll: ');'.\x0a\x09aStream lf",
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "lf"],
 messageSends: ["nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category", "lf"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -725,8 +669,7 @@ selector: "exportMethod:of:on:",
 category: 'private',
 category: 'private',
 fn: function (aMethod,aClass,aStream){
 fn: function (aMethod,aClass,aStream){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=aStream;
 $1=aStream;
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._nextPutAll_("smalltalk.addMethod(");
 _st($1)._lf();
 _st($1)._lf();
@@ -745,9 +688,9 @@ _st($1)._nextPutAll_(_st("smalltalk.").__comma(_st(self)._classNameFor_(aClass))
 _st($1)._nextPutAll_(");");
 _st($1)._nextPutAll_(");");
 _st($1)._lf();
 _st($1)._lf();
 $2=_st($1)._lf();
 $2=_st($1)._lf();
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:of:on:",{aMethod:aMethod,aClass:aClass,aStream: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"],
 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: 'messageSends: ', aMethod messageSends asJavascript;\x0a\x09\x09nextPutAll: '}),';lf;\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass);\x0a\x09\x09nextPutAll: ');';lf;lf",
+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: 'messageSends: ', aMethod messageSends asJavascript;\x0a\x09\x09nextPutAll: '}),';lf;\x0a\x09\x09nextPutAll: 'smalltalk.', (self classNameFor: aClass);\x0a\x09\x09nextPutAll: ');';lf;lf",
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "compiledSource", "fn", "messageSends", "classNameFor:"],
 messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "asSelector", "selector", "compiledSource", "fn", "messageSends", "classNameFor:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -764,18 +707,15 @@ category: 'fileIn',
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
 var chunk,result,parser,lastEmpty;
 var chunk,result,parser,lastEmpty;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
 parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
 lastEmpty=false;
 lastEmpty=false;
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
-chunk=_st(parser)._nextChunk();
+return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
 chunk;
 chunk;
 return _st(chunk)._isNil();
 return _st(chunk)._isNil();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(chunk)._isEmpty();
+return smalltalk.withContext(function($ctx2) {
$1=_st(chunk)._isEmpty();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 lastEmpty=true;
 lastEmpty=true;
 return lastEmpty;
 return lastEmpty;
@@ -790,9 +730,9 @@ return _st(result)._scanFrom_(parser);
 };
 };
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"import:",{aStream: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"],
 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]]]",
+source: "import: aStream\x0a\x09| chunk result parser lastEmpty |\x0a\x09parser := ChunkParser on: aStream.\x0a\x09lastEmpty := false.\x0a\x09[chunk := parser nextChunk.\x0a\x09chunk isNil] whileFalse: [\x0a\x09\x09chunk isEmpty\x0a\x09\x09\x09ifTrue: [lastEmpty := true]\x0a\x09\x09\x09ifFalse: [\x0a\x09\x09\x09\x09result := Compiler new evaluateExpression: chunk.\x0a\x09\x09\x09\x09lastEmpty\x0a\x09\x09\x09\x09\x09\x09ifTrue: [\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09lastEmpty := false.\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09result scanFrom: parser]]]",
 messageSends: ["on:", "whileFalse:", "ifTrue:ifFalse:", "evaluateExpression:", "new", "ifTrue:", "scanFrom:", "isEmpty", "nextChunk", "isNil"],
 messageSends: ["on:", "whileFalse:", "ifTrue:ifFalse:", "evaluateExpression:", "new", "ifTrue:", "scanFrom:", "isEmpty", "nextChunk", "isNil"],
 referencedClasses: ["ChunkParser", "Compiler"]
 referencedClasses: ["ChunkParser", "Compiler"]
 }),
 }),
@@ -808,15 +748,14 @@ selector: "initializePackageNamed:prefix:",
 category: 'laoding',
 category: 'laoding',
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.Package || Package))._named_(packageName);
 $1=_st((smalltalk.Package || Package))._named_(packageName);
 _st($1)._setupClasses();
 _st($1)._setupClasses();
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 _st($1)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));
-return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initializePackageNamed:prefix:",{packageName:packageName,aString:aString},smalltalk.PackageLoader)})},
 args: ["packageName", "aString"],
 args: ["packageName", "aString"],
-source: "initializePackageNamed: packageName prefix: aString\x0a\x0a\x09(Package named: packageName) \x0a    \x09setupClasses;\x0a        commitPathJs: '/', aString, '/js';\x0a        commitPathSt: '/', aString, '/st'",
+source: "initializePackageNamed: packageName prefix: aString\x0a\x0a\x09(Package named: packageName)\x0a\x09\x09setupClasses;\x0a\x09\x09commitPathJs: '/', aString, '/js';\x0a\x09\x09commitPathSt: '/', aString, '/st'",
 messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"],
 messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"],
 referencedClasses: ["Package"]
 referencedClasses: ["Package"]
 }),
 }),
@@ -830,22 +769,19 @@ category: 'laoding',
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
 var url;
 var url;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 url=_st(_st(_st(_st("/").__comma(aString)).__comma("/js/")).__comma(packageName)).__comma(".js");
 url=_st(_st(_st(_st("/").__comma(aString)).__comma("/js/")).__comma(packageName)).__comma(".js");
 _st(jQuery)._ajax_options_(url,smalltalk.HashedCollection._fromPairs_([_st("type").__minus_gt("GET"),_st("dataType").__minus_gt("script"),_st("complete").__minus_gt((function(jqXHR,textStatus){
 _st(jQuery)._ajax_options_(url,smalltalk.HashedCollection._fromPairs_([_st("type").__minus_gt("GET"),_st("dataType").__minus_gt("script"),_st("complete").__minus_gt((function(jqXHR,textStatus){
-return smalltalk.withContext(function($ctx2) {
-$1=_st(_st(jqXHR)._readyState()).__eq((4));
+return smalltalk.withContext(function($ctx2) {
$1=_st(_st(jqXHR)._readyState()).__eq((4));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 return _st(self)._initializePackageNamed_prefix_(packageName,aString);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})})),_st("error").__minus_gt((function(){
 }, function($ctx2) {$ctx2.fillBlock({jqXHR:jqXHR,textStatus:textStatus},$ctx1)})})),_st("error").__minus_gt((function(){
-return smalltalk.withContext(function($ctx2) {
-return _st(window)._alert_(_st("Could not load package at:  ").__comma(url));
+return smalltalk.withContext(function($ctx2) {
return _st(window)._alert_(_st("Could not load package at: ").__comma(url));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))]));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackage:prefix:",{packageName:packageName,aString: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"],
 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}",
+source: "loadPackage: packageName prefix: aString\x0a\x09| url |\x0a\x09url := '/', aString, '/js/', packageName, '.js'.\x0a\x09jQuery\x0a\x09\x09ajax: url\x0a\x09\x09options: #{\x0a\x09\x09\x09'type' -> 'GET'.\x0a\x09\x09\x09'dataType' -> 'script'.\x0a\x09\x09\x09'complete' -> [ :jqXHR :textStatus |\x0a\x09\x09\x09\x09jqXHR readyState = 4\x0a\x09\x09\x09\x09\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:"],
 messageSends: [",", "ajax:options:", "->", "ifTrue:", "initializePackageNamed:prefix:", "=", "readyState", "alert:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -858,14 +794,12 @@ selector: "loadPackages:prefix:",
 category: 'laoding',
 category: 'laoding',
 fn: function (aCollection,aString){
 fn: function (aCollection,aString){
 var self=this;
 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);
+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:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString},smalltalk.PackageLoader)})},
 args: ["aCollection", "aString"],
 args: ["aCollection", "aString"],
-source: "loadPackages: aCollection prefix: aString\x0a\x09aCollection do: [ :each |\x0a    \x09self loadPackage: each prefix: aString ]",
+source: "loadPackages: aCollection prefix: aString\x0a\x09aCollection do: [ :each |\x0a\x09\x09self loadPackage: each prefix: aString ]",
 messageSends: ["do:", "loadPackage:prefix:"],
 messageSends: ["do:", "loadPackage:prefix:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -879,11 +813,10 @@ selector: "loadPackages:prefix:",
 category: 'not yet classified',
 category: 'not yet classified',
 fn: function (aCollection,aString){
 fn: function (aCollection,aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
-var $1;
+return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 $1=_st(_st(self)._new())._loadPackages_prefix_(aCollection,aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString}, smalltalk.PackageLoader.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"loadPackages:prefix:",{aCollection:aCollection,aString:aString},smalltalk.PackageLoader.klass)})},
 args: ["aCollection", "aString"],
 args: ["aCollection", "aString"],
 source: "loadPackages: aCollection prefix: aString\x0a\x09^ self new loadPackages: aCollection prefix: aString",
 source: "loadPackages: aCollection prefix: aString\x0a\x09^ self new loadPackages: aCollection prefix: aString",
 messageSends: ["loadPackages:prefix:", "new"],
 messageSends: ["loadPackages:prefix:", "new"],

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

@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcementClass"];
 $1=self["@announcementClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcementClass",{}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"announcementClass",{},smalltalk.AnnouncementSubscription)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -20,7 +20,7 @@ selector: "announcementClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass},smalltalk.AnnouncementSubscription)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -33,7 +33,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@block"];
 $1=self["@block"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"block",{}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"block",{},smalltalk.AnnouncementSubscription)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -44,7 +44,7 @@ selector: "block:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock},smalltalk.AnnouncementSubscription)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -59,7 +59,7 @@ $1=_st(self)._handlesAnnouncement_(anAnnouncement);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(self)._block())._value_(anAnnouncement);
 _st(_st(self)._block())._value_(anAnnouncement);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement},smalltalk.AnnouncementSubscription)})},
 messageSends: ["ifTrue:", "value:", "block", "handlesAnnouncement:"]}),
 messageSends: ["ifTrue:", "value:", "block", "handlesAnnouncement:"]}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -72,7 +72,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement},smalltalk.AnnouncementSubscription)})},
 messageSends: ["isKindOf:", "announcementClass"]}),
 messageSends: ["isKindOf:", "announcementClass"]}),
 smalltalk.AnnouncementSubscription);
 smalltalk.AnnouncementSubscription);
 
 
@@ -88,7 +88,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement},smalltalk.Announcer)})},
 messageSends: ["do:", "deliver:"]}),
 messageSends: ["do:", "deliver:"]}),
 smalltalk.Announcer);
 smalltalk.Announcer);
 
 
@@ -100,7 +100,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@subscriptions"]=_st((smalltalk.Array || Array))._new();
 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)})},
 messageSends: ["initialize", "new"]}),
 messageSends: ["initialize", "new"]}),
 smalltalk.Announcer);
 smalltalk.Announcer);
 
 
@@ -116,7 +116,7 @@ _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(self["@subscriptions"])._add_($2);
 _st(self["@subscriptions"])._add_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock},smalltalk.Announcer)})},
 messageSends: ["add:", "block:", "new", "announcementClass:", "yourself"]}),
 messageSends: ["add:", "block:", "new", "announcementClass:", "yourself"]}),
 smalltalk.Announcer);
 smalltalk.Announcer);
 
 
@@ -140,7 +140,7 @@ $1=self["@current"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.SystemAnnouncer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{},smalltalk.SystemAnnouncer.klass)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.SystemAnnouncer.klass);
 smalltalk.SystemAnnouncer.klass);
 
 
@@ -151,7 +151,7 @@ selector: "new",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
 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)})},
 messageSends: ["shouldNotImplement"]}),
 messageSends: ["shouldNotImplement"]}),
 smalltalk.SystemAnnouncer.klass);
 smalltalk.SystemAnnouncer.klass);
 
 
@@ -166,7 +166,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SystemAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.SystemAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SystemAnnouncement);
 smalltalk.SystemAnnouncement);
 
 
@@ -177,7 +177,7 @@ selector: "theClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SystemAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.SystemAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SystemAnnouncement);
 smalltalk.SystemAnnouncement);
 
 
@@ -193,7 +193,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ClassAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassAnnouncement);
 smalltalk.ClassAnnouncement);
 
 
@@ -204,7 +204,7 @@ selector: "theClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ClassAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassAnnouncement);
 smalltalk.ClassAnnouncement);
 
 
@@ -235,7 +235,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@method"];
 $1=self["@method"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{},smalltalk.MethodAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodAnnouncement);
 smalltalk.MethodAnnouncement);
 
 
@@ -246,7 +246,7 @@ selector: "method:",
 fn: function (aCompiledMethod){
 fn: function (aCompiledMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.MethodAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod},smalltalk.MethodAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodAnnouncement);
 smalltalk.MethodAnnouncement);
 
 
@@ -265,7 +265,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@oldMethod"];
 $1=self["@oldMethod"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"oldMethod",{}, smalltalk.MethodModified)})},
+}, function($ctx1) {$ctx1.fill(self,"oldMethod",{},smalltalk.MethodModified)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodModified);
 smalltalk.MethodModified);
 
 
@@ -276,7 +276,7 @@ selector: "oldMethod:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@oldMethod"]=aMethod;
 return smalltalk.withContext(function($ctx1) { 
self["@oldMethod"]=aMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"oldMethod:",{aMethod:aMethod}, smalltalk.MethodModified)})},
+return self}, function($ctx1) {$ctx1.fill(self,"oldMethod:",{aMethod:aMethod},smalltalk.MethodModified)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodModified);
 smalltalk.MethodModified);
 
 
@@ -295,7 +295,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@package"];
 $1=self["@package"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"package",{}, smalltalk.PackageAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.PackageAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.PackageAnnouncement);
 smalltalk.PackageAnnouncement);
 
 
@@ -306,7 +306,7 @@ selector: "package:",
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@package"]=aPackage;
 return smalltalk.withContext(function($ctx1) { 
self["@package"]=aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.PackageAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.PackageAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.PackageAnnouncement);
 smalltalk.PackageAnnouncement);
 
 
@@ -328,7 +328,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@protocol"];
 $1=self["@protocol"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.ProtocolAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"protocol",{},smalltalk.ProtocolAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ProtocolAnnouncement);
 smalltalk.ProtocolAnnouncement);
 
 
@@ -339,7 +339,7 @@ selector: "protocol:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@protocol"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@protocol"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"protocol:",{aString:aString}, smalltalk.ProtocolAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"protocol:",{aString:aString},smalltalk.ProtocolAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ProtocolAnnouncement);
 smalltalk.ProtocolAnnouncement);
 
 
@@ -352,7 +352,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ProtocolAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ProtocolAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ProtocolAnnouncement);
 smalltalk.ProtocolAnnouncement);
 
 
@@ -363,7 +363,7 @@ selector: "theClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ProtocolAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ProtocolAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ProtocolAnnouncement);
 smalltalk.ProtocolAnnouncement);
 
 

+ 25 - 25
js/Kernel-Announcements.js

@@ -11,7 +11,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcementClass"];
 $1=self["@announcementClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcementClass",{}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"announcementClass",{},smalltalk.AnnouncementSubscription)})},
 args: [],
 args: [],
 source: "announcementClass\x0a\x09^announcementClass",
 source: "announcementClass\x0a\x09^announcementClass",
 messageSends: [],
 messageSends: [],
@@ -27,7 +27,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@announcementClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"announcementClass:",{aClass:aClass},smalltalk.AnnouncementSubscription)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "announcementClass: aClass\x0a\x09announcementClass := aClass",
 source: "announcementClass: aClass\x0a\x09announcementClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -45,7 +45,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@block"];
 $1=self["@block"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"block",{}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"block",{},smalltalk.AnnouncementSubscription)})},
 args: [],
 args: [],
 source: "block\x0a\x09^block",
 source: "block\x0a\x09^block",
 messageSends: [],
 messageSends: [],
@@ -61,7 +61,7 @@ category: 'accessing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
 return smalltalk.withContext(function($ctx1) { 
self["@block"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"block:",{aBlock:aBlock},smalltalk.AnnouncementSubscription)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "block: aBlock\x0a\x09block := aBlock",
 source: "block: aBlock\x0a\x09block := aBlock",
 messageSends: [],
 messageSends: [],
@@ -81,7 +81,7 @@ $1=_st(self)._handlesAnnouncement_(anAnnouncement);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(self)._block())._value_(anAnnouncement);
 _st(_st(self)._block())._value_(anAnnouncement);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deliver:",{anAnnouncement:anAnnouncement},smalltalk.AnnouncementSubscription)})},
 args: ["anAnnouncement"],
 args: ["anAnnouncement"],
 source: "deliver: anAnnouncement\x0a\x09(self handlesAnnouncement: anAnnouncement)\x0a\x09\x09ifTrue: [self block value: anAnnouncement]",
 source: "deliver: anAnnouncement\x0a\x09(self handlesAnnouncement: anAnnouncement)\x0a\x09\x09ifTrue: [self block value: anAnnouncement]",
 messageSends: ["ifTrue:", "value:", "block", "handlesAnnouncement:"],
 messageSends: ["ifTrue:", "value:", "block", "handlesAnnouncement:"],
@@ -99,7 +99,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 $1=_st(anAnnouncement)._isKindOf_(_st(self)._announcementClass());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement}, smalltalk.AnnouncementSubscription)})},
+}, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement},smalltalk.AnnouncementSubscription)})},
 args: ["anAnnouncement"],
 args: ["anAnnouncement"],
 source: "handlesAnnouncement: anAnnouncement\x0a\x09^anAnnouncement isKindOf: self announcementClass",
 source: "handlesAnnouncement: anAnnouncement\x0a\x09^anAnnouncement isKindOf: self announcementClass",
 messageSends: ["isKindOf:", "announcementClass"],
 messageSends: ["isKindOf:", "announcementClass"],
@@ -121,7 +121,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx1) { 
_st(self["@subscriptions"])._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
 return smalltalk.withContext(function($ctx2) {
return _st(each)._deliver_(anAnnouncement);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"announce:",{anAnnouncement:anAnnouncement},smalltalk.Announcer)})},
 args: ["anAnnouncement"],
 args: ["anAnnouncement"],
 source: "announce: anAnnouncement\x0a\x09subscriptions do: [:each |\x0a\x09\x09each deliver: anAnnouncement]",
 source: "announce: anAnnouncement\x0a\x09subscriptions do: [:each |\x0a\x09\x09each deliver: anAnnouncement]",
 messageSends: ["do:", "deliver:"],
 messageSends: ["do:", "deliver:"],
@@ -138,7 +138,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 self["@subscriptions"]=_st((smalltalk.Array || Array))._new();
 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: [],
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09subscriptions := Array new",
 source: "initialize\x0a\x09super initialize.\x0a\x09subscriptions := Array new",
 messageSends: ["initialize", "new"],
 messageSends: ["initialize", "new"],
@@ -159,7 +159,7 @@ _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(self["@subscriptions"])._add_($2);
 _st(self["@subscriptions"])._add_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock}, smalltalk.Announcer)})},
+return self}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock},smalltalk.Announcer)})},
 args: ["aClass", "aBlock"],
 args: ["aClass", "aBlock"],
 source: "on: aClass do: aBlock\x0a\x09subscriptions add: (AnnouncementSubscription new\x0a\x09\x09block: aBlock;\x0a\x09\x09announcementClass: aClass;\x0a\x09\x09yourself)",
 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"],
 messageSends: ["add:", "block:", "new", "announcementClass:", "yourself"],
@@ -189,7 +189,7 @@ $1=self["@current"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.SystemAnnouncer.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{},smalltalk.SystemAnnouncer.klass)})},
 args: [],
 args: [],
 source: "current\x0a\x09^ current ifNil: [ current := super new ]",
 source: "current\x0a\x09^ current ifNil: [ current := super new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -205,7 +205,7 @@ category: 'instance creation',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
 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: [],
 args: [],
 source: "new\x0a\x09self shouldNotImplement",
 source: "new\x0a\x09self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
 messageSends: ["shouldNotImplement"],
@@ -226,7 +226,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SystemAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.SystemAnnouncement)})},
 args: [],
 args: [],
 source: "theClass\x0a\x09^ theClass",
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
 messageSends: [],
@@ -242,7 +242,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SystemAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.SystemAnnouncement)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -263,7 +263,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ClassAnnouncement)})},
 args: [],
 args: [],
 source: "theClass\x0a\x09^ theClass",
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
 messageSends: [],
@@ -279,7 +279,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ClassAnnouncement)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -320,7 +320,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@method"];
 $1=self["@method"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{},smalltalk.MethodAnnouncement)})},
 args: [],
 args: [],
 source: "method\x0a\x09^ method",
 source: "method\x0a\x09^ method",
 messageSends: [],
 messageSends: [],
@@ -336,7 +336,7 @@ category: 'accessing',
 fn: function (aCompiledMethod){
 fn: function (aCompiledMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
 return smalltalk.withContext(function($ctx1) { 
self["@method"]=aCompiledMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.MethodAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod},smalltalk.MethodAnnouncement)})},
 args: ["aCompiledMethod"],
 args: ["aCompiledMethod"],
 source: "method: aCompiledMethod\x0a\x09method := aCompiledMethod",
 source: "method: aCompiledMethod\x0a\x09method := aCompiledMethod",
 messageSends: [],
 messageSends: [],
@@ -360,7 +360,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@oldMethod"];
 $1=self["@oldMethod"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"oldMethod",{}, smalltalk.MethodModified)})},
+}, function($ctx1) {$ctx1.fill(self,"oldMethod",{},smalltalk.MethodModified)})},
 args: [],
 args: [],
 source: "oldMethod\x0a\x09^ oldMethod",
 source: "oldMethod\x0a\x09^ oldMethod",
 messageSends: [],
 messageSends: [],
@@ -376,7 +376,7 @@ category: 'accessing',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@oldMethod"]=aMethod;
 return smalltalk.withContext(function($ctx1) { 
self["@oldMethod"]=aMethod;
-return self}, function($ctx1) {$ctx1.fill(self,"oldMethod:",{aMethod:aMethod}, smalltalk.MethodModified)})},
+return self}, function($ctx1) {$ctx1.fill(self,"oldMethod:",{aMethod:aMethod},smalltalk.MethodModified)})},
 args: ["aMethod"],
 args: ["aMethod"],
 source: "oldMethod: aMethod\x0a\x09oldMethod := aMethod",
 source: "oldMethod: aMethod\x0a\x09oldMethod := aMethod",
 messageSends: [],
 messageSends: [],
@@ -400,7 +400,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@package"];
 $1=self["@package"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"package",{}, smalltalk.PackageAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.PackageAnnouncement)})},
 args: [],
 args: [],
 source: "package\x0a\x09^ package",
 source: "package\x0a\x09^ package",
 messageSends: [],
 messageSends: [],
@@ -416,7 +416,7 @@ category: 'accessing',
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@package"]=aPackage;
 return smalltalk.withContext(function($ctx1) { 
self["@package"]=aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.PackageAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.PackageAnnouncement)})},
 args: ["aPackage"],
 args: ["aPackage"],
 source: "package: aPackage\x0a\x09package := aPackage",
 source: "package: aPackage\x0a\x09package := aPackage",
 messageSends: [],
 messageSends: [],
@@ -443,7 +443,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@protocol"];
 $1=self["@protocol"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.ProtocolAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"protocol",{},smalltalk.ProtocolAnnouncement)})},
 args: [],
 args: [],
 source: "protocol\x0a\x09^ protocol",
 source: "protocol\x0a\x09^ protocol",
 messageSends: [],
 messageSends: [],
@@ -459,7 +459,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@protocol"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@protocol"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"protocol:",{aString:aString}, smalltalk.ProtocolAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"protocol:",{aString:aString},smalltalk.ProtocolAnnouncement)})},
 args: ["aString"],
 args: ["aString"],
 source: "protocol: aString\x0a\x09protocol := aString",
 source: "protocol: aString\x0a\x09protocol := aString",
 messageSends: [],
 messageSends: [],
@@ -477,7 +477,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ProtocolAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ProtocolAnnouncement)})},
 args: [],
 args: [],
 source: "theClass\x0a\x09^ theClass",
 source: "theClass\x0a\x09^ theClass",
 messageSends: [],
 messageSends: [],
@@ -493,7 +493,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ProtocolAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ProtocolAnnouncement)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
 messageSends: [],

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

@@ -30,7 +30,7 @@ $6=_st($5)._yourself();
 announcement=$6;
 announcement=$6;
 };
 };
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
-return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod,oldMethod:oldMethod,announcement:announcement}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod,oldMethod:oldMethod,announcement:announcement},smalltalk.Behavior)})},
 messageSends: ["at:ifAbsent:", "selector", "methodDictionary", "ifFalse:", "addElement:", "protocol", "organization", "includes:", "protocols", "basicAddCompiledMethod:", "ifNil:ifNotNil:", "method:", "new", "yourself", "oldMethod:", "announce:", "current"]}),
 messageSends: ["at:ifAbsent:", "selector", "methodDictionary", "ifFalse:", "addElement:", "protocol", "organization", "includes:", "protocols", "basicAddCompiledMethod:", "ifNil:ifNotNil:", "method:", "new", "yourself", "oldMethod:", "announce:", "current"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -51,7 +51,7 @@ _st(result)._addAll_(_st(_st(self)._superclass())._allInstanceVariableNames());
 };
 };
 $2=result;
 $2=result;
 return $2;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result},smalltalk.Behavior)})},
 messageSends: ["copy", "instanceVariableNames", "ifNotNil:", "addAll:", "allInstanceVariableNames", "superclass"]}),
 messageSends: ["copy", "instanceVariableNames", "ifNotNil:", "addAll:", "allInstanceVariableNames", "superclass"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -69,7 +69,7 @@ $3=_st($2)._yourself();
 return $3;
 return $3;
 }, function($ctx2) {$ctx2.fillBlock({soFar:soFar,aBehavior:aBehavior},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({soFar:soFar,aBehavior:aBehavior},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSelectors",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSelectors",{},smalltalk.Behavior)})},
 messageSends: ["inject:into:", "selectors", "addAll:", "yourself", "allSuperclasses"]}),
 messageSends: ["inject:into:", "selectors", "addAll:", "yourself", "allSuperclasses"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -87,7 +87,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(result)._addAll_(_st(e
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result},smalltalk.Behavior)})},
 messageSends: ["subclasses", "do:", "addAll:", "allSubclasses"]}),
 messageSends: ["subclasses", "do:", "addAll:", "allSubclasses"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -109,7 +109,7 @@ _st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 $2=$4;
 $2=$4;
 return $2;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{},smalltalk.Behavior)})},
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"]}),
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -120,7 +120,7 @@ selector: "basicAddCompiledMethod:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -131,7 +131,7 @@ selector: "basicNew",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self.fn();
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -142,10 +142,10 @@ selector: "basicRemoveCompiledMethod:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	smalltalk.removeMethod(aMethod)
+		smalltalk.removeMethod(aMethod)
 		smalltalk.init(self);
 		smalltalk.init(self);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -162,7 +162,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._superclass(
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector},smalltalk.Behavior)})},
 messageSends: ["or:", "and:", "canUnderstand:", "superclass", "notNil", "includes:", "asString", "keys", "methodDictionary"]}),
 messageSends: ["or:", "and:", "canUnderstand:", "superclass", "notNil", "includes:", "asString", "keys", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -180,7 +180,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"comment",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"comment",{},smalltalk.Behavior)})},
 messageSends: ["ifNil:", "basicAt:"]}),
 messageSends: ["ifNil:", "basicAt:"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -196,7 +196,7 @@ $1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
 _st($1)._theClass_(self);
 _st($1)._theClass_(self);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString},smalltalk.Behavior)})},
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"]}),
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -212,7 +212,7 @@ _st($2)._class_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp",{},smalltalk.Behavior)})},
 messageSends: ["class:", "new", "yourself"]}),
 messageSends: ["class:", "new", "yourself"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -225,7 +225,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._commentStamp();
 $1=_st(self)._commentStamp();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior},smalltalk.Behavior)})},
 messageSends: ["commentStamp"]}),
 messageSends: ["commentStamp"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -236,7 +236,7 @@ selector: "compile:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
-return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString},smalltalk.Behavior)})},
 messageSends: ["compile:category:"]}),
 messageSends: ["compile:category:"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -247,7 +247,7 @@ selector: "compile:category:",
 fn: function (aString,anotherString){
 fn: function (aString,anotherString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
 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:aString,anotherString:anotherString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:category:",{aString:aString,anotherString:anotherString},smalltalk.Behavior)})},
 messageSends: ["install:forClass:category:", "new"]}),
 messageSends: ["install:forClass:category:", "new"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -258,7 +258,7 @@ selector: "definition",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "";
 return smalltalk.withContext(function($ctx1) { 
return "";
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Behavior)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -271,7 +271,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol},smalltalk.Behavior)})},
 messageSends: ["includesKey:", "asString", "methodDictionary"]}),
 messageSends: ["includesKey:", "asString", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -284,7 +284,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass},smalltalk.Behavior)})},
 messageSends: ["includes:", "allSubclasses"]}),
 messageSends: ["includes:", "allSubclasses"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -295,7 +295,7 @@ selector: "instanceVariableNames",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.iVarNames;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -324,7 +324,7 @@ return lookupClass;
 return nil;
 return nil;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass},smalltalk.Behavior)})},
 messageSends: ["whileFalse:", "ifTrue:", "methodAt:", "includesSelector:", "superclass", "="]}),
 messageSends: ["whileFalse:", "ifTrue:", "methodAt:", "includesSelector:", "superclass", "="]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -337,7 +337,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol},smalltalk.Behavior)})},
 messageSends: ["at:", "asString", "methodDictionary"]}),
 messageSends: ["at:", "asString", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -355,7 +355,7 @@ return smalltalk.withContext(function($ctx1) { 
var dict = smalltalk.HashedColle
 		}
 		}
 	};
 	};
 	return dict;
 	return dict;
-return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{},smalltalk.Behavior)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -368,7 +368,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._values();
 $1=_st(_st(self)._methodDictionary())._values();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methods",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methods",{},smalltalk.Behavior)})},
 messageSends: ["values", "methodDictionary"]}),
 messageSends: ["values", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -384,7 +384,7 @@ _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString},smalltalk.Behavior)})},
 messageSends: ["class:category:", "new", "yourself"]}),
 messageSends: ["class:category:", "new", "yourself"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -397,7 +397,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._methodsFor_(aString);
 $1=_st(self)._methodsFor_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp},smalltalk.Behavior)})},
 messageSends: ["methodsFor:"]}),
 messageSends: ["methodsFor:"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -412,7 +412,7 @@ $1=_st(_st(_st(self)._methodDictionary())._values())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString},smalltalk.Behavior)})},
 messageSends: ["select:", "=", "protocol", "values", "methodDictionary"]}),
 messageSends: ["select:", "=", "protocol", "values", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -423,7 +423,7 @@ selector: "name",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.className || nil;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -436,7 +436,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._basicNew())._initialize();
 $1=_st(_st(self)._basicNew())._initialize();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"new",{},smalltalk.Behavior)})},
 messageSends: ["initialize", "basicNew"]}),
 messageSends: ["initialize", "basicNew"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -449,7 +449,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("organization");
 $1=_st(self)._basicAt_("organization");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"organization",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"organization",{},smalltalk.Behavior)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -462,7 +462,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocols",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"protocols",{},smalltalk.Behavior)})},
 messageSends: ["sorted", "elements", "organization"]}),
 messageSends: ["sorted", "elements", "organization"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -482,7 +482,7 @@ return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Ar
 _st(_st(self)._protocols())._do_((function(category){
 _st(_st(self)._protocols())._do_((function(category){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
 }, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory},smalltalk.Behavior)})},
 messageSends: ["new", "do:", "add:", "at:ifAbsentPut:", "category", "values", "methodDictionary", "value:value:", "at:", "protocols"]}),
 messageSends: ["new", "do:", "add:", "at:ifAbsentPut:", "category", "values", "methodDictionary", "value:value:", "at:", "protocols"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -493,7 +493,7 @@ selector: "prototype",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.fn.prototype;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -514,7 +514,7 @@ $1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
 _st($1)._method_(aMethod);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 messageSends: ["basicRemoveCompiledMethod:", "detect:ifNone:", "=", "protocol", "removeElement:", "organization", "methods", "announce:", "method:", "new", "yourself", "current"]}),
 messageSends: ["basicRemoveCompiledMethod:", "detect:ifNone:", "=", "protocol", "removeElement:", "organization", "methods", "announce:", "method:", "new", "yourself", "current"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -527,7 +527,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._keys();
 $1=_st(_st(self)._methodDictionary())._keys();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectors",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"selectors",{},smalltalk.Behavior)})},
 messageSends: ["keys", "methodDictionary"]}),
 messageSends: ["keys", "methodDictionary"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -538,7 +538,7 @@ selector: "subclasses",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.subclasses(self);
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -549,7 +549,7 @@ selector: "superclass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.superclass || nil;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -562,7 +562,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._class();
 $1=_st(self)._class();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{},smalltalk.Behavior)})},
 messageSends: ["class"]}),
 messageSends: ["class"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -575,7 +575,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{},smalltalk.Behavior)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -591,7 +591,7 @@ _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{},smalltalk.Behavior)})},
 messageSends: ["addAll:", "allSubclasses", "with:", "yourself"]}),
 messageSends: ["addAll:", "allSubclasses", "with:", "yourself"]}),
 smalltalk.Behavior);
 smalltalk.Behavior);
 
 
@@ -607,7 +607,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("smalltalk.").__comma(_st(self)._name());
 $1=_st("smalltalk.").__comma(_st(self)._name());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{},smalltalk.Class)})},
 messageSends: [",", "name"]}),
 messageSends: [",", "name"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -625,7 +625,7 @@ $1="Unclassified";
 $1=_st(_st(self)._package())._name();
 $1=_st(_st(self)._package())._name();
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.Class)})},
 messageSends: ["ifNil:ifNotNil:", "name", "package"]}),
 messageSends: ["ifNil:ifNotNil:", "name", "package"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -657,7 +657,7 @@ $5=_st($4)._nextPutAll_("'");
 return $5;
 return $5;
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Class)})},
 messageSends: ["streamContents:", "nextPutAll:", "asString", "superclass", "name", ",", "tab", "lf", "do:separatedBy:", "instanceVariableNames", "category"]}),
 messageSends: ["streamContents:", "nextPutAll:", "asString", "superclass", "name", ",", "tab", "lf", "do:separatedBy:", "instanceVariableNames", "category"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -668,7 +668,7 @@ selector: "isClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClass",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"isClass",{},smalltalk.Class)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -679,7 +679,7 @@ selector: "package",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pkg;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -690,7 +690,7 @@ selector: "package:",
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.Class)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -703,7 +703,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 $1=_st(self)._name();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Class)})},
 messageSends: ["name"]}),
 messageSends: ["name"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -714,7 +714,7 @@ selector: "rename:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
-return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString},smalltalk.Class)})},
 messageSends: ["renameClass:to:", "new"]}),
 messageSends: ["renameClass:to:", "new"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -727,7 +727,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString},smalltalk.Class)})},
 messageSends: ["subclass:instanceVariableNames:package:"]}),
 messageSends: ["subclass:instanceVariableNames:package:"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -741,7 +741,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 _st(self)._deprecatedAPI();
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 messageSends: ["deprecatedAPI", "subclass:instanceVariableNames:package:"]}),
 messageSends: ["deprecatedAPI", "subclass:instanceVariableNames:package:"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -754,7 +754,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3: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)})},
 messageSends: ["subclass:instanceVariableNames:package:"]}),
 messageSends: ["subclass:instanceVariableNames:package:"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -767,7 +767,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"]}),
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"]}),
 smalltalk.Class);
 smalltalk.Class);
 
 
@@ -783,7 +783,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{},smalltalk.Metaclass)})},
 messageSends: [",", "name", "instanceClass"]}),
 messageSends: [",", "name", "instanceClass"]}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -808,7 +808,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_("
 return _st(stream)._nextPutAll_("'");
 return _st(stream)._nextPutAll_("'");
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Metaclass)})},
 messageSends: ["streamContents:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames"]}),
 messageSends: ["streamContents:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames"]}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -819,7 +819,7 @@ selector: "instanceClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.instanceClass;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -830,7 +830,7 @@ selector: "instanceVariableNames:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection}, smalltalk.Metaclass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection},smalltalk.Metaclass)})},
 messageSends: ["class:instanceVariableNames:", "new"]}),
 messageSends: ["class:instanceVariableNames:", "new"]}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -841,7 +841,7 @@ selector: "isMetaclass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{},smalltalk.Metaclass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -854,7 +854,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Metaclass)})},
 messageSends: [",", "name", "instanceClass"]}),
 messageSends: [",", "name", "instanceClass"]}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -867,7 +867,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{},smalltalk.Metaclass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -880,7 +880,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._instanceClass();
 $1=_st(self)._instanceClass();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{},smalltalk.Metaclass)})},
 messageSends: ["instanceClass"]}),
 messageSends: ["instanceClass"]}),
 smalltalk.Metaclass);
 smalltalk.Metaclass);
 
 
@@ -908,7 +908,7 @@ return $3;
 };
 };
 $4=_st(self)._basicAddSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
 $4=_st(self)._basicAddSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName,theClass:theClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName,theClass:theClass},smalltalk.ClassBuilder)})},
 messageSends: ["at:", "current", "ifNotNil:", "ifFalse:", "migrateClassNamed:superclass:instanceVariableNames:package:", "==", "superclass", "basicAddSubclassOf:named:instanceVariableNames:package:"]}),
 messageSends: ["at:", "current", "ifNotNil:", "ifFalse:", "migrateClassNamed:superclass:instanceVariableNames:package:", "==", "superclass", "basicAddSubclassOf:named:instanceVariableNames:package:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -922,7 +922,7 @@ return smalltalk.withContext(function($ctx1) {
 		smalltalk.addClass(aString, aClass, aCollection, packageName);
 		smalltalk.addClass(aString, aClass, aCollection, packageName);
 		return smalltalk[aString]
 		return smalltalk[aString]
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -933,7 +933,7 @@ selector: "basicClass:instanceVariableNames:",
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicClass_instanceVariables_(aClass,_st(self)._instanceVariableNamesFor_(aString));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicClass_instanceVariables_(aClass,_st(self)._instanceVariableNamesFor_(aString));
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["basicClass:instanceVariables:", "instanceVariableNamesFor:"]}),
 messageSends: ["basicClass:instanceVariables:", "instanceVariableNamesFor:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -949,7 +949,7 @@ if(! smalltalk.assert($1)){
 _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 };
 };
 _st(aClass)._basicAt_put_("iVarNames",aCollection);
 _st(aClass)._basicAt_put_("iVarNames",aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection},smalltalk.ClassBuilder)})},
 messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:"]}),
 messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -960,7 +960,7 @@ selector: "basicRemoveClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.removeClass(aClass);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.removeClass(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -975,7 +975,7 @@ return smalltalk.withContext(function($ctx1) {
 		delete smalltalk[aClass.className];
 		delete smalltalk[aClass.className];
 		aClass.className = aString;
 		aClass.className = aString;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -988,9 +988,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
 		var tmp = aClass.className;
 		var tmp = aClass.className;
 		aClass.className = anotherClass.className;
 		aClass.className = anotherClass.className;
-        anotherClass.className = tmp;
+		anotherClass.className = tmp;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicSwapClassNames:with:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSwapClassNames:with:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1007,7 +1007,7 @@ $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
 _st($1)._theClass_(aClass);
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["basicClass:instanceVariableNames:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 messageSends: ["basicClass:instanceVariableNames:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1023,7 +1023,7 @@ newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClas
 _st(self)._copyClass_to_(aClass,newClass);
 _st(self)._copyClass_to_(aClass,newClass);
 $1=newClass;
 $1=newClass;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass},smalltalk.ClassBuilder)})},
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "superclass", "instanceVariableNames", "name", "package", "copyClass:to:"]}),
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "superclass", "instanceVariableNames", "name", "package", "copyClass:to:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1042,7 +1042,7 @@ _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(anotherClass);
 _st(self)._setupClass_(anotherClass);
-return self}, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 messageSends: ["comment:", "comment", "do:", "install:forClass:category:", "source", "category", "new", "values", "methodDictionary", "basicClass:instanceVariables:", "class", "instanceVariableNames", "setupClass:"]}),
 messageSends: ["comment:", "comment", "do:", "install:forClass:category:", "source", "category", "new", "values", "methodDictionary", "basicClass:instanceVariables:", "class", "instanceVariableNames", "setupClass:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1058,7 +1058,7 @@ _st(aBehavior)._addCompiledMethod_(aCompiledMethod);
 _st(self)._setupClass_(aBehavior);
 _st(self)._setupClass_(aBehavior);
 $1=aCompiledMethod;
 $1=aCompiledMethod;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"installMethod:forClass:category:",{aCompiledMethod:aCompiledMethod,aBehavior:aBehavior,aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"installMethod:forClass:category:",{aCompiledMethod:aCompiledMethod,aBehavior:aBehavior,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["category:", "addCompiledMethod:", "setupClass:"]}),
 messageSends: ["category:", "addCompiledMethod:", "setupClass:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1073,7 +1073,7 @@ $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["reject:", "isEmpty", "tokenize:"]}),
 messageSends: ["reject:", "isEmpty", "tokenize:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1085,7 +1085,7 @@ fn: function (aClass,anotherClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(_st(aClass)._name());
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(_st(aClass)._name());
 _st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(_st(aClass)._name(),anotherClass,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
 _st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(_st(aClass)._name(),anotherClass,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
-return self}, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 messageSends: ["log:", "name", "migrateClassNamed:superclass:instanceVariableNames:package:", "instanceVariableNames", "package"]}),
 messageSends: ["log:", "name", "migrateClassNamed:superclass:instanceVariableNames:package:", "instanceVariableNames", "package"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1119,7 +1119,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._migrateClass_su
 _st(self)._basicRemoveClass_(oldClass);
 _st(self)._basicRemoveClass_(oldClass);
 $5=newClass;
 $5=newClass;
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{aString:aString,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass,tmp:tmp}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{aString:aString,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass,tmp:tmp},smalltalk.ClassBuilder)})},
 messageSends: [",", "at:", "current", "addSubclassOf:named:instanceVariableNames:package:", "basicSwapClassNames:with:", "on:do:", "basicRemoveClass:", "signal", "copyClass:to:", "rawRenameClass:to:", "do:", "migrateClass:superclass:", "subclasses"]}),
 messageSends: [",", "at:", "current", "addSubclassOf:named:instanceVariableNames:package:", "basicSwapClassNames:with:", "on:do:", "basicRemoveClass:", "signal", "copyClass:to:", "rawRenameClass:to:", "do:", "migrateClass:superclass:", "subclasses"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1132,7 +1132,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
 		smalltalk[aString] = aClass;
 		smalltalk[aString] = aClass;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"rawRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"rawRenameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1148,7 +1148,7 @@ $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
 _st($1)._theClass_(aClass);
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"]}),
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1159,7 +1159,7 @@ selector: "setupClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass},smalltalk.ClassBuilder)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1172,7 +1172,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 messageSends: ["superclass:subclass:instanceVariableNames:package:"]}),
 messageSends: ["superclass:subclass:instanceVariableNames:package:"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1202,7 +1202,7 @@ $8=_st($7)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 $9=newClass;
 $9=newClass;
 return $9;
 return $9;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:",{aClass:aClass,aString:aString,aString2:aString2,aString3: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)})},
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.ClassBuilder);
 smalltalk.ClassBuilder);
 
 
@@ -1217,7 +1217,7 @@ fn: function (aClass,aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 self["@category"]=aString;
 self["@category"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString},smalltalk.ClassCategoryReader)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassCategoryReader);
 smalltalk.ClassCategoryReader);
 
 
@@ -1228,7 +1228,7 @@ selector: "compileMethod:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
 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:aString}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString},smalltalk.ClassCategoryReader)})},
 messageSends: ["install:forClass:category:", "new"]}),
 messageSends: ["install:forClass:category:", "new"]}),
 smalltalk.ClassCategoryReader);
 smalltalk.ClassCategoryReader);
 
 
@@ -1239,7 +1239,7 @@ selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ClassCategoryReader)})},
 messageSends: ["initialize"]}),
 messageSends: ["initialize"]}),
 smalltalk.ClassCategoryReader);
 smalltalk.ClassCategoryReader);
 
 
@@ -1258,7 +1258,7 @@ return _st(chunk)._isEmpty();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(self["@class"]);
 _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(self["@class"]);
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk},smalltalk.ClassCategoryReader)})},
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"]}),
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"]}),
 smalltalk.ClassCategoryReader);
 smalltalk.ClassCategoryReader);
 
 
@@ -1272,7 +1272,7 @@ selector: "class:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass},smalltalk.ClassCommentReader)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassCommentReader);
 smalltalk.ClassCommentReader);
 
 
@@ -1283,7 +1283,7 @@ selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ClassCommentReader)})},
 messageSends: ["initialize"]}),
 messageSends: ["initialize"]}),
 smalltalk.ClassCommentReader);
 smalltalk.ClassCommentReader);
 
 
@@ -1300,7 +1300,7 @@ $1=_st(chunk)._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._setComment_(chunk);
 _st(self)._setComment_(chunk);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk},smalltalk.ClassCommentReader)})},
 messageSends: ["nextChunk", "ifFalse:", "setComment:", "isEmpty"]}),
 messageSends: ["nextChunk", "ifFalse:", "setComment:", "isEmpty"]}),
 smalltalk.ClassCommentReader);
 smalltalk.ClassCommentReader);
 
 
@@ -1311,7 +1311,7 @@ selector: "setComment:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString},smalltalk.ClassCommentReader)})},
 messageSends: ["comment:"]}),
 messageSends: ["comment:"]}),
 smalltalk.ClassCommentReader);
 smalltalk.ClassCommentReader);
 
 
@@ -1339,7 +1339,7 @@ return _st(others)._add_(each);
 self["@nodes"]=_st(children)._collect_((function(each){
 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)));
 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:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others},smalltalk.ClassSorterNode)})},
 messageSends: ["do:", "ifTrue:ifFalse:", "add:", "=", "theClass", "superclass", "collect:", "on:classes:level:", "+", "level"]}),
 messageSends: ["do:", "ifTrue:ifFalse:", "add:", "=", "theClass", "superclass", "collect:", "on:classes:level:", "+", "level"]}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1352,7 +1352,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@level"];
 $1=self["@level"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"level",{},smalltalk.ClassSorterNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1363,7 +1363,7 @@ selector: "level:",
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger},smalltalk.ClassSorterNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1376,7 +1376,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@nodes"];
 $1=self["@nodes"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.ClassSorterNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1389,7 +1389,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ClassSorterNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1400,7 +1400,7 @@ selector: "theClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ClassSorterNode)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1416,7 +1416,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass()
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._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);
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(aCollection);
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection},smalltalk.ClassSorterNode)})},
 messageSends: ["add:", "theClass", "do:", "traverseClassesWith:", "sorted:", "<=", "name", "nodes"]}),
 messageSends: ["add:", "theClass", "do:", "traverseClassesWith:", "sorted:", "<=", "name", "nodes"]}),
 smalltalk.ClassSorterNode);
 smalltalk.ClassSorterNode);
 
 
@@ -1435,7 +1435,7 @@ _st($2)._getNodesFrom_(aCollection);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger}, smalltalk.ClassSorterNode.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger:anInteger},smalltalk.ClassSorterNode.klass)})},
 messageSends: ["theClass:", "new", "level:", "getNodesFrom:", "yourself"]}),
 messageSends: ["theClass:", "new", "level:", "getNodesFrom:", "yourself"]}),
 smalltalk.ClassSorterNode.klass);
 smalltalk.ClassSorterNode.klass);
 
 

+ 131 - 131
js/Kernel-Classes.js

@@ -1,6 +1,6 @@
 smalltalk.addPackage('Kernel-Classes');
 smalltalk.addPackage('Kernel-Classes');
 smalltalk.addClass('Behavior', smalltalk.Object, [], 'Kernel-Classes');
 smalltalk.addClass('Behavior', smalltalk.Object, [], 'Kernel-Classes');
-smalltalk.Behavior.comment="Behavior is the superclass of all class objects. \x0a\x0aIt defines the protocol for creating instances of a class with `#basicNew` and `#new` (see `boot.js` for class constructors details).\x0aInstances know about the subclass/superclass relationships between classes, contain the description that instances are created from, \x0aand hold the method dictionary that's associated with each class.\x0a\x0aBehavior also  provides methods for compiling methods, examining the method dictionary, and iterating over the class hierarchy."
+smalltalk.Behavior.comment="Behavior is the superclass of all class objects.\x0a\x0aIt defines the protocol for creating instances of a class with `#basicNew` and `#new` (see `boot.js` for class constructors details).\x0aInstances know about the subclass/superclass relationships between classes, contain the description that instances are created from,\x0aand hold the method dictionary that's associated with each class.\x0a\x0aBehavior also provides methods for compiling methods, examining the method dictionary, and iterating over the class hierarchy."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_addCompiledMethod_",
 "_addCompiledMethod_",
 smalltalk.method({
 smalltalk.method({
@@ -32,9 +32,9 @@ $6=_st($5)._yourself();
 announcement=$6;
 announcement=$6;
 };
 };
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
-return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod,oldMethod:oldMethod,announcement:announcement}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod,oldMethod:oldMethod,announcement:announcement},smalltalk.Behavior)})},
 args: ["aMethod"],
 args: ["aMethod"],
-source: "addCompiledMethod: aMethod\x0a\x09| oldMethod announcement |\x0a    \x0a\x09oldMethod := self methodDictionary \x0a    \x09at: aMethod selector \x0a        ifAbsent: [ nil ].\x0a    \x0a   (self protocols includes: aMethod protocol)\x0a   \x09\x09ifFalse: [ self organization addElement: aMethod protocol ].\x0a   \x0a\x09self basicAddCompiledMethod: aMethod.\x0a    \x0a    announcement := oldMethod \x0a    \x09ifNil: [\x0a\x09\x09    MethodAdded new\x0a\x09\x09            method: aMethod;\x0a       \x09\x09\x09    yourself ]\x0a    \x09ifNotNil: [\x0a          \x09MethodModified new\x0a                    oldMethod: oldMethod; \x0a\x09\x09            method: aMethod;\x0a       \x09\x09\x09    yourself ].\x0a                    \x0a                    \x0a\x09SystemAnnouncer current\x0a\x09\x09   \x09\x09announce: announcement",
+source: "addCompiledMethod: aMethod\x0a\x09| oldMethod announcement |\x0a\x09\x0a\x09oldMethod := self methodDictionary\x0a\x09\x09at: aMethod selector\x0a\x09\x09ifAbsent: [ nil ].\x0a\x09\x0a\x09(self protocols includes: aMethod protocol)\x0a\x09\x09ifFalse: [ self organization addElement: aMethod protocol ].\x0a\x0a\x09self basicAddCompiledMethod: aMethod.\x0a\x09\x0a\x09announcement := oldMethod\x0a\x09\x09ifNil: [\x0a\x09\x09\x09MethodAdded new\x0a\x09\x09\x09\x09\x09method: aMethod;\x0a\x09\x09\x09\x09\x09yourself ]\x0a\x09\x09ifNotNil: [\x0a\x09\x09\x09MethodModified new\x0a\x09\x09\x09\x09\x09oldMethod: oldMethod;\x0a\x09\x09\x09\x09\x09method: aMethod;\x0a\x09\x09\x09\x09\x09yourself ].\x0a\x09\x09\x09\x09\x09\x0a\x09\x09\x09\x09\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09\x09\x09announce: announcement",
 messageSends: ["at:ifAbsent:", "selector", "methodDictionary", "ifFalse:", "addElement:", "protocol", "organization", "includes:", "protocols", "basicAddCompiledMethod:", "ifNil:ifNotNil:", "method:", "new", "yourself", "oldMethod:", "announce:", "current"],
 messageSends: ["at:ifAbsent:", "selector", "methodDictionary", "ifFalse:", "addElement:", "protocol", "organization", "includes:", "protocols", "basicAddCompiledMethod:", "ifNil:ifNotNil:", "method:", "new", "yourself", "oldMethod:", "announce:", "current"],
 referencedClasses: ["MethodAdded", "MethodModified", "SystemAnnouncer"]
 referencedClasses: ["MethodAdded", "MethodModified", "SystemAnnouncer"]
 }),
 }),
@@ -58,9 +58,9 @@ _st(result)._addAll_(_st(_st(self)._superclass())._allInstanceVariableNames());
 };
 };
 $2=result;
 $2=result;
 return $2;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allInstanceVariableNames",{result:result},smalltalk.Behavior)})},
 args: [],
 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",
+source: "allInstanceVariableNames\x0a\x09| result |\x0a\x09result := self instanceVariableNames copy.\x0a\x09self superclass ifNotNil: [\x0a\x09\x09result addAll: self superclass allInstanceVariableNames].\x0a\x09^result",
 messageSends: ["copy", "instanceVariableNames", "ifNotNil:", "addAll:", "allInstanceVariableNames", "superclass"],
 messageSends: ["copy", "instanceVariableNames", "ifNotNil:", "addAll:", "allInstanceVariableNames", "superclass"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -81,7 +81,7 @@ $3=_st($2)._yourself();
 return $3;
 return $3;
 }, function($ctx2) {$ctx2.fillBlock({soFar:soFar,aBehavior:aBehavior},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({soFar:soFar,aBehavior:aBehavior},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSelectors",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSelectors",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "allSelectors\x0a\x09^self allSuperclasses\x0a\x09\x09inject: self selectors\x0a\x09\x09into: [ :soFar :aBehavior | soFar addAll: aBehavior selectors; yourself ]",
 source: "allSelectors\x0a\x09^self allSuperclasses\x0a\x09\x09inject: self selectors\x0a\x09\x09into: [ :soFar :aBehavior | soFar addAll: aBehavior selectors; yourself ]",
 messageSends: ["inject:into:", "selectors", "addAll:", "yourself", "allSuperclasses"],
 messageSends: ["inject:into:", "selectors", "addAll:", "yourself", "allSuperclasses"],
@@ -104,9 +104,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(result)._addAll_(_st(e
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSubclasses",{result:result},smalltalk.Behavior)})},
 args: [],
 args: [],
-source: "allSubclasses\x0a\x09| result |\x0a\x09result := self subclasses.\x0a\x09self subclasses do: [:each |\x0a\x09    result addAll: each allSubclasses].\x0a\x09^result",
+source: "allSubclasses\x0a\x09| result |\x0a\x09result := self subclasses.\x0a\x09self subclasses do: [:each |\x0a\x09\x09result addAll: each allSubclasses].\x0a\x09^result",
 messageSends: ["subclasses", "do:", "addAll:", "allSubclasses"],
 messageSends: ["subclasses", "do:", "addAll:", "allSubclasses"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -131,9 +131,9 @@ _st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 $2=$4;
 $2=$4;
 return $2;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{},smalltalk.Behavior)})},
 args: [],
 args: [],
-source: "allSuperclasses\x0a\x09\x0a    self superclass ifNil: [ ^ #() ].\x0a    \x0a\x09^ (OrderedCollection with: self superclass) \x0a    \x09addAll: self superclass allSuperclasses;\x0a        yourself",
+source: "allSuperclasses\x0a\x09\x0a\x09self superclass ifNil: [ ^ #() ].\x0a\x09\x0a\x09^ (OrderedCollection with: self superclass)\x0a\x09\x09addAll: self superclass allSuperclasses;\x0a\x09\x09yourself",
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"],
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"],
 referencedClasses: ["OrderedCollection"]
 referencedClasses: ["OrderedCollection"]
 }),
 }),
@@ -147,7 +147,7 @@ category: 'private',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 args: ["aMethod"],
 args: ["aMethod"],
 source: "basicAddCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self)>",
 source: "basicAddCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self)>",
 messageSends: [],
 messageSends: [],
@@ -163,7 +163,7 @@ category: 'instance creation',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self.fn();
 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: [],
 args: [],
 source: "basicNew\x0a\x09<return new self.fn()>",
 source: "basicNew\x0a\x09<return new self.fn()>",
 messageSends: [],
 messageSends: [],
@@ -179,12 +179,12 @@ category: 'private',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	smalltalk.removeMethod(aMethod)
+		smalltalk.removeMethod(aMethod)
 		smalltalk.init(self);
 		smalltalk.init(self);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 args: ["aMethod"],
 args: ["aMethod"],
-source: "basicRemoveCompiledMethod: aMethod\x0a\x09<\x0a    \x09smalltalk.removeMethod(aMethod)\x0a\x09\x09smalltalk.init(self);\x0a    >",
+source: "basicRemoveCompiledMethod: aMethod\x0a\x09<\x0a\x09\x09smalltalk.removeMethod(aMethod)\x0a\x09\x09smalltalk.init(self);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -204,7 +204,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(_st(self)._superclass(
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"canUnderstand:",{aSelector:aSelector},smalltalk.Behavior)})},
 args: ["aSelector"],
 args: ["aSelector"],
 source: "canUnderstand: aSelector\x0a\x09^(self methodDictionary keys includes: aSelector asString) or: [\x0a\x09\x09self superclass notNil and: [self superclass canUnderstand: 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"],
 messageSends: ["or:", "and:", "canUnderstand:", "superclass", "notNil", "includes:", "asString", "keys", "methodDictionary"],
@@ -227,9 +227,9 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"comment",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"comment",{},smalltalk.Behavior)})},
 args: [],
 args: [],
-source: "comment\x0a    ^(self basicAt: 'comment') ifNil: ['']",
+source: "comment\x0a\x09^(self basicAt: 'comment') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
 messageSends: ["ifNil:", "basicAt:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -248,9 +248,9 @@ $1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
 _st($1)._theClass_(self);
 _st($1)._theClass_(self);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString},smalltalk.Behavior)})},
 args: ["aString"],
 args: ["aString"],
-source: "comment: aString\x0a    self basicAt: 'comment' put: aString.\x0a    SystemAnnouncer current\x0a    \x09announce: (ClassCommentChanged new\x0a        \x09theClass: self;\x0a            yourself)",
+source: "comment: aString\x0a\x09self basicAt: 'comment' put: aString.\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassCommentChanged new\x0a\x09\x09\x09theClass: self;\x0a\x09\x09\x09yourself)",
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"],
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"],
 referencedClasses: ["ClassCommentChanged", "SystemAnnouncer"]
 referencedClasses: ["ClassCommentChanged", "SystemAnnouncer"]
 }),
 }),
@@ -269,9 +269,9 @@ _st($2)._class_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp",{},smalltalk.Behavior)})},
 args: [],
 args: [],
-source: "commentStamp\x0a    ^ClassCommentReader new\x0a\x09class: self;\x0a\x09yourself",
+source: "commentStamp\x0a\x09^ClassCommentReader new\x0a\x09class: self;\x0a\x09yourself",
 messageSends: ["class:", "new", "yourself"],
 messageSends: ["class:", "new", "yourself"],
 referencedClasses: ["ClassCommentReader"]
 referencedClasses: ["ClassCommentReader"]
 }),
 }),
@@ -287,9 +287,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._commentStamp();
 $1=_st(self)._commentStamp();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"commentStamp:prior:",{aStamp:aStamp,prior:prior},smalltalk.Behavior)})},
 args: ["aStamp", "prior"],
 args: ["aStamp", "prior"],
-source: "commentStamp: aStamp prior: prior\x0a        ^self commentStamp",
+source: "commentStamp: aStamp prior: prior\x0a\x09\x09^self commentStamp",
 messageSends: ["commentStamp"],
 messageSends: ["commentStamp"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -303,7 +303,7 @@ category: 'compiling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._compile_category_(aString,"");
-return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:",{aString:aString},smalltalk.Behavior)})},
 args: ["aString"],
 args: ["aString"],
 source: "compile: aString\x0a\x09self compile: aString category: ''",
 source: "compile: aString\x0a\x09self compile: aString category: ''",
 messageSends: ["compile:category:"],
 messageSends: ["compile:category:"],
@@ -319,9 +319,9 @@ category: 'compiling',
 fn: function (aString,anotherString){
 fn: function (aString,anotherString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
 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:aString,anotherString:anotherString}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compile:category:",{aString:aString,anotherString:anotherString},smalltalk.Behavior)})},
 args: ["aString", "anotherString"],
 args: ["aString", "anotherString"],
-source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString \x0a        forClass: self \x0a        category: anotherString",
+source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString\x0a\x09\x09forClass: self\x0a\x09\x09category: anotherString",
 messageSends: ["install:forClass:category:", "new"],
 messageSends: ["install:forClass:category:", "new"],
 referencedClasses: ["Compiler"]
 referencedClasses: ["Compiler"]
 }),
 }),
@@ -335,7 +335,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "";
 return smalltalk.withContext(function($ctx1) { 
return "";
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "definition\x0a\x09^ ''",
 source: "definition\x0a\x09^ ''",
 messageSends: [],
 messageSends: [],
@@ -353,7 +353,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 $1=_st(_st(self)._methodDictionary())._includesKey_(_st(aSymbol)._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"includesSelector:",{aSymbol:aSymbol},smalltalk.Behavior)})},
 args: ["aSymbol"],
 args: ["aSymbol"],
 source: "includesSelector: aSymbol\x0a\x09^ self methodDictionary includesKey: aSymbol asString",
 source: "includesSelector: aSymbol\x0a\x09^ self methodDictionary includesKey: aSymbol asString",
 messageSends: ["includesKey:", "asString", "methodDictionary"],
 messageSends: ["includesKey:", "asString", "methodDictionary"],
@@ -371,7 +371,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 $1=_st(_st(aClass)._allSubclasses())._includes_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"inheritsFrom:",{aClass:aClass},smalltalk.Behavior)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "inheritsFrom: aClass\x0a\x09^aClass allSubclasses includes: self",
 source: "inheritsFrom: aClass\x0a\x09^aClass allSubclasses includes: self",
 messageSends: ["includes:", "allSubclasses"],
 messageSends: ["includes:", "allSubclasses"],
@@ -387,7 +387,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.iVarNames;
 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: [],
 args: [],
 source: "instanceVariableNames\x0a\x09<return self.iVarNames>",
 source: "instanceVariableNames\x0a\x09<return self.iVarNames>",
 messageSends: [],
 messageSends: [],
@@ -421,9 +421,9 @@ return lookupClass;
 return nil;
 return nil;
 }
 }
 catch(e) {if(e===$early)return e[0]; throw e}
 catch(e) {if(e===$early)return e[0]; throw e}
-}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupSelector:",{selector:selector,lookupClass:lookupClass},smalltalk.Behavior)})},
 args: ["selector"],
 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",
+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\x09\x0a\x09| lookupClass |\x0a\x09\x0a\x09lookupClass := self.\x0a\x09[ lookupClass = nil ] whileFalse: [\x0a\x09\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", "="],
 messageSends: ["whileFalse:", "ifTrue:", "methodAt:", "includesSelector:", "superclass", "="],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -439,7 +439,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 $1=_st(_st(self)._methodDictionary())._at_(_st(aSymbol)._asString());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodAt:",{aSymbol:aSymbol},smalltalk.Behavior)})},
 args: ["aSymbol"],
 args: ["aSymbol"],
 source: "methodAt: aSymbol\x0a\x09^ self methodDictionary at: aSymbol asString",
 source: "methodAt: aSymbol\x0a\x09^ self methodDictionary at: aSymbol asString",
 messageSends: ["at:", "asString", "methodDictionary"],
 messageSends: ["at:", "asString", "methodDictionary"],
@@ -462,7 +462,7 @@ return smalltalk.withContext(function($ctx1) { 
var dict = smalltalk.HashedColle
 		}
 		}
 	};
 	};
 	return dict;
 	return dict;
-return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{},smalltalk.Behavior)})},
 args: [],
 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>",
 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: [],
 messageSends: [],
@@ -480,7 +480,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._values();
 $1=_st(_st(self)._methodDictionary())._values();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methods",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methods",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "methods\x0a\x09^ self methodDictionary values",
 source: "methods\x0a\x09^ self methodDictionary values",
 messageSends: ["values", "methodDictionary"],
 messageSends: ["values", "methodDictionary"],
@@ -501,9 +501,9 @@ _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:",{aString:aString},smalltalk.Behavior)})},
 args: ["aString"],
 args: ["aString"],
-source: "methodsFor: aString\x0a\x09^ClassCategoryReader new\x0a\x09    class: self category: aString;\x0a\x09    yourself",
+source: "methodsFor: aString\x0a\x09^ClassCategoryReader new\x0a\x09\x09class: self category: aString;\x0a\x09\x09yourself",
 messageSends: ["class:category:", "new", "yourself"],
 messageSends: ["class:category:", "new", "yourself"],
 referencedClasses: ["ClassCategoryReader"]
 referencedClasses: ["ClassCategoryReader"]
 }),
 }),
@@ -519,7 +519,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._methodsFor_(aString);
 $1=_st(self)._methodsFor_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsFor:stamp:",{aString:aString,aStamp:aStamp},smalltalk.Behavior)})},
 args: ["aString", "aStamp"],
 args: ["aString", "aStamp"],
 source: "methodsFor: aString stamp: aStamp\x0a\x09\x22Added for compatibility, right now ignores stamp.\x22\x0a\x09^self methodsFor: aString",
 source: "methodsFor: aString stamp: aStamp\x0a\x09\x22Added for compatibility, right now ignores stamp.\x22\x0a\x09^self methodsFor: aString",
 messageSends: ["methodsFor:"],
 messageSends: ["methodsFor:"],
@@ -539,7 +539,7 @@ $1=_st(_st(_st(self)._methodDictionary())._values())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol()).__eq(aString);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"methodsInProtocol:",{aString:aString},smalltalk.Behavior)})},
 args: ["aString"],
 args: ["aString"],
 source: "methodsInProtocol: aString\x0a\x09^ self methodDictionary values select: [ :each | each protocol = aString ]",
 source: "methodsInProtocol: aString\x0a\x09^ self methodDictionary values select: [ :each | each protocol = aString ]",
 messageSends: ["select:", "=", "protocol", "values", "methodDictionary"],
 messageSends: ["select:", "=", "protocol", "values", "methodDictionary"],
@@ -555,7 +555,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.className || nil;
 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: [],
 args: [],
 source: "name\x0a\x09<return self.className || nil>",
 source: "name\x0a\x09<return self.className || nil>",
 messageSends: [],
 messageSends: [],
@@ -573,7 +573,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._basicNew())._initialize();
 $1=_st(_st(self)._basicNew())._initialize();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"new",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "new\x0a\x09^self basicNew initialize",
 source: "new\x0a\x09^self basicNew initialize",
 messageSends: ["initialize", "basicNew"],
 messageSends: ["initialize", "basicNew"],
@@ -591,7 +591,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("organization");
 $1=_st(self)._basicAt_("organization");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"organization",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"organization",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "organization\x0a\x09^ self basicAt: 'organization'",
 source: "organization\x0a\x09^ self basicAt: 'organization'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -609,9 +609,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 $1=_st(_st(_st(self)._organization())._elements())._sorted();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocols",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"protocols",{},smalltalk.Behavior)})},
 args: [],
 args: [],
-source: "protocols\x0a   ^ self organization elements sorted",
+source: "protocols\x0a\x09^ self organization elements sorted",
 messageSends: ["sorted", "elements", "organization"],
 messageSends: ["sorted", "elements", "organization"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -634,9 +634,9 @@ return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Ar
 _st(_st(self)._protocols())._do_((function(category){
 _st(_st(self)._protocols())._do_((function(category){
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
 return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_value_(category,_st(methodsByCategory)._at_(category));
 }, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"protocolsDo:",{aBlock:aBlock,methodsByCategory:methodsByCategory},smalltalk.Behavior)})},
 args: ["aBlock"],
 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)]",
+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"],
 messageSends: ["new", "do:", "add:", "at:ifAbsentPut:", "category", "values", "methodDictionary", "value:value:", "at:", "protocols"],
 referencedClasses: ["HashedCollection", "Array"]
 referencedClasses: ["HashedCollection", "Array"]
 }),
 }),
@@ -650,7 +650,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.fn.prototype;
 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: [],
 args: [],
 source: "prototype\x0a\x09<return self.fn.prototype>",
 source: "prototype\x0a\x09<return self.fn.prototype>",
 messageSends: [],
 messageSends: [],
@@ -676,9 +676,9 @@ $1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
 _st($1)._method_(aMethod);
 _st($1)._method_(aMethod);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod}, smalltalk.Behavior)})},
+return self}, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod},smalltalk.Behavior)})},
 args: ["aMethod"],
 args: ["aMethod"],
-source: "removeCompiledMethod: aMethod\x0a\x09self basicRemoveCompiledMethod: aMethod.\x0a    \x0a    self methods \x0a    \x09detect: [ :each | each protocol = aMethod protocol ]\x0a  \x09\x09ifNone: [ self organization removeElement: aMethod protocol ].\x0a    \x0a    SystemAnnouncer current\x0a   \x09\x09announce: (MethodRemoved new\x0a            method: aMethod;\x0a            yourself)",
+source: "removeCompiledMethod: aMethod\x0a\x09self basicRemoveCompiledMethod: aMethod.\x0a\x09\x0a\x09self methods\x0a\x09\x09detect: [ :each | each protocol = aMethod protocol ]\x0a\x09\x09ifNone: [ self organization removeElement: aMethod protocol ].\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (MethodRemoved new\x0a\x09\x09\x09method: aMethod;\x0a\x09\x09\x09yourself)",
 messageSends: ["basicRemoveCompiledMethod:", "detect:ifNone:", "=", "protocol", "removeElement:", "organization", "methods", "announce:", "method:", "new", "yourself", "current"],
 messageSends: ["basicRemoveCompiledMethod:", "detect:ifNone:", "=", "protocol", "removeElement:", "organization", "methods", "announce:", "method:", "new", "yourself", "current"],
 referencedClasses: ["MethodRemoved", "SystemAnnouncer"]
 referencedClasses: ["MethodRemoved", "SystemAnnouncer"]
 }),
 }),
@@ -694,7 +694,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._methodDictionary())._keys();
 $1=_st(_st(self)._methodDictionary())._keys();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectors",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"selectors",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "selectors\x0a\x09^ self methodDictionary keys",
 source: "selectors\x0a\x09^ self methodDictionary keys",
 messageSends: ["keys", "methodDictionary"],
 messageSends: ["keys", "methodDictionary"],
@@ -710,7 +710,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.subclasses(self);
 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: [],
 args: [],
 source: "subclasses\x0a\x09<return smalltalk.subclasses(self)>",
 source: "subclasses\x0a\x09<return smalltalk.subclasses(self)>",
 messageSends: [],
 messageSends: [],
@@ -726,7 +726,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.superclass || nil;
 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: [],
 args: [],
 source: "superclass\x0a\x09<return self.superclass || nil>",
 source: "superclass\x0a\x09<return self.superclass || nil>",
 messageSends: [],
 messageSends: [],
@@ -744,7 +744,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._class();
 $1=_st(self)._class();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "theMetaClass\x0a\x09^ self class",
 source: "theMetaClass\x0a\x09^ self class",
 messageSends: ["class"],
 messageSends: ["class"],
@@ -762,7 +762,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "theNonMetaClass\x0a\x09^ self",
 source: "theNonMetaClass\x0a\x09^ self",
 messageSends: [],
 messageSends: [],
@@ -783,7 +783,7 @@ _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{}, smalltalk.Behavior)})},
+}, function($ctx1) {$ctx1.fill(self,"withAllSubclasses",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 source: "withAllSubclasses\x0a\x09^(Array with: self) addAll: self allSubclasses; yourself",
 source: "withAllSubclasses\x0a\x09^(Array with: self) addAll: self allSubclasses; yourself",
 messageSends: ["addAll:", "allSubclasses", "with:", "yourself"],
 messageSends: ["addAll:", "allSubclasses", "with:", "yourself"],
@@ -794,7 +794,7 @@ smalltalk.Behavior);
 
 
 
 
 smalltalk.addClass('Class', smalltalk.Behavior, [], 'Kernel-Classes');
 smalltalk.addClass('Class', smalltalk.Behavior, [], 'Kernel-Classes');
-smalltalk.Class.comment="Class is __the__ class object. \x0a\x0aInstances are the classes of the system.\x0aClass creation is done throught a `ClassBuilder`"
+smalltalk.Class.comment="Class is __the__ class object.\x0a\x0aInstances are the classes of the system.\x0aClass creation is done throught a `ClassBuilder`"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_asJavascript",
 "_asJavascript",
 smalltalk.method({
 smalltalk.method({
@@ -805,7 +805,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st("smalltalk.").__comma(_st(self)._name());
 $1=_st("smalltalk.").__comma(_st(self)._name());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{},smalltalk.Class)})},
 args: [],
 args: [],
 source: "asJavascript\x0a\x09^ 'smalltalk.', self name",
 source: "asJavascript\x0a\x09^ 'smalltalk.', self name",
 messageSends: [",", "name"],
 messageSends: [",", "name"],
@@ -828,7 +828,7 @@ $1="Unclassified";
 $1=_st(_st(self)._package())._name();
 $1=_st(_st(self)._package())._name();
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.Class)})},
 args: [],
 args: [],
 source: "category\x0a\x09^self package ifNil: ['Unclassified'] ifNotNil: [self package name]",
 source: "category\x0a\x09^self package ifNil: ['Unclassified'] ifNotNil: [self package name]",
 messageSends: ["ifNil:ifNotNil:", "name", "package"],
 messageSends: ["ifNil:ifNotNil:", "name", "package"],
@@ -865,9 +865,9 @@ $5=_st($4)._nextPutAll_("'");
 return $5;
 return $5;
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Class)})},
 args: [],
 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: '''' ]",
+source: "definition\x0a\x09^ String streamContents: [ :stream |\x0a\x09\x09stream\x0a\x09\x09\x09nextPutAll: self superclass asString;\x0a\x09\x09\x09nextPutAll: ' subclass: #';\x0a\x09\x09\x09nextPutAll: self name;\x0a\x09\x09\x09nextPutAll: String lf, String tab;\x0a\x09\x09\x09nextPutAll: 'instanceVariableNames: '''.\x0a\x09\x09self instanceVariableNames\x0a\x09\x09\x09do: [ :each | stream nextPutAll: each ]\x0a\x09\x09\x09separatedBy: [ stream nextPutAll: ' ' ].\x0a\x09\x09stream\x0a\x09\x09\x09nextPutAll: '''', String lf, String tab;\x0a\x09\x09\x09nextPutAll: 'package: ''';\x0a\x09\x09\x09nextPutAll: self category;\x0a\x09\x09\x09nextPutAll: '''' ]",
 messageSends: ["streamContents:", "nextPutAll:", "asString", "superclass", "name", ",", "tab", "lf", "do:separatedBy:", "instanceVariableNames", "category"],
 messageSends: ["streamContents:", "nextPutAll:", "asString", "superclass", "name", ",", "tab", "lf", "do:separatedBy:", "instanceVariableNames", "category"],
 referencedClasses: ["String"]
 referencedClasses: ["String"]
 }),
 }),
@@ -881,7 +881,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isClass",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"isClass",{},smalltalk.Class)})},
 args: [],
 args: [],
 source: "isClass\x0a\x09^true",
 source: "isClass\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -897,7 +897,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pkg;
 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: [],
 args: [],
 source: "package\x0a\x09<return self.pkg>",
 source: "package\x0a\x09<return self.pkg>",
 messageSends: [],
 messageSends: [],
@@ -913,7 +913,7 @@ category: 'accessing',
 fn: function (aPackage){
 fn: function (aPackage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
 return smalltalk.withContext(function($ctx1) { 
self.pkg = aPackage;
-return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.Class)})},
 args: ["aPackage"],
 args: ["aPackage"],
 source: "package: aPackage\x0a\x09<self.pkg = aPackage>",
 source: "package: aPackage\x0a\x09<self.pkg = aPackage>",
 messageSends: [],
 messageSends: [],
@@ -931,7 +931,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._name();
 $1=_st(self)._name();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Class)})},
 args: [],
 args: [],
 source: "printString\x0a\x09^self name",
 source: "printString\x0a\x09^self name",
 messageSends: ["name"],
 messageSends: ["name"],
@@ -947,7 +947,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._renameClass_to_(self,aString);
-return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString}, smalltalk.Class)})},
+return self}, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString},smalltalk.Class)})},
 args: ["aString"],
 args: ["aString"],
 source: "rename: aString\x0a\x09ClassBuilder new renameClass: self to: aString",
 source: "rename: aString\x0a\x09ClassBuilder new renameClass: self to: aString",
 messageSends: ["renameClass:to:", "new"],
 messageSends: ["renameClass:to:", "new"],
@@ -965,7 +965,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,anotherString,nil);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:",{aString:aString,anotherString:anotherString},smalltalk.Class)})},
 args: ["aString", "anotherString"],
 args: ["aString", "anotherString"],
 source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for compatibility.\x22\x0a\x09^self subclass: aString instanceVariableNames: anotherString package: nil",
 source: "subclass: aString instanceVariableNames: anotherString\x0a\x09\x22Kept for compatibility.\x22\x0a\x09^self subclass: aString instanceVariableNames: anotherString package: nil",
 messageSends: ["subclass:instanceVariableNames:package:"],
 messageSends: ["subclass:instanceVariableNames:package:"],
@@ -984,7 +984,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 _st(self)._deprecatedAPI();
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:category:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 args: ["aString", "aString2", "aString3"],
 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",
 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:"],
 messageSends: ["deprecatedAPI", "subclass:instanceVariableNames:package:"],
@@ -1002,7 +1002,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 $1=_st(self)._subclass_instanceVariableNames_package_(aString,aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",{aString:aString,aString2:aString2,classVars:classVars,pools:pools,aString3: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"],
 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",
 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:"],
 messageSends: ["subclass:instanceVariableNames:package:"],
@@ -1020,9 +1020,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 $1=_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._superclass_subclass_instanceVariableNames_package_(self,_st(aString)._asString(),aString2,aString3);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3}, smalltalk.Class)})},
+}, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 args: ["aString", "aString2", "aString3"],
 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",
+source: "subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09^ClassBuilder new\x0a\x09\x09superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3",
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"],
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"],
 referencedClasses: ["ClassBuilder"]
 referencedClasses: ["ClassBuilder"]
 }),
 }),
@@ -1031,7 +1031,7 @@ smalltalk.Class);
 
 
 
 
 smalltalk.addClass('Metaclass', smalltalk.Behavior, [], 'Kernel-Classes');
 smalltalk.addClass('Metaclass', smalltalk.Behavior, [], 'Kernel-Classes');
-smalltalk.Metaclass.comment="Metaclass is the root of the class hierarchy.\x0a\x0aMetaclass instances are metaclasses, one for each real class. \x0aMetaclass instances have a single instance, which they hold onto, which is the class that they are the metaclass of."
+smalltalk.Metaclass.comment="Metaclass is the root of the class hierarchy.\x0a\x0aMetaclass instances are metaclasses, one for each real class.\x0aMetaclass instances have a single instance, which they hold onto, which is the class that they are the metaclass of."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_asJavascript",
 "_asJavascript",
 smalltalk.method({
 smalltalk.method({
@@ -1042,7 +1042,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 $1=_st(_st("smalltalk.").__comma(_st(_st(self)._instanceClass())._name())).__comma(".klass");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asJavascript",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"asJavascript",{},smalltalk.Metaclass)})},
 args: [],
 args: [],
 source: "asJavascript\x0a\x09^ 'smalltalk.', self instanceClass name, '.klass'",
 source: "asJavascript\x0a\x09^ 'smalltalk.', self instanceClass name, '.klass'",
 messageSends: [",", "name", "instanceClass"],
 messageSends: [",", "name", "instanceClass"],
@@ -1072,9 +1072,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_("
 return _st(stream)._nextPutAll_("'");
 return _st(stream)._nextPutAll_("'");
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"definition",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"definition",{},smalltalk.Metaclass)})},
 args: [],
 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: '''' ]",
+source: "definition\x0a\x09^ String streamContents: [ :stream |\x0a\x09\x09stream\x0a\x09\x09\x09nextPutAll: self asString;\x0a\x09\x09\x09nextPutAll: ' class ';\x0a\x09\x09\x09nextPutAll: 'instanceVariableNames: '''.\x0a\x09\x09self instanceVariableNames\x0a\x09\x09\x09do: [ :each | stream nextPutAll: each ]\x0a\x09\x09\x09separatedBy: [ stream nextPutAll: ' ' ].\x0a\x09\x09stream nextPutAll: '''' ]",
 messageSends: ["streamContents:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames"],
 messageSends: ["streamContents:", "nextPutAll:", "asString", "do:separatedBy:", "instanceVariableNames"],
 referencedClasses: ["String"]
 referencedClasses: ["String"]
 }),
 }),
@@ -1088,7 +1088,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.instanceClass;
 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: [],
 args: [],
 source: "instanceClass\x0a\x09<return self.instanceClass>",
 source: "instanceClass\x0a\x09<return self.instanceClass>",
 messageSends: [],
 messageSends: [],
@@ -1104,9 +1104,9 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._class_instanceVariableNames_(self,aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection}, smalltalk.Metaclass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection},smalltalk.Metaclass)})},
 args: ["aCollection"],
 args: ["aCollection"],
-source: "instanceVariableNames: aCollection\x0a\x09ClassBuilder new\x0a\x09    class: self instanceVariableNames: aCollection",
+source: "instanceVariableNames: aCollection\x0a\x09ClassBuilder new\x0a\x09\x09class: self instanceVariableNames: aCollection",
 messageSends: ["class:instanceVariableNames:", "new"],
 messageSends: ["class:instanceVariableNames:", "new"],
 referencedClasses: ["ClassBuilder"]
 referencedClasses: ["ClassBuilder"]
 }),
 }),
@@ -1120,7 +1120,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return true;
 return smalltalk.withContext(function($ctx1) { 
return true;
-}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"isMetaclass",{},smalltalk.Metaclass)})},
 args: [],
 args: [],
 source: "isMetaclass\x0a\x09^true",
 source: "isMetaclass\x0a\x09^true",
 messageSends: [],
 messageSends: [],
@@ -1138,7 +1138,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 $1=_st(_st(_st(self)._instanceClass())._name()).__comma(" class");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Metaclass)})},
 args: [],
 args: [],
 source: "printString\x0a\x09^self instanceClass name, ' class'",
 source: "printString\x0a\x09^self instanceClass name, ' class'",
 messageSends: [",", "name", "instanceClass"],
 messageSends: [",", "name", "instanceClass"],
@@ -1156,7 +1156,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self;
 $1=self;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theMetaClass",{},smalltalk.Metaclass)})},
 args: [],
 args: [],
 source: "theMetaClass\x0a\x09^ self",
 source: "theMetaClass\x0a\x09^ self",
 messageSends: [],
 messageSends: [],
@@ -1174,7 +1174,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._instanceClass();
 $1=_st(self)._instanceClass();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{}, smalltalk.Metaclass)})},
+}, function($ctx1) {$ctx1.fill(self,"theNonMetaClass",{},smalltalk.Metaclass)})},
 args: [],
 args: [],
 source: "theNonMetaClass\x0a\x09^ self instanceClass",
 source: "theNonMetaClass\x0a\x09^ self instanceClass",
 messageSends: ["instanceClass"],
 messageSends: ["instanceClass"],
@@ -1208,9 +1208,9 @@ return $3;
 };
 };
 $4=_st(self)._basicAddSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
 $4=_st(self)._basicAddSubclassOf_named_instanceVariableNames_package_(aClass,aString,aCollection,packageName);
 return $4;
 return $4;
-}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName,theClass:theClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"addSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName,theClass:theClass},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString", "aCollection", "packageName"],
 args: ["aClass", "aString", "aCollection", "packageName"],
-source: "addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a    | theClass |\x0a    \x0a    theClass := Smalltalk current at: aString.\x0a    \x0a   \x09theClass ifNotNil: [ \x0a    \x09theClass superclass == aClass ifFalse: [\x0a    \x09\x09^ self \x0a        \x09\x09migrateClassNamed: aString \x0a           \x09 \x09superclass: aClass \x0a           \x09 \x09instanceVariableNames: aCollection \x0a            \x09package: packageName ] ].\x0a\x0a\x09^ self \x0a    \x09basicAddSubclassOf: aClass \x0a        named: aString \x0a        instanceVariableNames: aCollection \x0a        package: packageName",
+source: "addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09| theClass |\x0a\x09\x0a\x09theClass := Smalltalk current at: aString.\x0a\x09\x0a\x09theClass ifNotNil: [\x0a\x09\x09theClass superclass == aClass ifFalse: [\x0a\x09\x09\x09^ self\x0a\x09\x09\x09\x09migrateClassNamed: aString\x0a\x09\x09\x09\x09superclass: aClass\x0a\x09\x09\x09\x09instanceVariableNames: aCollection\x0a\x09\x09\x09\x09package: packageName ] ].\x0a\x0a\x09^ self\x0a\x09\x09basicAddSubclassOf: aClass\x0a\x09\x09named: aString\x0a\x09\x09instanceVariableNames: aCollection\x0a\x09\x09package: packageName",
 messageSends: ["at:", "current", "ifNotNil:", "ifFalse:", "migrateClassNamed:superclass:instanceVariableNames:package:", "==", "superclass", "basicAddSubclassOf:named:instanceVariableNames:package:"],
 messageSends: ["at:", "current", "ifNotNil:", "ifFalse:", "migrateClassNamed:superclass:instanceVariableNames:package:", "==", "superclass", "basicAddSubclassOf:named:instanceVariableNames:package:"],
 referencedClasses: ["Smalltalk"]
 referencedClasses: ["Smalltalk"]
 }),
 }),
@@ -1227,7 +1227,7 @@ return smalltalk.withContext(function($ctx1) {
 		smalltalk.addClass(aString, aClass, aCollection, packageName);
 		smalltalk.addClass(aString, aClass, aCollection, packageName);
 		return smalltalk[aString]
 		return smalltalk[aString]
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString", "aCollection", "packageName"],
 args: ["aClass", "aString", "aCollection", "packageName"],
 source: "basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<\x0a\x09\x09smalltalk.addClass(aString, aClass, aCollection, packageName);\x0a\x09\x09return smalltalk[aString]\x0a\x09>",
 source: "basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<\x0a\x09\x09smalltalk.addClass(aString, aClass, aCollection, packageName);\x0a\x09\x09return smalltalk[aString]\x0a\x09>",
 messageSends: [],
 messageSends: [],
@@ -1243,7 +1243,7 @@ category: 'private',
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicClass_instanceVariables_(aClass,_st(self)._instanceVariableNamesFor_(aString));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicClass_instanceVariables_(aClass,_st(self)._instanceVariableNamesFor_(aString));
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariableNames:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 args: ["aClass", "aString"],
 source: "basicClass: aClass instanceVariableNames: aString\x0a\x09self basicClass: aClass instanceVariables: (self instanceVariableNamesFor: aString)",
 source: "basicClass: aClass instanceVariableNames: aString\x0a\x09self basicClass: aClass instanceVariables: (self instanceVariableNamesFor: aString)",
 messageSends: ["basicClass:instanceVariables:", "instanceVariableNamesFor:"],
 messageSends: ["basicClass:instanceVariables:", "instanceVariableNamesFor:"],
@@ -1264,7 +1264,7 @@ if(! smalltalk.assert($1)){
 _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 _st(self)._error_(_st(_st(aClass)._name()).__comma(" is not a metaclass"));
 };
 };
 _st(aClass)._basicAt_put_("iVarNames",aCollection);
 _st(aClass)._basicAt_put_("iVarNames",aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection},smalltalk.ClassBuilder)})},
 args: ["aClass", "aCollection"],
 args: ["aClass", "aCollection"],
 source: "basicClass: aClass instanceVariables: aCollection\x0a\x0a\x09aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass'].\x0a\x09aClass basicAt: 'iVarNames' put: aCollection",
 source: "basicClass: aClass instanceVariables: aCollection\x0a\x0a\x09aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass'].\x0a\x09aClass basicAt: 'iVarNames' put: aCollection",
 messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:"],
 messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:"],
@@ -1280,7 +1280,7 @@ category: 'private',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.removeClass(aClass);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.removeClass(aClass);
-return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass},smalltalk.ClassBuilder)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "basicRemoveClass: aClass\x0a\x09<smalltalk.removeClass(aClass)>",
 source: "basicRemoveClass: aClass\x0a\x09<smalltalk.removeClass(aClass)>",
 messageSends: [],
 messageSends: [],
@@ -1300,7 +1300,7 @@ return smalltalk.withContext(function($ctx1) {
 		delete smalltalk[aClass.className];
 		delete smalltalk[aClass.className];
 		aClass.className = aString;
 		aClass.className = aString;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 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>",
 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: [],
 messageSends: [],
@@ -1318,11 +1318,11 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
 		var tmp = aClass.className;
 		var tmp = aClass.className;
 		aClass.className = anotherClass.className;
 		aClass.className = anotherClass.className;
-        anotherClass.className = tmp;
+		anotherClass.className = tmp;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"basicSwapClassNames:with:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSwapClassNames:with:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 args: ["aClass", "anotherClass"],
 args: ["aClass", "anotherClass"],
-source: "basicSwapClassNames: aClass with: anotherClass\x0a\x09<\x0a\x09\x09var tmp = aClass.className;\x0a\x09\x09aClass.className = anotherClass.className;\x0a        anotherClass.className = tmp;\x0a\x09>",
+source: "basicSwapClassNames: aClass with: anotherClass\x0a\x09<\x0a\x09\x09var tmp = aClass.className;\x0a\x09\x09aClass.className = anotherClass.className;\x0a\x09\x09anotherClass.className = tmp;\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1342,9 +1342,9 @@ $1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
 _st($1)._theClass_(aClass);
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:instanceVariableNames:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 args: ["aClass", "aString"],
-source: "class: aClass instanceVariableNames: aString\x0a\x09self basicClass: aClass instanceVariableNames: aString.\x0a    self setupClass: aClass.\x0a    \x0a    SystemAnnouncer current\x0a    \x09announce: (ClassDefinitionChanged new\x0a        \x09theClass: aClass;\x0a            yourself)",
+source: "class: aClass instanceVariableNames: aString\x0a\x09self basicClass: aClass instanceVariableNames: aString.\x0a\x09self setupClass: aClass.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassDefinitionChanged new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
 messageSends: ["basicClass:instanceVariableNames:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
 messageSends: ["basicClass:instanceVariableNames:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
 referencedClasses: ["ClassDefinitionChanged", "SystemAnnouncer"]
 referencedClasses: ["ClassDefinitionChanged", "SystemAnnouncer"]
 }),
 }),
@@ -1363,9 +1363,9 @@ newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(_st(aClas
 _st(self)._copyClass_to_(aClass,newClass);
 _st(self)._copyClass_to_(aClass,newClass);
 $1=newClass;
 $1=newClass;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,aString:aString,newClass:newClass},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 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 copyClass: aClass to: newClass.\x0a    \x0a\x09^newClass",
+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 copyClass: aClass to: newClass.\x0a\x09\x0a\x09^newClass",
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "superclass", "instanceVariableNames", "name", "package", "copyClass:to:"],
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "superclass", "instanceVariableNames", "name", "package", "copyClass:to:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1387,7 +1387,7 @@ _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
 return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._setupClass_(anotherClass);
 _st(self)._setupClass_(anotherClass);
-return self}, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 args: ["aClass", "anotherClass"],
 args: ["aClass", "anotherClass"],
 source: "copyClass: aClass to: anotherClass\x0a\x0a\x09anotherClass comment: aClass comment.\x0a\x0a\x09aClass methodDictionary values do: [ :each |\x0a\x09\x09Compiler new install: each source forClass: anotherClass category: each category ].\x0a\x0a\x09self basicClass: anotherClass class instanceVariables: aClass class instanceVariableNames.\x0a\x0a\x09aClass class methodDictionary values do: [ :each |\x0a\x09\x09Compiler new install: each source forClass: anotherClass class category: each category ].\x0a\x0a\x09self setupClass: anotherClass",
 source: "copyClass: aClass to: anotherClass\x0a\x0a\x09anotherClass comment: aClass comment.\x0a\x0a\x09aClass methodDictionary values do: [ :each |\x0a\x09\x09Compiler new install: each source forClass: anotherClass category: each category ].\x0a\x0a\x09self basicClass: anotherClass class instanceVariables: aClass class instanceVariableNames.\x0a\x0a\x09aClass class methodDictionary values do: [ :each |\x0a\x09\x09Compiler new install: each source forClass: anotherClass class category: each category ].\x0a\x0a\x09self setupClass: anotherClass",
 messageSends: ["comment:", "comment", "do:", "install:forClass:category:", "source", "category", "new", "values", "methodDictionary", "basicClass:instanceVariables:", "class", "instanceVariableNames", "setupClass:"],
 messageSends: ["comment:", "comment", "do:", "install:forClass:category:", "source", "category", "new", "values", "methodDictionary", "basicClass:instanceVariables:", "class", "instanceVariableNames", "setupClass:"],
@@ -1408,9 +1408,9 @@ _st(aBehavior)._addCompiledMethod_(aCompiledMethod);
 _st(self)._setupClass_(aBehavior);
 _st(self)._setupClass_(aBehavior);
 $1=aCompiledMethod;
 $1=aCompiledMethod;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"installMethod:forClass:category:",{aCompiledMethod:aCompiledMethod,aBehavior:aBehavior,aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"installMethod:forClass:category:",{aCompiledMethod:aCompiledMethod,aBehavior:aBehavior,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aCompiledMethod", "aBehavior", "aString"],
 args: ["aCompiledMethod", "aBehavior", "aString"],
-source: "installMethod: aCompiledMethod forClass: aBehavior category: aString\x0a\x09aCompiledMethod category: aString.\x0a\x09aBehavior addCompiledMethod: aCompiledMethod.\x0a    self setupClass: aBehavior.\x0a\x09^aCompiledMethod",
+source: "installMethod: aCompiledMethod forClass: aBehavior category: aString\x0a\x09aCompiledMethod category: aString.\x0a\x09aBehavior addCompiledMethod: aCompiledMethod.\x0a\x09self setupClass: aBehavior.\x0a\x09^aCompiledMethod",
 messageSends: ["category:", "addCompiledMethod:", "setupClass:"],
 messageSends: ["category:", "addCompiledMethod:", "setupClass:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1428,7 +1428,7 @@ $1=_st(_st(aString)._tokenize_(" "))._reject_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"instanceVariableNamesFor:",{aString:aString},smalltalk.ClassBuilder)})},
 args: ["aString"],
 args: ["aString"],
 source: "instanceVariableNamesFor: aString\x0a\x09^(aString tokenize: ' ') reject: [ :each | each isEmpty ]",
 source: "instanceVariableNamesFor: aString\x0a\x09^(aString tokenize: ' ') reject: [ :each | each isEmpty ]",
 messageSends: ["reject:", "isEmpty", "tokenize:"],
 messageSends: ["reject:", "isEmpty", "tokenize:"],
@@ -1445,9 +1445,9 @@ fn: function (aClass,anotherClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(_st(aClass)._name());
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(_st(aClass)._name());
 _st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(_st(aClass)._name(),anotherClass,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
 _st(self)._migrateClassNamed_superclass_instanceVariableNames_package_(_st(aClass)._name(),anotherClass,_st(aClass)._instanceVariableNames(),_st(_st(aClass)._package())._name());
-return self}, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass},smalltalk.ClassBuilder)})},
 args: ["aClass", "anotherClass"],
 args: ["aClass", "anotherClass"],
-source: "migrateClass: aClass superclass: anotherClass\x0a\x09console log: aClass name.\x0a\x09self \x0a    \x09migrateClassNamed: aClass name\x0a        superclass: anotherClass\x0a        instanceVariableNames: aClass instanceVariableNames\x0a        package: aClass package name",
+source: "migrateClass: aClass superclass: anotherClass\x0a\x09console log: aClass name.\x0a\x09self\x0a\x09\x09migrateClassNamed: aClass name\x0a\x09\x09superclass: anotherClass\x0a\x09\x09instanceVariableNames: aClass instanceVariableNames\x0a\x09\x09package: aClass package name",
 messageSends: ["log:", "name", "migrateClassNamed:superclass:instanceVariableNames:package:", "instanceVariableNames", "package"],
 messageSends: ["log:", "name", "migrateClassNamed:superclass:instanceVariableNames:package:", "instanceVariableNames", "package"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1484,9 +1484,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._migrateClass_su
 _st(self)._basicRemoveClass_(oldClass);
 _st(self)._basicRemoveClass_(oldClass);
 $5=newClass;
 $5=newClass;
 return $5;
 return $5;
-}, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{aString:aString,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass,tmp:tmp}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{aString:aString,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass,tmp:tmp},smalltalk.ClassBuilder)})},
 args: ["aString", "aClass", "aCollection", "packageName"],
 args: ["aString", "aClass", "aCollection", "packageName"],
-source: "migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName\x0a\x09| oldClass newClass tmp |\x0a    \x0a    tmp := 'new*', aString.\x0a    oldClass := Smalltalk current at: aString.\x0a    \x0a    newClass := self \x0a\x09\x09addSubclassOf: aClass\x0a\x09\x09named: tmp\x0a\x09\x09instanceVariableNames: aCollection\x0a\x09\x09package: packageName.\x0a\x0a\x09self basicSwapClassNames: oldClass with: newClass.\x0a\x0a\x09[ self copyClass: oldClass to: newClass ]\x0a\x09\x09on: Error\x0a\x09\x09do: [ :exception |\x0a\x09\x09\x09self\x0a            \x09basicSwapClassNames: oldClass with: newClass;\x0a            \x09basicRemoveClass: newClass.\x0a            exception signal ].\x0a\x0a\x09self\x0a\x09\x09rawRenameClass: oldClass to: tmp;\x0a        rawRenameClass: newClass to: aString.\x0a\x0a\x09oldClass subclasses do: [ :each |\x0a    \x09self migrateClass: each superclass: newClass ].\x0a\x0a    self basicRemoveClass: oldClass.\x0a\x09^newClass",
+source: "migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName\x0a\x09| oldClass newClass tmp |\x0a\x09\x0a\x09tmp := 'new*', aString.\x0a\x09oldClass := Smalltalk current at: aString.\x0a\x09\x0a\x09newClass := self\x0a\x09\x09addSubclassOf: aClass\x0a\x09\x09named: tmp\x0a\x09\x09instanceVariableNames: aCollection\x0a\x09\x09package: packageName.\x0a\x0a\x09self basicSwapClassNames: oldClass with: newClass.\x0a\x0a\x09[ self copyClass: oldClass to: newClass ]\x0a\x09\x09on: Error\x0a\x09\x09do: [ :exception |\x0a\x09\x09\x09self\x0a\x09\x09\x09\x09basicSwapClassNames: oldClass with: newClass;\x0a\x09\x09\x09\x09basicRemoveClass: newClass.\x0a\x09\x09\x09exception signal ].\x0a\x0a\x09self\x0a\x09\x09rawRenameClass: oldClass to: tmp;\x0a\x09\x09rawRenameClass: newClass to: aString.\x0a\x0a\x09oldClass subclasses do: [ :each |\x0a\x09\x09self migrateClass: each superclass: newClass ].\x0a\x0a\x09self basicRemoveClass: oldClass.\x0a\x09^newClass",
 messageSends: [",", "at:", "current", "addSubclassOf:named:instanceVariableNames:package:", "basicSwapClassNames:with:", "on:do:", "basicRemoveClass:", "signal", "copyClass:to:", "rawRenameClass:to:", "do:", "migrateClass:superclass:", "subclasses"],
 messageSends: [",", "at:", "current", "addSubclassOf:named:instanceVariableNames:package:", "basicSwapClassNames:with:", "on:do:", "basicRemoveClass:", "signal", "copyClass:to:", "rawRenameClass:to:", "do:", "migrateClass:superclass:", "subclasses"],
 referencedClasses: ["Smalltalk", "Error"]
 referencedClasses: ["Smalltalk", "Error"]
 }),
 }),
@@ -1502,7 +1502,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
 		smalltalk[aString] = aClass;
 		smalltalk[aString] = aClass;
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"rawRenameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"rawRenameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 args: ["aClass", "aString"],
 source: "rawRenameClass: aClass to: aString\x0a\x09<\x0a\x09\x09smalltalk[aString] = aClass;\x0a\x09>",
 source: "rawRenameClass: aClass to: aString\x0a\x09<\x0a\x09\x09smalltalk[aString] = aClass;\x0a\x09>",
 messageSends: [],
 messageSends: [],
@@ -1523,9 +1523,9 @@ $1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
 _st($1)._theClass_(aClass);
 _st($1)._theClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
-return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 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)",
+source: "renameClass: aClass to: aString\x0a\x09self basicRenameClass: aClass to: aString.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRenamed new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"],
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"],
 referencedClasses: ["ClassRenamed", "SystemAnnouncer"]
 referencedClasses: ["ClassRenamed", "SystemAnnouncer"]
 }),
 }),
@@ -1539,7 +1539,7 @@ category: 'public',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.init(aClass);;
-return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass}, smalltalk.ClassBuilder)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass},smalltalk.ClassBuilder)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "setupClass: aClass\x0a\x09<smalltalk.init(aClass);>",
 source: "setupClass: aClass\x0a\x09<smalltalk.init(aClass);>",
 messageSends: [],
 messageSends: [],
@@ -1557,7 +1557,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 $1=_st(self)._superclass_subclass_instanceVariableNames_package_(aClass,aString,"",nil);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString}, smalltalk.ClassBuilder)})},
+}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:",{aClass:aClass,aString:aString},smalltalk.ClassBuilder)})},
 args: ["aClass", "aString"],
 args: ["aClass", "aString"],
 source: "superclass: aClass subclass: aString\x0a\x09^self superclass: aClass subclass: aString instanceVariableNames: '' package: nil",
 source: "superclass: aClass subclass: aString\x0a\x09^self superclass: aClass subclass: aString instanceVariableNames: '' package: nil",
 messageSends: ["superclass:subclass:instanceVariableNames:package:"],
 messageSends: ["superclass:subclass:instanceVariableNames:package:"],
@@ -1592,9 +1592,9 @@ $8=_st($7)._yourself();
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 _st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
 $9=newClass;
 $9=newClass;
 return $9;
 return $9;
-}, function($ctx1) {$ctx1.fill(self,"superclass:subclass:instanceVariableNames:package:",{aClass:aClass,aString:aString,aString2:aString2,aString3: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"],
 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",
+source: "superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09| newClass |\x0a\x09\x0a\x09newClass := self addSubclassOf: aClass\x0a\x09\x09named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)\x0a\x09\x09package: (aString3 ifNil: ['unclassified']).\x0a\x09self setupClass: newClass.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassAdded new\x0a\x09\x09\x09theClass: newClass;\x0a\x09\x09\x09yourself).\x0a\x09\x0a\x09^newClass",
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
 messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
 referencedClasses: ["ClassAdded", "SystemAnnouncer"]
 referencedClasses: ["ClassAdded", "SystemAnnouncer"]
 }),
 }),
@@ -1613,7 +1613,7 @@ fn: function (aClass,aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 self["@category"]=aString;
 self["@category"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:category:",{aClass:aClass,aString:aString},smalltalk.ClassCategoryReader)})},
 args: ["aClass", "aString"],
 args: ["aClass", "aString"],
 source: "class: aClass category: aString\x0a\x09class := aClass.\x0a\x09category := aString",
 source: "class: aClass category: aString\x0a\x09class := aClass.\x0a\x09category := aString",
 messageSends: [],
 messageSends: [],
@@ -1629,7 +1629,7 @@ category: 'private',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
 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:aString}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString},smalltalk.ClassCategoryReader)})},
 args: ["aString"],
 args: ["aString"],
 source: "compileMethod: aString\x0a\x09Compiler new install: aString forClass: class category: category",
 source: "compileMethod: aString\x0a\x09Compiler new install: aString forClass: class category: category",
 messageSends: ["install:forClass:category:", "new"],
 messageSends: ["install:forClass:category:", "new"],
@@ -1645,7 +1645,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ClassCategoryReader)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09super initialize.",
 source: "initialize\x0a\x09super initialize.",
 messageSends: ["initialize"],
 messageSends: ["initialize"],
@@ -1669,9 +1669,9 @@ return _st(chunk)._isEmpty();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(self["@class"]);
 _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(self["@class"]);
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCategoryReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk},smalltalk.ClassCategoryReader)})},
 args: ["aChunkParser"],
 args: ["aChunkParser"],
-source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09[chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty] whileFalse: [\x0a\x09    self compileMethod: chunk].\x0a\x09ClassBuilder new setupClass: class",
+source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09[chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty] whileFalse: [\x0a\x09\x09self compileMethod: chunk].\x0a\x09ClassBuilder new setupClass: class",
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"],
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"],
 referencedClasses: ["ClassBuilder"]
 referencedClasses: ["ClassBuilder"]
 }),
 }),
@@ -1689,7 +1689,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@class"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aClass:aClass},smalltalk.ClassCommentReader)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "class: aClass\x0a\x09class := aClass",
 source: "class: aClass\x0a\x09class := aClass",
 messageSends: [],
 messageSends: [],
@@ -1705,7 +1705,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ClassCommentReader)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09super initialize.",
 source: "initialize\x0a\x09super initialize.",
 messageSends: ["initialize"],
 messageSends: ["initialize"],
@@ -1727,9 +1727,9 @@ $1=_st(chunk)._isEmpty();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._setComment_(chunk);
 _st(self)._setComment_(chunk);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk},smalltalk.ClassCommentReader)})},
 args: ["aChunkParser"],
 args: ["aChunkParser"],
-source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty ifFalse: [\x0a\x09    self setComment: chunk].",
+source: "scanFrom: aChunkParser\x0a\x09| chunk |\x0a\x09chunk := aChunkParser nextChunk.\x0a\x09chunk isEmpty ifFalse: [\x0a\x09\x09self setComment: chunk].",
 messageSends: ["nextChunk", "ifFalse:", "setComment:", "isEmpty"],
 messageSends: ["nextChunk", "ifFalse:", "setComment:", "isEmpty"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1743,9 +1743,9 @@ category: 'private',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self["@class"])._comment_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString}, smalltalk.ClassCommentReader)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setComment:",{aString:aString},smalltalk.ClassCommentReader)})},
 args: ["aString"],
 args: ["aString"],
-source: "setComment: aString\x0a    class comment: aString",
+source: "setComment: aString\x0a\x09class comment: aString",
 messageSends: ["comment:"],
 messageSends: ["comment:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1776,7 +1776,7 @@ return _st(others)._add_(each);
 self["@nodes"]=_st(children)._collect_((function(each){
 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)));
 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:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others},smalltalk.ClassSorterNode)})},
 args: ["aCollection"],
 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]",
 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"],
 messageSends: ["do:", "ifTrue:ifFalse:", "add:", "=", "theClass", "superclass", "collect:", "on:classes:level:", "+", "level"],
@@ -1794,7 +1794,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@level"];
 $1=self["@level"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"level",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"level",{},smalltalk.ClassSorterNode)})},
 args: [],
 args: [],
 source: "level\x0a\x09^level",
 source: "level\x0a\x09^level",
 messageSends: [],
 messageSends: [],
@@ -1810,7 +1810,7 @@ category: 'accessing',
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@level"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"level:",{anInteger:anInteger},smalltalk.ClassSorterNode)})},
 args: ["anInteger"],
 args: ["anInteger"],
 source: "level: anInteger\x0a\x09level := anInteger",
 source: "level: anInteger\x0a\x09level := anInteger",
 messageSends: [],
 messageSends: [],
@@ -1828,7 +1828,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@nodes"];
 $1=self["@nodes"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"nodes",{},smalltalk.ClassSorterNode)})},
 args: [],
 args: [],
 source: "nodes\x0a\x09^nodes",
 source: "nodes\x0a\x09^nodes",
 messageSends: [],
 messageSends: [],
@@ -1846,7 +1846,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@theClass"];
 $1=self["@theClass"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.ClassSorterNode)})},
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ClassSorterNode)})},
 args: [],
 args: [],
 source: "theClass\x0a\x09^theClass",
 source: "theClass\x0a\x09^theClass",
 messageSends: [],
 messageSends: [],
@@ -1862,7 +1862,7 @@ category: 'accessing',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
 return smalltalk.withContext(function($ctx1) { 
self["@theClass"]=aClass;
-return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ClassSorterNode)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "theClass: aClass\x0a\x09theClass := aClass",
 source: "theClass: aClass\x0a\x09theClass := aClass",
 messageSends: [],
 messageSends: [],
@@ -1883,7 +1883,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass()
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._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);
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(aCollection);
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection}, smalltalk.ClassSorterNode)})},
+return self}, function($ctx1) {$ctx1.fill(self,"traverseClassesWith:",{aCollection:aCollection},smalltalk.ClassSorterNode)})},
 args: ["aCollection"],
 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 ].",
 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"],
 messageSends: ["add:", "theClass", "do:", "traverseClassesWith:", "sorted:", "<=", "name", "nodes"],
@@ -1907,7 +1907,7 @@ _st($2)._getNodesFrom_(aCollection);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:classes:level:",{aClass:aClass,aCollection:aCollection,anInteger: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"],
 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",
 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"],
 messageSends: ["theClass:", "new", "level:", "getNodesFrom:", "yourself"],

文件差异内容过多而无法显示
+ 145 - 224
js/Kernel-Collections.deploy.js


文件差异内容过多而无法显示
+ 157 - 230
js/Kernel-Collections.js


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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('Kernel-Exceptions', {});
+smalltalk.addPackage('Kernel-Exceptions');
 smalltalk.addClass('Error', smalltalk.Object, ['messageText'], 'Kernel-Exceptions');
 smalltalk.addClass('Error', smalltalk.Object, ['messageText'], 'Kernel-Exceptions');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_context",
 "_context",
@@ -7,7 +7,7 @@ selector: "context",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.context;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -18,7 +18,7 @@ selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(_st("Errorclass: ").__comma(_st(_st(self)._class())._name()));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(_st("Errorclass: ").__comma(_st(_st(self)._class())._name()));
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Error)})},
 messageSends: ["messageText:", ",", "name", "class"]}),
 messageSends: ["messageText:", ",", "name", "class"]}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -29,7 +29,7 @@ selector: "isSmalltalkError",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.smalltalkError === true;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -40,7 +40,7 @@ selector: "jsStack",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.stack;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -53,7 +53,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageText"];
 $1=self["@messageText"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.Error)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.Error)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -64,7 +64,7 @@ selector: "messageText:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString},smalltalk.Error)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -75,7 +75,7 @@ selector: "signal",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -87,7 +87,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 _st(self)._signal();
 _st(self)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString},smalltalk.Error)})},
 messageSends: ["messageText:", "signal"]}),
 messageSends: ["messageText:", "signal"]}),
 smalltalk.Error);
 smalltalk.Error);
 
 
@@ -101,7 +101,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal();
 $1=_st(_st(self)._new())._signal();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal",{},smalltalk.Error.klass)})},
 messageSends: ["signal", "new"]}),
 messageSends: ["signal", "new"]}),
 smalltalk.Error.klass);
 smalltalk.Error.klass);
 
 
@@ -114,7 +114,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal_(aString);
 $1=_st(_st(self)._new())._signal_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString},smalltalk.Error.klass)})},
 messageSends: ["signal:", "new"]}),
 messageSends: ["signal:", "new"]}),
 smalltalk.Error.klass);
 smalltalk.Error.klass);
 
 
@@ -127,7 +127,7 @@ selector: "context:",
 fn: function (aMethodContext){
 fn: function (aMethodContext){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = aMethodContext;
 return smalltalk.withContext(function($ctx1) { 
self.context = aMethodContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext},smalltalk.JavaScriptException)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.JavaScriptException);
 smalltalk.JavaScriptException);
 
 
@@ -140,7 +140,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@exception"];
 $1=self["@exception"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exception",{}, smalltalk.JavaScriptException)})},
+}, function($ctx1) {$ctx1.fill(self,"exception",{},smalltalk.JavaScriptException)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.JavaScriptException);
 smalltalk.JavaScriptException);
 
 
@@ -151,7 +151,7 @@ selector: "exception:",
 fn: function (anException){
 fn: function (anException){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@exception"]=anException;
 return smalltalk.withContext(function($ctx1) { 
self["@exception"]=anException;
-return self}, function($ctx1) {$ctx1.fill(self,"exception:",{anException:anException}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exception:",{anException:anException},smalltalk.JavaScriptException)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.JavaScriptException);
 smalltalk.JavaScriptException);
 
 
@@ -162,7 +162,7 @@ selector: "messageText",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return 'JavaScript exception: ' + self["@exception"].toString();
 return smalltalk.withContext(function($ctx1) { 
return 'JavaScript exception: ' + self["@exception"].toString();
-return self}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.JavaScriptException)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.JavaScriptException);
 smalltalk.JavaScriptException);
 
 
@@ -179,7 +179,7 @@ _st($2)._exception_(anException);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{anException:anException}, smalltalk.JavaScriptException.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{anException:anException},smalltalk.JavaScriptException.klass)})},
 messageSends: ["exception:", "new", "yourself"]}),
 messageSends: ["exception:", "new", "yourself"]}),
 smalltalk.JavaScriptException.klass);
 smalltalk.JavaScriptException.klass);
 
 
@@ -196,7 +196,7 @@ _st($2)._context_(aMethodContext);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:context:",{anException:anException,aMethodContext:aMethodContext}, smalltalk.JavaScriptException.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:context:",{anException:anException,aMethodContext:aMethodContext},smalltalk.JavaScriptException.klass)})},
 messageSends: ["exception:", "new", "context:", "yourself"]}),
 messageSends: ["exception:", "new", "context:", "yourself"]}),
 smalltalk.JavaScriptException.klass);
 smalltalk.JavaScriptException.klass);
 
 
@@ -211,7 +211,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@message"];
 $1=self["@message"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"message",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"message",{},smalltalk.MessageNotUnderstood)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MessageNotUnderstood);
 smalltalk.MessageNotUnderstood);
 
 
@@ -222,7 +222,7 @@ selector: "message:",
 fn: function (aMessage){
 fn: function (aMessage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
-return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage},smalltalk.MessageNotUnderstood)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MessageNotUnderstood);
 smalltalk.MessageNotUnderstood);
 
 
@@ -235,7 +235,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 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());
 $1=_st(_st(_st(_st(self)._receiver())._asString()).__comma(" does not understand #")).__comma(_st(_st(self)._message())._selector());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.MessageNotUnderstood)})},
 messageSends: [",", "selector", "message", "asString", "receiver"]}),
 messageSends: [",", "selector", "message", "asString", "receiver"]}),
 smalltalk.MessageNotUnderstood);
 smalltalk.MessageNotUnderstood);
 
 
@@ -248,7 +248,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.MessageNotUnderstood)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MessageNotUnderstood);
 smalltalk.MessageNotUnderstood);
 
 
@@ -259,7 +259,7 @@ selector: "receiver:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject},smalltalk.MessageNotUnderstood)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MessageNotUnderstood);
 smalltalk.MessageNotUnderstood);
 
 
@@ -275,7 +275,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@object"];
 $1=self["@object"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"object",{}, smalltalk.NonBooleanReceiver)})},
+}, function($ctx1) {$ctx1.fill(self,"object",{},smalltalk.NonBooleanReceiver)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NonBooleanReceiver);
 smalltalk.NonBooleanReceiver);
 
 
@@ -286,7 +286,7 @@ selector: "object:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject}, smalltalk.NonBooleanReceiver)})},
+return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject},smalltalk.NonBooleanReceiver)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NonBooleanReceiver);
 smalltalk.NonBooleanReceiver);
 
 
@@ -307,7 +307,7 @@ $1;
 _st(self)._logErrorContext_(_st(anError)._context());
 _st(self)._logErrorContext_(_st(anError)._context());
 };
 };
 _st(self)._logError_(anError);
 _st(self)._logError_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},smalltalk.ErrorHandler)})},
 messageSends: ["ifNotNil:", "logErrorContext:", "context", "logError:"]}),
 messageSends: ["ifNotNil:", "logErrorContext:", "context", "logError:"]}),
 smalltalk.ErrorHandler);
 smalltalk.ErrorHandler);
 
 
@@ -318,7 +318,7 @@ selector: "log:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString},smalltalk.ErrorHandler)})},
 messageSends: ["log:"]}),
 messageSends: ["log:"]}),
 smalltalk.ErrorHandler);
 smalltalk.ErrorHandler);
 
 
@@ -336,7 +336,7 @@ $1;
 _st(self)._logContext_(_st(aContext)._home());
 _st(self)._logContext_(_st(aContext)._home());
 };
 };
 _st(self)._log_(_st(_st(_st(_st(aContext)._receiver())._asString()).__comma(">>")).__comma(_st(_st(aContext)._selector())._asString()));
 _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:aContext}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logContext:",{aContext:aContext},smalltalk.ErrorHandler)})},
 messageSends: ["ifNotNil:", "logContext:", "home", "log:", ",", "asString", "selector", "receiver"]}),
 messageSends: ["ifNotNil:", "logContext:", "home", "log:", ",", "asString", "selector", "receiver"]}),
 smalltalk.ErrorHandler);
 smalltalk.ErrorHandler);
 
 
@@ -347,7 +347,7 @@ selector: "logError:",
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
-return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError},smalltalk.ErrorHandler)})},
 messageSends: ["log:", "messageText"]}),
 messageSends: ["log:", "messageText"]}),
 smalltalk.ErrorHandler);
 smalltalk.ErrorHandler);
 
 
@@ -369,7 +369,7 @@ $2;
 _st(self)._logContext_(_st(aContext)._home());
 _st(self)._logContext_(_st(aContext)._home());
 };
 };
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext},smalltalk.ErrorHandler)})},
 messageSends: ["ifNotNil:", "logContext:", "home"]}),
 messageSends: ["ifNotNil:", "logContext:", "home"]}),
 smalltalk.ErrorHandler);
 smalltalk.ErrorHandler);
 
 
@@ -390,7 +390,7 @@ $1=self["@current"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.ErrorHandler.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{},smalltalk.ErrorHandler.klass)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.ErrorHandler.klass);
 smalltalk.ErrorHandler.klass);
 
 
@@ -401,7 +401,7 @@ selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._register();
 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)})},
 messageSends: ["register"]}),
 messageSends: ["register"]}),
 smalltalk.ErrorHandler.klass);
 smalltalk.ErrorHandler.klass);
 
 
@@ -412,7 +412,7 @@ selector: "register",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.ErrorHandler || ErrorHandler))._setCurrent_(_st(self)._new());
 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)})},
 messageSends: ["setCurrent:", "new"]}),
 messageSends: ["setCurrent:", "new"]}),
 smalltalk.ErrorHandler.klass);
 smalltalk.ErrorHandler.klass);
 
 
@@ -423,7 +423,7 @@ selector: "setCurrent:",
 fn: function (anHandler){
 fn: function (anHandler){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
-return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler}, smalltalk.ErrorHandler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler},smalltalk.ErrorHandler.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ErrorHandler.klass);
 smalltalk.ErrorHandler.klass);
 
 

+ 39 - 39
js/Kernel-Exceptions.js

@@ -1,6 +1,6 @@
-smalltalk.addPackage('Kernel-Exceptions', {});
+smalltalk.addPackage('Kernel-Exceptions');
 smalltalk.addClass('Error', smalltalk.Object, ['messageText'], 'Kernel-Exceptions');
 smalltalk.addClass('Error', smalltalk.Object, ['messageText'], 'Kernel-Exceptions');
-smalltalk.Error.comment="From the ANSI standard:\x0a\x0aThis protocol describes the behavior of instances of class `Error`. \x0aThese are used to represent error conditions that prevent the normal continuation of processing. \x0aActual error exceptions used by an application may be subclasses of this class.\x0aAs `Error` is explicitly specified  to be subclassable, conforming implementations must implement its behavior in a non-fragile manner."
+smalltalk.Error.comment="From the ANSI standard:\x0a\x0aThis protocol describes the behavior of instances of class `Error`.\x0aThese are used to represent error conditions that prevent the normal continuation of processing.\x0aActual error exceptions used by an application may be subclasses of this class.\x0aAs `Error` is explicitly specified to be subclassable, conforming implementations must implement its behavior in a non-fragile manner."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_context",
 "_context",
 smalltalk.method({
 smalltalk.method({
@@ -9,7 +9,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.context;
 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: [],
 args: [],
 source: "context\x0a\x09<return self.context>",
 source: "context\x0a\x09<return self.context>",
 messageSends: [],
 messageSends: [],
@@ -25,7 +25,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(_st("Errorclass: ").__comma(_st(_st(self)._class())._name()));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(_st("Errorclass: ").__comma(_st(_st(self)._class())._name()));
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Error)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09self messageText: 'Errorclass: ', (self class name).",
 source: "initialize\x0a\x09self messageText: 'Errorclass: ', (self class name).",
 messageSends: ["messageText:", ",", "name", "class"],
 messageSends: ["messageText:", ",", "name", "class"],
@@ -41,7 +41,7 @@ category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.smalltalkError === true;
 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: [],
 args: [],
 source: "isSmalltalkError\x0a\x09<return self.smalltalkError === true>",
 source: "isSmalltalkError\x0a\x09<return self.smalltalkError === true>",
 messageSends: [],
 messageSends: [],
@@ -57,7 +57,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.stack;
 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: [],
 args: [],
 source: "jsStack\x0a\x09<return self.stack>",
 source: "jsStack\x0a\x09<return self.stack>",
 messageSends: [],
 messageSends: [],
@@ -75,7 +75,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@messageText"];
 $1=self["@messageText"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.Error)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.Error)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^messageText",
 source: "messageText\x0a\x09^messageText",
 messageSends: [],
 messageSends: [],
@@ -91,7 +91,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@messageText"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText:",{aString:aString},smalltalk.Error)})},
 args: ["aString"],
 args: ["aString"],
 source: "messageText: aString\x0a\x09messageText := aString",
 source: "messageText: aString\x0a\x09messageText := aString",
 messageSends: [],
 messageSends: [],
@@ -107,7 +107,7 @@ category: 'signaling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
 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: [],
 args: [],
 source: "signal\x0a\x09<self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self)>",
 source: "signal\x0a\x09<self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self)>",
 messageSends: [],
 messageSends: [],
@@ -124,7 +124,7 @@ fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._messageText_(aString);
 _st(self)._signal();
 _st(self)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString},smalltalk.Error)})},
 args: ["aString"],
 args: ["aString"],
 source: "signal: aString\x0a\x09self messageText: aString.\x0a\x09self signal",
 source: "signal: aString\x0a\x09self messageText: aString.\x0a\x09self signal",
 messageSends: ["messageText:", "signal"],
 messageSends: ["messageText:", "signal"],
@@ -143,7 +143,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal();
 $1=_st(_st(self)._new())._signal();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal",{}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal",{},smalltalk.Error.klass)})},
 args: [],
 args: [],
 source: "signal\x0a\x09^self new signal",
 source: "signal\x0a\x09^self new signal",
 messageSends: ["signal", "new"],
 messageSends: ["signal", "new"],
@@ -161,9 +161,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._new())._signal_(aString);
 $1=_st(_st(self)._new())._signal_(aString);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString}, smalltalk.Error.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"signal:",{aString:aString},smalltalk.Error.klass)})},
 args: ["aString"],
 args: ["aString"],
-source: "signal: aString\x0a\x09    ^self new\x0a\x09\x09signal: aString",
+source: "signal: aString\x0a\x09\x09^self new\x0a\x09\x09signal: aString",
 messageSends: ["signal:", "new"],
 messageSends: ["signal:", "new"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -180,9 +180,9 @@ category: 'accessing',
 fn: function (aMethodContext){
 fn: function (aMethodContext){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self.context = aMethodContext;
 return smalltalk.withContext(function($ctx1) { 
self.context = aMethodContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext},smalltalk.JavaScriptException)})},
 args: ["aMethodContext"],
 args: ["aMethodContext"],
-source: "context: aMethodContext\x0a\x09\x22Set the context from the outside.\x0a    See boot.js `inContext()` exception handling\x22\x0a    \x0a    <self.context = aMethodContext>",
+source: "context: aMethodContext\x0a\x09\x22Set the context from the outside.\x0a\x09See boot.js `inContext()` exception handling\x22\x0a\x09\x0a\x09<self.context = aMethodContext>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -198,7 +198,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@exception"];
 $1=self["@exception"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"exception",{}, smalltalk.JavaScriptException)})},
+}, function($ctx1) {$ctx1.fill(self,"exception",{},smalltalk.JavaScriptException)})},
 args: [],
 args: [],
 source: "exception\x0a\x09^ exception",
 source: "exception\x0a\x09^ exception",
 messageSends: [],
 messageSends: [],
@@ -214,7 +214,7 @@ category: 'accessing',
 fn: function (anException){
 fn: function (anException){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@exception"]=anException;
 return smalltalk.withContext(function($ctx1) { 
self["@exception"]=anException;
-return self}, function($ctx1) {$ctx1.fill(self,"exception:",{anException:anException}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"exception:",{anException:anException},smalltalk.JavaScriptException)})},
 args: ["anException"],
 args: ["anException"],
 source: "exception: anException\x0a\x09exception := anException",
 source: "exception: anException\x0a\x09exception := anException",
 messageSends: [],
 messageSends: [],
@@ -230,7 +230,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return 'JavaScript exception: ' + self["@exception"].toString();
 return smalltalk.withContext(function($ctx1) { 
return 'JavaScript exception: ' + self["@exception"].toString();
-return self}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.JavaScriptException)})},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.JavaScriptException)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09<return 'JavaScript exception: ' + self[\x22@exception\x22].toString()>",
 source: "messageText\x0a\x09<return 'JavaScript exception: ' + self[\x22@exception\x22].toString()>",
 messageSends: [],
 messageSends: [],
@@ -252,9 +252,9 @@ _st($2)._exception_(anException);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{anException:anException}, smalltalk.JavaScriptException.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{anException:anException},smalltalk.JavaScriptException.klass)})},
 args: ["anException"],
 args: ["anException"],
-source: "on: anException\x0a\x09^ self new\x0a    \x09exception: anException;\x0a        yourself",
+source: "on: anException\x0a\x09^ self new\x0a\x09\x09exception: anException;\x0a\x09\x09yourself",
 messageSends: ["exception:", "new", "yourself"],
 messageSends: ["exception:", "new", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -274,9 +274,9 @@ _st($2)._context_(aMethodContext);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:context:",{anException:anException,aMethodContext:aMethodContext}, smalltalk.JavaScriptException.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:context:",{anException:anException,aMethodContext:aMethodContext},smalltalk.JavaScriptException.klass)})},
 args: ["anException", "aMethodContext"],
 args: ["anException", "aMethodContext"],
-source: "on: anException context: aMethodContext\x0a\x09^ self new\x0a    \x09exception: anException;\x0a        context: aMethodContext;\x0a        yourself",
+source: "on: anException context: aMethodContext\x0a\x09^ self new\x0a\x09\x09exception: anException;\x0a\x09\x09context: aMethodContext;\x0a\x09\x09yourself",
 messageSends: ["exception:", "new", "context:", "yourself"],
 messageSends: ["exception:", "new", "context:", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -295,7 +295,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@message"];
 $1=self["@message"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"message",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"message",{},smalltalk.MessageNotUnderstood)})},
 args: [],
 args: [],
 source: "message\x0a\x09^message",
 source: "message\x0a\x09^message",
 messageSends: [],
 messageSends: [],
@@ -311,7 +311,7 @@ category: 'accessing',
 fn: function (aMessage){
 fn: function (aMessage){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
 return smalltalk.withContext(function($ctx1) { 
self["@message"]=aMessage;
-return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"message:",{aMessage:aMessage},smalltalk.MessageNotUnderstood)})},
 args: ["aMessage"],
 args: ["aMessage"],
 source: "message: aMessage\x0a\x09message := aMessage",
 source: "message: aMessage\x0a\x09message := aMessage",
 messageSends: [],
 messageSends: [],
@@ -329,7 +329,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 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());
 $1=_st(_st(_st(_st(self)._receiver())._asString()).__comma(" does not understand #")).__comma(_st(_st(self)._message())._selector());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.MessageNotUnderstood)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^self receiver asString, ' does not understand #', self message selector",
 source: "messageText\x0a\x09^self receiver asString, ' does not understand #', self message selector",
 messageSends: [",", "selector", "message", "asString", "receiver"],
 messageSends: [",", "selector", "message", "asString", "receiver"],
@@ -347,7 +347,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@receiver"];
 $1=self["@receiver"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.MessageNotUnderstood)})},
+}, function($ctx1) {$ctx1.fill(self,"receiver",{},smalltalk.MessageNotUnderstood)})},
 args: [],
 args: [],
 source: "receiver\x0a\x09^receiver",
 source: "receiver\x0a\x09^receiver",
 messageSends: [],
 messageSends: [],
@@ -363,7 +363,7 @@ category: 'accessing',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@receiver"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.MessageNotUnderstood)})},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject},smalltalk.MessageNotUnderstood)})},
 args: ["anObject"],
 args: ["anObject"],
 source: "receiver: anObject\x0a\x09receiver := anObject",
 source: "receiver: anObject\x0a\x09receiver := anObject",
 messageSends: [],
 messageSends: [],
@@ -385,7 +385,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@object"];
 $1=self["@object"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"object",{}, smalltalk.NonBooleanReceiver)})},
+}, function($ctx1) {$ctx1.fill(self,"object",{},smalltalk.NonBooleanReceiver)})},
 args: [],
 args: [],
 source: "object\x0a\x09^ object",
 source: "object\x0a\x09^ object",
 messageSends: [],
 messageSends: [],
@@ -401,7 +401,7 @@ category: 'accessing',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
 return smalltalk.withContext(function($ctx1) { 
self["@object"]=anObject;
-return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject}, smalltalk.NonBooleanReceiver)})},
+return self}, function($ctx1) {$ctx1.fill(self,"object:",{anObject:anObject},smalltalk.NonBooleanReceiver)})},
 args: ["anObject"],
 args: ["anObject"],
 source: "object: anObject\x0a\x09object := anObject",
 source: "object: anObject\x0a\x09object := anObject",
 messageSends: [],
 messageSends: [],
@@ -412,7 +412,7 @@ smalltalk.NonBooleanReceiver);
 
 
 
 
 smalltalk.addClass('ErrorHandler', smalltalk.Object, [], 'Kernel-Exceptions');
 smalltalk.addClass('ErrorHandler', smalltalk.Object, [], 'Kernel-Exceptions');
-smalltalk.ErrorHandler.comment="ErrorHandler is used to manage Smalltalk errors. \x0aSee `boot.js` `handleError()` function.\x0a\x0aSubclasses of `ErrorHandler` can register themselves as the current handler with\x0a`ErrorHandler class >> register`.\x0a\x0aSubclasses may override `#handleError:` to perform an action on the thrown exception.\x0aThe default behavior is to log the error and the context stack to the JavaScript console."
+smalltalk.ErrorHandler.comment="ErrorHandler is used to manage Smalltalk errors.\x0aSee `boot.js` `handleError()` function.\x0a\x0aSubclasses of `ErrorHandler` can register themselves as the current handler with\x0a`ErrorHandler class >> register`.\x0a\x0aSubclasses may override `#handleError:` to perform an action on the thrown exception.\x0aThe default behavior is to log the error and the context stack to the JavaScript console."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_handleError_",
 "_handleError_",
 smalltalk.method({
 smalltalk.method({
@@ -428,7 +428,7 @@ $1;
 _st(self)._logErrorContext_(_st(anError)._context());
 _st(self)._logErrorContext_(_st(anError)._context());
 };
 };
 _st(self)._logError_(anError);
 _st(self)._logError_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"handleError:",{anError:anError},smalltalk.ErrorHandler)})},
 args: ["anError"],
 args: ["anError"],
 source: "handleError: anError\x0a\x09anError context ifNotNil: [self logErrorContext: anError context].\x0a\x09self logError: anError",
 source: "handleError: anError\x0a\x09anError context ifNotNil: [self logErrorContext: anError context].\x0a\x09self logError: anError",
 messageSends: ["ifNotNil:", "logErrorContext:", "context", "logError:"],
 messageSends: ["ifNotNil:", "logErrorContext:", "context", "logError:"],
@@ -444,7 +444,7 @@ category: 'private',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
 return smalltalk.withContext(function($ctx1) { 
_st(console)._log_(aString);
-return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"log:",{aString:aString},smalltalk.ErrorHandler)})},
 args: ["aString"],
 args: ["aString"],
 source: "log: aString\x0a\x09console log: aString",
 source: "log: aString\x0a\x09console log: aString",
 messageSends: ["log:"],
 messageSends: ["log:"],
@@ -467,7 +467,7 @@ $1;
 _st(self)._logContext_(_st(aContext)._home());
 _st(self)._logContext_(_st(aContext)._home());
 };
 };
 _st(self)._log_(_st(_st(_st(_st(aContext)._receiver())._asString()).__comma(">>")).__comma(_st(_st(aContext)._selector())._asString()));
 _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:aContext}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logContext:",{aContext:aContext},smalltalk.ErrorHandler)})},
 args: ["aContext"],
 args: ["aContext"],
 source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home].\x0a\x09self log: aContext receiver asString, '>>', aContext selector asString",
 source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home].\x0a\x09self log: aContext receiver asString, '>>', aContext selector asString",
 messageSends: ["ifNotNil:", "logContext:", "home", "log:", ",", "asString", "selector", "receiver"],
 messageSends: ["ifNotNil:", "logContext:", "home", "log:", ",", "asString", "selector", "receiver"],
@@ -483,7 +483,7 @@ category: 'private',
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._log_(_st(anError)._messageText());
-return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logError:",{anError:anError},smalltalk.ErrorHandler)})},
 args: ["anError"],
 args: ["anError"],
 source: "logError: anError\x0a\x09self log: anError messageText",
 source: "logError: anError\x0a\x09self log: anError messageText",
 messageSends: ["log:", "messageText"],
 messageSends: ["log:", "messageText"],
@@ -510,7 +510,7 @@ $2;
 _st(self)._logContext_(_st(aContext)._home());
 _st(self)._logContext_(_st(aContext)._home());
 };
 };
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext}, smalltalk.ErrorHandler)})},
+return self}, function($ctx1) {$ctx1.fill(self,"logErrorContext:",{aContext:aContext},smalltalk.ErrorHandler)})},
 args: ["aContext"],
 args: ["aContext"],
 source: "logErrorContext: aContext\x0a\x09aContext ifNotNil: [\x0a\x09\x09aContext home ifNotNil: [\x0a\x09\x09\x09self logContext: aContext home]]",
 source: "logErrorContext: aContext\x0a\x09aContext ifNotNil: [\x0a\x09\x09aContext home ifNotNil: [\x0a\x09\x09\x09self logContext: aContext home]]",
 messageSends: ["ifNotNil:", "logContext:", "home"],
 messageSends: ["ifNotNil:", "logContext:", "home"],
@@ -536,7 +536,7 @@ $1=self["@current"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"current",{}, smalltalk.ErrorHandler.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"current",{},smalltalk.ErrorHandler.klass)})},
 args: [],
 args: [],
 source: "current\x0a\x09^current ifNil: [current := self new]",
 source: "current\x0a\x09^current ifNil: [current := self new]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -552,7 +552,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._register();
 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: [],
 args: [],
 source: "initialize\x0a\x09self register",
 source: "initialize\x0a\x09self register",
 messageSends: ["register"],
 messageSends: ["register"],
@@ -568,7 +568,7 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.ErrorHandler || ErrorHandler))._setCurrent_(_st(self)._new());
 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: [],
 args: [],
 source: "register\x0a\x09ErrorHandler setCurrent: self new",
 source: "register\x0a\x09ErrorHandler setCurrent: self new",
 messageSends: ["setCurrent:", "new"],
 messageSends: ["setCurrent:", "new"],
@@ -584,7 +584,7 @@ category: 'accessing',
 fn: function (anHandler){
 fn: function (anHandler){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
 return smalltalk.withContext(function($ctx1) { 
self["@current"]=anHandler;
-return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler}, smalltalk.ErrorHandler.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setCurrent:",{anHandler:anHandler},smalltalk.ErrorHandler.klass)})},
 args: ["anHandler"],
 args: ["anHandler"],
 source: "setCurrent: anHandler\x0a\x09current := anHandler",
 source: "setCurrent: anHandler\x0a\x09current := anHandler",
 messageSends: [],
 messageSends: [],

+ 103 - 103
js/Kernel-Methods.deploy.js

@@ -7,7 +7,7 @@ selector: "applyTo:arguments:",
 fn: function (anObject,aCollection){
 fn: function (anObject,aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -18,7 +18,7 @@ selector: "asCompiledMethod:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.method({selector:aString, fn:self});;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.method({selector:aString, fn:self});;
-return self}, function($ctx1) {$ctx1.fill(self,"asCompiledMethod:",{aString:aString}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"asCompiledMethod:",{aString:aString},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -29,7 +29,7 @@ selector: "compiledSource",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.toString();
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -40,13 +40,13 @@ selector: "currySelf",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	return function () {
-    		var args = [ this ];
-        	args.push.apply(args, arguments);
-        	return self.apply(null, args);
-    	}
+		return function () {
+			var args = [ this ];
+			args.push.apply(args, arguments);
+			return self.apply(null, args);
+		}
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"currySelf",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currySelf",{},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -57,7 +57,7 @@ selector: "ensure:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
-return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -68,7 +68,7 @@ selector: "fork",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ForkPool || ForkPool))._default())._fork_(self);
 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)})},
 messageSends: ["fork:", "default"]}),
 messageSends: ["fork:", "default"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -79,7 +79,7 @@ selector: "new",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self();
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -90,7 +90,7 @@ selector: "newValue:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -101,7 +101,7 @@ selector: "newValue:value:",
 fn: function (anObject,anObject2){
 fn: function (anObject,anObject2){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -112,7 +112,7 @@ selector: "newValue:value:value:",
 fn: function (anObject,anObject2,anObject3){
 fn: function (anObject,anObject2,anObject3){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2,anObject3);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2,anObject3);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:",{anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:",{anObject:anObject,anObject2:anObject2,anObject3:anObject3},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -123,7 +123,7 @@ selector: "numArgs",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.length;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -146,7 +146,7 @@ return _st(smalltalkError)._signal();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({error:error,smalltalkError:smalltalkError},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({error:error,smalltalkError:smalltalkError},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock},smalltalk.BlockClosure)})},
 messageSends: ["try:catch:", "asSmalltalkException:", "current", "ifTrue:ifFalse:", "value:", "signal", "isKindOf:"]}),
 messageSends: ["try:catch:", "asSmalltalkException:", "current", "ifTrue:ifFalse:", "value:", "signal", "isKindOf:"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -159,7 +159,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timeToRun",{}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"timeToRun",{},smalltalk.BlockClosure)})},
 messageSends: ["millisecondsToRun:"]}),
 messageSends: ["millisecondsToRun:"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -170,7 +170,7 @@ selector: "value",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self();;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -181,7 +181,7 @@ selector: "value:",
 fn: function (anArg){
 fn: function (anArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -192,7 +192,7 @@ selector: "value:value:",
 fn: function (firstArg,secondArg){
 fn: function (firstArg,secondArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -203,7 +203,7 @@ selector: "value:value:value:",
 fn: function (firstArg,secondArg,thirdArg){
 fn: function (firstArg,secondArg,thirdArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg:thirdArg}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg:thirdArg},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -214,10 +214,10 @@ selector: "valueWithInterval:",
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var interval = setInterval(self, aNumber);
-    	return smalltalk.Timeout._on_(interval);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
+		var interval = setInterval(self, aNumber);
+		return smalltalk.Timeout._on_(interval);
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -228,7 +228,7 @@ selector: "valueWithPossibleArguments:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -239,10 +239,10 @@ selector: "valueWithTimeout:",
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var timeout = setTimeout(self, aNumber);
-    	return smalltalk.Timeout._on_(timeout);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
+		var timeout = setTimeout(self, aNumber);
+		return smalltalk.Timeout._on_(timeout);
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -254,7 +254,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{},smalltalk.BlockClosure)})},
 messageSends: ["whileFalse:"]}),
 messageSends: ["whileFalse:"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -265,7 +265,7 @@ selector: "whileFalse:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -277,7 +277,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{},smalltalk.BlockClosure)})},
 messageSends: ["whileTrue:"]}),
 messageSends: ["whileTrue:"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -288,7 +288,7 @@ selector: "whileTrue:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
 
 
@@ -302,7 +302,7 @@ selector: "arguments",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.args || [];
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -320,7 +320,7 @@ $1=_st(self)._defaultCategory();
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.CompiledMethod)})},
 messageSends: ["ifNil:", "defaultCategory", "basicAt:"]}),
 messageSends: ["ifNil:", "defaultCategory", "basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -345,7 +345,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._category())
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory},smalltalk.CompiledMethod)})},
 messageSends: ["category", "basicAt:put:", "ifNotNil:", "addElement:", "organization", "methodClass", "ifEmpty:", "removeElement:", "select:", "=", "methods"]}),
 messageSends: ["category", "basicAt:put:", "ifNotNil:", "addElement:", "organization", "methodClass", "ifEmpty:", "removeElement:", "select:", "=", "methods"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -356,7 +356,7 @@ selector: "defaultCategory",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "as yet unclassified";
 return smalltalk.withContext(function($ctx1) { 
return "as yet unclassified";
-}, function($ctx1) {$ctx1.fill(self,"defaultCategory",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultCategory",{},smalltalk.CompiledMethod)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -369,7 +369,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("fn");
 $1=_st(self)._basicAt_("fn");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fn",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"fn",{},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -380,7 +380,7 @@ selector: "fn:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:put:"]}),
 messageSends: ["basicAt:put:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -393,7 +393,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("messageSends");
 $1=_st(self)._basicAt_("messageSends");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -406,7 +406,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("methodClass");
 $1=_st(self)._basicAt_("methodClass");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodClass",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"methodClass",{},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -419,7 +419,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._category();
 $1=_st(self)._category();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"protocol",{},smalltalk.CompiledMethod)})},
 messageSends: ["category"]}),
 messageSends: ["category"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -432,7 +432,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("referencedClasses");
 $1=_st(self)._basicAt_("referencedClasses");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -445,7 +445,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("selector");
 $1=_st(self)._basicAt_("selector");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:"]}),
 messageSends: ["basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -456,7 +456,7 @@ selector: "selector:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:put:"]}),
 messageSends: ["basicAt:put:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -474,7 +474,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.CompiledMethod)})},
 messageSends: ["ifNil:", "basicAt:"]}),
 messageSends: ["ifNil:", "basicAt:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -485,7 +485,7 @@ selector: "source:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.CompiledMethod)})},
 messageSends: ["basicAt:put:"]}),
 messageSends: ["basicAt:put:"]}),
 smalltalk.CompiledMethod);
 smalltalk.CompiledMethod);
 
 
@@ -500,7 +500,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 self["@poolSize"]=_st(self["@poolSize"]).__plus((1));
 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)})},
 messageSends: ["valueWithTimeout:", "+"]}),
 messageSends: ["valueWithTimeout:", "+"]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -513,7 +513,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{},smalltalk.ForkPool)})},
 messageSends: ["defaultMaxPoolSize", "class"]}),
 messageSends: ["defaultMaxPoolSize", "class"]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -529,7 +529,7 @@ if(smalltalk.assert($1)){
 _st(self)._addWorker();
 _st(self)._addWorker();
 };
 };
 _st(self["@queue"])._back_(aBlock);
 _st(self["@queue"])._back_(aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock},smalltalk.ForkPool)})},
 messageSends: ["ifTrue:", "addWorker", "<", "maxPoolSize", "back:"]}),
 messageSends: ["ifTrue:", "addWorker", "<", "maxPoolSize", "back:"]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -543,7 +543,7 @@ return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._i
 self["@poolSize"]=(0);
 self["@poolSize"]=(0);
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@worker"]=_st(self)._makeWorker();
 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)})},
 messageSends: ["initialize", "new", "makeWorker"]}),
 messageSends: ["initialize", "new", "makeWorker"]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -574,7 +574,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._addWorker();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel},smalltalk.ForkPool)})},
 messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="]}),
 messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -592,7 +592,7 @@ $1=_st(self)._defaultMaxPoolSize();
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{},smalltalk.ForkPool)})},
 messageSends: ["ifNil:", "defaultMaxPoolSize"]}),
 messageSends: ["ifNil:", "defaultMaxPoolSize"]}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -603,7 +603,7 @@ selector: "maxPoolSize:",
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger},smalltalk.ForkPool)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ForkPool);
 smalltalk.ForkPool);
 
 
@@ -624,7 +624,7 @@ $1=self["@default"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"default",{}, smalltalk.ForkPool.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"default",{},smalltalk.ForkPool.klass)})},
 messageSends: ["ifNil:", "new"]}),
 messageSends: ["ifNil:", "new"]}),
 smalltalk.ForkPool.klass);
 smalltalk.ForkPool.klass);
 
 
@@ -635,7 +635,7 @@ selector: "defaultMaxPoolSize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (100);
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ForkPool.klass);
 smalltalk.ForkPool.klass);
 
 
@@ -646,7 +646,7 @@ selector: "resetDefault",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@default"]=nil;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ForkPool.klass);
 smalltalk.ForkPool.klass);
 
 
@@ -661,7 +661,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@arguments"];
 $1=self["@arguments"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.Message)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -672,7 +672,7 @@ selector: "arguments:",
 fn: function (anArray){
 fn: function (anArray){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray},smalltalk.Message)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -692,7 +692,7 @@ $3=_st($2)._nextPutAll_(")");
 return $3;
 return $3;
 }, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Message)})},
 messageSends: ["streamContents:", "nextPutAll:", "printString"]}),
 messageSends: ["streamContents:", "nextPutAll:", "printString"]}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -705,7 +705,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.Message)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -716,7 +716,7 @@ selector: "selector:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.Message)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -729,7 +729,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject},smalltalk.Message)})},
 messageSends: ["perform:withArguments:", "selector", "arguments"]}),
 messageSends: ["perform:withArguments:", "selector", "arguments"]}),
 smalltalk.Message);
 smalltalk.Message);
 
 
@@ -747,7 +747,7 @@ _st($2)._arguments_(anArray);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray}, smalltalk.Message.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray},smalltalk.Message.klass)})},
 messageSends: ["selector:", "new", "arguments:", "yourself"]}),
 messageSends: ["selector:", "new", "arguments:", "yourself"]}),
 smalltalk.Message.klass);
 smalltalk.Message.klass);
 
 
@@ -767,7 +767,7 @@ $1=_st(_st("a block (in ").__comma(_st(_st(_st(_st(self)._methodContext())._rece
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asString",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"asString",{},smalltalk.MethodContext)})},
 messageSends: ["ifTrue:ifFalse:", ",", "printString", "class", "receiver", "methodContext", "selector", "isBlockContext"]}),
 messageSends: ["ifTrue:ifFalse:", ",", "printString", "class", "receiver", "methodContext", "selector", "isBlockContext"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -778,7 +778,7 @@ selector: "home",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.methodContext || self.homeContext;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -791,7 +791,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._selector())._isNil();
 $1=_st(_st(self)._selector())._isNil();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{},smalltalk.MethodContext)})},
 messageSends: ["isNil", "selector"]}),
 messageSends: ["isNil", "selector"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -802,7 +802,7 @@ selector: "locals",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.locals;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -815,7 +815,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{},smalltalk.MethodContext)})},
 messageSends: ["lookupSelector:", "selector", "methodContext", "class", "receiver"]}),
 messageSends: ["lookupSelector:", "selector", "methodContext", "class", "receiver"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -833,7 +833,7 @@ return $2;
 };
 };
 $3=_st(self)._home();
 $3=_st(self)._home();
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"methodContext",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"methodContext",{},smalltalk.MethodContext)})},
 messageSends: ["ifFalse:", "isBlockContext", "home"]}),
 messageSends: ["ifFalse:", "isBlockContext", "home"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -844,7 +844,7 @@ selector: "outerContext",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.homeContext;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -855,7 +855,7 @@ selector: "pc",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pc;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -868,7 +868,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 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(")");
 $1=_st(_st(_st(smalltalk.Object.fn.prototype._printString.apply(_st(self), [])).__comma("(")).__comma(_st(self)._asString())).__comma(")");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.MethodContext)})},
 messageSends: [",", "asString", "printString"]}),
 messageSends: [",", "asString", "printString"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -879,7 +879,7 @@ selector: "receiver",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.receiver;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -890,13 +890,13 @@ selector: "selector",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	if(self.selector) {
-        	return smalltalk.convertSelector(self.selector);
-        } else {
-        	return nil;
-        }
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodContext)})},
+		if(self.selector) {
+			return smalltalk.convertSelector(self.selector);
+		} else {
+			return nil;
+		}
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.MethodContext)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -910,7 +910,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 _st(self)._deprecatedAPI();
 $1=_st(self)._locals();
 $1=_st(self)._locals();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.MethodContext)})},
 messageSends: ["deprecatedAPI", "locals"]}),
 messageSends: ["deprecatedAPI", "locals"]}),
 smalltalk.MethodContext);
 smalltalk.MethodContext);
 
 
@@ -925,10 +925,10 @@ selector: "constructor:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native();
+		var native=eval(aString);
+		return new native();
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:",{aString:aString}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:",{aString:aString},smalltalk.NativeFunction.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NativeFunction.klass);
 smalltalk.NativeFunction.klass);
 
 
@@ -939,10 +939,10 @@ selector: "constructor:value:",
 fn: function (aString,anObject){
 fn: function (aString,anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject);
+		var native=eval(aString);
+		return new native(anObject);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:",{aString:aString,anObject:anObject}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:",{aString:aString,anObject:anObject},smalltalk.NativeFunction.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NativeFunction.klass);
 smalltalk.NativeFunction.klass);
 
 
@@ -953,10 +953,10 @@ selector: "constructor:value:value:",
 fn: function (aString,anObject,anObject2){
 fn: function (aString,anObject,anObject2){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject,anObject2);
+		var native=eval(aString);
+		return new native(anObject,anObject2);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2},smalltalk.NativeFunction.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NativeFunction.klass);
 smalltalk.NativeFunction.klass);
 
 
@@ -967,10 +967,10 @@ selector: "constructor:value:value:value:",
 fn: function (aString,anObject,anObject2,anObject3){
 fn: function (aString,anObject,anObject2,anObject3){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject,anObject2, anObject3);
+		var native=eval(aString);
+		return new native(anObject,anObject2, anObject3);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3},smalltalk.NativeFunction.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NativeFunction.klass);
 smalltalk.NativeFunction.klass);
 
 
@@ -981,13 +981,13 @@ selector: "exists:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	if(aString in window) {
-        	return true
-        } else {
-        	return false
-        }
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"exists:",{aString:aString}, smalltalk.NativeFunction.klass)})},
+		if(aString in window) {
+			return true
+		} else {
+			return false
+		}
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"exists:",{aString:aString},smalltalk.NativeFunction.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.NativeFunction.klass);
 smalltalk.NativeFunction.klass);
 
 

+ 130 - 130
js/Kernel-Methods.js

@@ -9,7 +9,7 @@ category: 'evaluating',
 fn: function (anObject,aCollection){
 fn: function (anObject,aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
 return smalltalk.withContext(function($ctx1) { 
return self.apply(anObject, aCollection);
-return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection},smalltalk.BlockClosure)})},
 args: ["anObject", "aCollection"],
 args: ["anObject", "aCollection"],
 source: "applyTo: anObject arguments: aCollection\x0a\x09<return self.apply(anObject, aCollection)>",
 source: "applyTo: anObject arguments: aCollection\x0a\x09<return self.apply(anObject, aCollection)>",
 messageSends: [],
 messageSends: [],
@@ -25,7 +25,7 @@ category: 'converting',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.method({selector:aString, fn:self});;
 return smalltalk.withContext(function($ctx1) { 
return smalltalk.method({selector:aString, fn:self});;
-return self}, function($ctx1) {$ctx1.fill(self,"asCompiledMethod:",{aString:aString}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"asCompiledMethod:",{aString:aString},smalltalk.BlockClosure)})},
 args: ["aString"],
 args: ["aString"],
 source: "asCompiledMethod: aString\x0a\x09<return smalltalk.method({selector:aString, fn:self});>",
 source: "asCompiledMethod: aString\x0a\x09<return smalltalk.method({selector:aString, fn:self});>",
 messageSends: [],
 messageSends: [],
@@ -41,7 +41,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.toString();
 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: [],
 args: [],
 source: "compiledSource\x0a\x09<return self.toString()>",
 source: "compiledSource\x0a\x09<return self.toString()>",
 messageSends: [],
 messageSends: [],
@@ -57,15 +57,15 @@ category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	return function () {
-    		var args = [ this ];
-        	args.push.apply(args, arguments);
-        	return self.apply(null, args);
-    	}
+		return function () {
+			var args = [ this ];
+			args.push.apply(args, arguments);
+			return self.apply(null, args);
+		}
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"currySelf",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"currySelf",{},smalltalk.BlockClosure)})},
 args: [],
 args: [],
-source: "currySelf\x0a\x09\x22Transforms [ :selfarg :x :y | stcode ] block\x0a    which represents JS function (selfarg, x, y, ...) {jscode}\x0a    into function (x, y, ...) {jscode} that takes selfarg from 'this'.\x0a    IOW, it is usable as JS method and first arg takes the receiver.\x22\x0a    \x0a    <\x0a    \x09return function () {\x0a    \x09\x09var args = [ this ];\x0a        \x09args.push.apply(args, arguments);\x0a        \x09return self.apply(null, args);\x0a    \x09}\x0a\x09>",
+source: "currySelf\x0a\x09\x22Transforms [ :selfarg :x :y | stcode ] block\x0a\x09which represents JS function (selfarg, x, y, ...) {jscode}\x0a\x09into function (x, y, ...) {jscode} that takes selfarg from 'this'.\x0a\x09IOW, it is usable as JS method and first arg takes the receiver.\x22\x0a\x09\x0a\x09<\x0a\x09\x09return function () {\x0a\x09\x09\x09var args = [ this ];\x0a\x09\x09\x09args.push.apply(args, arguments);\x0a\x09\x09\x09return self.apply(null, args);\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -79,7 +79,7 @@ category: 'evaluating',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
 return smalltalk.withContext(function($ctx1) { 
try{return self()}finally{aBlock._value()};
-return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "ensure: aBlock\x0a\x09<try{return self()}finally{aBlock._value()}>",
 source: "ensure: aBlock\x0a\x09<try{return self()}finally{aBlock._value()}>",
 messageSends: [],
 messageSends: [],
@@ -95,7 +95,7 @@ category: 'timeout/interval',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ForkPool || ForkPool))._default())._fork_(self);
 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: [],
 args: [],
 source: "fork\x0a\x09ForkPool default fork: self",
 source: "fork\x0a\x09ForkPool default fork: self",
 messageSends: ["fork:", "default"],
 messageSends: ["fork:", "default"],
@@ -111,9 +111,9 @@ category: 'evaluating',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self();
 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: [],
 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()>",
+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: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -127,9 +127,9 @@ category: 'evaluating',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:",{anObject:anObject},smalltalk.BlockClosure)})},
 args: ["anObject"],
 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)>",
+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: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -143,9 +143,9 @@ category: 'evaluating',
 fn: function (anObject,anObject2){
 fn: function (anObject,anObject2){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:",{anObject:anObject,anObject2:anObject2},smalltalk.BlockClosure)})},
 args: ["anObject", "anObject2"],
 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)>",
+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: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -159,9 +159,9 @@ category: 'evaluating',
 fn: function (anObject,anObject2,anObject3){
 fn: function (anObject,anObject2,anObject3){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2,anObject3);
 return smalltalk.withContext(function($ctx1) { 
return new self(anObject, anObject2,anObject3);
-return self}, function($ctx1) {$ctx1.fill(self,"newValue:value:value:",{anObject:anObject,anObject2:anObject2,anObject3: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"],
 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,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,anObject3)>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -175,7 +175,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.length;
 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: [],
 args: [],
 source: "numArgs\x0a\x09<return self.length>",
 source: "numArgs\x0a\x09<return self.length>",
 messageSends: [],
 messageSends: [],
@@ -203,9 +203,9 @@ return _st(smalltalkError)._signal();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({error:error,smalltalkError:smalltalkError},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({error:error,smalltalkError:smalltalkError},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"on:do:",{anErrorClass:anErrorClass,aBlock:aBlock},smalltalk.BlockClosure)})},
 args: ["anErrorClass", "aBlock"],
 args: ["anErrorClass", "aBlock"],
-source: "on: anErrorClass do: aBlock\x0a\x09\x22All exceptions thrown in the Smalltalk stack are cought.\x0a    Convert all JS exceptions to JavaScriptException instances.\x22\x0a    \x0a\x09^self try: self catch: [ :error | | smalltalkError |\x0a    \x09smalltalkError := Smalltalk current asSmalltalkException: error.\x0a\x09    (smalltalkError isKindOf: anErrorClass) \x0a\x09     ifTrue: [ aBlock value: smalltalkError ]\x0a\x09     ifFalse: [ smalltalkError signal ] ]",
+source: "on: anErrorClass do: aBlock\x0a\x09\x22All exceptions thrown in the Smalltalk stack are cought.\x0a\x09Convert all JS exceptions to JavaScriptException instances.\x22\x0a\x09\x0a\x09^self try: self catch: [ :error | | smalltalkError |\x0a\x09\x09smalltalkError := Smalltalk current asSmalltalkException: error.\x0a\x09\x09(smalltalkError isKindOf: anErrorClass)\x0a\x09\x09ifTrue: [ aBlock value: smalltalkError ]\x0a\x09\x09ifFalse: [ smalltalkError signal ] ]",
 messageSends: ["try:catch:", "asSmalltalkException:", "current", "ifTrue:ifFalse:", "value:", "signal", "isKindOf:"],
 messageSends: ["try:catch:", "asSmalltalkException:", "current", "ifTrue:ifFalse:", "value:", "signal", "isKindOf:"],
 referencedClasses: ["Smalltalk"]
 referencedClasses: ["Smalltalk"]
 }),
 }),
@@ -221,7 +221,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 $1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timeToRun",{}, smalltalk.BlockClosure)})},
+}, function($ctx1) {$ctx1.fill(self,"timeToRun",{},smalltalk.BlockClosure)})},
 args: [],
 args: [],
 source: "timeToRun\x0a\x09\x22Answer the number of milliseconds taken to execute this block.\x22\x0a\x0a\x09^ Date millisecondsToRun: self",
 source: "timeToRun\x0a\x09\x22Answer the number of milliseconds taken to execute this block.\x22\x0a\x0a\x09^ Date millisecondsToRun: self",
 messageSends: ["millisecondsToRun:"],
 messageSends: ["millisecondsToRun:"],
@@ -237,7 +237,7 @@ category: 'evaluating',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self();;
 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: [],
 args: [],
 source: "value\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self();>",
 source: "value\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self();>",
 messageSends: [],
 messageSends: [],
@@ -253,7 +253,7 @@ category: 'evaluating',
 fn: function (anArg){
 fn: function (anArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(anArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg},smalltalk.BlockClosure)})},
 args: ["anArg"],
 args: ["anArg"],
 source: "value: anArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(anArg);>",
 source: "value: anArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(anArg);>",
 messageSends: [],
 messageSends: [],
@@ -269,7 +269,7 @@ category: 'evaluating',
 fn: function (firstArg,secondArg){
 fn: function (firstArg,secondArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg},smalltalk.BlockClosure)})},
 args: ["firstArg", "secondArg"],
 args: ["firstArg", "secondArg"],
 source: "value: firstArg value: secondArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg);>",
 source: "value: firstArg value: secondArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg);>",
 messageSends: [],
 messageSends: [],
@@ -285,7 +285,7 @@ category: 'evaluating',
 fn: function (firstArg,secondArg,thirdArg){
 fn: function (firstArg,secondArg,thirdArg){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
 return smalltalk.withContext(function($ctx1) { 
return self(firstArg, secondArg, thirdArg);;
-return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg: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"],
 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);>",
 source: "value: firstArg value: secondArg value: thirdArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg, thirdArg);>",
 messageSends: [],
 messageSends: [],
@@ -301,12 +301,12 @@ category: 'timeout/interval',
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var interval = setInterval(self, aNumber);
-    	return smalltalk.Timeout._on_(interval);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
+		var interval = setInterval(self, aNumber);
+		return smalltalk.Timeout._on_(interval);
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber},smalltalk.BlockClosure)})},
 args: ["aNumber"],
 args: ["aNumber"],
-source: "valueWithInterval: aNumber\x0a\x09<\x0a    \x09var interval = setInterval(self, aNumber);\x0a    \x09return smalltalk.Timeout._on_(interval);\x0a    >",
+source: "valueWithInterval: aNumber\x0a\x09<\x0a\x09\x09var interval = setInterval(self, aNumber);\x0a\x09\x09return smalltalk.Timeout._on_(interval);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -320,7 +320,7 @@ category: 'evaluating',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
 return smalltalk.withContext(function($ctx1) { 
return self.apply(null, aCollection);;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection},smalltalk.BlockClosure)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "valueWithPossibleArguments: aCollection\x0a\x09<return self.apply(null, aCollection);>",
 source: "valueWithPossibleArguments: aCollection\x0a\x09<return self.apply(null, aCollection);>",
 messageSends: [],
 messageSends: [],
@@ -336,12 +336,12 @@ category: 'timeout/interval',
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var timeout = setTimeout(self, aNumber);
-    	return smalltalk.Timeout._on_(timeout);
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber}, smalltalk.BlockClosure)})},
+		var timeout = setTimeout(self, aNumber);
+		return smalltalk.Timeout._on_(timeout);
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber},smalltalk.BlockClosure)})},
 args: ["aNumber"],
 args: ["aNumber"],
-source: "valueWithTimeout: aNumber\x0a\x09<\x0a    \x09var timeout = setTimeout(self, aNumber);\x0a    \x09return smalltalk.Timeout._on_(timeout);\x0a    >",
+source: "valueWithTimeout: aNumber\x0a\x09<\x0a\x09\x09var timeout = setTimeout(self, aNumber);\x0a\x09\x09return smalltalk.Timeout._on_(timeout);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -356,7 +356,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse",{},smalltalk.BlockClosure)})},
 args: [],
 args: [],
 source: "whileFalse\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileFalse: []",
 source: "whileFalse\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileFalse: []",
 messageSends: ["whileFalse:"],
 messageSends: ["whileFalse:"],
@@ -372,7 +372,7 @@ category: 'controlling',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
 return smalltalk.withContext(function($ctx1) { 
while(!self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "whileFalse: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(!self()) {aBlock()}>",
 source: "whileFalse: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(!self()) {aBlock()}>",
 messageSends: [],
 messageSends: [],
@@ -389,7 +389,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._whileTrue_((function(){
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx2) {
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue",{},smalltalk.BlockClosure)})},
 args: [],
 args: [],
 source: "whileTrue\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileTrue: []",
 source: "whileTrue\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileTrue: []",
 messageSends: ["whileTrue:"],
 messageSends: ["whileTrue:"],
@@ -405,7 +405,7 @@ category: 'controlling',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
 return smalltalk.withContext(function($ctx1) { 
while(self()) {aBlock()};
-return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock}, smalltalk.BlockClosure)})},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock},smalltalk.BlockClosure)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "whileTrue: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(self()) {aBlock()}>",
 source: "whileTrue: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(self()) {aBlock()}>",
 messageSends: [],
 messageSends: [],
@@ -416,7 +416,7 @@ smalltalk.BlockClosure);
 
 
 
 
 smalltalk.addClass('CompiledMethod', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.addClass('CompiledMethod', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.CompiledMethod.comment="CompiledMethod hold the source and compiled code of a class method.\x0a\x0aYou can get a CompiledMethod using `Behavior>>methodAt:`\x0a\x0a\x09String methodAt: 'lines'\x0a\x0aand read the source code\x0a\x0a\x09(String methodAt: 'lines') source\x0a\x0aSee referenced classes:\x0a\x0a\x09(String methodAt: 'lines') referencedClasses\x0a\x0aor messages sent from this method:\x0a\x09\x0a\x09(String methodAt: 'lines')  messageSends"
+smalltalk.CompiledMethod.comment="CompiledMethod hold the source and compiled code of a class method.\x0a\x0aYou can get a CompiledMethod using `Behavior>>methodAt:`\x0a\x0a\x09String methodAt: 'lines'\x0a\x0aand read the source code\x0a\x0a\x09(String methodAt: 'lines') source\x0a\x0aSee referenced classes:\x0a\x0a\x09(String methodAt: 'lines') referencedClasses\x0a\x0aor messages sent from this method:\x0a\x09\x0a\x09(String methodAt: 'lines') messageSends"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_arguments",
 "_arguments",
 smalltalk.method({
 smalltalk.method({
@@ -425,7 +425,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.args || [];
 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: [],
 args: [],
 source: "arguments\x0a\x09<return self.args || []>",
 source: "arguments\x0a\x09<return self.args || []>",
 messageSends: [],
 messageSends: [],
@@ -448,7 +448,7 @@ $1=_st(self)._defaultCategory();
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"category",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"category",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "category\x0a\x09^(self basicAt: 'category') ifNil: [ self defaultCategory ]",
 source: "category\x0a\x09^(self basicAt: 'category') ifNil: [ self defaultCategory ]",
 messageSends: ["ifNil:", "defaultCategory", "basicAt:"],
 messageSends: ["ifNil:", "defaultCategory", "basicAt:"],
@@ -478,9 +478,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._category())
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(self)._methodClass())._organization())._removeElement_(oldCategory);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"category:",{aString:aString,oldCategory:oldCategory},smalltalk.CompiledMethod)})},
 args: ["aString"],
 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 ] ]",
+source: "category: aString\x0a\x09| oldCategory |\x0a\x09oldCategory := self category.\x0a\x09self basicAt: 'category' put: aString.\x0a\x09\x0a\x09self methodClass ifNotNil: [\x0a\x09\x09self methodClass organization addElement: aString.\x0a\x09\x0a\x09\x09(self methodClass methods\x0a\x09\x09\x09select: [ :each | each category = oldCategory ])\x0a\x09\x09\x09ifEmpty: [ self methodClass organization removeElement: oldCategory ] ]",
 messageSends: ["category", "basicAt:put:", "ifNotNil:", "addElement:", "organization", "methodClass", "ifEmpty:", "removeElement:", "select:", "=", "methods"],
 messageSends: ["category", "basicAt:put:", "ifNotNil:", "addElement:", "organization", "methodClass", "ifEmpty:", "removeElement:", "select:", "=", "methods"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -494,7 +494,7 @@ category: 'defaults',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return "as yet unclassified";
 return smalltalk.withContext(function($ctx1) { 
return "as yet unclassified";
-}, function($ctx1) {$ctx1.fill(self,"defaultCategory",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultCategory",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "defaultCategory\x0a\x09^ 'as yet unclassified'",
 source: "defaultCategory\x0a\x09^ 'as yet unclassified'",
 messageSends: [],
 messageSends: [],
@@ -512,7 +512,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("fn");
 $1=_st(self)._basicAt_("fn");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"fn",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"fn",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "fn\x0a\x09^self basicAt: 'fn'",
 source: "fn\x0a\x09^self basicAt: 'fn'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -528,7 +528,7 @@ category: 'accessing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("fn",aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fn:",{aBlock:aBlock},smalltalk.CompiledMethod)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "fn: aBlock\x0a\x09self basicAt: 'fn' put: aBlock",
 source: "fn: aBlock\x0a\x09self basicAt: 'fn' put: aBlock",
 messageSends: ["basicAt:put:"],
 messageSends: ["basicAt:put:"],
@@ -546,7 +546,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("messageSends");
 $1=_st(self)._basicAt_("messageSends");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"messageSends",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "messageSends\x0a\x09^self basicAt: 'messageSends'",
 source: "messageSends\x0a\x09^self basicAt: 'messageSends'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -564,7 +564,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("methodClass");
 $1=_st(self)._basicAt_("methodClass");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"methodClass",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"methodClass",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "methodClass\x0a\x09^self basicAt: 'methodClass'",
 source: "methodClass\x0a\x09^self basicAt: 'methodClass'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -582,7 +582,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._category();
 $1=_st(self)._category();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"protocol",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"protocol",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "protocol\x0a\x09^ self category",
 source: "protocol\x0a\x09^ self category",
 messageSends: ["category"],
 messageSends: ["category"],
@@ -600,7 +600,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("referencedClasses");
 $1=_st(self)._basicAt_("referencedClasses");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"referencedClasses",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "referencedClasses\x0a\x09^self basicAt: 'referencedClasses'",
 source: "referencedClasses\x0a\x09^self basicAt: 'referencedClasses'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -618,7 +618,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._basicAt_("selector");
 $1=_st(self)._basicAt_("selector");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "selector\x0a\x09^self basicAt: 'selector'",
 source: "selector\x0a\x09^self basicAt: 'selector'",
 messageSends: ["basicAt:"],
 messageSends: ["basicAt:"],
@@ -634,7 +634,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("selector",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.CompiledMethod)})},
 args: ["aString"],
 args: ["aString"],
 source: "selector: aString\x0a\x09self basicAt: 'selector' put: aString",
 source: "selector: aString\x0a\x09self basicAt: 'selector' put: aString",
 messageSends: ["basicAt:put:"],
 messageSends: ["basicAt:put:"],
@@ -657,7 +657,7 @@ $1="";
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.CompiledMethod)})},
+}, function($ctx1) {$ctx1.fill(self,"source",{},smalltalk.CompiledMethod)})},
 args: [],
 args: [],
 source: "source\x0a\x09^(self basicAt: 'source') ifNil: ['']",
 source: "source\x0a\x09^(self basicAt: 'source') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
 messageSends: ["ifNil:", "basicAt:"],
@@ -673,7 +673,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
 return smalltalk.withContext(function($ctx1) { 
_st(self)._basicAt_put_("source",aString);
-return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.CompiledMethod)})},
+return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString},smalltalk.CompiledMethod)})},
 args: ["aString"],
 args: ["aString"],
 source: "source: aString\x0a\x09self basicAt: 'source' put: aString",
 source: "source: aString\x0a\x09self basicAt: 'source' put: aString",
 messageSends: ["basicAt:put:"],
 messageSends: ["basicAt:put:"],
@@ -694,9 +694,9 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@worker"])._valueWithTimeout_((0));
 self["@poolSize"]=_st(self["@poolSize"]).__plus((1));
 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: [],
 args: [],
-source: "addWorker\x0a\x09worker valueWithTimeout: 0.\x0a    poolSize := poolSize + 1",
+source: "addWorker\x0a\x09worker valueWithTimeout: 0.\x0a\x09poolSize := poolSize + 1",
 messageSends: ["valueWithTimeout:", "+"],
 messageSends: ["valueWithTimeout:", "+"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -712,7 +712,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 $1=_st(_st(self)._class())._defaultMaxPoolSize();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"defaultMaxPoolSize",{},smalltalk.ForkPool)})},
 args: [],
 args: [],
 source: "defaultMaxPoolSize\x0a\x09^ self class defaultMaxPoolSize",
 source: "defaultMaxPoolSize\x0a\x09^ self class defaultMaxPoolSize",
 messageSends: ["defaultMaxPoolSize", "class"],
 messageSends: ["defaultMaxPoolSize", "class"],
@@ -733,7 +733,7 @@ if(smalltalk.assert($1)){
 _st(self)._addWorker();
 _st(self)._addWorker();
 };
 };
 _st(self["@queue"])._back_(aBlock);
 _st(self["@queue"])._back_(aBlock);
-return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fork:",{aBlock:aBlock},smalltalk.ForkPool)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "fork: aBlock\x0a\x09poolSize < self maxPoolSize ifTrue: [ self addWorker ].\x0a\x09queue back: aBlock",
 source: "fork: aBlock\x0a\x09poolSize < self maxPoolSize ifTrue: [ self addWorker ].\x0a\x09queue back: aBlock",
 messageSends: ["ifTrue:", "addWorker", "<", "maxPoolSize", "back:"],
 messageSends: ["ifTrue:", "addWorker", "<", "maxPoolSize", "back:"],
@@ -752,9 +752,9 @@ return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._i
 self["@poolSize"]=(0);
 self["@poolSize"]=(0);
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@queue"]=_st((smalltalk.Queue || Queue))._new();
 self["@worker"]=_st(self)._makeWorker();
 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: [],
 args: [],
-source: "initialize\x0a    super initialize.\x0a    \x0a\x09poolSize := 0.\x0a    queue := Queue new.\x0a    worker := self makeWorker",
+source: "initialize\x0a\x09super initialize.\x0a\x09\x0a\x09poolSize := 0.\x0a\x09queue := Queue new.\x0a\x09worker := self makeWorker",
 messageSends: ["initialize", "new", "makeWorker"],
 messageSends: ["initialize", "new", "makeWorker"],
 referencedClasses: ["Queue"]
 referencedClasses: ["Queue"]
 }),
 }),
@@ -788,9 +788,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._addWorker();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({block:block},$ctx1)})});
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"makeWorker",{sentinel:sentinel},smalltalk.ForkPool)})},
 args: [],
 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 ]]]",
+source: "makeWorker\x0a\x09| sentinel |\x0a\x09sentinel := Object new.\x0a\x09^[ | block |\x0a\x09\x09poolSize := poolSize - 1.\x0a\x09\x09block := queue frontIfAbsent: [ sentinel ].\x0a\x09\x09block == sentinel ifFalse: [\x0a\x09\x09\x09[ block value ] ensure: [ self addWorker ]]]",
 messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="],
 messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="],
 referencedClasses: ["Object"]
 referencedClasses: ["Object"]
 }),
 }),
@@ -811,7 +811,7 @@ $1=_st(self)._defaultMaxPoolSize();
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{}, smalltalk.ForkPool)})},
+}, function($ctx1) {$ctx1.fill(self,"maxPoolSize",{},smalltalk.ForkPool)})},
 args: [],
 args: [],
 source: "maxPoolSize\x0a\x09^ maxPoolSize ifNil: [ self defaultMaxPoolSize ]",
 source: "maxPoolSize\x0a\x09^ maxPoolSize ifNil: [ self defaultMaxPoolSize ]",
 messageSends: ["ifNil:", "defaultMaxPoolSize"],
 messageSends: ["ifNil:", "defaultMaxPoolSize"],
@@ -827,7 +827,7 @@ category: 'accessing',
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
 return smalltalk.withContext(function($ctx1) { 
self["@maxPoolSize"]=anInteger;
-return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger}, smalltalk.ForkPool)})},
+return self}, function($ctx1) {$ctx1.fill(self,"maxPoolSize:",{anInteger:anInteger},smalltalk.ForkPool)})},
 args: ["anInteger"],
 args: ["anInteger"],
 source: "maxPoolSize: anInteger\x0a\x09maxPoolSize := anInteger",
 source: "maxPoolSize: anInteger\x0a\x09maxPoolSize := anInteger",
 messageSends: [],
 messageSends: [],
@@ -853,7 +853,7 @@ $1=self["@default"];
 $1=$2;
 $1=$2;
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"default",{}, smalltalk.ForkPool.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"default",{},smalltalk.ForkPool.klass)})},
 args: [],
 args: [],
 source: "default\x0a\x09^default ifNil: [ default := self new ]",
 source: "default\x0a\x09^default ifNil: [ default := self new ]",
 messageSends: ["ifNil:", "new"],
 messageSends: ["ifNil:", "new"],
@@ -869,7 +869,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (100);
 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: [],
 args: [],
 source: "defaultMaxPoolSize\x0a\x09^100",
 source: "defaultMaxPoolSize\x0a\x09^100",
 messageSends: [],
 messageSends: [],
@@ -885,7 +885,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@default"]=nil;
 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: [],
 args: [],
 source: "resetDefault\x0a\x09default := nil",
 source: "resetDefault\x0a\x09default := nil",
 messageSends: [],
 messageSends: [],
@@ -895,7 +895,7 @@ smalltalk.ForkPool.klass);
 
 
 
 
 smalltalk.addClass('Message', smalltalk.Object, ['selector', 'arguments'], 'Kernel-Methods');
 smalltalk.addClass('Message', smalltalk.Object, ['selector', 'arguments'], 'Kernel-Methods');
-smalltalk.Message.comment="Generally, the system does not use instances of Message for efficiency reasons.\x0aHowever, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission. \x0aThis instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver.\x0a\x0aSee boot.js, `messageNotUnderstood`  and its counterpart `Object>>doesNotUnderstand:`"
+smalltalk.Message.comment="Generally, the system does not use instances of Message for efficiency reasons.\x0aHowever, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission.\x0aThis instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver.\x0a\x0aSee boot.js, `messageNotUnderstood` and its counterpart `Object>>doesNotUnderstand:`"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_arguments",
 "_arguments",
 smalltalk.method({
 smalltalk.method({
@@ -906,7 +906,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@arguments"];
 $1=self["@arguments"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"arguments",{},smalltalk.Message)})},
 args: [],
 args: [],
 source: "arguments\x0a\x09^arguments",
 source: "arguments\x0a\x09^arguments",
 messageSends: [],
 messageSends: [],
@@ -922,7 +922,7 @@ category: 'accessing',
 fn: function (anArray){
 fn: function (anArray){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
 return smalltalk.withContext(function($ctx1) { 
self["@arguments"]=anArray;
-return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{anArray:anArray},smalltalk.Message)})},
 args: ["anArray"],
 args: ["anArray"],
 source: "arguments: anArray\x0a\x09arguments := anArray",
 source: "arguments: anArray\x0a\x09arguments := anArray",
 messageSends: [],
 messageSends: [],
@@ -947,9 +947,9 @@ $3=_st($2)._nextPutAll_(")");
 return $3;
 return $3;
 }, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aStream:aStream},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.Message)})},
 args: [],
 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]",
+source: "printString\x0a\x09^ String streamContents: [:aStream|\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09aStream\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09nextPutAll: super printString;\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09nextPutAll: '(';\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09nextPutAll: selector;\x0a\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09nextPutAll: ')' ]",
 messageSends: ["streamContents:", "nextPutAll:", "printString"],
 messageSends: ["streamContents:", "nextPutAll:", "printString"],
 referencedClasses: ["String"]
 referencedClasses: ["String"]
 }),
 }),
@@ -965,7 +965,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@selector"];
 $1=self["@selector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.Message)})},
 args: [],
 args: [],
 source: "selector\x0a\x09^selector",
 source: "selector\x0a\x09^selector",
 messageSends: [],
 messageSends: [],
@@ -981,7 +981,7 @@ category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
 return smalltalk.withContext(function($ctx1) { 
self["@selector"]=aString;
-return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.Message)})},
+return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString},smalltalk.Message)})},
 args: ["aString"],
 args: ["aString"],
 source: "selector: aString\x0a\x09selector := aString",
 source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
 messageSends: [],
@@ -999,7 +999,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 $1=_st(anObject)._perform_withArguments_(_st(self)._selector(),_st(self)._arguments());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject}, smalltalk.Message)})},
+}, function($ctx1) {$ctx1.fill(self,"sendTo:",{anObject:anObject},smalltalk.Message)})},
 args: ["anObject"],
 args: ["anObject"],
 source: "sendTo: anObject\x0a\x09^ anObject perform: self selector withArguments: self arguments",
 source: "sendTo: anObject\x0a\x09^ anObject perform: self selector withArguments: self arguments",
 messageSends: ["perform:withArguments:", "selector", "arguments"],
 messageSends: ["perform:withArguments:", "selector", "arguments"],
@@ -1022,7 +1022,7 @@ _st($2)._arguments_(anArray);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray}, smalltalk.Message.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:arguments:",{aString:aString,anArray:anArray},smalltalk.Message.klass)})},
 args: ["aString", "anArray"],
 args: ["aString", "anArray"],
 source: "selector: aString arguments: anArray\x0a\x09^self new\x0a\x09\x09selector: aString;\x0a\x09\x09arguments: anArray;\x0a\x09\x09yourself",
 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"],
 messageSends: ["selector:", "new", "arguments:", "yourself"],
@@ -1032,7 +1032,7 @@ smalltalk.Message.klass);
 
 
 
 
 smalltalk.addClass('MethodContext', smalltalk.Object, [], 'Kernel-Methods');
 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"
+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"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_asString",
 "_asString",
 smalltalk.method({
 smalltalk.method({
@@ -1048,9 +1048,9 @@ $1=_st(_st("a block (in ").__comma(_st(_st(_st(_st(self)._methodContext())._rece
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 $1=_st(_st(_st(_st(_st(self)._receiver())._class())._printString()).__comma(" >> ")).__comma(_st(self)._selector());
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"asString",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"asString",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
-source: "asString\x0a\x09^self isBlockContext \x0a    \x09ifTrue: [ 'a block (in ', self methodContext receiver class printString, ')' ]\x0a      \x09ifFalse: [ self receiver class printString, ' >> ', self selector ]",
+source: "asString\x0a\x09^self isBlockContext\x0a\x09\x09ifTrue: [ 'a block (in ', self methodContext receiver class printString, ')' ]\x0a\x09\x09ifFalse: [ self receiver class printString, ' >> ', self selector ]",
 messageSends: ["ifTrue:ifFalse:", ",", "printString", "class", "receiver", "methodContext", "selector", "isBlockContext"],
 messageSends: ["ifTrue:ifFalse:", ",", "printString", "class", "receiver", "methodContext", "selector", "isBlockContext"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1064,7 +1064,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.methodContext || self.homeContext;
 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: [],
 args: [],
 source: "home\x0a\x09<return self.methodContext || self.homeContext>",
 source: "home\x0a\x09<return self.methodContext || self.homeContext>",
 messageSends: [],
 messageSends: [],
@@ -1082,9 +1082,9 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._selector())._isNil();
 $1=_st(_st(self)._selector())._isNil();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"isBlockContext",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
-source: "isBlockContext\x0a\x09\x22Block context do not have selectors.\x22\x0a    \x0a\x09^ self selector isNil",
+source: "isBlockContext\x0a\x09\x22Block context do not have selectors.\x22\x0a\x09\x0a\x09^ self selector isNil",
 messageSends: ["isNil", "selector"],
 messageSends: ["isNil", "selector"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1098,7 +1098,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.locals;
 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: [],
 args: [],
 source: "locals\x0a\x09<return self.locals>",
 source: "locals\x0a\x09<return self.locals>",
 messageSends: [],
 messageSends: [],
@@ -1116,7 +1116,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 $1=_st(_st(_st(_st(self)._methodContext())._receiver())._class())._lookupSelector_(_st(_st(self)._methodContext())._selector());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"method",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
 source: "method\x0a\x09^self methodContext receiver class lookupSelector: self methodContext selector",
 source: "method\x0a\x09^self methodContext receiver class lookupSelector: self methodContext selector",
 messageSends: ["lookupSelector:", "selector", "methodContext", "class", "receiver"],
 messageSends: ["lookupSelector:", "selector", "methodContext", "class", "receiver"],
@@ -1139,9 +1139,9 @@ return $2;
 };
 };
 $3=_st(self)._home();
 $3=_st(self)._home();
 return $3;
 return $3;
-}, function($ctx1) {$ctx1.fill(self,"methodContext",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"methodContext",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
-source: "methodContext\x0a\x09self isBlockContext ifFalse: [ ^ self ].\x0a    \x0a    ^ self home",
+source: "methodContext\x0a\x09self isBlockContext ifFalse: [ ^ self ].\x0a\x09\x0a\x09^ self home",
 messageSends: ["ifFalse:", "isBlockContext", "home"],
 messageSends: ["ifFalse:", "isBlockContext", "home"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1155,7 +1155,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.homeContext;
 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: [],
 args: [],
 source: "outerContext\x0a\x09<return self.homeContext>",
 source: "outerContext\x0a\x09<return self.homeContext>",
 messageSends: [],
 messageSends: [],
@@ -1171,7 +1171,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.pc;
 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: [],
 args: [],
 source: "pc\x0a\x09<return self.pc>",
 source: "pc\x0a\x09<return self.pc>",
 messageSends: [],
 messageSends: [],
@@ -1189,7 +1189,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 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(")");
 $1=_st(_st(_st(smalltalk.Object.fn.prototype._printString.apply(_st(self), [])).__comma("(")).__comma(_st(self)._asString())).__comma(")");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"printString",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"printString",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
 source: "printString\x0a\x09^super printString, '(', self asString, ')'",
 source: "printString\x0a\x09^super printString, '(', self asString, ')'",
 messageSends: [",", "asString", "printString"],
 messageSends: [",", "asString", "printString"],
@@ -1205,7 +1205,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return self.receiver;
 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: [],
 args: [],
 source: "receiver\x0a\x09<return self.receiver>",
 source: "receiver\x0a\x09<return self.receiver>",
 messageSends: [],
 messageSends: [],
@@ -1221,15 +1221,15 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	if(self.selector) {
-        	return smalltalk.convertSelector(self.selector);
-        } else {
-        	return nil;
-        }
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodContext)})},
+		if(self.selector) {
+			return smalltalk.convertSelector(self.selector);
+		} else {
+			return nil;
+		}
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
-source: "selector\x0a\x09<\x0a    \x09if(self.selector) {\x0a        \x09return smalltalk.convertSelector(self.selector);\x0a        } else {\x0a        \x09return nil;\x0a        }\x0a    >",
+source: "selector\x0a\x09<\x0a\x09\x09if(self.selector) {\x0a\x09\x09\x09return smalltalk.convertSelector(self.selector);\x0a\x09\x09} else {\x0a\x09\x09\x09return nil;\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1246,9 +1246,9 @@ return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._deprecatedAPI();
 _st(self)._deprecatedAPI();
 $1=_st(self)._locals();
 $1=_st(self)._locals();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.MethodContext)})},
+}, function($ctx1) {$ctx1.fill(self,"temps",{},smalltalk.MethodContext)})},
 args: [],
 args: [],
-source: "temps\x0a\x09self deprecatedAPI.\x0a    \x0a\x09^ self locals",
+source: "temps\x0a\x09self deprecatedAPI.\x0a\x09\x0a\x09^ self locals",
 messageSends: ["deprecatedAPI", "locals"],
 messageSends: ["deprecatedAPI", "locals"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1257,7 +1257,7 @@ smalltalk.MethodContext);
 
 
 
 
 smalltalk.addClass('NativeFunction', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.addClass('NativeFunction', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.NativeFunction.comment="NativeFunction is a wrapper around native functions, such as `WebSocket`.\x0aFor 'normal' functions (whose constructor is the JavaScript `Function` object), use `BlockClosure`.\x0a\x0aSee the class-side `instance creation` methods.\x0a\x0aCreated instances will most probably be instance of `JSObjectProxy`.\x0a\x0aUsage example:\x0a\x0a    | ws |\x0a    ws := NativeFunction constructor: 'WebSocket' value: 'ws://localhost'.\x0a    ws at: 'onopen' put: [ ws send: 'hey there from Amber' ]"
+smalltalk.NativeFunction.comment="NativeFunction is a wrapper around native functions, such as `WebSocket`.\x0aFor 'normal' functions (whose constructor is the JavaScript `Function` object), use `BlockClosure`.\x0a\x0aSee the class-side `instance creation` methods.\x0a\x0aCreated instances will most probably be instance of `JSObjectProxy`.\x0a\x0aUsage example:\x0a\x0a\x09| ws |\x0a\x09ws := NativeFunction constructor: 'WebSocket' value: 'ws://localhost'.\x0a\x09ws at: 'onopen' put: [ ws send: 'hey there from Amber' ]"
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_constructor_",
 "_constructor_",
@@ -1267,12 +1267,12 @@ category: 'instance creation',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native();
+		var native=eval(aString);
+		return new native();
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:",{aString:aString}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:",{aString:aString},smalltalk.NativeFunction.klass)})},
 args: ["aString"],
 args: ["aString"],
-source: "constructor: aString\x0a\x09<\x0a    \x09var native=eval(aString); \x0a        return new native();\x0a\x09>",
+source: "constructor: aString\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native();\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1286,12 +1286,12 @@ category: 'instance creation',
 fn: function (aString,anObject){
 fn: function (aString,anObject){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject);
+		var native=eval(aString);
+		return new native(anObject);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:",{aString:aString,anObject:anObject}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:",{aString:aString,anObject:anObject},smalltalk.NativeFunction.klass)})},
 args: ["aString", "anObject"],
 args: ["aString", "anObject"],
-source: "constructor: aString value:anObject\x0a\x09<\x0a    \x09var native=eval(aString); \x0a        return new native(anObject);\x0a\x09>",
+source: "constructor: aString value:anObject\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1305,12 +1305,12 @@ category: 'instance creation',
 fn: function (aString,anObject,anObject2){
 fn: function (aString,anObject,anObject2){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject,anObject2);
+		var native=eval(aString);
+		return new native(anObject,anObject2);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2},smalltalk.NativeFunction.klass)})},
 args: ["aString", "anObject", "anObject2"],
 args: ["aString", "anObject", "anObject2"],
-source: "constructor: aString value:anObject value: anObject2\x0a\x09<\x0a    \x09var native=eval(aString); \x0a        return new native(anObject,anObject2);\x0a\x09>",
+source: "constructor: aString value:anObject value: anObject2\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject,anObject2);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1324,12 +1324,12 @@ category: 'instance creation',
 fn: function (aString,anObject,anObject2,anObject3){
 fn: function (aString,anObject,anObject2,anObject3){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	var native=eval(aString); 
-        return new native(anObject,anObject2, anObject3);
+		var native=eval(aString);
+		return new native(anObject,anObject2, anObject3);
 	;
 	;
-return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.NativeFunction.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3},smalltalk.NativeFunction.klass)})},
 args: ["aString", "anObject", "anObject2", "anObject3"],
 args: ["aString", "anObject", "anObject2", "anObject3"],
-source: "constructor: aString value:anObject value: anObject2 value:anObject3\x0a\x09<\x0a    \x09var native=eval(aString); \x0a        return new native(anObject,anObject2, anObject3);\x0a\x09>",
+source: "constructor: aString value:anObject value: anObject2 value:anObject3\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject,anObject2, anObject3);\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -1343,15 +1343,15 @@ category: 'testing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-    	if(aString in window) {
-        	return true
-        } else {
-        	return false
-        }
-    ;
-return self}, function($ctx1) {$ctx1.fill(self,"exists:",{aString:aString}, smalltalk.NativeFunction.klass)})},
+		if(aString in window) {
+			return true
+		} else {
+			return false
+		}
+	;
+return self}, function($ctx1) {$ctx1.fill(self,"exists:",{aString:aString},smalltalk.NativeFunction.klass)})},
 args: ["aString"],
 args: ["aString"],
-source: "exists: aString\x0a\x09<\x0a    \x09if(aString in window) {\x0a        \x09return true\x0a        } else {\x0a        \x09return false\x0a        }\x0a    >",
+source: "exists: aString\x0a\x09<\x0a\x09\x09if(aString in window) {\x0a\x09\x09\x09return true\x0a\x09\x09} else {\x0a\x09\x09\x09return false\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
 messageSends: [],
 referencedClasses: []
 referencedClasses: []
 }),
 }),

文件差异内容过多而无法显示
+ 129 - 129
js/Kernel-Objects.deploy.js


文件差异内容过多而无法显示
+ 139 - 139
js/Kernel-Objects.js


文件差异内容过多而无法显示
+ 392 - 466
js/Kernel-Tests.deploy.js


文件差异内容过多而无法显示
+ 391 - 463
js/Kernel-Tests.js


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

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

+ 19 - 19
js/Kernel-Transcript.js

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

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

@@ -1,4 +1,4 @@
-smalltalk.addPackage('SUnit-Tests', {});
+smalltalk.addPackage('SUnit-Tests');
 smalltalk.addClass('ExampleSetTest', smalltalk.TestCase, ['empty', 'full'], 'SUnit-Tests');
 smalltalk.addClass('ExampleSetTest', smalltalk.TestCase, ['empty', 'full'], 'SUnit-Tests');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_setUp",
 "_setUp",
@@ -8,7 +8,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
 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)})},
 messageSends: ["new", "with:with:"]}),
 messageSends: ["new", "with:with:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -20,7 +20,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 _st(self)._assert_(_st(self["@empty"])._includes_((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)})},
 messageSends: ["add:", "assert:", "includes:"]}),
 messageSends: ["add:", "assert:", "includes:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -32,7 +32,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 _st(self)._assert_equals_(_st(self["@empty"])._size(),(100));
 _st(self)._assert_equals_(_st(self["@empty"])._size(),(100));
-return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{},smalltalk.ExampleSetTest)})},
 messageSends: ["addAll:", "to:", "assert:equals:", "size"]}),
 messageSends: ["addAll:", "to:", "assert:equals:", "size"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -48,7 +48,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{},smalltalk.ExampleSetTest)})},
 messageSends: ["should:raise:", "at:", "at:put:"]}),
 messageSends: ["should:raise:", "at:", "at:put:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -60,7 +60,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _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)})},
 messageSends: ["assert:", "includes:"]}),
 messageSends: ["assert:", "includes:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -74,7 +74,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(se
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self["@full"])._add_((5));
 _st(self["@full"])._add_((5));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{},smalltalk.ExampleSetTest)})},
 messageSends: ["assert:equals:", "occurrencesOf:", "add:"]}),
 messageSends: ["assert:equals:", "occurrencesOf:", "add:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -87,7 +87,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
 _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)})},
 messageSends: ["remove:", "assert:", "includes:", "deny:"]}),
 messageSends: ["remove:", "assert:", "includes:", "deny:"]}),
 smalltalk.ExampleSetTest);
 smalltalk.ExampleSetTest);
 
 
@@ -107,7 +107,7 @@ return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 self["@flag"];
 return _st(self)._error_("Intentional");
 return _st(self)._error_("Intentional");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -122,7 +122,7 @@ _st(self)._timeout_((10));
 self["@flag"]=_st(_st(self)._async_((function(){
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -139,7 +139,7 @@ return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 self["@flag"];
 return _st(self)._assert_(false);
 return _st(self)._assert_(false);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -156,7 +156,7 @@ return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -173,7 +173,7 @@ return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -187,7 +187,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._timeout_((4));
 _st(_st(self)._async_((function(){
 _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -202,7 +202,7 @@ $1=_st(_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._asSet();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._asSet();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectorSetOf:",{aCollection:aCollection}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx1) {$ctx1.fill(self,"selectorSetOf:",{aCollection:aCollection},smalltalk.SUnitAsyncTest)})},
 messageSends: ["asSet", "collect:", "selector"]}),
 messageSends: ["asSet", "collect:", "selector"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -213,7 +213,7 @@ selector: "setUp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@flag"]="ok";
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -224,7 +224,7 @@ selector: "tearDown",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_("ok",self["@flag"]);
 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)})},
 messageSends: ["assert:equals:"]}),
 messageSends: ["assert:equals:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -255,7 +255,7 @@ return _st($2)._ifTrue_(assertBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 _st(runner)._run();
 _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)})},
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "asSet", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"]}),
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "asSet", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -275,7 +275,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((functio
 return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._finished();
 _st(self)._finished();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"]}),
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -292,7 +292,7 @@ _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"]}),
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -307,7 +307,7 @@ _st(self)._timeout_((0));
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._finished();
 _st(self)._finished();
 _st(self)._deny_(_st(self)._isAsync());
 _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)})},
 messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"]}),
 messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -325,7 +325,7 @@ _st(self)._finished();
 self["@flag"]="ok";
 self["@flag"]="ok";
 return self["@flag"];
 return self["@flag"];
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"testPass",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testPass",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -356,7 +356,7 @@ return _st($2)._ifTrue_(assertBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 _st(runner)._run();
 _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)})},
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "new", "failures", "asSet", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"]}),
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "new", "failures", "asSet", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 
@@ -386,7 +386,7 @@ x=_st(x).__plus((1));
 x;
 x;
 return _st(self)._assert_equals_(x,(1));
 return _st(self)._assert_equals_(x,(1));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
-return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x},smalltalk.SUnitAsyncTest)})},
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"]}),
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"]}),
 smalltalk.SUnitAsyncTest);
 smalltalk.SUnitAsyncTest);
 
 

+ 38 - 38
js/SUnit-Tests.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('SUnit-Tests', {});
+smalltalk.addPackage('SUnit-Tests');
 smalltalk.addClass('ExampleSetTest', smalltalk.TestCase, ['empty', 'full'], 'SUnit-Tests');
 smalltalk.addClass('ExampleSetTest', smalltalk.TestCase, ['empty', 'full'], 'SUnit-Tests');
 smalltalk.ExampleSetTest.comment="ExampleSetTest is taken from Pharo 1.4.\x0a\x0aTHe purpose of this class is to demonstrate a simple use case of the test framework."
 smalltalk.ExampleSetTest.comment="ExampleSetTest is taken from Pharo 1.4.\x0a\x0aTHe purpose of this class is to demonstrate a simple use case of the test framework."
 smalltalk.addMethod(
 smalltalk.addMethod(
@@ -10,7 +10,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
 self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
 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: [],
 args: [],
 source: "setUp\x0a\x09empty := Set new.\x0a\x09full := Set with: 5 with: #abc",
 source: "setUp\x0a\x09empty := Set new.\x0a\x09full := Set with: 5 with: #abc",
 messageSends: ["new", "with:with:"],
 messageSends: ["new", "with:with:"],
@@ -27,7 +27,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._add_((5));
 _st(self)._assert_(_st(self["@empty"])._includes_((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: [],
 args: [],
 source: "testAdd\x0a\x09empty add: 5.\x0a\x09self assert: (empty includes: 5)",
 source: "testAdd\x0a\x09empty add: 5.\x0a\x09self assert: (empty includes: 5)",
 messageSends: ["add:", "assert:", "includes:"],
 messageSends: ["add:", "assert:", "includes:"],
@@ -44,7 +44,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@empty"])._addAll_(_st((1))._to_((100)));
 _st(self)._assert_equals_(_st(self["@empty"])._size(),(100));
 _st(self)._assert_equals_(_st(self["@empty"])._size(),(100));
-return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testGrow",{},smalltalk.ExampleSetTest)})},
 args: [],
 args: [],
 source: "testGrow\x0a\x09empty addAll: (1 to: 100).\x0a\x09self assert: empty size equals: 100",
 source: "testGrow\x0a\x09empty addAll: (1 to: 100).\x0a\x09self assert: empty size equals: 100",
 messageSends: ["addAll:", "to:", "assert:equals:", "size"],
 messageSends: ["addAll:", "to:", "assert:equals:", "size"],
@@ -65,9 +65,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((
 _st(self)._should_raise_((function(){
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),smalltalk.symbolFor("abc"));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testIllegal",{},smalltalk.ExampleSetTest)})},
 args: [],
 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",
+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:"],
 messageSends: ["should:raise:", "at:", "at:put:"],
 referencedClasses: ["Error"]
 referencedClasses: ["Error"]
 }),
 }),
@@ -82,7 +82,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _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: [],
 args: [],
 source: "testIncludes\x0a\x09self assert: (full includes: 5).\x0a\x09self assert: (full includes: #abc)",
 source: "testIncludes\x0a\x09self assert: (full includes: 5).\x0a\x09self assert: (full includes: #abc)",
 messageSends: ["assert:", "includes:"],
 messageSends: ["assert:", "includes:"],
@@ -101,7 +101,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(se
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self["@full"])._add_((5));
 _st(self["@full"])._add_((5));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
 _st(self)._assert_equals_(_st(self["@full"])._occurrencesOf_((5)),(1));
-return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{}, smalltalk.ExampleSetTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testOccurrences",{},smalltalk.ExampleSetTest)})},
 args: [],
 args: [],
 source: "testOccurrences\x0a\x09self assert: (empty occurrencesOf: 0) equals: 0.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1.\x0a\x09full add: 5.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1",
 source: "testOccurrences\x0a\x09self assert: (empty occurrencesOf: 0) equals: 0.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1.\x0a\x09full add: 5.\x0a\x09self assert: (full occurrencesOf: 5) equals: 1",
 messageSends: ["assert:equals:", "occurrencesOf:", "add:"],
 messageSends: ["assert:equals:", "occurrencesOf:", "add:"],
@@ -119,7 +119,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
 _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: [],
 args: [],
 source: "testRemove\x0a\x09full remove: 5.\x0a\x09self assert: (full includes: #abc).\x0a\x09self deny: (full includes: 5)",
 source: "testRemove\x0a\x09full remove: 5.\x0a\x09self assert: (full includes: #abc).\x0a\x09self deny: (full includes: 5)",
 messageSends: ["remove:", "assert:", "includes:", "deny:"],
 messageSends: ["remove:", "assert:", "includes:", "deny:"],
@@ -144,9 +144,9 @@ return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 self["@flag"];
 return _st(self)._error_("Intentional");
 return _st(self)._error_("Intentional");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeError",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "fakeError\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 5",
+source: "fakeError\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -164,9 +164,9 @@ _st(self)._timeout_((10));
 self["@flag"]=_st(_st(self)._async_((function(){
 self["@flag"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
 return smalltalk.withContext(function($ctx2) {
return _st(self)._error_("Intentional");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeErrorFailingInTearDown",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "fakeErrorFailingInTearDown\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 5",
+source: "fakeErrorFailingInTearDown\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "error:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -186,9 +186,9 @@ return smalltalk.withContext(function($ctx2) {
self["@flag"]="ok";
 self["@flag"];
 self["@flag"];
 return _st(self)._assert_(false);
 return _st(self)._assert_(false);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeFailure",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "fakeFailure\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 5",
+source: "fakeFailure\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -208,9 +208,9 @@ return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 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",
+source: "fakeMultipleTimeoutFailing\x0a\x09self timeout: 100.\x0a\x09(self async: [\x0a\x09\x09self timeout: 5.\x0a\x09\x09(self async: [ self finished ]) valueWithTimeout: 10\x0a\x09]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -230,9 +230,9 @@ return _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx3) {
return _st(self)._finished();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._valueWithTimeout_((10));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 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",
+source: "fakeMultipleTimeoutPassing\x0a\x09self timeout: 10.\x0a\x09(self async: [\x0a\x09\x09self timeout: 20.\x0a\x09\x09(self async: [ self finished ]) valueWithTimeout: 10\x0a\x09]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -249,9 +249,9 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._timeout_((4));
 _st(_st(self)._async_((function(){
 _st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"fakeTimeout",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "fakeTimeout\x0a\x09self timeout: 4.\x0a    (self async: [ self finished ]) valueWithTimeout: 5",
+source: "fakeTimeout\x0a\x09self timeout: 4.\x0a\x09(self async: [ self finished ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -269,7 +269,7 @@ $1=_st(_st(aCollection)._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._selector();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._asSet();
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._asSet();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selectorSetOf:",{aCollection:aCollection}, smalltalk.SUnitAsyncTest)})},
+}, function($ctx1) {$ctx1.fill(self,"selectorSetOf:",{aCollection:aCollection},smalltalk.SUnitAsyncTest)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "selectorSetOf: aCollection\x0a\x09^(aCollection collect: [:each | each selector]) asSet",
 source: "selectorSetOf: aCollection\x0a\x09^(aCollection collect: [:each | each selector]) asSet",
 messageSends: ["asSet", "collect:", "selector"],
 messageSends: ["asSet", "collect:", "selector"],
@@ -285,7 +285,7 @@ category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@flag"]="ok";
 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: [],
 args: [],
 source: "setUp\x0a\x09flag := 'ok'",
 source: "setUp\x0a\x09flag := 'ok'",
 messageSends: [],
 messageSends: [],
@@ -301,7 +301,7 @@ category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_("ok",self["@flag"]);
 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: [],
 args: [],
 source: "tearDown\x0a\x09self assert: 'ok' equals: flag",
 source: "tearDown\x0a\x09self assert: 'ok' equals: flag",
 messageSends: ["assert:equals:"],
 messageSends: ["assert:equals:"],
@@ -337,9 +337,9 @@ return _st($2)._ifTrue_(assertBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 _st(runner)._run();
 _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: [],
 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: (self selectorSetOf: result errors) equals: #('fakeError') asSet.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeErrorFailingInTearDown' 'fakeFailure') asSet.\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",
+source: "testAsyncErrorsAndFailures\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeError' 'fakeErrorFailingInTearDown' 'fakeFailure' 'testPass') collect: [ :each | self class selector: each ].\x0a\x09runner := TestSuiteRunner on: suite.\x0a\x09self timeout: 200.\x0a\x09result := runner result.\x0a\x09assertBlock := self async: [\x0a\x09\x09self assert: (self selectorSetOf: result errors) equals: #('fakeError') asSet.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeErrorFailingInTearDown' 'fakeFailure') asSet.\x0a\x09\x09self finished\x0a\x09].\x0a\x09runner announcer on: ResultAnnouncement do: [:ann |\x0a\x09\x09ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ]].\x0a\x09runner run",
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "asSet", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "asSet", "failures", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
 referencedClasses: ["TestSuiteRunner", "ResultAnnouncement"]
 referencedClasses: ["TestSuiteRunner", "ResultAnnouncement"]
 }),
 }),
@@ -362,9 +362,9 @@ return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((functio
 return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 _st(self)._finished();
 _st(self)._finished();
-return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "testAsyncNeedsTimeout\x0a    self should: [ self async: [ ] ] raise: Error.\x0a    self timeout: 0.\x0a    self shouldnt: [ self async: [ ] ] raise: Error.\x0a    self finished",
+source: "testAsyncNeedsTimeout\x0a\x09self should: [ self async: [ ] ] raise: Error.\x0a\x09self timeout: 0.\x0a\x09self shouldnt: [ self async: [ ] ] raise: Error.\x0a\x09self finished",
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"],
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"],
 referencedClasses: ["Error"]
 referencedClasses: ["Error"]
 }),
 }),
@@ -384,9 +384,9 @@ _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
-return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "testFinishedNeedsTimeout\x0a    self should: [ self finished ] raise: Error.\x0a    self timeout: 0.\x0a    self shouldnt: [ self finished ] raise: Error.",
+source: "testFinishedNeedsTimeout\x0a\x09self should: [ self finished ] raise: Error.\x0a\x09self timeout: 0.\x0a\x09self shouldnt: [ self finished ] raise: Error.",
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"],
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"],
 referencedClasses: ["Error"]
 referencedClasses: ["Error"]
 }),
 }),
@@ -404,9 +404,9 @@ _st(self)._timeout_((0));
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._assert_(_st(self)._isAsync());
 _st(self)._finished();
 _st(self)._finished();
 _st(self)._deny_(_st(self)._isAsync());
 _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: [],
 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",
+source: "testIsAsyncReturnsCorrectValues\x0a\x09self deny: self isAsync.\x0a\x09self timeout: 0.\x0a\x09self assert: self isAsync.\x0a\x09self finished.\x0a\x09self deny: self isAsync",
 messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"],
 messageSends: ["deny:", "isAsync", "timeout:", "assert:", "finished"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -427,9 +427,9 @@ _st(self)._finished();
 self["@flag"]="ok";
 self["@flag"]="ok";
 return self["@flag"];
 return self["@flag"];
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((5));
-return self}, function($ctx1) {$ctx1.fill(self,"testPass",{}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testPass",{},smalltalk.SUnitAsyncTest)})},
 args: [],
 args: [],
-source: "testPass\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a    flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5",
+source: "testPass\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "assert:", "finished"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -463,9 +463,9 @@ return _st($2)._ifTrue_(assertBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ann:ann},$ctx1)})}));
 _st(runner)._run();
 _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: [],
 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: (self selectorSetOf: result errors) equals: Set new.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeMultipleTimeoutFailing' 'fakeTimeout') asSet.\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",
+source: "testTimeouts\x0a\x09| suite runner result assertBlock |\x0a\x09suite := #('fakeTimeout' 'fakeMultipleTimeoutFailing' 'fakeMultipleTimeoutPassing' 'testPass') collect: [ :each | self class selector: each ].\x0a\x09runner := TestSuiteRunner on: suite.\x0a\x09self timeout: 200.\x0a\x09result := runner result.\x0a\x09assertBlock := self async: [\x0a\x09\x09self assert: (self selectorSetOf: result errors) equals: Set new.\x0a\x09\x09self assert: (self selectorSetOf: result failures) equals: #('fakeMultipleTimeoutFailing' 'fakeTimeout') asSet.\x0a\x09\x09self finished\x0a\x09].\x0a\x09runner announcer on: ResultAnnouncement do: [:ann |\x0a\x09\x09ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ]].\x0a\x09runner run",
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "new", "failures", "asSet", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
 messageSends: ["collect:", "selector:", "class", "on:", "timeout:", "result", "async:", "assert:equals:", "selectorSetOf:", "errors", "new", "failures", "asSet", "finished", "on:do:", "ifTrue:", "=", "total", "runs", "==", "announcer", "run"],
 referencedClasses: ["TestSuiteRunner", "Set", "ResultAnnouncement"]
 referencedClasses: ["TestSuiteRunner", "Set", "ResultAnnouncement"]
 }),
 }),
@@ -498,9 +498,9 @@ x=_st(x).__plus((1));
 x;
 x;
 return _st(self)._assert_equals_(x,(1));
 return _st(self)._assert_equals_(x,(1));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_((0));
-return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x}, smalltalk.SUnitAsyncTest)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testTwoAsyncPassesWithFinishedOnlyOneIsRun",{x:x},smalltalk.SUnitAsyncTest)})},
 args: [],
 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: x equals: 1 ]) valueWithTimeout: 0.\x0a    flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.",
+source: "testTwoAsyncPassesWithFinishedOnlyOneIsRun\x0a\x09| x |\x0a\x09flag := 'bad'.\x0a\x09self timeout: 10.\x0a\x09x := 0.\x0a\x09flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.\x0a\x09flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.",
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"],
 messageSends: ["timeout:", "valueWithTimeout:", "async:", "finished", "+", "assert:equals:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),

+ 61 - 61
js/SUnit.deploy.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('SUnit', {});
+smalltalk.addPackage('SUnit');
 smalltalk.addClass('ResultAnnouncement', smalltalk.Object, ['result'], 'SUnit');
 smalltalk.addClass('ResultAnnouncement', smalltalk.Object, ['result'], 'SUnit');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_result",
 "_result",
@@ -9,7 +9,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 $1=self["@result"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{},smalltalk.ResultAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ResultAnnouncement);
 smalltalk.ResultAnnouncement);
 
 
@@ -20,7 +20,7 @@ selector: "result:",
 fn: function (aTestResult){
 fn: function (aTestResult){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult},smalltalk.ResultAnnouncement)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ResultAnnouncement);
 smalltalk.ResultAnnouncement);
 
 
@@ -34,7 +34,7 @@ selector: "assert:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
-return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean},smalltalk.TestCase)})},
 messageSends: ["assert:description:"]}),
 messageSends: ["assert:description:"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -49,7 +49,7 @@ $1=aBoolean;
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._signalFailure_(aString);
 _st(self)._signalFailure_(aString);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString},smalltalk.TestCase)})},
 messageSends: ["ifFalse:", "signalFailure:"]}),
 messageSends: ["ifFalse:", "signalFailure:"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -62,7 +62,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._assert_description_(_st(actual).__eq(expected),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 $1=_st(self)._assert_description_(_st(actual).__eq(expected),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{actual:actual,expected:expected}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{actual:actual,expected:expected},smalltalk.TestCase)})},
 messageSends: ["assert:description:", "=", ",", "asString"]}),
 messageSends: ["assert:description:", "=", ",", "asString"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -83,7 +83,7 @@ return _st(c)._execute_(aBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c},smalltalk.TestCase)})},
 messageSends: ["errorIfNotAsync:", "ifTrue:", "execute:", "isAsync"]}),
 messageSends: ["errorIfNotAsync:", "ifTrue:", "execute:", "isAsync"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -94,7 +94,7 @@ selector: "context:",
 fn: function (aRunningTestContext){
 fn: function (aRunningTestContext){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext},smalltalk.TestCase)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -105,7 +105,7 @@ selector: "deny:",
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
-return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean},smalltalk.TestCase)})},
 messageSends: ["assert:", "not"]}),
 messageSends: ["assert:", "not"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -120,7 +120,7 @@ $1=_st(self)._isAsync();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString},smalltalk.TestCase)})},
 messageSends: ["ifFalse:", "error:", ",", "isAsync"]}),
 messageSends: ["ifFalse:", "error:", ",", "isAsync"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -132,7 +132,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 self["@asyncTimeout"]=nil;
 self["@asyncTimeout"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished",{},smalltalk.TestCase)})},
 messageSends: ["errorIfNotAsync:"]}),
 messageSends: ["errorIfNotAsync:"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -145,7 +145,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self["@asyncTimeout"])._notNil();
 $1=_st(self["@asyncTimeout"])._notNil();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"isAsync",{},smalltalk.TestCase)})},
 messageSends: ["notNil"]}),
 messageSends: ["notNil"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -157,7 +157,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 _st(self)._perform_(_st(self)._selector());
 _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)})},
 messageSends: ["perform:", "selector"]}),
 messageSends: ["perform:", "selector"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -168,7 +168,7 @@ selector: "runCase",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.TestContext || TestContext))._testCase_(self))._start();
 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)})},
 messageSends: ["start", "testCase:"]}),
 messageSends: ["start", "testCase:"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -181,7 +181,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@testSelector"];
 $1=self["@testSelector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.TestCase)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -192,7 +192,7 @@ selector: "setTestSelector:",
 fn: function (aSelector){
 fn: function (aSelector){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
-return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector},smalltalk.TestCase)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -202,7 +202,7 @@ smalltalk.method({
 selector: "setUp",
 selector: "setUp",
 fn: function (){
 fn: function (){
 var self=this;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -213,7 +213,7 @@ selector: "should:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
-return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock},smalltalk.TestCase)})},
 messageSends: ["assert:", "value"]}),
 messageSends: ["assert:", "value"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -229,7 +229,7 @@ return false;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return true;
 return smalltalk.withContext(function($ctx2) {
return true;
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
-return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass},smalltalk.TestCase)})},
 messageSends: ["assert:", "on:do:", "value"]}),
 messageSends: ["assert:", "on:do:", "value"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -245,7 +245,7 @@ return true;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return false;
 return smalltalk.withContext(function($ctx2) {
return false;
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
-return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass},smalltalk.TestCase)})},
 messageSends: ["assert:", "on:do:", "value"]}),
 messageSends: ["assert:", "on:do:", "value"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -259,7 +259,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 _st($1)._messageText_(aString);
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString},smalltalk.TestCase)})},
 messageSends: ["messageText:", "new", "signal"]}),
 messageSends: ["messageText:", "new", "signal"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -269,7 +269,7 @@ smalltalk.method({
 selector: "tearDown",
 selector: "tearDown",
 fn: function (){
 fn: function (){
 var self=this;
 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)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -290,7 +290,7 @@ self["@asyncTimeout"]=(0);
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
-return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber},smalltalk.TestCase)})},
 messageSends: ["ifNotNil:", "clearTimeout", "valueWithTimeout:", "async:", "assert:description:"]}),
 messageSends: ["ifNotNil:", "clearTimeout", "valueWithTimeout:", "async:", "assert:description:"]}),
 smalltalk.TestCase);
 smalltalk.TestCase);
 
 
@@ -310,7 +310,7 @@ _st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
 };
 };
 $2=selectors;
 $2=selectors;
 return $2;
 return $2;
-}, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors},smalltalk.TestCase.klass)})},
 messageSends: ["testSelectors", "ifTrue:", "addAll:", "allTestSelectors", "superclass", "shouldInheritSelectors"]}),
 messageSends: ["testSelectors", "ifTrue:", "addAll:", "allTestSelectors", "superclass", "shouldInheritSelectors"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -325,7 +325,7 @@ $1=_st(_st(self)._allTestSelectors())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"buildSuite",{},smalltalk.TestCase.klass)})},
 messageSends: ["collect:", "selector:", "allTestSelectors"]}),
 messageSends: ["collect:", "selector:", "allTestSelectors"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -338,7 +338,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name()).__eq("TestCase");
 $1=_st(_st(self)._name()).__eq("TestCase");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"isAbstract",{},smalltalk.TestCase.klass)})},
 messageSends: ["=", "name"]}),
 messageSends: ["=", "name"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -351,7 +351,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.TestCase || TestCase);
 $1=(smalltalk.TestCase || TestCase);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{},smalltalk.TestCase.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -367,7 +367,7 @@ _st($2)._setTestSelector_(aSelector);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector},smalltalk.TestCase.klass)})},
 messageSends: ["setTestSelector:", "new", "yourself"]}),
 messageSends: ["setTestSelector:", "new", "yourself"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -380,7 +380,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{},smalltalk.TestCase.klass)})},
 messageSends: ["~=", "lookupHierarchyRoot"]}),
 messageSends: ["~=", "lookupHierarchyRoot"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -395,7 +395,7 @@ $1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testSelectors",{},smalltalk.TestCase.klass)})},
 messageSends: ["select:", "match:", "keys", "methodDictionary"]}),
 messageSends: ["select:", "match:", "keys", "methodDictionary"]}),
 smalltalk.TestCase.klass);
 smalltalk.TestCase.klass);
 
 
@@ -429,7 +429,7 @@ if(! smalltalk.assert($2)){
 return _st(self["@testCase"])._tearDown();
 return _st(self["@testCase"])._tearDown();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed},smalltalk.TestContext)})},
 messageSends: ["context:", "ensure:", "ifTrue:", "finished", "and:", "isAsync", "ifFalse:", "tearDown", "value"]}),
 messageSends: ["context:", "ensure:", "ifTrue:", "finished", "and:", "isAsync", "ifFalse:", "tearDown", "value"]}),
 smalltalk.TestContext);
 smalltalk.TestContext);
 
 
@@ -443,7 +443,7 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._execute_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return _st(self["@testCase"])._performTest();
 return _st(self["@testCase"])._performTest();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"start",{},smalltalk.TestContext)})},
 messageSends: ["execute:", "setUp", "performTest"]}),
 messageSends: ["execute:", "setUp", "performTest"]}),
 smalltalk.TestContext);
 smalltalk.TestContext);
 
 
@@ -454,7 +454,7 @@ selector: "testCase:",
 fn: function (aTestCase){
 fn: function (aTestCase){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
-return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase},smalltalk.TestContext)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestContext);
 smalltalk.TestContext);
 
 
@@ -471,7 +471,7 @@ _st($2)._testCase_(aTestCase);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase},smalltalk.TestContext.klass)})},
 messageSends: ["testCase:", "new", "yourself"]}),
 messageSends: ["testCase:", "new", "yourself"]}),
 smalltalk.TestContext.klass);
 smalltalk.TestContext.klass);
 
 
@@ -495,7 +495,7 @@ _st(self["@result"])._increaseRuns();
 return _st(self["@finished"])._value();
 return _st(self["@finished"])._value();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 messageSends: ["ensure:", "ifFalse:", "increaseRuns", "value", "isAsync", "withErrorReporting:", "execute:"]}),
 messageSends: ["ensure:", "ifFalse:", "increaseRuns", "value", "isAsync", "withErrorReporting:", "execute:"]}),
 smalltalk.ReportingTestContext);
 smalltalk.ReportingTestContext);
 
 
@@ -506,7 +506,7 @@ selector: "finished:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ReportingTestContext);
 smalltalk.ReportingTestContext);
 
 
@@ -517,7 +517,7 @@ selector: "result:",
 fn: function (aTestResult){
 fn: function (aTestResult){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult},smalltalk.ReportingTestContext)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.ReportingTestContext);
 smalltalk.ReportingTestContext);
 
 
@@ -534,7 +534,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addF
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 messageSends: ["on:do:", "addError:", "addFailure:"]}),
 messageSends: ["on:do:", "addError:", "addFailure:"]}),
 smalltalk.ReportingTestContext);
 smalltalk.ReportingTestContext);
 
 
@@ -552,7 +552,7 @@ _st($2)._finished_(aBlock);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock}, smalltalk.ReportingTestContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock},smalltalk.ReportingTestContext.klass)})},
 messageSends: ["result:", "testCase:", "finished:", "yourself"]}),
 messageSends: ["result:", "testCase:", "finished:", "yourself"]}),
 smalltalk.ReportingTestContext.klass);
 smalltalk.ReportingTestContext.klass);
 
 
@@ -568,7 +568,7 @@ selector: "addError:",
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError},smalltalk.TestResult)})},
 messageSends: ["add:", "errors"]}),
 messageSends: ["add:", "errors"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -579,7 +579,7 @@ selector: "addFailure:",
 fn: function (aFailure){
 fn: function (aFailure){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
-return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure},smalltalk.TestResult)})},
 messageSends: ["add:", "failures"]}),
 messageSends: ["add:", "failures"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -592,7 +592,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@errors"];
 $1=self["@errors"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"errors",{},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -605,7 +605,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@failures"];
 $1=self["@failures"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"failures",{},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -616,7 +616,7 @@ selector: "increaseRuns",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@runs"]=_st(self["@runs"]).__plus((1));
 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)})},
 messageSends: ["+"]}),
 messageSends: ["+"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -632,7 +632,7 @@ self["@runs"]=(0);
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@total"]=(0);
 self["@total"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestResult)})},
 messageSends: ["initialize", "now", "new"]}),
 messageSends: ["initialize", "now", "new"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -648,7 +648,7 @@ if(! smalltalk.assert($2)){
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock},smalltalk.TestResult)})},
 messageSends: ["ifFalse:", "value:", "+", "runs", "==", "total"]}),
 messageSends: ["ifFalse:", "value:", "+", "runs", "==", "total"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -668,7 +668,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTe
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase},smalltalk.TestResult)})},
 messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"]}),
 messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -681,7 +681,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@runs"];
 $1=self["@runs"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"runs",{},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -704,7 +704,7 @@ $1="failure";
 $1="error";
 $1="error";
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"status",{},smalltalk.TestResult)})},
 messageSends: ["ifTrue:ifFalse:", "isEmpty", "failures", "errors"]}),
 messageSends: ["ifTrue:ifFalse:", "isEmpty", "failures", "errors"]}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -717,7 +717,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@timestamp"];
 $1=self["@timestamp"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"timestamp",{},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -730,7 +730,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@total"];
 $1=self["@total"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"total",{},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -741,7 +741,7 @@ selector: "total:",
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
-return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber},smalltalk.TestResult)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestResult);
 smalltalk.TestResult);
 
 
@@ -757,7 +757,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcer"];
 $1=self["@announcer"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"announcer",{},smalltalk.TestSuiteRunner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -772,7 +772,7 @@ $1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_resul
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger},smalltalk.TestSuiteRunner)})},
 messageSends: ["testCase:result:finished:", "at:", "resume"]}),
 messageSends: ["testCase:result:finished:", "at:", "resume"]}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -795,7 +795,7 @@ if(smalltalk.assert($1)){
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestSuiteRunner)})},
 messageSends: ["initialize", "new", "runs", "ifTrue:", "start", "contextOf:", "+", "<", "total"]}),
 messageSends: ["initialize", "new", "runs", "ifTrue:", "start", "contextOf:", "+", "<", "total"]}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -808,7 +808,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 $1=self["@result"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{},smalltalk.TestSuiteRunner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -820,7 +820,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
 _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)})},
 messageSends: ["fork", "announce:", "result:", "new"]}),
 messageSends: ["fork", "announce:", "result:", "new"]}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -832,7 +832,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 _st(self)._resume();
 _st(self)._resume();
-return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"run",{},smalltalk.TestSuiteRunner)})},
 messageSends: ["total:", "size", "resume"]}),
 messageSends: ["total:", "size", "resume"]}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -843,7 +843,7 @@ selector: "suite:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection},smalltalk.TestSuiteRunner)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.TestSuiteRunner);
 smalltalk.TestSuiteRunner);
 
 
@@ -855,7 +855,7 @@ selector: "new",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
 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)})},
 messageSends: ["shouldNotImplement"]}),
 messageSends: ["shouldNotImplement"]}),
 smalltalk.TestSuiteRunner.klass);
 smalltalk.TestSuiteRunner.klass);
 
 
@@ -868,7 +868,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection},smalltalk.TestSuiteRunner.klass)})},
 messageSends: ["suite:", "new"]}),
 messageSends: ["suite:", "new"]}),
 smalltalk.TestSuiteRunner.klass);
 smalltalk.TestSuiteRunner.klass);
 
 

+ 80 - 80
js/SUnit.js

@@ -1,4 +1,4 @@
-smalltalk.addPackage('SUnit', {});
+smalltalk.addPackage('SUnit');
 smalltalk.addClass('ResultAnnouncement', smalltalk.Object, ['result'], 'SUnit');
 smalltalk.addClass('ResultAnnouncement', smalltalk.Object, ['result'], 'SUnit');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_result",
 "_result",
@@ -10,7 +10,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 $1=self["@result"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{},smalltalk.ResultAnnouncement)})},
 args: [],
 args: [],
 source: "result\x0a\x09^result",
 source: "result\x0a\x09^result",
 messageSends: [],
 messageSends: [],
@@ -26,7 +26,7 @@ category: 'accessing',
 fn: function (aTestResult){
 fn: function (aTestResult){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult},smalltalk.ResultAnnouncement)})},
 args: ["aTestResult"],
 args: ["aTestResult"],
 source: "result: aTestResult\x0a\x09result := aTestResult",
 source: "result: aTestResult\x0a\x09result := aTestResult",
 messageSends: [],
 messageSends: [],
@@ -37,7 +37,7 @@ smalltalk.ResultAnnouncement);
 
 
 
 
 smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector', 'asyncTimeout', 'context'], 'SUnit');
 smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector', 'asyncTimeout', 'context'], 'SUnit');
-smalltalk.TestCase.comment="A TestCase is an implementation of the command pattern to run a test.  \x0a\x0a`TestCase` instances are created with the class method `#selector:`, \x0apassing the symbol that names the method to be executed when the test case runs.\x0a\x0aWhen you discover a new fixture, subclass `TestCase` and create a `#test...` method for the first test.  \x0aAs that method develops and more `#test...` methods are added, you will find yourself refactoring temps \x0ainto instance variables for the objects in the fixture and overriding `#setUp` to initialize these variables.  \x0aAs required, override `#tearDown` to nil references, release objects and deallocate."
+smalltalk.TestCase.comment="A TestCase is an implementation of the command pattern to run a test.\x0a\x0a`TestCase` instances are created with the class method `#selector:`,\x0apassing the symbol that names the method to be executed when the test case runs.\x0a\x0aWhen you discover a new fixture, subclass `TestCase` and create a `#test...` method for the first test.\x0aAs that method develops and more `#test...` methods are added, you will find yourself refactoring temps\x0ainto instance variables for the objects in the fixture and overriding `#setUp` to initialize these variables.\x0aAs required, override `#tearDown` to nil references, release objects and deallocate."
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_assert_",
 "_assert_",
 smalltalk.method({
 smalltalk.method({
@@ -46,7 +46,7 @@ category: 'testing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_description_(aBoolean,"Assertion failed");
-return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean},smalltalk.TestCase)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "assert: aBoolean\x0a\x09self assert: aBoolean description: 'Assertion failed'",
 source: "assert: aBoolean\x0a\x09self assert: aBoolean description: 'Assertion failed'",
 messageSends: ["assert:description:"],
 messageSends: ["assert:description:"],
@@ -66,7 +66,7 @@ $1=aBoolean;
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._signalFailure_(aString);
 _st(self)._signalFailure_(aString);
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString},smalltalk.TestCase)})},
 args: ["aBoolean", "aString"],
 args: ["aBoolean", "aString"],
 source: "assert: aBoolean description: aString\x0a\x09aBoolean ifFalse: [self signalFailure: aString]",
 source: "assert: aBoolean description: aString\x0a\x09aBoolean ifFalse: [self signalFailure: aString]",
 messageSends: ["ifFalse:", "signalFailure:"],
 messageSends: ["ifFalse:", "signalFailure:"],
@@ -84,7 +84,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self)._assert_description_(_st(actual).__eq(expected),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 $1=_st(self)._assert_description_(_st(actual).__eq(expected),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{actual:actual,expected:expected}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"assert:equals:",{actual:actual,expected:expected},smalltalk.TestCase)})},
 args: ["actual", "expected"],
 args: ["actual", "expected"],
 source: "assert: actual equals: expected\x0a\x09^ self assert: (actual = expected) description: 'Expected: ', expected asString, ' but was: ', actual asString",
 source: "assert: actual equals: expected\x0a\x09^ self assert: (actual = expected) description: 'Expected: ', expected asString, ' but was: ', actual asString",
 messageSends: ["assert:description:", "=", ",", "asString"],
 messageSends: ["assert:description:", "=", ",", "asString"],
@@ -110,9 +110,9 @@ return _st(c)._execute_(aBlock);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c},smalltalk.TestCase)})},
 args: ["aBlock"],
 args: ["aBlock"],
-source: "async: aBlock\x0a\x09| c |\x0a\x09self errorIfNotAsync: '#async'.\x0a    c := context.\x0a    ^ [ self isAsync ifTrue: [ c execute: aBlock ] ]",
+source: "async: aBlock\x0a\x09| c |\x0a\x09self errorIfNotAsync: '#async'.\x0a\x09c := context.\x0a\x09^ [ self isAsync ifTrue: [ c execute: aBlock ] ]",
 messageSends: ["errorIfNotAsync:", "ifTrue:", "execute:", "isAsync"],
 messageSends: ["errorIfNotAsync:", "ifTrue:", "execute:", "isAsync"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -126,7 +126,7 @@ category: 'accessing',
 fn: function (aRunningTestContext){
 fn: function (aRunningTestContext){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
 return smalltalk.withContext(function($ctx1) { 
self["@context"]=aRunningTestContext;
-return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext},smalltalk.TestCase)})},
 args: ["aRunningTestContext"],
 args: ["aRunningTestContext"],
 source: "context: aRunningTestContext\x0a\x09context := aRunningTestContext",
 source: "context: aRunningTestContext\x0a\x09context := aRunningTestContext",
 messageSends: [],
 messageSends: [],
@@ -142,7 +142,7 @@ category: 'testing',
 fn: function (aBoolean){
 fn: function (aBoolean){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBoolean)._not());
-return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean},smalltalk.TestCase)})},
 args: ["aBoolean"],
 args: ["aBoolean"],
 source: "deny: aBoolean\x0a\x09self assert: aBoolean not",
 source: "deny: aBoolean\x0a\x09self assert: aBoolean not",
 messageSends: ["assert:", "not"],
 messageSends: ["assert:", "not"],
@@ -162,9 +162,9 @@ $1=_st(self)._isAsync();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
 };
 };
-return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString},smalltalk.TestCase)})},
 args: ["aString"],
 args: ["aString"],
-source: "errorIfNotAsync: aString\x0a\x09self isAsync ifFalse: [ \x0a    \x09self error: aString, ' used without prior #timeout:' ]",
+source: "errorIfNotAsync: aString\x0a\x09self isAsync ifFalse: [\x0a\x09\x09self error: aString, ' used without prior #timeout:' ]",
 messageSends: ["ifFalse:", "error:", ",", "isAsync"],
 messageSends: ["ifFalse:", "error:", ",", "isAsync"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -179,7 +179,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 return smalltalk.withContext(function($ctx1) { 
_st(self)._errorIfNotAsync_("#finished");
 self["@asyncTimeout"]=nil;
 self["@asyncTimeout"]=nil;
-return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished",{},smalltalk.TestCase)})},
 args: [],
 args: [],
 source: "finished\x0a\x09self errorIfNotAsync: '#finished'.\x0a\x09asyncTimeout := nil",
 source: "finished\x0a\x09self errorIfNotAsync: '#finished'.\x0a\x09asyncTimeout := nil",
 messageSends: ["errorIfNotAsync:"],
 messageSends: ["errorIfNotAsync:"],
@@ -197,7 +197,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self["@asyncTimeout"])._notNil();
 $1=_st(self["@asyncTimeout"])._notNil();
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"isAsync",{},smalltalk.TestCase)})},
 args: [],
 args: [],
 source: "isAsync\x0a\x09^asyncTimeout notNil",
 source: "isAsync\x0a\x09^asyncTimeout notNil",
 messageSends: ["notNil"],
 messageSends: ["notNil"],
@@ -214,7 +214,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 return smalltalk.withContext(function($ctx1) { 
self["@asyncTimeout"]=nil;
 _st(self)._perform_(_st(self)._selector());
 _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: [],
 args: [],
 source: "performTest\x0a\x09asyncTimeout := nil.\x0a\x09self perform: self selector",
 source: "performTest\x0a\x09asyncTimeout := nil.\x0a\x09self perform: self selector",
 messageSends: ["perform:", "selector"],
 messageSends: ["perform:", "selector"],
@@ -230,7 +230,7 @@ category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.TestContext || TestContext))._testCase_(self))._start();
 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: [],
 args: [],
 source: "runCase\x0a\x09\x22Runs a test case in isolated context, leaking all errors.\x22\x0a\x0a\x09(TestContext testCase: self) start",
 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:"],
 messageSends: ["start", "testCase:"],
@@ -248,7 +248,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@testSelector"];
 $1=self["@testSelector"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})},
+}, function($ctx1) {$ctx1.fill(self,"selector",{},smalltalk.TestCase)})},
 args: [],
 args: [],
 source: "selector\x0a\x09^testSelector",
 source: "selector\x0a\x09^testSelector",
 messageSends: [],
 messageSends: [],
@@ -264,7 +264,7 @@ category: 'accessing',
 fn: function (aSelector){
 fn: function (aSelector){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
 return smalltalk.withContext(function($ctx1) { 
self["@testSelector"]=aSelector;
-return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector},smalltalk.TestCase)})},
 args: ["aSelector"],
 args: ["aSelector"],
 source: "setTestSelector: aSelector\x0a\x09testSelector := aSelector",
 source: "setTestSelector: aSelector\x0a\x09testSelector := aSelector",
 messageSends: [],
 messageSends: [],
@@ -279,7 +279,7 @@ selector: "setUp",
 category: 'running',
 category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 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: [],
 args: [],
 source: "setUp",
 source: "setUp",
 messageSends: [],
 messageSends: [],
@@ -295,7 +295,7 @@ category: 'testing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(aBlock)._value());
-return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock},smalltalk.TestCase)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "should: aBlock\x0a\x09self assert: aBlock value",
 source: "should: aBlock\x0a\x09self assert: aBlock value",
 messageSends: ["assert:", "value"],
 messageSends: ["assert:", "value"],
@@ -316,9 +316,9 @@ return false;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return true;
 return smalltalk.withContext(function($ctx2) {
return true;
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
-return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass},smalltalk.TestCase)})},
 args: ["aBlock", "anExceptionClass"],
 args: ["aBlock", "anExceptionClass"],
-source: "should: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. false] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | true])",
+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"],
 messageSends: ["assert:", "on:do:", "value"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -337,9 +337,9 @@ return true;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
 return smalltalk.withContext(function($ctx2) {
return false;
 return smalltalk.withContext(function($ctx2) {
return false;
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
-return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass},smalltalk.TestCase)})},
 args: ["aBlock", "anExceptionClass"],
 args: ["aBlock", "anExceptionClass"],
-source: "shouldnt: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. true] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | false])",
+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"],
 messageSends: ["assert:", "on:do:", "value"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -356,7 +356,7 @@ return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 $1=_st((smalltalk.TestFailure || TestFailure))._new();
 _st($1)._messageText_(aString);
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
-return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString},smalltalk.TestCase)})},
 args: ["aString"],
 args: ["aString"],
 source: "signalFailure: aString\x0a\x09TestFailure new\x0a\x09\x09messageText: aString;\x0a\x09\x09signal",
 source: "signalFailure: aString\x0a\x09TestFailure new\x0a\x09\x09messageText: aString;\x0a\x09\x09signal",
 messageSends: ["messageText:", "new", "signal"],
 messageSends: ["messageText:", "new", "signal"],
@@ -371,7 +371,7 @@ selector: "tearDown",
 category: 'running',
 category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 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: [],
 args: [],
 source: "tearDown",
 source: "tearDown",
 messageSends: [],
 messageSends: [],
@@ -397,9 +397,9 @@ self["@asyncTimeout"]=(0);
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 self["@asyncTimeout"]=_st(_st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
 return smalltalk.withContext(function($ctx2) {
return _st(self)._assert_description_(false,"SUnit grace time exhausted");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
-return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})},
+return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber},smalltalk.TestCase)})},
 args: ["aNumber"],
 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",
+source: "timeout: aNumber\x0a\x09\x22Set a grace time timeout in milliseconds to run the test asynchronously\x22\x0a\x09\x0a\x09asyncTimeout ifNotNil: [ asyncTimeout clearTimeout ].\x0a\x09\x0a\x09\x22to allow #async: message send without throwing an error\x22\x0a\x09asyncTimeout := 0.\x0a\x09\x0a\x09asyncTimeout := (self async: [\x0a\x09\x09self assert: false description: 'SUnit grace time exhausted' ])\x0a\x09\x09\x09valueWithTimeout: aNumber",
 messageSends: ["ifNotNil:", "clearTimeout", "valueWithTimeout:", "async:", "assert:description:"],
 messageSends: ["ifNotNil:", "clearTimeout", "valueWithTimeout:", "async:", "assert:description:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -422,7 +422,7 @@ _st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
 };
 };
 $2=selectors;
 $2=selectors;
 return $2;
 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: [],
 args: [],
 source: "allTestSelectors\x0a\x09| selectors |\x0a\x09selectors := self testSelectors.\x0a\x09self shouldInheritSelectors ifTrue: [\x0a\x09\x09selectors addAll: self superclass allTestSelectors].\x0a\x09^selectors",
 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"],
 messageSends: ["testSelectors", "ifTrue:", "addAll:", "allTestSelectors", "superclass", "shouldInheritSelectors"],
@@ -442,7 +442,7 @@ $1=_st(_st(self)._allTestSelectors())._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"buildSuite",{},smalltalk.TestCase.klass)})},
 args: [],
 args: [],
 source: "buildSuite\x0a\x09^self allTestSelectors collect: [:each | self selector: each]",
 source: "buildSuite\x0a\x09^self allTestSelectors collect: [:each | self selector: each]",
 messageSends: ["collect:", "selector:", "allTestSelectors"],
 messageSends: ["collect:", "selector:", "allTestSelectors"],
@@ -460,7 +460,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(self)._name()).__eq("TestCase");
 $1=_st(_st(self)._name()).__eq("TestCase");
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"isAbstract",{},smalltalk.TestCase.klass)})},
 args: [],
 args: [],
 source: "isAbstract\x0a\x09^ self name = 'TestCase'",
 source: "isAbstract\x0a\x09^ self name = 'TestCase'",
 messageSends: ["=", "name"],
 messageSends: ["=", "name"],
@@ -478,7 +478,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=(smalltalk.TestCase || TestCase);
 $1=(smalltalk.TestCase || TestCase);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{},smalltalk.TestCase.klass)})},
 args: [],
 args: [],
 source: "lookupHierarchyRoot\x0a\x09^TestCase",
 source: "lookupHierarchyRoot\x0a\x09^TestCase",
 messageSends: [],
 messageSends: [],
@@ -499,7 +499,7 @@ _st($2)._setTestSelector_(aSelector);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector},smalltalk.TestCase.klass)})},
 args: ["aSelector"],
 args: ["aSelector"],
 source: "selector: aSelector\x0a\x09^self new\x0a\x09\x09setTestSelector: aSelector;\x0a\x09\x09yourself",
 source: "selector: aSelector\x0a\x09^self new\x0a\x09\x09setTestSelector: aSelector;\x0a\x09\x09yourself",
 messageSends: ["setTestSelector:", "new", "yourself"],
 messageSends: ["setTestSelector:", "new", "yourself"],
@@ -517,7 +517,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{},smalltalk.TestCase.klass)})},
 args: [],
 args: [],
 source: "shouldInheritSelectors\x0a\x09^self ~= self lookupHierarchyRoot",
 source: "shouldInheritSelectors\x0a\x09^self ~= self lookupHierarchyRoot",
 messageSends: ["~=", "lookupHierarchyRoot"],
 messageSends: ["~=", "lookupHierarchyRoot"],
@@ -537,7 +537,7 @@ $1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
 return smalltalk.withContext(function($ctx2) {
return _st(each)._match_("^test");
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testSelectors",{},smalltalk.TestCase.klass)})},
 args: [],
 args: [],
 source: "testSelectors\x0a\x09^self methodDictionary keys select: [:each | each match: '^test']",
 source: "testSelectors\x0a\x09^self methodDictionary keys select: [:each | each match: '^test']",
 messageSends: ["select:", "match:", "keys", "methodDictionary"],
 messageSends: ["select:", "match:", "keys", "methodDictionary"],
@@ -577,9 +577,9 @@ if(! smalltalk.assert($2)){
 return _st(self["@testCase"])._tearDown();
 return _st(self["@testCase"])._tearDown();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed},smalltalk.TestContext)})},
 args: ["aBlock"],
 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 ] ]",
+source: "execute: aBlock\x0a\x09| failed |\x0a\x09\x0a\x09testCase context: self.\x0a\x09[\x0a\x09\x09failed := true.\x0a\x09\x09aBlock value.\x0a\x09\x09failed := false\x0a\x09]\x0a\x09\x09ensure: [\x0a\x09\x09\x09testCase context: nil.\x0a\x09\x09\x09\x0a\x09\x09\x09(failed and: [ testCase isAsync ]) ifTrue: [\x0a\x09\x09\x09\x09testCase finished ].\x0a\x09\x09\x09testCase isAsync ifFalse: [\x0a\x09\x09\x09\x09testCase tearDown ] ]",
 messageSends: ["context:", "ensure:", "ifTrue:", "finished", "and:", "isAsync", "ifFalse:", "tearDown", "value"],
 messageSends: ["context:", "ensure:", "ifTrue:", "finished", "and:", "isAsync", "ifFalse:", "tearDown", "value"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -596,9 +596,9 @@ return smalltalk.withContext(function($ctx1) { 
_st(self)._execute_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return smalltalk.withContext(function($ctx2) {
_st(self["@testCase"])._setUp();
 return _st(self["@testCase"])._performTest();
 return _st(self["@testCase"])._performTest();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"start",{},smalltalk.TestContext)})},
 args: [],
 args: [],
-source: "start\x0a\x09self execute: [ \x0a    \x09testCase setUp. \x0a        testCase performTest ]",
+source: "start\x0a\x09self execute: [\x0a\x09\x09testCase setUp.\x0a\x09\x09testCase performTest ]",
 messageSends: ["execute:", "setUp", "performTest"],
 messageSends: ["execute:", "setUp", "performTest"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -612,7 +612,7 @@ category: 'accessing',
 fn: function (aTestCase){
 fn: function (aTestCase){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
 return smalltalk.withContext(function($ctx1) { 
self["@testCase"]=aTestCase;
-return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase},smalltalk.TestContext)})},
 args: ["aTestCase"],
 args: ["aTestCase"],
 source: "testCase: aTestCase\x0a\x09testCase := aTestCase",
 source: "testCase: aTestCase\x0a\x09testCase := aTestCase",
 messageSends: [],
 messageSends: [],
@@ -634,9 +634,9 @@ _st($2)._testCase_(aTestCase);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase},smalltalk.TestContext.klass)})},
 args: ["aTestCase"],
 args: ["aTestCase"],
-source: "testCase: aTestCase\x0a\x09^self new\x0a        testCase: aTestCase;\x0a        yourself",
+source: "testCase: aTestCase\x0a\x09^self new\x0a\x09\x09testCase: aTestCase;\x0a\x09\x09yourself",
 messageSends: ["testCase:", "new", "yourself"],
 messageSends: ["testCase:", "new", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -664,9 +664,9 @@ _st(self["@result"])._increaseRuns();
 return _st(self["@finished"])._value();
 return _st(self["@finished"])._value();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 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 ] ]",
+source: "execute: aBlock\x0a\x09[\x0a\x09\x09self withErrorReporting: [ super execute: aBlock ]\x0a\x09]\x0a\x09\x09ensure: [\x0a\x09\x09\x09testCase isAsync ifFalse: [\x0a\x09\x09\x09\x09result increaseRuns. finished value ] ]",
 messageSends: ["ensure:", "ifFalse:", "increaseRuns", "value", "isAsync", "withErrorReporting:", "execute:"],
 messageSends: ["ensure:", "ifFalse:", "increaseRuns", "value", "isAsync", "withErrorReporting:", "execute:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -680,7 +680,7 @@ category: 'accessing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
 return smalltalk.withContext(function($ctx1) { 
self["@finished"]=aBlock;
-return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "finished: aBlock\x0a\x09finished := aBlock",
 source: "finished: aBlock\x0a\x09finished := aBlock",
 messageSends: [],
 messageSends: [],
@@ -696,7 +696,7 @@ category: 'accessing',
 fn: function (aTestResult){
 fn: function (aTestResult){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
 return smalltalk.withContext(function($ctx1) { 
self["@result"]=aTestResult;
-return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult},smalltalk.ReportingTestContext)})},
 args: ["aTestResult"],
 args: ["aTestResult"],
 source: "result: aTestResult\x0a\x09result := aTestResult",
 source: "result: aTestResult\x0a\x09result := aTestResult",
 messageSends: [],
 messageSends: [],
@@ -718,9 +718,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addF
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
 return smalltalk.withContext(function($ctx2) {
return _st(self["@result"])._addError_(self["@testCase"]);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
 args: ["aBlock"],
 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 ]",
+source: "withErrorReporting: aBlock\x0a\x09[ aBlock\x0a\x09\x09on: TestFailure\x0a\x09\x09do: [ :ex | result addFailure: testCase ]\x0a\x09]\x0a\x09\x09on: Error\x0a\x09\x09do: [ :ex | result addError: testCase ]",
 messageSends: ["on:do:", "addError:", "addFailure:"],
 messageSends: ["on:do:", "addError:", "addFailure:"],
 referencedClasses: ["Error", "TestFailure"]
 referencedClasses: ["Error", "TestFailure"]
 }),
 }),
@@ -741,9 +741,9 @@ _st($2)._finished_(aBlock);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock: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"],
 args: ["aTestCase", "aTestResult", "aBlock"],
-source: "testCase: aTestCase result: aTestResult finished: aBlock\x0a\x09^(super testCase: aTestCase)\x0a        result: aTestResult;\x0a        finished: aBlock;\x0a        yourself",
+source: "testCase: aTestCase result: aTestResult finished: aBlock\x0a\x09^(super testCase: aTestCase)\x0a\x09\x09result: aTestResult;\x0a\x09\x09finished: aBlock;\x0a\x09\x09yourself",
 messageSends: ["result:", "testCase:", "finished:", "yourself"],
 messageSends: ["result:", "testCase:", "finished:", "yourself"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -751,11 +751,11 @@ smalltalk.ReportingTestContext.klass);
 
 
 
 
 smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
 smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
-smalltalk.TestFailure.comment="The test framework distinguishes between failures and errors.  \x0aA failure is an event whose possibiity is explicitly anticipated and checked for in an assertion, \x0awhereas an error is an unanticipated problem like a division by 0 or an index out of bounds.  \x0a\x0aTestFailure is raised when the boolean parameter of an #`assert:` or `#deny:` call is the opposite of what the assertion claims."
+smalltalk.TestFailure.comment="The test framework distinguishes between failures and errors.\x0aA failure is an event whose possibiity is explicitly anticipated and checked for in an assertion,\x0awhereas an error is an unanticipated problem like a division by 0 or an index out of bounds.\x0a\x0aTestFailure is raised when the boolean parameter of an #`assert:` or `#deny:` call is the opposite of what the assertion claims."
 
 
 
 
 smalltalk.addClass('TestResult', smalltalk.Object, ['timestamp', 'runs', 'errors', 'failures', 'total'], 'SUnit');
 smalltalk.addClass('TestResult', smalltalk.Object, ['timestamp', 'runs', 'errors', 'failures', 'total'], 'SUnit');
-smalltalk.TestResult.comment="A TestResult implements the collecting parameter pattern for running a bunch of tests.  \x0a\x0aA TestResult holds tests that have run, sorted into the result categories of passed, failures and errors.\x0a\x0aTestResult is an interesting object to subclass or substitute. `#runCase:` is the external protocol you need to reproduce"
+smalltalk.TestResult.comment="A TestResult implements the collecting parameter pattern for running a bunch of tests.\x0a\x0aA TestResult holds tests that have run, sorted into the result categories of passed, failures and errors.\x0a\x0aTestResult is an interesting object to subclass or substitute. `#runCase:` is the external protocol you need to reproduce"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_addError_",
 "_addError_",
 smalltalk.method({
 smalltalk.method({
@@ -764,7 +764,7 @@ category: 'accessing',
 fn: function (anError){
 fn: function (anError){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._errors())._add_(anError);
-return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError},smalltalk.TestResult)})},
 args: ["anError"],
 args: ["anError"],
 source: "addError: anError\x0a\x09self errors add: anError",
 source: "addError: anError\x0a\x09self errors add: anError",
 messageSends: ["add:", "errors"],
 messageSends: ["add:", "errors"],
@@ -780,7 +780,7 @@ category: 'accessing',
 fn: function (aFailure){
 fn: function (aFailure){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
 return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._failures())._add_(aFailure);
-return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure},smalltalk.TestResult)})},
 args: ["aFailure"],
 args: ["aFailure"],
 source: "addFailure: aFailure\x0a\x09self failures add: aFailure",
 source: "addFailure: aFailure\x0a\x09self failures add: aFailure",
 messageSends: ["add:", "failures"],
 messageSends: ["add:", "failures"],
@@ -798,7 +798,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@errors"];
 $1=self["@errors"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"errors",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "errors\x0a\x09^errors",
 source: "errors\x0a\x09^errors",
 messageSends: [],
 messageSends: [],
@@ -816,7 +816,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@failures"];
 $1=self["@failures"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"failures",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "failures\x0a\x09^failures",
 source: "failures\x0a\x09^failures",
 messageSends: [],
 messageSends: [],
@@ -832,7 +832,7 @@ category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@runs"]=_st(self["@runs"]).__plus((1));
 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: [],
 args: [],
 source: "increaseRuns\x0a\x09runs := runs + 1",
 source: "increaseRuns\x0a\x09runs := runs + 1",
 messageSends: ["+"],
 messageSends: ["+"],
@@ -853,7 +853,7 @@ self["@runs"]=(0);
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@errors"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@failures"]=_st((smalltalk.Array || Array))._new();
 self["@total"]=(0);
 self["@total"]=(0);
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09timestamp := Date now.\x0a\x09runs := 0.\x0a\x09errors := Array new.\x0a\x09failures := Array new.\x0a\x09total := 0",
 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"],
 messageSends: ["initialize", "now", "new"],
@@ -874,7 +874,7 @@ if(! smalltalk.assert($2)){
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock},smalltalk.TestResult)})},
 args: ["aBlock"],
 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 ]",
 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"],
 messageSends: ["ifFalse:", "value:", "+", "runs", "==", "total"],
@@ -899,9 +899,9 @@ return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTe
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._addError_(aTestCase);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
-return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase},smalltalk.TestResult)})},
 args: ["aTestCase"],
 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]",
+source: "runCase: aTestCase\x0a\x09[[ self increaseRuns.\x0a\x09\x09aTestCase runCase]\x0a\x09on: TestFailure do: [:ex | self addFailure: aTestCase]]\x0a\x09on: Error do: [:ex | self addError: aTestCase]",
 messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"],
 messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"],
 referencedClasses: ["Error", "TestFailure"]
 referencedClasses: ["Error", "TestFailure"]
 }),
 }),
@@ -917,7 +917,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@runs"];
 $1=self["@runs"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"runs",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "runs\x0a\x09^runs",
 source: "runs\x0a\x09^runs",
 messageSends: [],
 messageSends: [],
@@ -945,9 +945,9 @@ $1="failure";
 $1="error";
 $1="error";
 };
 };
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"status",{},smalltalk.TestResult)})},
 args: [],
 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']",
+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"],
 messageSends: ["ifTrue:ifFalse:", "isEmpty", "failures", "errors"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -963,7 +963,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@timestamp"];
 $1=self["@timestamp"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"timestamp",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "timestamp\x0a\x09^timestamp",
 source: "timestamp\x0a\x09^timestamp",
 messageSends: [],
 messageSends: [],
@@ -981,7 +981,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@total"];
 $1=self["@total"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})},
+}, function($ctx1) {$ctx1.fill(self,"total",{},smalltalk.TestResult)})},
 args: [],
 args: [],
 source: "total\x0a\x09^total",
 source: "total\x0a\x09^total",
 messageSends: [],
 messageSends: [],
@@ -997,7 +997,7 @@ category: 'accessing',
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
 return smalltalk.withContext(function($ctx1) { 
self["@total"]=aNumber;
-return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})},
+return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber},smalltalk.TestResult)})},
 args: ["aNumber"],
 args: ["aNumber"],
 source: "total: aNumber\x0a\x09total := aNumber",
 source: "total: aNumber\x0a\x09total := aNumber",
 messageSends: [],
 messageSends: [],
@@ -1018,7 +1018,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@announcer"];
 $1=self["@announcer"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"announcer",{},smalltalk.TestSuiteRunner)})},
 args: [],
 args: [],
 source: "announcer\x0a\x09^announcer",
 source: "announcer\x0a\x09^announcer",
 messageSends: [],
 messageSends: [],
@@ -1038,9 +1038,9 @@ $1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_resul
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._resume();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger},smalltalk.TestSuiteRunner)})},
 args: ["anInteger"],
 args: ["anInteger"],
-source: "contextOf: anInteger\x0a   \x09^ReportingTestContext testCase: (suite at: anInteger) result: result finished: [ self resume ]",
+source: "contextOf: anInteger\x0a\x09^ReportingTestContext testCase: (suite at: anInteger) result: result finished: [ self resume ]",
 messageSends: ["testCase:result:finished:", "at:", "resume"],
 messageSends: ["testCase:result:finished:", "at:", "resume"],
 referencedClasses: ["ReportingTestContext"]
 referencedClasses: ["ReportingTestContext"]
 }),
 }),
@@ -1066,9 +1066,9 @@ if(smalltalk.assert($1)){
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
 }, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
-return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestSuiteRunner)})},
 args: [],
 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 ]].",
+source: "initialize\x0a\x09super initialize.\x0a\x09announcer := Announcer new.\x0a\x09result := TestResult new.\x0a\x09runNextTest := [ | runs | runs := result runs. runs < result total ifTrue: [ (self contextOf: runs + 1) start ]].",
 messageSends: ["initialize", "new", "runs", "ifTrue:", "start", "contextOf:", "+", "<", "total"],
 messageSends: ["initialize", "new", "runs", "ifTrue:", "start", "contextOf:", "+", "<", "total"],
 referencedClasses: ["Announcer", "TestResult"]
 referencedClasses: ["Announcer", "TestResult"]
 }),
 }),
@@ -1084,7 +1084,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=self["@result"];
 $1=self["@result"];
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})},
+}, function($ctx1) {$ctx1.fill(self,"result",{},smalltalk.TestSuiteRunner)})},
 args: [],
 args: [],
 source: "result\x0a\x09^result",
 source: "result\x0a\x09^result",
 messageSends: [],
 messageSends: [],
@@ -1101,9 +1101,9 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 return smalltalk.withContext(function($ctx1) { 
_st(self["@runNextTest"])._fork();
 _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
 _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: [],
 args: [],
-source: "resume\x0a\x09runNextTest fork.\x0a    announcer announce: (ResultAnnouncement new result: result)",
+source: "resume\x0a\x09runNextTest fork.\x0a\x09announcer announce: (ResultAnnouncement new result: result)",
 messageSends: ["fork", "announce:", "result:", "new"],
 messageSends: ["fork", "announce:", "result:", "new"],
 referencedClasses: ["ResultAnnouncement"]
 referencedClasses: ["ResultAnnouncement"]
 }),
 }),
@@ -1118,7 +1118,7 @@ fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 return smalltalk.withContext(function($ctx1) { 
_st(self["@result"])._total_(_st(self["@suite"])._size());
 _st(self)._resume();
 _st(self)._resume();
-return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"run",{},smalltalk.TestSuiteRunner)})},
 args: [],
 args: [],
 source: "run\x0a\x09result total: suite size.\x0a\x09self resume",
 source: "run\x0a\x09result total: suite size.\x0a\x09self resume",
 messageSends: ["total:", "size", "resume"],
 messageSends: ["total:", "size", "resume"],
@@ -1134,7 +1134,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
 return smalltalk.withContext(function($ctx1) { 
self["@suite"]=aCollection;
-return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})},
+return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection},smalltalk.TestSuiteRunner)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "suite: aCollection\x0a\x09suite := aCollection",
 source: "suite: aCollection\x0a\x09suite := aCollection",
 messageSends: [],
 messageSends: [],
@@ -1151,7 +1151,7 @@ category: 'instance creation',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._shouldNotImplement();
 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: [],
 args: [],
 source: "new\x0a\x09self shouldNotImplement",
 source: "new\x0a\x09self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
 messageSends: ["shouldNotImplement"],
@@ -1169,7 +1169,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection},smalltalk.TestSuiteRunner.klass)})},
 args: ["aCollection"],
 args: ["aCollection"],
 source: "on: aCollection\x0a\x09^super new suite: aCollection",
 source: "on: aCollection\x0a\x09^super new suite: aCollection",
 messageSends: ["suite:", "new"],
 messageSends: ["suite:", "new"],

+ 132 - 129
js/Spaces.deploy.js

@@ -1,128 +1,126 @@
-smalltalk.addPackage('Spaces', {});
+smalltalk.addPackage('Spaces');
 smalltalk.addClass('ObjectSpace', smalltalk.Object, ['frame'], 'Spaces');
 smalltalk.addClass('ObjectSpace', smalltalk.Object, ['frame'], 'Spaces');
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_connectTo_",
 "_connectTo_",
 smalltalk.method({
 smalltalk.method({
 selector: "connectTo:",
 selector: "connectTo:",
-fn: function (aFrame) {
-    var self = this;
-    smalltalk.send(self, "_release", []);
-    self['@frame'] = aFrame;
-    return self;
-}
-}),
+fn: function (aFrame){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._release();
+self["@frame"]=aFrame;
+return self}, function($ctx1) {$ctx1.fill(self,"connectTo:",{aFrame:aFrame},smalltalk.ObjectSpace)})},
+messageSends: ["release"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_create",
 "_create",
 smalltalk.method({
 smalltalk.method({
 selector: "create",
 selector: "create",
-fn: function () {
-    var self = this;
-    smalltalk.send(smalltalk.send(window, "_jQuery_", ["body"]), "_append_", ["<iframe style=\"display: none;\"></iframe>"]);
-    self['@frame'] = smalltalk.send(smalltalk.send(smalltalk.send(window, "_jQuery_", ["iframe"]), "_get", []), "_last", []);
-    smalltalk.send(smalltalk.send(self['@frame'], "_contentWindow", []), "_location_", [smalltalk.send(window, "_location", [])]);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(_st(window)._jQuery_("body"))._append_("<iframe style=\x22display: none;\x22></iframe>");
+self["@frame"]=_st(_st(_st(window)._jQuery_("iframe"))._get())._last();
+_st(_st(self["@frame"])._contentWindow())._location_(_st(window)._location());
+return self}, function($ctx1) {$ctx1.fill(self,"create",{},smalltalk.ObjectSpace)})},
+messageSends: ["append:", "jQuery:", "last", "get", "location:", "location", "contentWindow"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_destroy",
 "_destroy",
 smalltalk.method({
 smalltalk.method({
 selector: "destroy",
 selector: "destroy",
-fn: function () {
-    var self = this;
-    if (($receiver = self['@frame']) == nil || $receiver == undefined) {
-        return self;
-    } else {
-        self['@frame'];
-    }
-    smalltalk.send(smalltalk.send(window, "_jQuery_", [self['@frame']]), "_remove", []);
-    smalltalk.send(self, "_release", []);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
+$1=self["@frame"];
+if(($receiver = $1) == nil || $receiver == undefined){
+$2=self;
+return $2;
+} else {
+$1;
+};
+_st(_st(window)._jQuery_(self["@frame"]))._remove();
+_st(self)._release();
+return self}, function($ctx1) {$ctx1.fill(self,"destroy",{},smalltalk.ObjectSpace)})},
+messageSends: ["ifNil:", "remove", "jQuery:", "release"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_do_",
 "_do_",
 smalltalk.method({
 smalltalk.method({
 selector: "do:",
 selector: "do:",
-fn: function (aBlock) {
-    var self = this;
-    var $1, $2, $3;
-    $1 = smalltalk.send(self, "_isConnected", []);
-    if (!smalltalk.assert($1)) {
-        $2 = smalltalk.send(smalltalk.ObjectSpaceConnectionError ||
-            ObjectSpaceConnectionError, "_signal", []);
-        return $2;
-    }
-    $3 = smalltalk.send(smalltalk.send(self['@frame'], "_contentWindow", []), "_eval_", [smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(aBlock, "_compiledSource", [])]), "__comma", [")()"])]);
-    return $3;
-}
-}),
+fn: function (aBlock){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
+$1=_st(self)._isConnected();
+if(! smalltalk.assert($1)){
+$2=_st((smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError))._signal();
+return $2;
+};
+$3=_st(_st(self["@frame"])._contentWindow())._eval_(_st(_st("(").__comma(_st(aBlock)._compiledSource())).__comma(")()"));
+return $3;
+}, function($ctx1) {$ctx1.fill(self,"do:",{aBlock:aBlock},smalltalk.ObjectSpace)})},
+messageSends: ["ifFalse:", "signal", "isConnected", "eval:", ",", "compiledSource", "contentWindow"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_frame",
 "_frame",
 smalltalk.method({
 smalltalk.method({
 selector: "frame",
 selector: "frame",
-fn: function () {
-    var self = this;
-    return self['@frame'];
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=self["@frame"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"frame",{},smalltalk.ObjectSpace)})},
+messageSends: []}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_initialize",
 "_initialize",
 smalltalk.method({
 smalltalk.method({
 selector: "initialize",
 selector: "initialize",
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_initialize", [], smalltalk.Object);
-    smalltalk.send(self, "_create", []);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
+_st(self)._create();
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ObjectSpace)})},
+messageSends: ["initialize", "create"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_isConnected",
 "_isConnected",
 smalltalk.method({
 smalltalk.method({
 selector: "isConnected",
 selector: "isConnected",
-fn: function () {
-    var self = this;
-    var $1;
-    $1 = smalltalk.send(smalltalk.send(self, "_frame", []), "_notNil", []);
-    return $1;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=_st(_st(self)._frame())._notNil();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"isConnected",{},smalltalk.ObjectSpace)})},
+messageSends: ["notNil", "frame"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_release",
 "_release",
 smalltalk.method({
 smalltalk.method({
 selector: "release",
 selector: "release",
-fn: function () {
-    var self = this;
-    self['@frame'] = nil;
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
self["@frame"]=nil;
+return self}, function($ctx1) {$ctx1.fill(self,"release",{},smalltalk.ObjectSpace)})},
+messageSends: []}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_whenReadyDo_",
 "_whenReadyDo_",
 smalltalk.method({
 smalltalk.method({
 selector: "whenReadyDo:",
 selector: "whenReadyDo:",
-fn: function (aBlock) {
-    var self = this;
-    smalltalk.send(smalltalk.send(window, "_jQuery_", [self['@frame']]), "_bind_do_", ["load", aBlock]);
-    return self;
-}
-}),
+fn: function (aBlock){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(_st(window)._jQuery_(self["@frame"]))._bind_do_("load",aBlock);
+return self}, function($ctx1) {$ctx1.fill(self,"whenReadyDo:",{aBlock:aBlock},smalltalk.ObjectSpace)})},
+messageSends: ["bind:do:", "jQuery:"]}),
 smalltalk.ObjectSpace);
 smalltalk.ObjectSpace);
 
 
 
 
@@ -130,16 +128,16 @@ smalltalk.addMethod(
 "_on_",
 "_on_",
 smalltalk.method({
 smalltalk.method({
 selector: "on:",
 selector: "on:",
-fn: function (aFrame) {
-    var self = this;
-    var $2, $3, $1;
-    $2 = smalltalk.send(self, "_basicNew", []);
-    smalltalk.send($2, "_connectTo_", [aFrame]);
-    $3 = smalltalk.send($2, "_yourself", []);
-    $1 = $3;
-    return $1;
-}
-}),
+fn: function (aFrame){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
+$2=_st(self)._basicNew();
+_st($2)._connectTo_(aFrame);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:",{aFrame:aFrame},smalltalk.ObjectSpace.klass)})},
+messageSends: ["connectTo:", "basicNew", "yourself"]}),
 smalltalk.ObjectSpace.klass);
 smalltalk.ObjectSpace.klass);
 
 
 
 
@@ -148,11 +146,11 @@ smalltalk.addMethod(
 "_messageText",
 "_messageText",
 smalltalk.method({
 smalltalk.method({
 selector: "messageText",
 selector: "messageText",
-fn: function () {
-    var self = this;
-    return "The ObjectSpace is not connected";
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
return "The ObjectSpace is not connected";
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.ObjectSpaceConnectionError)})},
+messageSends: []}),
 smalltalk.ObjectSpaceConnectionError);
 smalltalk.ObjectSpaceConnectionError);
 
 
 
 
@@ -162,78 +160,83 @@ smalltalk.addMethod(
 "_setUp",
 "_setUp",
 smalltalk.method({
 smalltalk.method({
 selector: "setUp",
 selector: "setUp",
-fn: function () {
-    var self = this;
-    self['@space'] = smalltalk.send(smalltalk.ObjectSpace || ObjectSpace, "_new", []);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
self["@space"]=_st((smalltalk.ObjectSpace || ObjectSpace))._new();
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{},smalltalk.ObjectSpaceTest)})},
+messageSends: ["new"]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_tearDown",
 "_tearDown",
 smalltalk.method({
 smalltalk.method({
 selector: "tearDown",
 selector: "tearDown",
-fn: function () {
-    var self = this;
-    smalltalk.send(self['@space'], "_destroy", []);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._destroy();
+return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{},smalltalk.ObjectSpaceTest)})},
+messageSends: ["destroy"]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_testConnection",
 "_testConnection",
 smalltalk.method({
 smalltalk.method({
 selector: "testConnection",
 selector: "testConnection",
-fn: function () {
-    var self = this;
-    smalltalk.send(self['@space'], "_destroy", []);
-    smalltalk.send(self, "_deny_", [smalltalk.send(self['@space'], "_isConnected", [])]);
-    smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@space'], "_do_", [function () {}]);}, smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError]);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._destroy();
+_st(self)._deny_(_st(self["@space"])._isConnected());
+_st(self)._should_raise_((function(){
+return smalltalk.withContext(function($ctx2) {
return _st(self["@space"])._do_((function(){
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError));
+return self}, function($ctx1) {$ctx1.fill(self,"testConnection",{},smalltalk.ObjectSpaceTest)})},
+messageSends: ["destroy", "deny:", "isConnected", "should:raise:", "do:"]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_testCreate",
 "_testCreate",
 smalltalk.method({
 smalltalk.method({
 selector: "testCreate",
 selector: "testCreate",
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_notNil", [])]);
-    smalltalk.send(self, "_assert_", [smalltalk.send(self['@space'], "_isConnected", [])]);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(_st(self["@space"])._frame())._notNil());
+_st(self)._assert_(_st(self["@space"])._isConnected());
+return self}, function($ctx1) {$ctx1.fill(self,"testCreate",{},smalltalk.ObjectSpaceTest)})},
+messageSends: ["assert:", "notNil", "frame", "isConnected"]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_testEvaluation",
 "_testEvaluation",
 smalltalk.method({
 smalltalk.method({
 selector: "testEvaluation",
 selector: "testEvaluation",
-fn: function () {
-    var self = this;
-    var result;
-    smalltalk.send(self['@space'], "_whenReadyDo_", [function () {result = smalltalk.send(self['@space'], "_do_", [function () {return smalltalk;}]);result;smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(result, "_class", []), "_name", []), "Smalltalk"]);smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(result, "_class", []), "__eq", [smalltalk.Smalltalk || Smalltalk])]);return smalltalk.send(self, "_deny_", [smalltalk.send(result, "__eq_eq", [smalltalk])]);}]);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+var result;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._whenReadyDo_((function(){
+return smalltalk.withContext(function($ctx2) {
result=_st(self["@space"])._do_((function(){
+return smalltalk.withContext(function($ctx3) {
return smalltalk;
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+result;
+_st(self)._assert_equals_(_st(_st(result)._class())._name(),"Smalltalk");
+_st(self)._deny_(_st(_st(result)._class()).__eq((smalltalk.Smalltalk || Smalltalk)));
+return _st(self)._deny_(_st(result).__eq_eq(smalltalk));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"testEvaluation",{result:result},smalltalk.ObjectSpaceTest)})},
+messageSends: ["whenReadyDo:", "do:", "assert:equals:", "name", "class", "deny:", "=", "=="]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_testRelease",
 "_testRelease",
 smalltalk.method({
 smalltalk.method({
 selector: "testRelease",
 selector: "testRelease",
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_isNil", [])]);
-    smalltalk.send(self['@space'], "_release", []);
-    smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_isNil", [])]);
-    return self;
-}
-}),
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._deny_(_st(_st(self["@space"])._frame())._isNil());
+_st(self["@space"])._release();
+_st(self)._assert_(_st(_st(self["@space"])._frame())._isNil());
+return self}, function($ctx1) {$ctx1.fill(self,"testRelease",{},smalltalk.ObjectSpaceTest)})},
+messageSends: ["deny:", "isNil", "frame", "release", "assert:"]}),
 smalltalk.ObjectSpaceTest);
 smalltalk.ObjectSpaceTest);
 
 
 
 

+ 117 - 114
js/Spaces.js

@@ -1,17 +1,16 @@
-smalltalk.addPackage('Spaces', {});
+smalltalk.addPackage('Spaces');
 smalltalk.addClass('ObjectSpace', smalltalk.Object, ['frame'], 'Spaces');
 smalltalk.addClass('ObjectSpace', smalltalk.Object, ['frame'], 'Spaces');
-smalltalk.ObjectSpace.comment="I am a connection to another Smalltalk environment.\x0aThe implementation creates an iframe on the same location as the window, and connect to the Amber environment.\x0a\x0a\x0a\x0a## Usage example:\x0a\x0a    | space |\x0a    \x0a    space := ObjectSpace new.\x0a    space do: [ smalltalk ] \x22Answers aSmalltalk\x22\x0a    (space do: [ smalltalk ]) == smalltalk \x22Answers false\x22\x0a    \x0a    space release \x22Remove the object space environment\x22"
+smalltalk.ObjectSpace.comment="I am a connection to another Smalltalk environment.\x0aThe implementation creates an iframe on the same location as the window, and connect to the Amber environment.\x0a\x0a\x0a\x0a## Usage example:\x0a\x0a\x09| space |\x0a\x09\x0a\x09space := ObjectSpace new.\x0a\x09space do: [ smalltalk ] \x22Answers aSmalltalk\x22\x0a\x09(space do: [ smalltalk ]) == smalltalk \x22Answers false\x22\x0a\x09\x0a\x09space release \x22Remove the object space environment\x22"
 smalltalk.addMethod(
 smalltalk.addMethod(
 "_connectTo_",
 "_connectTo_",
 smalltalk.method({
 smalltalk.method({
 selector: "connectTo:",
 selector: "connectTo:",
 category: 'initialization',
 category: 'initialization',
-fn: function (aFrame) {
-    var self = this;
-    smalltalk.send(self, "_release", []);
-    self['@frame'] = aFrame;
-    return self;
-},
+fn: function (aFrame){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._release();
+self["@frame"]=aFrame;
+return self}, function($ctx1) {$ctx1.fill(self,"connectTo:",{aFrame:aFrame},smalltalk.ObjectSpace)})},
 args: ["aFrame"],
 args: ["aFrame"],
 source: "connectTo: aFrame\x0a\x09self release.\x0a\x09frame := aFrame",
 source: "connectTo: aFrame\x0a\x09self release.\x0a\x09frame := aFrame",
 messageSends: ["release"],
 messageSends: ["release"],
@@ -24,13 +23,12 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "create",
 selector: "create",
 category: 'initialization',
 category: 'initialization',
-fn: function () {
-    var self = this;
-    smalltalk.send(smalltalk.send(window, "_jQuery_", ["body"]), "_append_", ["<iframe style=\"display: none;\"></iframe>"]);
-    self['@frame'] = smalltalk.send(smalltalk.send(smalltalk.send(window, "_jQuery_", ["iframe"]), "_get", []), "_last", []);
-    smalltalk.send(smalltalk.send(self['@frame'], "_contentWindow", []), "_location_", [smalltalk.send(window, "_location", [])]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(_st(window)._jQuery_("body"))._append_("<iframe style=\x22display: none;\x22></iframe>");
+self["@frame"]=_st(_st(_st(window)._jQuery_("iframe"))._get())._last();
+_st(_st(self["@frame"])._contentWindow())._location_(_st(window)._location());
+return self}, function($ctx1) {$ctx1.fill(self,"create",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "create\x0a\x09(window jQuery: 'body') append: '<iframe style=\x22display: none;\x22></iframe>'.\x0a\x09frame := (window jQuery: 'iframe') get last.\x0a\x09frame contentWindow location: window location",
 source: "create\x0a\x09(window jQuery: 'body') append: '<iframe style=\x22display: none;\x22></iframe>'.\x0a\x09frame := (window jQuery: 'iframe') get last.\x0a\x09frame contentWindow location: window location",
 messageSends: ["append:", "jQuery:", "last", "get", "location:", "location", "contentWindow"],
 messageSends: ["append:", "jQuery:", "last", "get", "location:", "location", "contentWindow"],
@@ -43,17 +41,19 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "destroy",
 selector: "destroy",
 category: 'releasing',
 category: 'releasing',
-fn: function () {
-    var self = this;
-    if (($receiver = self['@frame']) == nil || $receiver == undefined) {
-        return self;
-    } else {
-        self['@frame'];
-    }
-    smalltalk.send(smalltalk.send(window, "_jQuery_", [self['@frame']]), "_remove", []);
-    smalltalk.send(self, "_release", []);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2;
+$1=self["@frame"];
+if(($receiver = $1) == nil || $receiver == undefined){
+$2=self;
+return $2;
+} else {
+$1;
+};
+_st(_st(window)._jQuery_(self["@frame"]))._remove();
+_st(self)._release();
+return self}, function($ctx1) {$ctx1.fill(self,"destroy",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "destroy\x0a\x09frame ifNil: [ ^ self ].\x0a\x09(window jQuery: frame) remove.\x0a\x0a\x09self release",
 source: "destroy\x0a\x09frame ifNil: [ ^ self ].\x0a\x09(window jQuery: frame) remove.\x0a\x0a\x09self release",
 messageSends: ["ifNil:", "remove", "jQuery:", "release"],
 messageSends: ["ifNil:", "remove", "jQuery:", "release"],
@@ -66,18 +66,17 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "do:",
 selector: "do:",
 category: 'evaluating',
 category: 'evaluating',
-fn: function (aBlock) {
-    var self = this;
-    var $1, $2, $3;
-    $1 = smalltalk.send(self, "_isConnected", []);
-    if (!smalltalk.assert($1)) {
-        $2 = smalltalk.send(smalltalk.ObjectSpaceConnectionError ||
-            ObjectSpaceConnectionError, "_signal", []);
-        return $2;
-    }
-    $3 = smalltalk.send(smalltalk.send(self['@frame'], "_contentWindow", []), "_eval_", [smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(aBlock, "_compiledSource", [])]), "__comma", [")()"])]);
-    return $3;
-},
+fn: function (aBlock){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
+$1=_st(self)._isConnected();
+if(! smalltalk.assert($1)){
+$2=_st((smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError))._signal();
+return $2;
+};
+$3=_st(_st(self["@frame"])._contentWindow())._eval_(_st(_st("(").__comma(_st(aBlock)._compiledSource())).__comma(")()"));
+return $3;
+}, function($ctx1) {$ctx1.fill(self,"do:",{aBlock:aBlock},smalltalk.ObjectSpace)})},
 args: ["aBlock"],
 args: ["aBlock"],
 source: "do: aBlock\x0a\x09self isConnected ifFalse: [ ^ ObjectSpaceConnectionError signal ].\x0a\x09^ frame contentWindow eval: '(', aBlock compiledSource, ')()'",
 source: "do: aBlock\x0a\x09self isConnected ifFalse: [ ^ ObjectSpaceConnectionError signal ].\x0a\x09^ frame contentWindow eval: '(', aBlock compiledSource, ')()'",
 messageSends: ["ifFalse:", "signal", "isConnected", "eval:", ",", "compiledSource", "contentWindow"],
 messageSends: ["ifFalse:", "signal", "isConnected", "eval:", ",", "compiledSource", "contentWindow"],
@@ -90,10 +89,12 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "frame",
 selector: "frame",
 category: 'accessing',
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self['@frame'];
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=self["@frame"];
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"frame",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "frame\x0a\x09^ frame",
 source: "frame\x0a\x09^ frame",
 messageSends: [],
 messageSends: [],
@@ -106,12 +107,11 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 category: 'initialization',
 category: 'initialization',
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_initialize", [], smalltalk.Object);
-    smalltalk.send(self, "_create", []);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
+_st(self)._create();
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09self create",
 source: "initialize\x0a\x09super initialize.\x0a\x09self create",
 messageSends: ["initialize", "create"],
 messageSends: ["initialize", "create"],
@@ -124,12 +124,12 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "isConnected",
 selector: "isConnected",
 category: 'initialization',
 category: 'initialization',
-fn: function () {
-    var self = this;
-    var $1;
-    $1 = smalltalk.send(smalltalk.send(self, "_frame", []), "_notNil", []);
-    return $1;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=_st(_st(self)._frame())._notNil();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"isConnected",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "isConnected\x0a\x09^ self frame notNil",
 source: "isConnected\x0a\x09^ self frame notNil",
 messageSends: ["notNil", "frame"],
 messageSends: ["notNil", "frame"],
@@ -142,11 +142,10 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "release",
 selector: "release",
 category: 'releasing',
 category: 'releasing',
-fn: function () {
-    var self = this;
-    self['@frame'] = nil;
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
self["@frame"]=nil;
+return self}, function($ctx1) {$ctx1.fill(self,"release",{},smalltalk.ObjectSpace)})},
 args: [],
 args: [],
 source: "release\x0a\x09frame := nil",
 source: "release\x0a\x09frame := nil",
 messageSends: [],
 messageSends: [],
@@ -159,13 +158,12 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "whenReadyDo:",
 selector: "whenReadyDo:",
 category: 'events',
 category: 'events',
-fn: function (aBlock) {
-    var self = this;
-    smalltalk.send(smalltalk.send(window, "_jQuery_", [self['@frame']]), "_bind_do_", ["load", aBlock]);
-    return self;
-},
+fn: function (aBlock){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(_st(window)._jQuery_(self["@frame"]))._bind_do_("load",aBlock);
+return self}, function($ctx1) {$ctx1.fill(self,"whenReadyDo:",{aBlock:aBlock},smalltalk.ObjectSpace)})},
 args: ["aBlock"],
 args: ["aBlock"],
-source: "whenReadyDo: aBlock\x0a\x09(window jQuery: frame) \x0a\x09\x09bind: 'load'\x0a\x09\x09do: aBlock",
+source: "whenReadyDo: aBlock\x0a\x09(window jQuery: frame)\x0a\x09\x09bind: 'load'\x0a\x09\x09do: aBlock",
 messageSends: ["bind:do:", "jQuery:"],
 messageSends: ["bind:do:", "jQuery:"],
 referencedClasses: []
 referencedClasses: []
 }),
 }),
@@ -177,15 +175,15 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "on:",
 selector: "on:",
 category: 'instance creation',
 category: 'instance creation',
-fn: function (aFrame) {
-    var self = this;
-    var $2, $3, $1;
-    $2 = smalltalk.send(self, "_basicNew", []);
-    smalltalk.send($2, "_connectTo_", [aFrame]);
-    $3 = smalltalk.send($2, "_yourself", []);
-    $1 = $3;
-    return $1;
-},
+fn: function (aFrame){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
+$2=_st(self)._basicNew();
+_st($2)._connectTo_(aFrame);
+$3=_st($2)._yourself();
+$1=$3;
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"on:",{aFrame:aFrame},smalltalk.ObjectSpace.klass)})},
 args: ["aFrame"],
 args: ["aFrame"],
 source: "on: aFrame\x0a\x09^ self basicNew\x0a\x09\x09connectTo: aFrame;\x0a\x09\x09yourself",
 source: "on: aFrame\x0a\x09^ self basicNew\x0a\x09\x09connectTo: aFrame;\x0a\x09\x09yourself",
 messageSends: ["connectTo:", "basicNew", "yourself"],
 messageSends: ["connectTo:", "basicNew", "yourself"],
@@ -200,10 +198,10 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "messageText",
 selector: "messageText",
 category: 'accessing',
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return "The ObjectSpace is not connected";
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
return "The ObjectSpace is not connected";
+}, function($ctx1) {$ctx1.fill(self,"messageText",{},smalltalk.ObjectSpaceConnectionError)})},
 args: [],
 args: [],
 source: "messageText\x0a\x09^ 'The ObjectSpace is not connected'",
 source: "messageText\x0a\x09^ 'The ObjectSpace is not connected'",
 messageSends: [],
 messageSends: [],
@@ -219,11 +217,10 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "setUp",
 selector: "setUp",
 category: 'initialization',
 category: 'initialization',
-fn: function () {
-    var self = this;
-    self['@space'] = smalltalk.send(smalltalk.ObjectSpace || ObjectSpace, "_new", []);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
self["@space"]=_st((smalltalk.ObjectSpace || ObjectSpace))._new();
+return self}, function($ctx1) {$ctx1.fill(self,"setUp",{},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "setUp\x0a\x09space := ObjectSpace new",
 source: "setUp\x0a\x09space := ObjectSpace new",
 messageSends: ["new"],
 messageSends: ["new"],
@@ -236,11 +233,10 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "tearDown",
 selector: "tearDown",
 category: 'initialization',
 category: 'initialization',
-fn: function () {
-    var self = this;
-    smalltalk.send(self['@space'], "_destroy", []);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._destroy();
+return self}, function($ctx1) {$ctx1.fill(self,"tearDown",{},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "tearDown\x0a\x09space destroy",
 source: "tearDown\x0a\x09space destroy",
 messageSends: ["destroy"],
 messageSends: ["destroy"],
@@ -253,13 +249,15 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "testConnection",
 selector: "testConnection",
 category: 'tests',
 category: 'tests',
-fn: function () {
-    var self = this;
-    smalltalk.send(self['@space'], "_destroy", []);
-    smalltalk.send(self, "_deny_", [smalltalk.send(self['@space'], "_isConnected", [])]);
-    smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@space'], "_do_", [function () {}]);}, smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._destroy();
+_st(self)._deny_(_st(self["@space"])._isConnected());
+_st(self)._should_raise_((function(){
+return smalltalk.withContext(function($ctx2) {
return _st(self["@space"])._do_((function(){
+return smalltalk.withContext(function($ctx3) {
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ObjectSpaceConnectionError || ObjectSpaceConnectionError));
+return self}, function($ctx1) {$ctx1.fill(self,"testConnection",{},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "testConnection\x0a\x09space destroy.\x0a\x09self deny: space isConnected.\x0a\x09self should: [ space do: [] ] raise: ObjectSpaceConnectionError",
 source: "testConnection\x0a\x09space destroy.\x0a\x09self deny: space isConnected.\x0a\x09self should: [ space do: [] ] raise: ObjectSpaceConnectionError",
 messageSends: ["destroy", "deny:", "isConnected", "should:raise:", "do:"],
 messageSends: ["destroy", "deny:", "isConnected", "should:raise:", "do:"],
@@ -272,12 +270,11 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "testCreate",
 selector: "testCreate",
 category: 'tests',
 category: 'tests',
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_notNil", [])]);
-    smalltalk.send(self, "_assert_", [smalltalk.send(self['@space'], "_isConnected", [])]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(_st(self["@space"])._frame())._notNil());
+_st(self)._assert_(_st(self["@space"])._isConnected());
+return self}, function($ctx1) {$ctx1.fill(self,"testCreate",{},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "testCreate\x0a\x0a\x09self assert: space frame notNil.\x0a\x09self assert: space isConnected",
 source: "testCreate\x0a\x0a\x09self assert: space frame notNil.\x0a\x09self assert: space isConnected",
 messageSends: ["assert:", "notNil", "frame", "isConnected"],
 messageSends: ["assert:", "notNil", "frame", "isConnected"],
@@ -290,12 +287,19 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "testEvaluation",
 selector: "testEvaluation",
 category: 'tests',
 category: 'tests',
-fn: function () {
-    var self = this;
-    var result;
-    smalltalk.send(self['@space'], "_whenReadyDo_", [function () {result = smalltalk.send(self['@space'], "_do_", [function () {return smalltalk;}]);result;smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(result, "_class", []), "_name", []), "Smalltalk"]);smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(result, "_class", []), "__eq", [smalltalk.Smalltalk || Smalltalk])]);return smalltalk.send(self, "_deny_", [smalltalk.send(result, "__eq_eq", [smalltalk])]);}]);
-    return self;
-},
+fn: function (){
+var self=this;
+var result;
+return smalltalk.withContext(function($ctx1) { 
_st(self["@space"])._whenReadyDo_((function(){
+return smalltalk.withContext(function($ctx2) {
result=_st(self["@space"])._do_((function(){
+return smalltalk.withContext(function($ctx3) {
return smalltalk;
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
+result;
+_st(self)._assert_equals_(_st(_st(result)._class())._name(),"Smalltalk");
+_st(self)._deny_(_st(_st(result)._class()).__eq((smalltalk.Smalltalk || Smalltalk)));
+return _st(self)._deny_(_st(result).__eq_eq(smalltalk));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"testEvaluation",{result:result},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "testEvaluation\x0a\x09| result |\x0a\x0a\x09space whenReadyDo: [\x0a\x09\x09result := space do: [ smalltalk ].\x0a\x0a\x09\x09self assert: result class name equals: 'Smalltalk'.\x0a\x09\x09self deny: result class = Smalltalk.\x0a\x09\x09self deny: result == smalltalk ]",
 source: "testEvaluation\x0a\x09| result |\x0a\x0a\x09space whenReadyDo: [\x0a\x09\x09result := space do: [ smalltalk ].\x0a\x0a\x09\x09self assert: result class name equals: 'Smalltalk'.\x0a\x09\x09self deny: result class = Smalltalk.\x0a\x09\x09self deny: result == smalltalk ]",
 messageSends: ["whenReadyDo:", "do:", "assert:equals:", "name", "class", "deny:", "=", "=="],
 messageSends: ["whenReadyDo:", "do:", "assert:equals:", "name", "class", "deny:", "=", "=="],
@@ -308,13 +312,12 @@ smalltalk.addMethod(
 smalltalk.method({
 smalltalk.method({
 selector: "testRelease",
 selector: "testRelease",
 category: 'tests',
 category: 'tests',
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_isNil", [])]);
-    smalltalk.send(self['@space'], "_release", []);
-    smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@space'], "_frame", []), "_isNil", [])]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
_st(self)._deny_(_st(_st(self["@space"])._frame())._isNil());
+_st(self["@space"])._release();
+_st(self)._assert_(_st(_st(self["@space"])._frame())._isNil());
+return self}, function($ctx1) {$ctx1.fill(self,"testRelease",{},smalltalk.ObjectSpaceTest)})},
 args: [],
 args: [],
 source: "testRelease\x0a\x0a\x09self deny: space frame isNil.\x0a\x0a\x09space release.\x0a\x09\x0a\x09self assert: space frame isNil",
 source: "testRelease\x0a\x0a\x09self deny: space frame isNil.\x0a\x0a\x09space release.\x0a\x09\x0a\x09self assert: space frame isNil",
 messageSends: ["deny:", "isNil", "frame", "release", "assert:"],
 messageSends: ["deny:", "isNil", "frame", "release", "assert:"],

+ 46 - 46
st/Benchfib.st

@@ -14,43 +14,43 @@ main
 
 
 !Number methodsFor: '*Benchfib'!
 !Number methodsFor: '*Benchfib'!
 
 
-benchFib 
+benchFib
 	"Handy send-heavy benchmark"
 	"Handy send-heavy benchmark"
 	"(result // seconds to run) = approx calls per second"
 	"(result // seconds to run) = approx calls per second"
-	" | r t |
-	  t := Time millisecondsToRun: [r := 26 benchFib].
-	  (r * 1000) // t"
+	"	| r t |
+		t := Time millisecondsToRun: [r := 26 benchFib].
+		(r * 1000) // t"
 	"138000 on a Mac 8100/100"
 	"138000 on a Mac 8100/100"
-	^ self < 2 
-		ifTrue: [1] 
+	^ self < 2
+		ifTrue: [1]
 		ifFalse: [(self-1) benchFib + (self-2) benchFib + 1]
 		ifFalse: [(self-1) benchFib + (self-2) benchFib + 1]
 !
 !
 
 
-benchmark 
+benchmark
 	"Handy bytecode-heavy benchmark"
 	"Handy bytecode-heavy benchmark"
 	"(500000 // time to run) = approx bytecodes per second"
 	"(500000 // time to run) = approx bytecodes per second"
 	"5000000 // (Time millisecondsToRun: [10 benchmark]) * 1000"
 	"5000000 // (Time millisecondsToRun: [10 benchmark]) * 1000"
 	"3059000 on a Mac 8100/100"
 	"3059000 on a Mac 8100/100"
-    | size flags prime k count |
-    size := 8190.
-    1 to: self do:
-        [:iter |
-        count := 0.
-        flags := Array new.
-        size timesRepeat: [ flags add: true].
-        1 to: size do:
-            [:i | (flags at: i) ifTrue:
-                [prime := i+1.
-                k := i + prime.
-                [k <= size] whileTrue:
-                    [flags at: k put: false.
-                    k := k + prime].
-                count := count + 1]]].
-    ^ count
+	| size flags prime k count |
+	size := 8190.
+	1 to: self do:
+		[:iter |
+		count := 0.
+		flags := Array new.
+		size timesRepeat: [ flags add: true].
+		1 to: size do:
+			[:i | (flags at: i) ifTrue:
+				[prime := i+1.
+				k := i + prime.
+				[k <= size] whileTrue:
+					[flags at: k put: false.
+					k := k + prime].
+				count := count + 1]]].
+	^ count
 !
 !
 
 
 jsbenchFib
 jsbenchFib
- 
+
 	<if (this < 2) {
 	<if (this < 2) {
 return 1;
 return 1;
 } else {
 } else {
@@ -63,22 +63,22 @@ jsbenchmark
 var size = 8190;
 var size = 8190;
 var count;
 var count;
 for (var z=0;z<this;z++) {
 for (var z=0;z<this;z++) {
-  count = 0;
-  var flags = new Array();
-  for (var p=0; p<size; p++) {
-    flags[p] = true;
-  }
-  for (var i=1;i<=size;i++) {
-    if (flags[i-1]) {
-      var prime = i+1;
-      var k = i + prime;
-      while (k <= size) {
-        flags[k-1] = false;
-        k = k + prime;
-      }
-      count = count + 1;
-    }
-  }
+	count = 0;
+	var flags = new Array();
+	for (var p=0; p<size; p++) {
+	flags[p] = true;
+	}
+	for (var i=1;i<=size;i++) {
+		if (flags[i-1]) {
+			var prime = i+1;
+			var k = i + prime;
+			while (k <= size) {
+				flags[k-1] = false;
+				k = k + prime;
+			}
+			count = count + 1;
+		}
+	}
 }
 }
 return count>
 return count>
 !
 !
@@ -93,20 +93,20 @@ jstinyBenchmarks
 
 
 	n2 := 28.
 	n2 := 28.
 	[t2 := Date millisecondsToRun: [r := n2 jsbenchFib].
 	[t2 := Date millisecondsToRun: [r := n2 jsbenchFib].
-	t2 < 1000] whileTrue:[n2 := n2 + 1]. 
+	t2 < 1000] whileTrue:[n2 := n2 + 1].
 	"Note: #jsbenchFib's runtime is about O(k^n),
 	"Note: #jsbenchFib's runtime is about O(k^n),
 		where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
 		where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
 
 
 	^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
 	^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
-	  ((r * 1000) / t2) printString, ' sends/sec'
+		((r * 1000) / t2) printString, ' sends/sec'
 !
 !
 
 
-tinyBenchmarks 
+tinyBenchmarks
 	"Report the results of running the two tiny Squeak benchmarks.
 	"Report the results of running the two tiny Squeak benchmarks.
 	ar 9/10/1999: Adjusted to run at least 1 sec to get more stable results"
 	ar 9/10/1999: Adjusted to run at least 1 sec to get more stable results"
 	"0 tinyBenchmarks"
 	"0 tinyBenchmarks"
 	"On a 292 MHz G3 Mac: 22727272 bytecodes/sec; 984169 sends/sec"
 	"On a 292 MHz G3 Mac: 22727272 bytecodes/sec; 984169 sends/sec"
-	"On a 400 MHz PII/Win98:  18028169 bytecodes/sec; 1081272 sends/sec"
+	"On a 400 MHz PII/Win98: 18028169 bytecodes/sec; 1081272 sends/sec"
 	| t1 t2 r n1 n2 |
 	| t1 t2 r n1 n2 |
 	n1 := 1.
 	n1 := 1.
 	[t1 := Date millisecondsToRun: [n1 benchmark].
 	[t1 := Date millisecondsToRun: [n1 benchmark].
@@ -114,11 +114,11 @@ tinyBenchmarks
 
 
 	n2 := 16.
 	n2 := 16.
 	[t2 := Date millisecondsToRun: [r := n2 benchFib].
 	[t2 := Date millisecondsToRun: [r := n2 benchFib].
-	t2 < 1000] whileTrue:[n2 := n2 + 1]. 
+	t2 < 1000] whileTrue:[n2 := n2 + 1].
 	"Note: #benchFib's runtime is about O(k^n),
 	"Note: #benchFib's runtime is about O(k^n),
 		where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
 		where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
 
 
 	^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
 	^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
-	  ((r * 1000) / t2) printString, ' sends/sec'
+		((r * 1000) / t2) printString, ' sends/sec'
 ! !
 ! !
 
 

+ 166 - 166
st/Canvas.st

@@ -6,61 +6,61 @@ Object subclass: #HTMLCanvas
 !HTMLCanvas methodsFor: 'accessing'!
 !HTMLCanvas methodsFor: 'accessing'!
 
 
 root
 root
-    ^root
+	^root
 !
 !
 
 
 root: aTagBrush
 root: aTagBrush
-    root := aTagBrush
+	root := aTagBrush
 !
 !
 
 
 snippet: anElement
 snippet: anElement
 	"Adds clone of anElement, finds [data-snippet=""*""] subelement
 	"Adds clone of anElement, finds [data-snippet=""*""] subelement
-    and returns TagBrush as if that subelement was just added.
-    
-    Rarely needed to use directly, use `html foo` dynamically installed method
-    for a snippet named foo."
-    
-    | clone caret |
-    
-    clone := anElement asJQuery clone.
-    self with: (TagBrush fromJQuery: clone canvas: self).
-    caret := clone find: '[data-snippet="*"]'.
-    caret toArray isEmpty ifTrue: [ caret := clone ].
-    ^TagBrush fromJQuery: (caret removeAttr: 'data-snippet') canvas: self
+	and returns TagBrush as if that subelement was just added.
+	
+	Rarely needed to use directly, use `html foo` dynamically installed method
+	for a snippet named foo."
+	
+	| clone caret |
+	
+	clone := anElement asJQuery clone.
+	self with: (TagBrush fromJQuery: clone canvas: self).
+	caret := clone find: '[data-snippet="*"]'.
+	caret toArray isEmpty ifTrue: [ caret := clone ].
+	^TagBrush fromJQuery: (caret removeAttr: 'data-snippet') canvas: self
 ! !
 ! !
 
 
 !HTMLCanvas methodsFor: 'adding'!
 !HTMLCanvas methodsFor: 'adding'!
 
 
 entity: aString
 entity: aString
 	"Adds a character representing html entity, eg.
 	"Adds a character representing html entity, eg.
-    html entity: 'copy'
-    adds a copyright sign.
-    If a name does not represent valid HTML entity, error is raised."
+	html entity: 'copy'
+	adds a copyright sign.
+	If a name does not represent valid HTML entity, error is raised."
 	| result |
 	| result |
-    result := ('<span />' asJQuery html: '&', aString, ';') text.
-    result size = 1 ifFalse: [ self error: 'Not an HTML entity: ', aString ].
-    self with: result
+	result := ('<span />' asJQuery html: '&', aString, ';') text.
+	result size = 1 ifFalse: [ self error: 'Not an HTML entity: ', aString ].
+	self with: result
 !
 !
 
 
 with: anObject
 with: anObject
-    ^self root with: anObject
+	^self root with: anObject
 ! !
 ! !
 
 
 !HTMLCanvas methodsFor: 'initialization'!
 !HTMLCanvas methodsFor: 'initialization'!
 
 
 initialize
 initialize
-    super initialize.
-    root ifNil: [root := TagBrush fromString: 'div' canvas: self]
+	super initialize.
+	root ifNil: [root := TagBrush fromString: 'div' canvas: self]
 !
 !
 
 
 initializeFromJQuery: aJQuery
 initializeFromJQuery: aJQuery
-    root := TagBrush fromJQuery: aJQuery canvas: self
+	root := TagBrush fromJQuery: aJQuery canvas: self
 ! !
 ! !
 
 
 !HTMLCanvas methodsFor: 'tags'!
 !HTMLCanvas methodsFor: 'tags'!
 
 
 a
 a
-    ^self tag: 'a'
+	^self tag: 'a'
 !
 !
 
 
 abbr
 abbr
@@ -76,7 +76,7 @@ area
 !
 !
 
 
 article
 article
-    ^self tag: 'article'
+	^self tag: 'article'
 !
 !
 
 
 aside
 aside
@@ -84,7 +84,7 @@ aside
 !
 !
 
 
 audio
 audio
-    ^self tag: 'audio'
+	^self tag: 'audio'
 !
 !
 
 
 base
 base
@@ -100,11 +100,11 @@ body
 !
 !
 
 
 br
 br
-    ^self tag: 'br'
+	^self tag: 'br'
 !
 !
 
 
 button
 button
-    ^self tag: 'button'
+	^self tag: 'button'
 !
 !
 
 
 canvas
 canvas
@@ -120,7 +120,7 @@ cite
 !
 !
 
 
 code
 code
-    ^self tag: 'code'
+	^self tag: 'code'
 !
 !
 
 
 col
 col
@@ -152,11 +152,11 @@ details
 !
 !
 
 
 div
 div
-    ^self tag: 'div'
+	^self tag: 'div'
 !
 !
 
 
 div: aBlock
 div: aBlock
-    ^self div with: aBlock
+	^self div with: aBlock
 !
 !
 
 
 dl
 dl
@@ -176,7 +176,7 @@ embed
 !
 !
 
 
 fieldset
 fieldset
-    ^self tag: 'fieldset'
+	^self tag: 'fieldset'
 !
 !
 
 
 figcaption
 figcaption
@@ -188,59 +188,59 @@ figure
 !
 !
 
 
 footer
 footer
-    ^self tag: 'footer'
+	^self tag: 'footer'
 !
 !
 
 
 form
 form
-    ^self tag: 'form'
+	^self tag: 'form'
 !
 !
 
 
 h1
 h1
-    ^self tag: 'h1'
+	^self tag: 'h1'
 !
 !
 
 
 h1: anObject
 h1: anObject
-    ^self h1 with: anObject
+	^self h1 with: anObject
 !
 !
 
 
 h2
 h2
-    ^self tag: 'h2'
+	^self tag: 'h2'
 !
 !
 
 
 h2: anObject
 h2: anObject
-    ^ self h2 with: anObject
+	^ self h2 with: anObject
 !
 !
 
 
 h3
 h3
-    ^self tag: 'h3'
+	^self tag: 'h3'
 !
 !
 
 
 h3: anObject
 h3: anObject
-    ^self h3 with: anObject
+	^self h3 with: anObject
 !
 !
 
 
 h4
 h4
-    ^self tag: 'h4'
+	^self tag: 'h4'
 !
 !
 
 
 h4: anObject
 h4: anObject
-    ^self h4 with: anObject
+	^self h4 with: anObject
 !
 !
 
 
 h5
 h5
-    ^self tag: 'h5'
+	^self tag: 'h5'
 !
 !
 
 
 h5: anObject
 h5: anObject
-    ^self h5 with: anObject
+	^self h5 with: anObject
 !
 !
 
 
 h6
 h6
-    ^self tag: 'h6'
+	^self tag: 'h6'
 !
 !
 
 
 h6: anObject
 h6: anObject
-    ^self h6 with: anObject
+	^self h6 with: anObject
 !
 !
 
 
 head
 head
@@ -248,7 +248,7 @@ head
 !
 !
 
 
 header
 header
-    ^self tag: 'header'
+	^self tag: 'header'
 !
 !
 
 
 hgroup
 hgroup
@@ -256,7 +256,7 @@ hgroup
 !
 !
 
 
 hr
 hr
-    ^self tag: 'hr'
+	^self tag: 'hr'
 !
 !
 
 
 html
 html
@@ -264,23 +264,23 @@ html
 !
 !
 
 
 iframe
 iframe
-    ^self tag: 'iframe'
+	^self tag: 'iframe'
 !
 !
 
 
 iframe: aString
 iframe: aString
-    ^self iframe src: aString
+	^self iframe src: aString
 !
 !
 
 
 img
 img
-    ^self tag: 'img'
+	^self tag: 'img'
 !
 !
 
 
 img: aString
 img: aString
-    ^self img src: aString
+	^self img src: aString
 !
 !
 
 
 input
 input
-    ^self tag: 'input'
+	^self tag: 'input'
 !
 !
 
 
 label
 label
@@ -292,15 +292,15 @@ legend
 !
 !
 
 
 li
 li
-    ^self tag: 'li'
+	^self tag: 'li'
 !
 !
 
 
 li: anObject
 li: anObject
-    ^self li with: anObject
+	^self li with: anObject
 !
 !
 
 
 link
 link
-    ^self tag: 'link'
+	^self tag: 'link'
 !
 !
 
 
 map
 map
@@ -324,7 +324,7 @@ nav
 !
 !
 
 
 newTag: aString
 newTag: aString
-    ^TagBrush fromString: aString canvas: self
+	^TagBrush fromString: aString canvas: self
 !
 !
 
 
 noscript
 noscript
@@ -336,11 +336,11 @@ object
 !
 !
 
 
 ol
 ol
-    ^self tag: 'ol'
+	^self tag: 'ol'
 !
 !
 
 
 ol: anObject
 ol: anObject
-    ^self ol with: anObject
+	^self ol with: anObject
 !
 !
 
 
 optgroup
 optgroup
@@ -348,7 +348,7 @@ optgroup
 !
 !
 
 
 option
 option
-    ^self tag: 'option'
+	^self tag: 'option'
 !
 !
 
 
 output
 output
@@ -356,11 +356,11 @@ output
 !
 !
 
 
 p
 p
-    ^self tag: 'p'
+	^self tag: 'p'
 !
 !
 
 
 p: anObject
 p: anObject
-    ^self p with: anObject
+	^self p with: anObject
 !
 !
 
 
 param
 param
@@ -368,7 +368,7 @@ param
 !
 !
 
 
 pre
 pre
-    ^self tag: 'pre'
+	^self tag: 'pre'
 !
 !
 
 
 progress
 progress
@@ -376,15 +376,15 @@ progress
 !
 !
 
 
 script
 script
-    ^self tag: 'script'
+	^self tag: 'script'
 !
 !
 
 
 section
 section
-    ^self tag: 'section'
+	^self tag: 'section'
 !
 !
 
 
 select
 select
-    ^self tag: 'select'
+	^self tag: 'select'
 !
 !
 
 
 small
 small
@@ -396,11 +396,11 @@ source
 !
 !
 
 
 span
 span
-    ^self tag: 'span'
+	^self tag: 'span'
 !
 !
 
 
 span: anObject
 span: anObject
-    ^self span with: anObject
+	^self span with: anObject
 !
 !
 
 
 strong
 strong
@@ -412,7 +412,7 @@ strong: anObject
 !
 !
 
 
 style
 style
-	^ root addBrush:  (StyleTag canvas: self)
+	^ root addBrush: (StyleTag canvas: self)
 !
 !
 
 
 style: aString
 style: aString
@@ -432,35 +432,35 @@ sup
 !
 !
 
 
 table
 table
-    ^self tag: 'table'
+	^self tag: 'table'
 !
 !
 
 
 tag: aString
 tag: aString
-    ^root addBrush: (self newTag: aString)
+	^root addBrush: (self newTag: aString)
 !
 !
 
 
 tbody
 tbody
-    ^self tag: 'tbody'
+	^self tag: 'tbody'
 !
 !
 
 
-td 
-    ^self tag: 'td'
+td
+	^self tag: 'td'
 !
 !
 
 
 textarea
 textarea
-    ^self tag: 'textarea'
+	^self tag: 'textarea'
 !
 !
 
 
 tfoot
 tfoot
-    ^self tag: 'tfoot'
+	^self tag: 'tfoot'
 !
 !
 
 
 th
 th
-    ^self tag: 'th'
+	^self tag: 'th'
 !
 !
 
 
 thead
 thead
-    ^self tag: 'thead'
+	^self tag: 'thead'
 !
 !
 
 
 time
 time
@@ -472,19 +472,19 @@ title
 !
 !
 
 
 tr
 tr
-    ^self tag: 'tr'
+	^self tag: 'tr'
 !
 !
 
 
 ul
 ul
-    ^self tag: 'ul'
+	^self tag: 'ul'
 !
 !
 
 
 ul: anObject
 ul: anObject
-    ^self ul with: anObject
+	^self ul with: anObject
 !
 !
 
 
 video
 video
-    ^self tag: 'video'
+	^self tag: 'video'
 ! !
 ! !
 
 
 !HTMLCanvas class methodsFor: 'instance creation'!
 !HTMLCanvas class methodsFor: 'instance creation'!
@@ -571,23 +571,23 @@ snippets
 
 
 initializeFromJQuery: aJQuery
 initializeFromJQuery: aJQuery
 	"Finds and takes out all snippets out of aJQuery.
 	"Finds and takes out all snippets out of aJQuery.
-    Installs it into self."
-    
+	Installs it into self."
+	
 	(self snippetsFromJQuery: aJQuery) do: [ :each |
 	(self snippetsFromJQuery: aJQuery) do: [ :each |
-    	self installSnippetFromJQuery: each asJQuery ]
+		self installSnippetFromJQuery: each asJQuery ]
 ! !
 ! !
 
 
 !HTMLSnippet methodsFor: 'method generation'!
 !HTMLSnippet methodsFor: 'method generation'!
 
 
 snippetAt: aString compile: anElement
 snippetAt: aString compile: anElement
 	"Method generation for the snippet.
 	"Method generation for the snippet.
-    The selector is aString, the method block uses anElement"
-    
-    ClassBuilder new
-    	installMethod: ([ :htmlReceiver | htmlReceiver snippet: anElement ] 
-        	currySelf asCompiledMethod: aString)
-        forClass: HTMLCanvas
-        category: '**snippets'
+	The selector is aString, the method block uses anElement"
+	
+	ClassBuilder new
+		installMethod: ([ :htmlReceiver | htmlReceiver snippet: anElement ]
+			currySelf asCompiledMethod: aString)
+		forClass: HTMLCanvas
+		category: '**snippets'
 ! !
 ! !
 
 
 !HTMLSnippet methodsFor: 'private'!
 !HTMLSnippet methodsFor: 'private'!
@@ -600,20 +600,20 @@ snippetsFromJQuery: aJQuery
 
 
 installSnippetFromJQuery: element
 installSnippetFromJQuery: element
 	| name |
 	| name |
-    name := element attr: 'data-snippet'.
-    name = '*' ifFalse: [
-    	('^\*' asRegexp test: name) 
-            ifTrue: [ 
-            	name := name allButFirst. 
-                element attr: 'data-snippet' put: '*' ]
-          	ifFalse: [ 
-            	element removeAttr: 'data-snippet' ].
-        self snippetAt: name install: (element detach get: 0) ]
+	name := element attr: 'data-snippet'.
+	name = '*' ifFalse: [
+		('^\*' asRegexp test: name)
+			ifTrue: [
+				name := name allButFirst.
+				element attr: 'data-snippet' put: '*' ]
+			ifFalse: [
+				element removeAttr: 'data-snippet' ].
+		self snippetAt: name install: (element detach get: 0) ]
 !
 !
 
 
 snippetAt: aString install: anElement
 snippetAt: aString install: anElement
 	self snippets at: aString put: anElement.
 	self snippets at: aString put: anElement.
-    self snippetAt: aString compile: anElement
+	self snippetAt: aString compile: anElement
 ! !
 ! !
 
 
 HTMLSnippet class instanceVariableNames: 'current'!
 HTMLSnippet class instanceVariableNames: 'current'!
@@ -621,15 +621,15 @@ HTMLSnippet class instanceVariableNames: 'current'!
 !HTMLSnippet class methodsFor: 'initialization'!
 !HTMLSnippet class methodsFor: 'initialization'!
 
 
 ensureCurrent
 ensureCurrent
-	current ifNil: [ 
-    	current := super new
+	current ifNil: [
+		current := super new
 			initializeFromJQuery: document asJQuery;
 			initializeFromJQuery: document asJQuery;
 			yourself ]
 			yourself ]
 !
 !
 
 
 initialize
 initialize
 	super initialize.
 	super initialize.
-    self isDOMAvailable ifTrue: [
+	self isDOMAvailable ifTrue: [
 		self ensureCurrent ]
 		self ensureCurrent ]
 ! !
 ! !
 
 
@@ -654,50 +654,50 @@ Object subclass: #TagBrush
 !TagBrush methodsFor: 'accessing'!
 !TagBrush methodsFor: 'accessing'!
 
 
 element
 element
-    ^element
+	^element
 ! !
 ! !
 
 
 !TagBrush methodsFor: 'adding'!
 !TagBrush methodsFor: 'adding'!
 
 
 addBrush: aTagBrush
 addBrush: aTagBrush
-    self appendChild: aTagBrush element.
-    ^aTagBrush
+	self appendChild: aTagBrush element.
+	^aTagBrush
 !
 !
 
 
 append: anObject
 append: anObject
-    anObject appendToBrush: self
+	anObject appendToBrush: self
 !
 !
 
 
 appendBlock: aBlock
 appendBlock: aBlock
-    | root |
-    root := canvas root.
-    canvas root: self.
-    aBlock value: canvas.
-    canvas root: root
+	| root |
+	root := canvas root.
+	canvas root: self.
+	aBlock value: canvas.
+	canvas root: root
 !
 !
 
 
 appendChild: anElement
 appendChild: anElement
-	"In IE7 and IE8 appendChild fails on several node types. So we need to check" 
- 	<var element=self['@element'];
- 	if (null == element.canHaveChildren || element.canHaveChildren) {
+	"In IE7 and IE8 appendChild fails on several node types. So we need to check"
+	<var element=self['@element'];
+	if (null == element.canHaveChildren || element.canHaveChildren) {
 		element.appendChild(anElement);
 		element.appendChild(anElement);
- 	} else {
- 		element.text = String(element.text) +  anElement.innerHTML;
- 	} >
+	} else {
+		element.text = String(element.text) + anElement.innerHTML;
+	} >
 !
 !
 
 
 appendString: aString
 appendString: aString
-    self appendChild: (self createTextNodeFor: aString)
+	self appendChild: (self createTextNodeFor: aString)
 !
 !
 
 
 appendToBrush: aTagBrush
 appendToBrush: aTagBrush
-    aTagBrush addBrush: self
+	aTagBrush addBrush: self
 !
 !
 
 
 contents: anObject
 contents: anObject
-    self 
+	self
 	empty;
 	empty;
-   	append: anObject
+	append: anObject
 !
 !
 
 
 empty
 empty
@@ -705,7 +705,7 @@ empty
 !
 !
 
 
 with: anObject
 with: anObject
-    self append: anObject
+	self append: anObject
 ! !
 ! !
 
 
 !TagBrush methodsFor: 'attributes'!
 !TagBrush methodsFor: 'attributes'!
@@ -727,11 +727,11 @@ alt: aString
 !
 !
 
 
 at: aString put: aValue
 at: aString put: aValue
-    <self['@element'].setAttribute(aString, aValue)>
+	<self['@element'].setAttribute(aString, aValue)>
 !
 !
 
 
 class: aString
 class: aString
-      <self['@element'].className = aString>
+	<self['@element'].className = aString>
 !
 !
 
 
 cols: aString
 cols: aString
@@ -755,7 +755,7 @@ for: aString
 !
 !
 
 
 height: aString
 height: aString
-    self  at: 'height' put: aString
+	self at: 'height' put: aString
 !
 !
 
 
 hidden
 hidden
@@ -763,15 +763,15 @@ hidden
 !
 !
 
 
 href: aString
 href: aString
-    self at: 'href' put: aString
+	self at: 'href' put: aString
 !
 !
 
 
 id: aString
 id: aString
-    self at: 'id' put: aString
+	self at: 'id' put: aString
 !
 !
 
 
 media: aString
 media: aString
-    self at: 'media' put: aString
+	self at: 'media' put: aString
 !
 !
 
 
 method: aString
 method: aString
@@ -787,11 +787,11 @@ placeholder: aString
 !
 !
 
 
 rel: aString
 rel: aString
-    self  at: 'rel' put: aString
+	self at: 'rel' put: aString
 !
 !
 
 
 removeAt: aString
 removeAt: aString
-    <self['@element'].removeAttribute(aString)>
+	<self['@element'].removeAttribute(aString)>
 !
 !
 
 
 rows: aString
 rows: aString
@@ -799,11 +799,11 @@ rows: aString
 !
 !
 
 
 src: aString
 src: aString
-    self  at: 'src' put: aString
+	self at: 'src' put: aString
 !
 !
 
 
 style: aString
 style: aString
-    self at: 'style' put: aString
+	self at: 'style' put: aString
 !
 !
 
 
 tabindex: aNumber
 tabindex: aNumber
@@ -815,11 +815,11 @@ target: aString
 !
 !
 
 
 title: aString
 title: aString
-    self at: 'title' put: aString
+	self at: 'title' put: aString
 !
 !
 
 
 type: aString
 type: aString
-    self at: 'type' put: aString
+	self at: 'type' put: aString
 !
 !
 
 
 valign: aString
 valign: aString
@@ -827,31 +827,31 @@ valign: aString
 !
 !
 
 
 value: aString
 value: aString
-    self  at: 'value' put: aString
+	self at: 'value' put: aString
 !
 !
 
 
 width: aString
 width: aString
-    self  at: 'width' put: aString
+	self at: 'width' put: aString
 ! !
 ! !
 
 
 !TagBrush methodsFor: 'converting'!
 !TagBrush methodsFor: 'converting'!
 
 
 asJQuery
 asJQuery
-    ^window jQuery: self element
+	^window jQuery: self element
 ! !
 ! !
 
 
 !TagBrush methodsFor: 'events'!
 !TagBrush methodsFor: 'events'!
 
 
 onBlur: aBlock
 onBlur: aBlock
-    self asJQuery bind: 'blur' do: aBlock
+	self asJQuery bind: 'blur' do: aBlock
 !
 !
 
 
 onChange: aBlock
 onChange: aBlock
-    self asJQuery bind: 'change' do: aBlock
+	self asJQuery bind: 'change' do: aBlock
 !
 !
 
 
 onClick: aBlock
 onClick: aBlock
-    self asJQuery bind: 'click' do: aBlock
+	self asJQuery bind: 'click' do: aBlock
 !
 !
 
 
 onDblClick: aBlock
 onDblClick: aBlock
@@ -859,7 +859,7 @@ onDblClick: aBlock
 !
 !
 
 
 onFocus: aBlock
 onFocus: aBlock
-    self asJQuery bind: 'focus' do: aBlock
+	self asJQuery bind: 'focus' do: aBlock
 !
 !
 
 
 onFocusIn: aBlock
 onFocusIn: aBlock
@@ -875,15 +875,15 @@ onHover: aBlock
 !
 !
 
 
 onKeyDown: aBlock
 onKeyDown: aBlock
-    self asJQuery bind: 'keydown' do: aBlock
+	self asJQuery bind: 'keydown' do: aBlock
 !
 !
 
 
 onKeyPress: aBlock
 onKeyPress: aBlock
-    self asJQuery bind: 'keypress' do: aBlock
+	self asJQuery bind: 'keypress' do: aBlock
 !
 !
 
 
 onKeyUp: aBlock
 onKeyUp: aBlock
-    self asJQuery bind: 'keyup' do: aBlock
+	self asJQuery bind: 'keyup' do: aBlock
 !
 !
 
 
 onMouseDown: aBlock
 onMouseDown: aBlock
@@ -929,13 +929,13 @@ onUnload: aBlock
 !TagBrush methodsFor: 'initialization'!
 !TagBrush methodsFor: 'initialization'!
 
 
 initializeFromJQuery: aJQuery canvas: aCanvas
 initializeFromJQuery: aJQuery canvas: aCanvas
-    element := aJQuery get: 0.
-    canvas := aCanvas
+	element := aJQuery get: 0.
+	canvas := aCanvas
 !
 !
 
 
 initializeFromString: aString canvas: aCanvas
 initializeFromString: aString canvas: aCanvas
-    element := self createElementFor: aString.
-    canvas := aCanvas
+	element := self createElementFor: aString.
+	canvas := aCanvas
 ! !
 ! !
 
 
 !TagBrush methodsFor: 'private'!
 !TagBrush methodsFor: 'private'!
@@ -951,13 +951,13 @@ createTextNodeFor: aString
 !TagBrush class methodsFor: 'instance creation'!
 !TagBrush class methodsFor: 'instance creation'!
 
 
 fromJQuery: aJQuery canvas: aCanvas
 fromJQuery: aJQuery canvas: aCanvas
-    ^self new
+	^self new
 	initializeFromJQuery: aJQuery canvas: aCanvas;
 	initializeFromJQuery: aJQuery canvas: aCanvas;
 	yourself
 	yourself
 !
 !
 
 
 fromString: aString canvas: aCanvas
 fromString: aString canvas: aCanvas
-    ^self new
+	^self new
 	initializeFromString: aString canvas: aCanvas;
 	initializeFromString: aString canvas: aCanvas;
 	yourself
 	yourself
 ! !
 ! !
@@ -981,7 +981,7 @@ with: aString
 !StyleTag class methodsFor: 'instance creation'!
 !StyleTag class methodsFor: 'instance creation'!
 
 
 canvas: aCanvas
 canvas: aCanvas
-    ^self new
+	^self new
 	initializeFromString: 'style' canvas: aCanvas;
 	initializeFromString: 'style' canvas: aCanvas;
 	yourself
 	yourself
 ! !
 ! !
@@ -993,37 +993,37 @@ Object subclass: #Widget
 !Widget methodsFor: 'adding'!
 !Widget methodsFor: 'adding'!
 
 
 appendToBrush: aTagBrush
 appendToBrush: aTagBrush
-    self appendToJQuery: aTagBrush asJQuery
+	self appendToJQuery: aTagBrush asJQuery
 !
 !
 
 
 appendToJQuery: aJQuery
 appendToJQuery: aJQuery
-   self renderOn: (HTMLCanvas onJQuery: aJQuery)
+	self renderOn: (HTMLCanvas onJQuery: aJQuery)
 ! !
 ! !
 
 
 !Widget methodsFor: 'rendering'!
 !Widget methodsFor: 'rendering'!
 
 
 renderOn: html
 renderOn: html
-    self
+	self
 ! !
 ! !
 
 
 !Object methodsFor: '*Canvas'!
 !Object methodsFor: '*Canvas'!
 
 
 appendToBrush: aTagBrush
 appendToBrush: aTagBrush
-    aTagBrush append: self asString
+	aTagBrush append: self asString
 !
 !
 
 
 appendToJQuery: aJQuery
 appendToJQuery: aJQuery
-    aJQuery append: self asString
+	aJQuery append: self asString
 ! !
 ! !
 
 
 !BlockClosure methodsFor: '*Canvas'!
 !BlockClosure methodsFor: '*Canvas'!
 
 
 appendToBrush: aTagBrush
 appendToBrush: aTagBrush
-    aTagBrush appendBlock: self
+	aTagBrush appendBlock: self
 !
 !
 
 
 appendToJQuery: aJQuery
 appendToJQuery: aJQuery
-    self value: (HTMLCanvas onJQuery: aJQuery)
+	self value: (HTMLCanvas onJQuery: aJQuery)
 ! !
 ! !
 
 
 !CharacterArray methodsFor: '*Canvas'!
 !CharacterArray methodsFor: '*Canvas'!
@@ -1035,20 +1035,20 @@ asSnippet
 !String methodsFor: '*Canvas'!
 !String methodsFor: '*Canvas'!
 
 
 appendToBrush: aTagBrush
 appendToBrush: aTagBrush
-    aTagBrush appendString: self
+	aTagBrush appendString: self
 !
 !
 
 
 appendToJQuery: aJQuery
 appendToJQuery: aJQuery
-    aJQuery append: self
+	aJQuery append: self
 !
 !
 
 
 asJQuery
 asJQuery
-    <return jQuery(String(self))>
+	<return jQuery(String(self))>
 ! !
 ! !
 
 
 !JSObjectProxy methodsFor: '*Canvas'!
 !JSObjectProxy methodsFor: '*Canvas'!
 
 
 asJQuery
 asJQuery
-    <return jQuery(self['@jsObject'])>
+	<return jQuery(self['@jsObject'])>
 ! !
 ! !
 
 

+ 16 - 16
st/Compiler-AST.st

@@ -82,8 +82,8 @@ isValueNode
 !
 !
 
 
 subtreeNeedsAliasing
 subtreeNeedsAliasing
-    ^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [
-        (self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]
+	^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [
+		(self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]
 ! !
 ! !
 
 
 !Node methodsFor: 'visiting'!
 !Node methodsFor: 'visiting'!
@@ -159,7 +159,7 @@ isBlockNode
 !
 !
 
 
 subtreeNeedsAliasing
 subtreeNeedsAliasing
-    ^ self shouldBeAliased or: [ self shouldBeInlined ]
+	^ self shouldBeAliased or: [ self shouldBeInlined ]
 ! !
 ! !
 
 
 !BlockNode methodsFor: 'visiting'!
 !BlockNode methodsFor: 'visiting'!
@@ -343,13 +343,13 @@ arguments: aCollection
 cascadeNodeWithMessages: aCollection
 cascadeNodeWithMessages: aCollection
 	| first |
 	| first |
 	first := SendNode new
 	first := SendNode new
-	    selector: self selector;
-	    arguments: self arguments;
-	    yourself.
+		selector: self selector;
+		arguments: self arguments;
+		yourself.
 	^CascadeNode new
 	^CascadeNode new
-	    receiver: self receiver;
-	    nodes: (Array with: first), aCollection;
-	    yourself
+		receiver: self receiver;
+		nodes: (Array with: first), aCollection;
+		yourself
 !
 !
 
 
 index
 index
@@ -392,12 +392,12 @@ superSend: aBoolean
 
 
 valueForReceiver: anObject
 valueForReceiver: anObject
 	^SendNode new
 	^SendNode new
-	    receiver: (self receiver 
+		receiver: (self receiver
 		ifNil: [anObject]
 		ifNil: [anObject]
 		ifNotNil: [self receiver valueForReceiver: anObject]);
 		ifNotNil: [self receiver valueForReceiver: anObject]);
-	    selector: self selector;
-	    arguments: self arguments;
-	    yourself
+		selector: self selector;
+		arguments: self arguments;
+		yourself
 ! !
 ! !
 
 
 !SendNode methodsFor: 'testing'!
 !SendNode methodsFor: 'testing'!
@@ -438,9 +438,9 @@ temps: aCollection
 
 
 asBlockSequenceNode
 asBlockSequenceNode
 	^BlockSequenceNode new
 	^BlockSequenceNode new
-	    nodes: self nodes;
-	    temps: self temps;
-	    yourself
+		nodes: self nodes;
+		temps: self temps;
+		yourself
 ! !
 ! !
 
 
 !SequenceNode methodsFor: 'visiting'!
 !SequenceNode methodsFor: 'visiting'!

+ 13 - 13
st/Compiler-Core.st

@@ -5,7 +5,7 @@ Object subclass: #Compiler
 !Compiler commentStamp!
 !Compiler commentStamp!
 I provide the public interface for compiling Amber source code into JavaScript.
 I provide the public interface for compiling Amber source code into JavaScript.
 
 
-The code generator used to produce JavaScript can be plugged with `#codeGeneratorClass`. 
+The code generator used to produce JavaScript can be plugged with `#codeGeneratorClass`.
 The default code generator is an instance of `InlinedCodeGenerator`!
 The default code generator is an instance of `InlinedCodeGenerator`!
 
 
 !Compiler methodsFor: 'accessing'!
 !Compiler methodsFor: 'accessing'!
@@ -89,8 +89,8 @@ evaluateExpression: aString
 evaluateExpression: aString on: anObject
 evaluateExpression: aString on: anObject
 	"Unlike #eval: evaluate a Smalltalk expression with anObject as the receiver and answer the returned object"
 	"Unlike #eval: evaluate a Smalltalk expression with anObject as the receiver and answer the returned object"
 	| result method |
 	| result method |
-    method := self eval: (self compileExpression: aString on: anObject).
-    method category: 'xxxDoIt'.
+	method := self eval: (self compileExpression: aString on: anObject).
+	method category: 'xxxDoIt'.
 	anObject class addCompiledMethod: method.
 	anObject class addCompiledMethod: method.
 	result := anObject xxxDoIt.
 	result := anObject xxxDoIt.
 	anObject class removeCompiledMethod: method.
 	anObject class removeCompiledMethod: method.
@@ -98,18 +98,18 @@ evaluateExpression: aString on: anObject
 !
 !
 
 
 install: aString forClass: aBehavior category: anotherString
 install: aString forClass: aBehavior category: anotherString
-   	^ ClassBuilder new
-    	installMethod: (self eval: (self compile: aString forClass: aBehavior))
-        forClass: aBehavior
-        category: anotherString
+	^ ClassBuilder new
+		installMethod: (self eval: (self compile: aString forClass: aBehavior))
+		forClass: aBehavior
+		category: anotherString
 !
 !
 
 
 parse: aString
 parse: aString
-    ^Smalltalk current parse: aString
+	^Smalltalk current parse: aString
 !
 !
 
 
 parseExpression: aString
 parseExpression: aString
-    ^self parse: 'doIt ^[', aString, '] value'
+	^self parse: 'doIt ^[', aString, '] value'
 !
 !
 
 
 recompile: aClass
 recompile: aClass
@@ -229,11 +229,11 @@ I am the abstract super class of all code generators and provide their common AP
 
 
 classNameFor: aClass
 classNameFor: aClass
 	^aClass isMetaclass
 	^aClass isMetaclass
-	    ifTrue: [aClass instanceClass name, '.klass']
-	    ifFalse: [
+		ifTrue: [aClass instanceClass name, '.klass']
+		ifFalse: [
 		aClass isNil
 		aClass isNil
-		    ifTrue: ['nil']
-		    ifFalse: [aClass name]]
+			ifTrue: ['nil']
+			ifFalse: [aClass name]]
 !
 !
 
 
 currentClass
 currentClass

+ 2 - 2
st/Compiler-Exceptions.st

@@ -9,7 +9,7 @@ CompilerError subclass: #ParseError
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Compiler-Exceptions'!
 	package: 'Compiler-Exceptions'!
 !ParseError commentStamp!
 !ParseError commentStamp!
-Instance of ParseError are signaled on any parsing error. 
+Instance of ParseError are signaled on any parsing error.
 See `Smalltalk >> #parse:`!
 See `Smalltalk >> #parse:`!
 
 
 CompilerError subclass: #SemanticError
 CompilerError subclass: #SemanticError
@@ -105,6 +105,6 @@ basicSignal: anError
 
 
 handleError: anError
 handleError: anError
 	super handleError: anError.
 	super handleError: anError.
-    self basicSignal: anError
+	self basicSignal: anError
 ! !
 ! !
 
 

+ 123 - 123
st/Compiler-IR.st

@@ -62,8 +62,8 @@ alias: aNode
 
 
 	aNode isImmutable ifTrue: [ ^ self visit: aNode ].
 	aNode isImmutable ifTrue: [ ^ self visit: aNode ].
 
 
-	variable := IRVariable new 
-		variable: (AliasVar new name: '$', self nextAlias); 
+	variable := IRVariable new
+		variable: (AliasVar new name: '$', self nextAlias);
 		yourself.
 		yourself.
 
 
 	self sequence add: (IRAssignment new
 	self sequence add: (IRAssignment new
@@ -78,32 +78,32 @@ alias: aNode
 
 
 aliasTemporally: aCollection
 aliasTemporally: aCollection
 	"https://github.com/NicolasPetton/amber/issues/296
 	"https://github.com/NicolasPetton/amber/issues/296
-    
-    If a node is aliased, all preceding ones are aliased as well.
-    The tree is iterated twice. First we get the aliasing dependency, 
-    then the aliasing itself is done"
+	
+	If a node is aliased, all preceding ones are aliased as well.
+	The tree is iterated twice. First we get the aliasing dependency,
+	then the aliasing itself is done"
 
 
 	| threshold result |
 	| threshold result |
-    threshold := 0.
-    
-    aCollection withIndexDo: [ :each :i |
-        each subtreeNeedsAliasing
-		    ifTrue: [ threshold := i ]].
+	threshold := 0.
+	
+	aCollection withIndexDo: [ :each :i |
+		each subtreeNeedsAliasing
+			ifTrue: [ threshold := i ]].
 
 
 	result := OrderedCollection new.
 	result := OrderedCollection new.
-	aCollection withIndexDo: [ :each :i | 
+	aCollection withIndexDo: [ :each :i |
 		result add: (i <= threshold
 		result add: (i <= threshold
 			ifTrue: [ self alias: each ]
 			ifTrue: [ self alias: each ]
 			ifFalse: [ self visit: each ])].
 			ifFalse: [ self visit: each ])].
 
 
-    ^result
+	^result
 !
 !
 
 
 visitAssignmentNode: aNode
 visitAssignmentNode: aNode
 	| left right assignment |
 	| left right assignment |
 	right := self visit: aNode right.
 	right := self visit: aNode right.
 	left := self visit: aNode left.
 	left := self visit: aNode left.
-	self sequence add: (IRAssignment new 
+	self sequence add: (IRAssignment new
 		add: left;
 		add: left;
 		add: right;
 		add: right;
 		yourself).
 		yourself).
@@ -117,9 +117,9 @@ visitBlockNode: aNode
 		scope: aNode scope;
 		scope: aNode scope;
 		yourself.
 		yourself.
 	aNode scope temps do: [ :each |
 	aNode scope temps do: [ :each |
-		closure add: (IRTempDeclaration new 
+		closure add: (IRTempDeclaration new
 			name: each name;
 			name: each name;
-            scope: aNode scope;
+			scope: aNode scope;
 			yourself) ].
 			yourself) ].
 	aNode nodes do: [ :each | closure add: (self visit: each) ].
 	aNode nodes do: [ :each | closure add: (self visit: each) ].
 	^ closure
 	^ closure
@@ -128,11 +128,11 @@ visitBlockNode: aNode
 visitBlockSequenceNode: aNode
 visitBlockSequenceNode: aNode
 	^ self
 	^ self
 		withSequence: IRBlockSequence new
 		withSequence: IRBlockSequence new
-		do: [ 
+		do: [
 			aNode nodes ifNotEmpty: [
 			aNode nodes ifNotEmpty: [
-				aNode nodes allButLast do: [ :each | 
+				aNode nodes allButLast do: [ :each |
 					self sequence add: (self visit: each) ].
 					self sequence add: (self visit: each) ].
-				aNode nodes last isReturnNode 
+				aNode nodes last isReturnNode
 					ifFalse: [ self sequence add: (IRBlockReturn new add: (self visit: aNode nodes last); yourself) ]
 					ifFalse: [ self sequence add: (IRBlockReturn new add: (self visit: aNode nodes last); yourself) ]
 					ifTrue: [ self sequence add: (self visit: aNode nodes last) ]]]
 					ifTrue: [ self sequence add: (self visit: aNode nodes last) ]]]
 !
 !
@@ -140,7 +140,7 @@ visitBlockSequenceNode: aNode
 visitCascadeNode: aNode
 visitCascadeNode: aNode
 	| alias |
 	| alias |
 
 
-	aNode receiver isImmutable ifFalse: [ 
+	aNode receiver isImmutable ifFalse: [
 		alias := self alias: aNode receiver.
 		alias := self alias: aNode receiver.
 		aNode nodes do: [ :each |
 		aNode nodes do: [ :each |
 			each receiver: (VariableNode new binding: alias variable) ]].
 			each receiver: (VariableNode new binding: alias variable) ]].
@@ -161,7 +161,7 @@ visitDynamicArrayNode: aNode
 visitDynamicDictionaryNode: aNode
 visitDynamicDictionaryNode: aNode
 	| dictionary |
 	| dictionary |
 	dictionary := IRDynamicDictionary new.
 	dictionary := IRDynamicDictionary new.
-    (self aliasTemporally: aNode nodes) do: [:each | dictionary add: each].
+	(self aliasTemporally: aNode nodes) do: [:each | dictionary add: each].
 	^ dictionary
 	^ dictionary
 !
 !
 
 
@@ -175,11 +175,11 @@ visitMethodNode: aNode
 
 
 	self method: (IRMethod new
 	self method: (IRMethod new
 		source: self source;
 		source: self source;
-        theClass: self theClass;
+		theClass: self theClass;
 		arguments: aNode arguments;
 		arguments: aNode arguments;
 		selector: aNode selector;
 		selector: aNode selector;
 		messageSends: aNode messageSends;
 		messageSends: aNode messageSends;
-        superSends: aNode superSends;
+		superSends: aNode superSends;
 		classReferences: aNode classReferences;
 		classReferences: aNode classReferences;
 		scope: aNode scope;
 		scope: aNode scope;
 		yourself).
 		yourself).
@@ -187,7 +187,7 @@ visitMethodNode: aNode
 	aNode scope temps do: [ :each |
 	aNode scope temps do: [ :each |
 		self method add: (IRTempDeclaration new
 		self method add: (IRTempDeclaration new
 			name: each name;
 			name: each name;
-            scope: aNode scope;
+			scope: aNode scope;
 			yourself) ].
 			yourself) ].
 
 
 	aNode nodes do: [ :each | self method add: (self visit: each) ].
 	aNode nodes do: [ :each | self method add: (self visit: each) ].
@@ -202,7 +202,7 @@ visitMethodNode: aNode
 
 
 visitReturnNode: aNode
 visitReturnNode: aNode
 	| return |
 	| return |
-	return := aNode nonLocalReturn 
+	return := aNode nonLocalReturn
 		ifTrue: [ IRNonLocalReturn new ]
 		ifTrue: [ IRNonLocalReturn new ]
 		ifFalse: [ IRReturn new ].
 		ifFalse: [ IRReturn new ].
 	return scope: aNode scope.
 	return scope: aNode scope.
@@ -214,12 +214,12 @@ visitReturnNode: aNode
 visitSendNode: aNode
 visitSendNode: aNode
 	| send all receiver arguments |
 	| send all receiver arguments |
 	send := IRSend new.
 	send := IRSend new.
-	send 
+	send
 		selector: aNode selector;
 		selector: aNode selector;
 		index: aNode index.
 		index: aNode index.
 	aNode superSend ifTrue: [ send classSend: self theClass superclass ].
 	aNode superSend ifTrue: [ send classSend: self theClass superclass ].
-    
-    all := self aliasTemporally: { aNode receiver }, aNode arguments.
+	
+	all := self aliasTemporally: { aNode receiver }, aNode arguments.
 	receiver := all first.
 	receiver := all first.
 	arguments := all allButFirst.
 	arguments := all allButFirst.
 
 
@@ -230,8 +230,8 @@ visitSendNode: aNode
 !
 !
 
 
 visitSequenceNode: aNode
 visitSequenceNode: aNode
-	^ self 
-		withSequence: IRSequence new 	
+	^ self
+		withSequence: IRSequence new
 		do: [
 		do: [
 			aNode nodes do: [ :each | | instruction |
 			aNode nodes do: [ :each | | instruction |
 				instruction := self visit: each.
 				instruction := self visit: each.
@@ -240,14 +240,14 @@ visitSequenceNode: aNode
 !
 !
 
 
 visitValueNode: aNode
 visitValueNode: aNode
-	^ IRValue new 
-		value: aNode value; 
+	^ IRValue new
+		value: aNode value;
 		yourself
 		yourself
 !
 !
 
 
 visitVariableNode: aNode
 visitVariableNode: aNode
-	^ IRVariable new 
-		variable: aNode binding; 
+	^ IRVariable new
+		variable: aNode binding;
 		yourself
 		yourself
 ! !
 ! !
 
 
@@ -293,7 +293,7 @@ remove: anIRInstruction
 
 
 replace: anIRInstruction with: anotherIRInstruction
 replace: anIRInstruction with: anotherIRInstruction
 	anotherIRInstruction parent: self.
 	anotherIRInstruction parent: self.
-	self instructions 
+	self instructions
 		at: (self instructions indexOf: anIRInstruction)
 		at: (self instructions indexOf: anIRInstruction)
 		put: anotherIRInstruction
 		put: anotherIRInstruction
 !
 !
@@ -418,8 +418,8 @@ arguments: aCollection
 
 
 locals
 locals
 	^ self arguments copy
 	^ self arguments copy
-    	addAll: (self tempDeclarations collect: [ :each | each name ]); 
-        yourself
+		addAll: (self tempDeclarations collect: [ :each | each name ]);
+		yourself
 !
 !
 
 
 scope: aScope
 scope: aScope
@@ -428,8 +428,8 @@ scope: aScope
 !
 !
 
 
 tempDeclarations
 tempDeclarations
-	^ self instructions select: [ :each | 
-    	each isTempDeclaration ]
+	^ self instructions select: [ :each |
+		each isTempDeclaration ]
 ! !
 ! !
 
 
 IRClosureInstruction subclass: #IRClosure
 IRClosureInstruction subclass: #IRClosure
@@ -652,9 +652,9 @@ index: anInteger
 !
 !
 
 
 javascriptSelector
 javascriptSelector
-	^ self classSend 
-    	ifNil: [ self selector asSelector ]
-      	ifNotNil: [ self selector asSuperSelector ]
+	^ self classSend
+		ifNil: [ self selector asSelector ]
+		ifNotNil: [ self selector asSuperSelector ]
 !
 !
 
 
 selector
 selector
@@ -894,13 +894,13 @@ visitIRAssignment: anIRAssignment
 !
 !
 
 
 visitIRClosure: anIRClosure
 visitIRClosure: anIRClosure
-	self stream 
-		nextPutClosureWith: [ 
-        	self stream nextPutVars: (anIRClosure tempDeclarations collect: [ :each |
-    				each name asVariableName ]).
-        	self stream 
-            	nextPutBlockContextFor: anIRClosure
-                during: [ super visitIRClosure: anIRClosure ] ]
+	self stream
+		nextPutClosureWith: [
+			self stream nextPutVars: (anIRClosure tempDeclarations collect: [ :each |
+					each name asVariableName ]).
+			self stream
+				nextPutBlockContextFor: anIRClosure
+				during: [ super visitIRClosure: anIRClosure ] ]
 		arguments: anIRClosure arguments
 		arguments: anIRClosure arguments
 !
 !
 
 
@@ -914,7 +914,7 @@ visitIRDynamicArray: anIRDynamicArray
 
 
 visitIRDynamicDictionary: anIRDynamicDictionary
 visitIRDynamicDictionary: anIRDynamicDictionary
 	self stream nextPutAll: 'smalltalk.HashedCollection._fromPairs_(['.
 	self stream nextPutAll: 'smalltalk.HashedCollection._fromPairs_(['.
-		anIRDynamicDictionary instructions 
+		anIRDynamicDictionary instructions
 			do: [ :each | self visit: each ]
 			do: [ :each | self visit: each ]
 			separatedBy: [self stream nextPutAll: ',' ].
 			separatedBy: [self stream nextPutAll: ',' ].
 	self stream nextPutAll: '])'
 	self stream nextPutAll: '])'
@@ -923,16 +923,16 @@ visitIRDynamicDictionary: anIRDynamicDictionary
 visitIRMethod: anIRMethod
 visitIRMethod: anIRMethod
 
 
 	self stream
 	self stream
-		nextPutMethodDeclaration: anIRMethod 
-		with: [ self stream 
-			nextPutFunctionWith: [ 
-            	self stream nextPutVars: (anIRMethod tempDeclarations collect: [ :each |
-    				each name asVariableName ]).
-            	self stream nextPutContextFor: anIRMethod during: [
+		nextPutMethodDeclaration: anIRMethod
+		with: [ self stream
+			nextPutFunctionWith: [
+				self stream nextPutVars: (anIRMethod tempDeclarations collect: [ :each |
+					each name asVariableName ]).
+				self stream nextPutContextFor: anIRMethod during: [
 				anIRMethod internalVariables notEmpty ifTrue: [
 				anIRMethod internalVariables notEmpty ifTrue: [
 					self stream nextPutVars: (anIRMethod internalVariables asArray collect: [ :each |
 					self stream nextPutVars: (anIRMethod internalVariables asArray collect: [ :each |
 						each variable alias ]) ].
 						each variable alias ]) ].
-				anIRMethod scope hasNonLocalReturn 
+				anIRMethod scope hasNonLocalReturn
 					ifTrue: [
 					ifTrue: [
 						self stream nextPutNonLocalReturnHandlingWith: [
 						self stream nextPutNonLocalReturnHandlingWith: [
 							super visitIRMethod: anIRMethod ]]
 							super visitIRMethod: anIRMethod ]]
@@ -951,18 +951,18 @@ visitIRReturn: anIRReturn
 !
 !
 
 
 visitIRSend: anIRSend
 visitIRSend: anIRSend
-	anIRSend classSend 
-    	ifNil: [
+	anIRSend classSend
+		ifNil: [
 			self stream nextPutAll: '_st('.
 			self stream nextPutAll: '_st('.
 			self visit: anIRSend instructions first.
 			self visit: anIRSend instructions first.
-   		 	self stream nextPutAll: ').', anIRSend selector asSelector, '('.
+			self stream nextPutAll: ').', anIRSend selector asSelector, '('.
 			anIRSend instructions allButFirst
 			anIRSend instructions allButFirst
 				do: [ :each | self visit: each ]
 				do: [ :each | self visit: each ]
 				separatedBy: [ self stream nextPutAll: ',' ].
 				separatedBy: [ self stream nextPutAll: ',' ].
 			self stream nextPutAll: ')' ]
 			self stream nextPutAll: ')' ]
-		ifNotNil: [ 
-			self stream 
-            	nextPutAll: anIRSend classSend asJavascript, '.fn.prototype.';
+		ifNotNil: [
+			self stream
+				nextPutAll: anIRSend classSend asJavascript, '.fn.prototype.';
 				nextPutAll: anIRSend selector asSelector, '.apply(';
 				nextPutAll: anIRSend selector asSelector, '.apply(';
 				nextPutAll: '_st('.
 				nextPutAll: '_st('.
 			self visit: anIRSend instructions first.
 			self visit: anIRSend instructions first.
@@ -980,9 +980,9 @@ visitIRSequence: anIRSequence
 !
 !
 
 
 visitIRTempDeclaration: anIRTempDeclaration
 visitIRTempDeclaration: anIRTempDeclaration
-	"self stream 
-    	nextPutAll: 'var ', anIRTempDeclaration name asVariableName, ';'; 
-        lf"
+	"self stream
+		nextPutAll: 'var ', anIRTempDeclaration name asVariableName, ';';
+		lf"
 !
 !
 
 
 visitIRValue: anIRValue
 visitIRValue: anIRValue
@@ -991,8 +991,8 @@ visitIRValue: anIRValue
 
 
 visitIRVariable: anIRVariable
 visitIRVariable: anIRVariable
 	anIRVariable variable name = 'thisContext'
 	anIRVariable variable name = 'thisContext'
-    	ifTrue: [ self stream nextPutAll: 'smalltalk.getThisContext()' ]
-      	ifFalse: [ self stream nextPutAll: anIRVariable variable alias ]
+		ifTrue: [ self stream nextPutAll: 'smalltalk.getThisContext()' ]
+		ifFalse: [ self stream nextPutAll: anIRVariable variable alias ]
 !
 !
 
 
 visitIRVerbatim: anIRVerbatim
 visitIRVerbatim: anIRVerbatim
@@ -1036,32 +1036,32 @@ nextPutAssignment
 !
 !
 
 
 nextPutBlockContextFor: anIRClosure during: aBlock
 nextPutBlockContextFor: anIRClosure during: aBlock
-	self 
-    	nextPutAll: 'return smalltalk.withContext(function(', anIRClosure scope alias, ') {'; 
-        nextPutAll: String cr.
-    
-    aBlock value.
-    
-    self 
-    	nextPutAll: '}, function(', anIRClosure scope alias, ') {';
-        nextPutAll: anIRClosure scope alias, '.fillBlock({'.
-    
-    anIRClosure locals 
-    	do: [ :each |
-    		self 
-        		nextPutAll: each asVariableName;
-           	 	nextPutAll: ':';
-        		nextPutAll: each asVariableName]
+	self
+		nextPutAll: 'return smalltalk.withContext(function(', anIRClosure scope alias, ') {';
+		nextPutAll: String cr.
+	
+	aBlock value.
+	
+	self
+		nextPutAll: '}, function(', anIRClosure scope alias, ') {';
+		nextPutAll: anIRClosure scope alias, '.fillBlock({'.
+	
+	anIRClosure locals
+		do: [ :each |
+			self
+				nextPutAll: each asVariableName;
+				nextPutAll: ':';
+				nextPutAll: each asVariableName]
 		separatedBy: [ self nextPutAll: ',' ].
 		separatedBy: [ self nextPutAll: ',' ].
-    
-    self
-    	nextPutAll: '},';
-        nextPutAll:  anIRClosure method scope alias, ')})'
+	
+	self
+		nextPutAll: '},';
+		nextPutAll: anIRClosure method scope alias, ')})'
 !
 !
 
 
 nextPutClosureWith: aBlock arguments: anArray
 nextPutClosureWith: aBlock arguments: anArray
 	stream nextPutAll: '(function('.
 	stream nextPutAll: '(function('.
-	anArray 
+	anArray
 		do: [ :each | stream nextPutAll: each asVariableName ]
 		do: [ :each | stream nextPutAll: each asVariableName ]
 		separatedBy: [ stream nextPut: ',' ].
 		separatedBy: [ stream nextPut: ',' ].
 	stream nextPutAll: '){'; lf.
 	stream nextPutAll: '){'; lf.
@@ -1070,32 +1070,32 @@ nextPutClosureWith: aBlock arguments: anArray
 !
 !
 
 
 nextPutContextFor: aMethod during: aBlock
 nextPutContextFor: aMethod during: aBlock
-	self 
-    	nextPutAll: 'return smalltalk.withContext(function(', aMethod scope alias, ') { '; 
-        nextPutAll: String cr.
-    aBlock value.
-    
-    self 
-    	nextPutAll: '}, function(', aMethod scope alias, ') {', aMethod scope alias; 
-        nextPutAll: '.fill(self,', aMethod selector asJavascript, ',{'.
-
-    aMethod locals 
-    	do: [ :each |
-    		self 
-        		nextPutAll: each asVariableName;
-           	 	nextPutAll: ':';
-        		nextPutAll: each asVariableName]
+	self
+		nextPutAll: 'return smalltalk.withContext(function(', aMethod scope alias, ') { ';
+		nextPutAll: String cr.
+	aBlock value.
+	
+	self
+		nextPutAll: '}, function(', aMethod scope alias, ') {', aMethod scope alias;
+		nextPutAll: '.fill(self,', aMethod selector asJavascript, ',{'.
+
+	aMethod locals
+		do: [ :each |
+			self
+				nextPutAll: each asVariableName;
+				nextPutAll: ':';
+				nextPutAll: each asVariableName]
 		separatedBy: [ self nextPutAll: ',' ].
 		separatedBy: [ self nextPutAll: ',' ].
-    
-    self
-    	nextPutAll: '},';
-        nextPutAll: aMethod theClass asJavascript;
-        nextPutAll: ')})'
+	
+	self
+		nextPutAll: '},';
+		nextPutAll: aMethod theClass asJavascript;
+		nextPutAll: ')})'
 !
 !
 
 
 nextPutFunctionWith: aBlock arguments: anArray
 nextPutFunctionWith: aBlock arguments: anArray
 	stream nextPutAll: 'fn: function('.
 	stream nextPutAll: 'fn: function('.
-	anArray 
+	anArray
 		do: [ :each | stream nextPutAll: each asVariableName ]
 		do: [ :each | stream nextPutAll: each asVariableName ]
 		separatedBy: [ stream nextPut: ',' ].
 		separatedBy: [ stream nextPut: ',' ].
 	stream nextPutAll: '){'; lf.
 	stream nextPutAll: '){'; lf.
@@ -1123,30 +1123,30 @@ nextPutIfElse: aBlock with: ifBlock with: elseBlock
 !
 !
 
 
 nextPutMethodDeclaration: aMethod with: aBlock
 nextPutMethodDeclaration: aMethod with: aBlock
-	stream 
+	stream
 		nextPutAll: 'smalltalk.method({'; lf;
 		nextPutAll: 'smalltalk.method({'; lf;
 		nextPutAll: 'selector: "', aMethod selector, '",'; lf;
 		nextPutAll: 'selector: "', aMethod selector, '",'; lf;
-		nextPutAll: 'source: ', aMethod source asJavascript, ',';lf. 
+		nextPutAll: 'source: ', aMethod source asJavascript, ',';lf.
 	aBlock value.
 	aBlock value.
-	stream 
+	stream
 		nextPutAll: ',', String lf, 'messageSends: ';
 		nextPutAll: ',', String lf, 'messageSends: ';
 		nextPutAll: aMethod messageSends asArray asJavascript, ','; lf;
 		nextPutAll: aMethod messageSends asArray asJavascript, ','; lf;
-        nextPutAll: 'args: ', (aMethod arguments collect: [ :each | each value ]) asArray asJavascript, ','; lf;
+		nextPutAll: 'args: ', (aMethod arguments collect: [ :each | each value ]) asArray asJavascript, ','; lf;
 		nextPutAll: 'referencedClasses: ['.
 		nextPutAll: 'referencedClasses: ['.
-	aMethod classReferences 
+	aMethod classReferences
 		do: [:each | stream nextPutAll: each asJavascript]
 		do: [:each | stream nextPutAll: each asJavascript]
 		separatedBy: [stream nextPutAll: ','].
 		separatedBy: [stream nextPutAll: ','].
-	stream 
+	stream
 		nextPutAll: ']';
 		nextPutAll: ']';
 		nextPutAll: '})'
 		nextPutAll: '})'
 !
 !
 
 
 nextPutNonLocalReturnHandlingWith: aBlock
 nextPutNonLocalReturnHandlingWith: aBlock
-	stream 
+	stream
 		nextPutAll: 'var $early={};'; lf;
 		nextPutAll: 'var $early={};'; lf;
 		nextPutAll: 'try {'; lf.
 		nextPutAll: 'try {'; lf.
 	aBlock value.
 	aBlock value.
-	stream 
+	stream
 		nextPutAll: '}'; lf;
 		nextPutAll: '}'; lf;
 		nextPutAll: 'catch(e) {if(e===$early)return e[0]; throw e}'; lf
 		nextPutAll: 'catch(e) {if(e===$early)return e[0]; throw e}'; lf
 !
 !
@@ -1167,10 +1167,10 @@ nextPutReturnWith: aBlock
 !
 !
 
 
 nextPutSequenceWith: aBlock
 nextPutSequenceWith: aBlock
-	"stream 
+	"stream
 		nextPutAll: 'switch(smalltalk.thisContext.pc){'; lf."
 		nextPutAll: 'switch(smalltalk.thisContext.pc){'; lf."
 	aBlock value.
 	aBlock value.
-	"stream 
+	"stream
 		nextPutAll: '};'; lf"
 		nextPutAll: '};'; lf"
 !
 !
 
 
@@ -1191,9 +1191,9 @@ nextPutVar: aString
 
 
 nextPutVars: aCollection
 nextPutVars: aCollection
 	aCollection ifEmpty: [ ^self ].
 	aCollection ifEmpty: [ ^self ].
-    
+	
 	stream nextPutAll: 'var '.
 	stream nextPutAll: 'var '.
-	aCollection 
+	aCollection
 		do: [ :each | stream nextPutAll: each ]
 		do: [ :each | stream nextPutAll: each ]
 		separatedBy: [ stream nextPutAll: ',' ].
 		separatedBy: [ stream nextPutAll: ',' ].
 	stream nextPutAll: ';'; lf
 	stream nextPutAll: ';'; lf
@@ -1202,7 +1202,7 @@ nextPutVars: aCollection
 !BlockClosure methodsFor: '*Compiler-IR'!
 !BlockClosure methodsFor: '*Compiler-IR'!
 
 
 appendToInstruction: anIRInstruction
 appendToInstruction: anIRInstruction
-    anIRInstruction appendBlock: self
+	anIRInstruction appendBlock: self
 ! !
 ! !
 
 
 !String methodsFor: '*Compiler-IR'!
 !String methodsFor: '*Compiler-IR'!

+ 30 - 30
st/Compiler-Inlining.st

@@ -158,25 +158,25 @@ Message selectors that can be inlined are answered by `IRSendInliner >> #inlined
 !IRInliner methodsFor: 'factory'!
 !IRInliner methodsFor: 'factory'!
 
 
 assignmentInliner
 assignmentInliner
-	^ IRAssignmentInliner new 
+	^ IRAssignmentInliner new
 		translator: self;
 		translator: self;
 		yourself
 		yourself
 !
 !
 
 
 nonLocalReturnInliner
 nonLocalReturnInliner
-	^ IRNonLocalReturnInliner new 
+	^ IRNonLocalReturnInliner new
 		translator: self;
 		translator: self;
 		yourself
 		yourself
 !
 !
 
 
 returnInliner
 returnInliner
-	^ IRReturnInliner new 
+	^ IRReturnInliner new
 		translator: self;
 		translator: self;
 		yourself
 		yourself
 !
 !
 
 
 sendInliner
 sendInliner
-	^ IRSendInliner new 
+	^ IRSendInliner new
 		translator: self;
 		translator: self;
 		yourself
 		yourself
 ! !
 ! !
@@ -184,14 +184,14 @@ sendInliner
 !IRInliner methodsFor: 'testing'!
 !IRInliner methodsFor: 'testing'!
 
 
 shouldInlineAssignment: anIRAssignment
 shouldInlineAssignment: anIRAssignment
-	^ anIRAssignment isInlined not and: [ 
-		anIRAssignment instructions last isSend and: [	
+	^ anIRAssignment isInlined not and: [
+		anIRAssignment instructions last isSend and: [
 			self shouldInlineSend: (anIRAssignment instructions last) ]]
 			self shouldInlineSend: (anIRAssignment instructions last) ]]
 !
 !
 
 
 shouldInlineReturn: anIRReturn
 shouldInlineReturn: anIRReturn
-	^ anIRReturn isInlined not and: [ 
-		anIRReturn instructions first isSend and: [	
+	^ anIRReturn isInlined not and: [
+		anIRReturn instructions first isSend and: [
 			self shouldInlineSend: (anIRReturn instructions first) ]]
 			self shouldInlineSend: (anIRReturn instructions first) ]]
 !
 !
 
 
@@ -219,19 +219,19 @@ transformNonLocalReturn: anIRNonLocalReturn
 !
 !
 
 
 visitIRAssignment: anIRAssignment
 visitIRAssignment: anIRAssignment
-	^ (self shouldInlineAssignment: anIRAssignment) 
+	^ (self shouldInlineAssignment: anIRAssignment)
 		ifTrue: [ self assignmentInliner inlineAssignment: anIRAssignment ]
 		ifTrue: [ self assignmentInliner inlineAssignment: anIRAssignment ]
 		ifFalse: [ super visitIRAssignment: anIRAssignment ]
 		ifFalse: [ super visitIRAssignment: anIRAssignment ]
 !
 !
 
 
 visitIRNonLocalReturn: anIRNonLocalReturn
 visitIRNonLocalReturn: anIRNonLocalReturn
-	^ (self shouldInlineReturn: anIRNonLocalReturn) 
+	^ (self shouldInlineReturn: anIRNonLocalReturn)
 		ifTrue: [ self nonLocalReturnInliner inlineReturn: anIRNonLocalReturn ]
 		ifTrue: [ self nonLocalReturnInliner inlineReturn: anIRNonLocalReturn ]
 		ifFalse: [ self transformNonLocalReturn: anIRNonLocalReturn ]
 		ifFalse: [ self transformNonLocalReturn: anIRNonLocalReturn ]
 !
 !
 
 
 visitIRReturn: anIRReturn
 visitIRReturn: anIRReturn
-	^ (self shouldInlineReturn: anIRReturn) 
+	^ (self shouldInlineReturn: anIRReturn)
 		ifTrue: [ self returnInliner inlineReturn: anIRReturn ]
 		ifTrue: [ self returnInliner inlineReturn: anIRReturn ]
 		ifFalse: [ super visitIRReturn: anIRReturn ]
 		ifFalse: [ super visitIRReturn: anIRReturn ]
 !
 !
@@ -260,7 +260,7 @@ visitIRInlinedClosure: anIRInlinedClosure
 !
 !
 
 
 visitIRInlinedIfFalse: anIRInlinedIfFalse
 visitIRInlinedIfFalse: anIRInlinedIfFalse
-	self stream nextPutIf: [ 
+	self stream nextPutIf: [
 		self stream nextPutAll: '!! smalltalk.assert('.
 		self stream nextPutAll: '!! smalltalk.assert('.
 		self visit: anIRInlinedIfFalse instructions first.
 		self visit: anIRInlinedIfFalse instructions first.
 		self stream nextPutAll: ')' ]
 		self stream nextPutAll: ')' ]
@@ -268,17 +268,17 @@ visitIRInlinedIfFalse: anIRInlinedIfFalse
 !
 !
 
 
 visitIRInlinedIfNil: anIRInlinedIfNil
 visitIRInlinedIfNil: anIRInlinedIfNil
-	self stream nextPutIf: [ 
-		self stream nextPutAll: '($receiver = '. 
+	self stream nextPutIf: [
+		self stream nextPutAll: '($receiver = '.
 		self visit: anIRInlinedIfNil instructions first.
 		self visit: anIRInlinedIfNil instructions first.
 		self stream nextPutAll: ') == nil || $receiver == undefined' ]
 		self stream nextPutAll: ') == nil || $receiver == undefined' ]
 		with: [ self visit: anIRInlinedIfNil instructions last ]
 		with: [ self visit: anIRInlinedIfNil instructions last ]
 !
 !
 
 
 visitIRInlinedIfNilIfNotNil: anIRInlinedIfNilIfNotNil
 visitIRInlinedIfNilIfNotNil: anIRInlinedIfNilIfNotNil
-	self stream 
-		nextPutIfElse: [ 
-			self stream nextPutAll: '($receiver = '. 
+	self stream
+		nextPutIfElse: [
+			self stream nextPutAll: '($receiver = '.
 			self visit: anIRInlinedIfNilIfNotNil instructions first.
 			self visit: anIRInlinedIfNilIfNotNil instructions first.
 			self stream nextPutAll: ') == nil || $receiver == undefined' ]
 			self stream nextPutAll: ') == nil || $receiver == undefined' ]
 		with: [ self visit: anIRInlinedIfNilIfNotNil instructions second ]
 		with: [ self visit: anIRInlinedIfNilIfNotNil instructions second ]
@@ -286,17 +286,17 @@ visitIRInlinedIfNilIfNotNil: anIRInlinedIfNilIfNotNil
 !
 !
 
 
 visitIRInlinedIfTrue: anIRInlinedIfTrue
 visitIRInlinedIfTrue: anIRInlinedIfTrue
-	self stream nextPutIf: [ 
-		self stream nextPutAll: 'smalltalk.assert('. 
+	self stream nextPutIf: [
+		self stream nextPutAll: 'smalltalk.assert('.
 		self visit: anIRInlinedIfTrue instructions first.
 		self visit: anIRInlinedIfTrue instructions first.
 		self stream nextPutAll: ')' ]
 		self stream nextPutAll: ')' ]
 		with: [ self visit: anIRInlinedIfTrue instructions last ]
 		with: [ self visit: anIRInlinedIfTrue instructions last ]
 !
 !
 
 
 visitIRInlinedIfTrueIfFalse: anIRInlinedIfTrueIfFalse
 visitIRInlinedIfTrueIfFalse: anIRInlinedIfTrueIfFalse
-	self stream 
-		nextPutIfElse: [ 
-			self stream nextPutAll: 'smalltalk.assert('. 
+	self stream
+		nextPutIfElse: [
+			self stream nextPutAll: 'smalltalk.assert('.
 			self visit: anIRInlinedIfTrueIfFalse instructions first.
 			self visit: anIRInlinedIfTrueIfFalse instructions first.
 			self stream nextPutAll: ')' ]
 			self stream nextPutAll: ')' ]
 		with: [ self visit: anIRInlinedIfTrueIfFalse instructions second ]
 		with: [ self visit: anIRInlinedIfTrueIfFalse instructions second ]
@@ -314,7 +314,7 @@ visitIRInlinedReturn: anIRInlinedReturn
 !
 !
 
 
 visitIRInlinedSequence: anIRInlinedSequence
 visitIRInlinedSequence: anIRInlinedSequence
-	anIRInlinedSequence instructions do: [ :each | 
+	anIRInlinedSequence instructions do: [ :each |
 		self stream nextPutStatementWith: [ self visit: each ]]
 		self stream nextPutStatementWith: [ self visit: each ]]
 ! !
 ! !
 
 
@@ -369,8 +369,8 @@ ifFalse: anIRInstruction ifTrue: anotherIRInstruction
 !
 !
 
 
 ifNil: anIRInstruction
 ifNil: anIRInstruction
-	^ self 
-		inlinedSend: IRInlinedIfNilIfNotNil new 
+	^ self
+		inlinedSend: IRInlinedIfNilIfNotNil new
 		with: anIRInstruction
 		with: anIRInstruction
 		with: (IRClosure new
 		with: (IRClosure new
 			scope: anIRInstruction scope copy;
 			scope: anIRInstruction scope copy;
@@ -385,7 +385,7 @@ ifNil: anIRInstruction ifNotNil: anotherIRInstruction
 !
 !
 
 
 ifNotNil: anIRInstruction
 ifNotNil: anIRInstruction
-	^ self 
+	^ self
 		inlinedSend: IRInlinedIfNilIfNotNil new
 		inlinedSend: IRInlinedIfNilIfNotNil new
 		with: (IRClosure new
 		with: (IRClosure new
 			scope: anIRInstruction scope copy;
 			scope: anIRInstruction scope copy;
@@ -415,7 +415,7 @@ inlineClosure: anIRClosure
 	inlinedClosure scope: anIRClosure scope.
 	inlinedClosure scope: anIRClosure scope.
 
 
 	"Add the possible temp declarations"
 	"Add the possible temp declarations"
-	anIRClosure instructions do: [ :each | 
+	anIRClosure instructions do: [ :each |
 		each isSequence ifFalse: [
 		each isSequence ifFalse: [
 			inlinedClosure add: each ]].
 			inlinedClosure add: each ]].
 
 
@@ -439,8 +439,8 @@ inlineClosure: anIRClosure
 
 
 inlineSend: anIRSend
 inlineSend: anIRSend
 	self send: anIRSend.
 	self send: anIRSend.
-	^ self 
-		perform: self send selector 
+	^ self
+		perform: self send selector
 		withArguments: self send instructions allButFirst
 		withArguments: self send instructions allButFirst
 !
 !
 
 
@@ -500,7 +500,7 @@ IRSendInliner subclass: #IRAssignmentInliner
 	instanceVariableNames: 'assignment'
 	instanceVariableNames: 'assignment'
 	package: 'Compiler-Inlining'!
 	package: 'Compiler-Inlining'!
 !IRAssignmentInliner commentStamp!
 !IRAssignmentInliner commentStamp!
-I inline message sends together with assignments by moving them around into the inline closure instructions. 
+I inline message sends together with assignments by moving them around into the inline closure instructions.
 
 
 ##Example
 ##Example
 
 

+ 146 - 146
st/Compiler-Interpreter.st

@@ -56,27 +56,27 @@ receiver: anObject
 
 
 selector
 selector
 	^ self metod
 	^ self metod
-    	ifNotNil: [ self method selector ]
+		ifNotNil: [ self method selector ]
 ! !
 ! !
 
 
 !AIContext methodsFor: 'initialization'!
 !AIContext methodsFor: 'initialization'!
 
 
 initializeFromMethodContext: aMethodContext
 initializeFromMethodContext: aMethodContext
 	self pc: aMethodContext pc.
 	self pc: aMethodContext pc.
-    self receiver: aMethodContext receiver.
-    self method: aMethodContext method.
-    aMethodContext outerContext ifNotNil: [
+	self receiver: aMethodContext receiver.
+	self method: aMethodContext method.
+	aMethodContext outerContext ifNotNil: [
 		self outerContext: (self class fromMethodContext: aMethodContext outerContext) ].
 		self outerContext: (self class fromMethodContext: aMethodContext outerContext) ].
-    aMethodContext locals keysAndValuesDo: [ :key :value |
-    	self locals at: key put: value ]
+	aMethodContext locals keysAndValuesDo: [ :key :value |
+		self locals at: key put: value ]
 ! !
 ! !
 
 
 !AIContext class methodsFor: 'instance creation'!
 !AIContext class methodsFor: 'instance creation'!
 
 
 fromMethodContext: aMethodContext
 fromMethodContext: aMethodContext
 	^ self new
 	^ self new
-    	initializeFromMethodContext: aMethodContext;
-        yourself
+		initializeFromMethodContext: aMethodContext;
+		yourself
 ! !
 ! !
 
 
 Object subclass: #ASTDebugger
 Object subclass: #ASTDebugger
@@ -123,16 +123,16 @@ defaultInterpreterClass
 
 
 buildAST
 buildAST
 	"Build the AST tree from the method source code.
 	"Build the AST tree from the method source code.
-    The AST is annotated with a SemanticAnalyzer, 
-    to know the semantics and bindings of each node needed for later debugging"
-    
-    | ast |
-    
-    ast := Smalltalk current parse: self method source.
-    (SemanticAnalyzer on: self context receiver class)
-    	visit: ast.    
-    
-    ^ ast
+	The AST is annotated with a SemanticAnalyzer,
+	to know the semantics and bindings of each node needed for later debugging"
+	
+	| ast |
+	
+	ast := Smalltalk current parse: self method source.
+	(SemanticAnalyzer on: self context receiver class)
+		visit: ast.
+	
+	^ ast
 !
 !
 
 
 initializeInterpreter
 initializeInterpreter
@@ -141,9 +141,9 @@ initializeInterpreter
 
 
 initializeWithContext: aMethodContext
 initializeWithContext: aMethodContext
 	"TODO: do we need to handle block contexts?"
 	"TODO: do we need to handle block contexts?"
-    
-    self context: (AIContext fromMethodContext: aMethodContext).
-    self initializeInterpreter
+	
+	self context: (AIContext fromMethodContext: aMethodContext).
+	self initializeInterpreter
 ! !
 ! !
 
 
 !ASTDebugger methodsFor: 'stepping'!
 !ASTDebugger methodsFor: 'stepping'!
@@ -157,16 +157,16 @@ resume
 !
 !
 
 
 step
 step
-	"The ASTSteppingInterpreter stops at each node interpretation. 
-    One step will interpret nodes until:
-    - we get at the end
-    - the next node is a stepping node (send, assignment, etc.)"
-    
+	"The ASTSteppingInterpreter stops at each node interpretation.
+	One step will interpret nodes until:
+	- we get at the end
+	- the next node is a stepping node (send, assignment, etc.)"
+	
 	[ (self interpreter nextNode notNil and: [ self interpreter nextNode stopOnStepping ])
 	[ (self interpreter nextNode notNil and: [ self interpreter nextNode stopOnStepping ])
-		or: [ self interpreter atEnd not ] ] 
- 			whileFalse: [
-				self interpreter step. 
-                self step ]
+		or: [ self interpreter atEnd not ] ]
+			whileFalse: [
+				self interpreter step.
+				self step ]
 !
 !
 
 
 stepInto
 stepInto
@@ -181,8 +181,8 @@ stepOver
 
 
 context: aMethodContext
 context: aMethodContext
 	^ self new
 	^ self new
-    	initializeWithContext: aMethodContext;
-        yourself
+		initializeWithContext: aMethodContext;
+		yourself
 ! !
 ! !
 
 
 Object subclass: #ASTInterpreter
 Object subclass: #ASTInterpreter
@@ -194,13 +194,13 @@ It is built using Continuation Passing Style for stepping purposes.
 
 
 Usage example:
 Usage example:
 
 
-    | ast interpreter |
-    ast := Smalltalk current parse: 'foo 1+2+4'.
-    (SemanticAnalyzer on: Object) visit: ast.
+	| ast interpreter |
+	ast := Smalltalk current parse: 'foo 1+2+4'.
+	(SemanticAnalyzer on: Object) visit: ast.
 
 
-    ASTInterpreter new
-        interpret: ast nodes first;
-        result "Answers 7"!
+	ASTInterpreter new
+		interpret: ast nodes first;
+		result "Answers 7"!
 
 
 !ASTInterpreter methodsFor: 'accessing'!
 !ASTInterpreter methodsFor: 'accessing'!
 
 
@@ -224,41 +224,41 @@ result
 
 
 initialize
 initialize
 	super initialize.
 	super initialize.
-    shouldReturn := false
+	shouldReturn := false
 ! !
 ! !
 
 
 !ASTInterpreter methodsFor: 'interpreting'!
 !ASTInterpreter methodsFor: 'interpreting'!
 
 
 interpret: aNode
 interpret: aNode
 	shouldReturn := false.
 	shouldReturn := false.
-    self interpret: aNode continue: [ :value |
-    	result := value ]
+	self interpret: aNode continue: [ :value |
+		result := value ]
 !
 !
 
 
 interpret: aNode continue: aBlock
 interpret: aNode continue: aBlock
 	shouldReturn ifTrue: [ ^ self ].
 	shouldReturn ifTrue: [ ^ self ].
 
 
-	aNode isNode 
-    	ifTrue: [ 	
-        	currentNode := aNode.
-            self interpretNode: aNode continue: [ :value |
-  				self continue: aBlock value: value ] ]
-        ifFalse: [ self continue: aBlock value: aNode ]
+	aNode isNode
+		ifTrue: [
+			currentNode := aNode.
+			self interpretNode: aNode continue: [ :value |
+				self continue: aBlock value: value ] ]
+		ifFalse: [ self continue: aBlock value: aNode ]
 !
 !
 
 
 interpretAssignmentNode: aNode continue: aBlock
 interpretAssignmentNode: aNode continue: aBlock
 	self interpret: aNode right continue: [ :value |
 	self interpret: aNode right continue: [ :value |
-    	self 
-        	continue: aBlock
-            value: (self assign: aNode left to: value) ]
+		self
+			continue: aBlock
+			value: (self assign: aNode left to: value) ]
 !
 !
 
 
 interpretBlockNode: aNode continue: aBlock
 interpretBlockNode: aNode continue: aBlock
 	"TODO: Context should be set"
 	"TODO: Context should be set"
-    
-    self 
-    	continue: aBlock 
-        value: [ self interpret: aNode nodes first; result ]
+	
+	self
+		continue: aBlock
+		value: [ self interpret: aNode nodes first; result ]
 !
 !
 
 
 interpretBlockSequenceNode: aNode continue: aBlock
 interpretBlockSequenceNode: aNode continue: aBlock
@@ -268,16 +268,16 @@ interpretBlockSequenceNode: aNode continue: aBlock
 interpretCascadeNode: aNode continue: aBlock
 interpretCascadeNode: aNode continue: aBlock
 	"TODO: Handle super sends"
 	"TODO: Handle super sends"
 	
 	
-    self interpret: aNode receiver continue: [ :receiver |
+	self interpret: aNode receiver continue: [ :receiver |
 		"Only interpret the receiver once"
 		"Only interpret the receiver once"
-        aNode nodes do: [ :each | each receiver: receiver ].
-  
-    	self 
-        	interpretAll: aNode nodes allButLast
-    		continue: [
-              	self 
-                	interpret: aNode nodes last
-                	continue: [ :val | self continue: aBlock value: val ] ] ]
+		aNode nodes do: [ :each | each receiver: receiver ].
+
+		self
+			interpretAll: aNode nodes allButLast
+			continue: [
+				self
+					interpret: aNode nodes last
+					continue: [ :val | self continue: aBlock value: val ] ] ]
 !
 !
 
 
 interpretClassReferenceNode: aNode continue: aBlock
 interpretClassReferenceNode: aNode continue: aBlock
@@ -286,18 +286,18 @@ interpretClassReferenceNode: aNode continue: aBlock
 
 
 interpretDynamicArrayNode: aNode continue: aBlock
 interpretDynamicArrayNode: aNode continue: aBlock
 	self interpretAll: aNode nodes continue: [ :array |
 	self interpretAll: aNode nodes continue: [ :array |
-    	self 
-        	continue: aBlock
+		self
+			continue: aBlock
 			value: array ]
 			value: array ]
 !
 !
 
 
 interpretDynamicDictionaryNode: aNode continue: aBlock
 interpretDynamicDictionaryNode: aNode continue: aBlock
-    self interpretAll: aNode nodes continue: [ :array | | hashedCollection |
-    	hashedCollection := HashedCollection new.
-        array do: [ :each | hashedCollection add: each ].
-        self 	
-        	continue: aBlock
-            value: hashedCollection ]
+	self interpretAll: aNode nodes continue: [ :array | | hashedCollection |
+		hashedCollection := HashedCollection new.
+		array do: [ :each | hashedCollection add: each ].
+		self
+			continue: aBlock
+			value: hashedCollection ]
 !
 !
 
 
 interpretJSStatementNode: aNode continue: aBlock
 interpretJSStatementNode: aNode continue: aBlock
@@ -307,37 +307,37 @@ interpretJSStatementNode: aNode continue: aBlock
 
 
 interpretMethodNode: aNode continue: aBlock
 interpretMethodNode: aNode continue: aBlock
 	self interpretAll: aNode nodes continue: [ :array |
 	self interpretAll: aNode nodes continue: [ :array |
-    	self continue: aBlock value: array first ]
+		self continue: aBlock value: array first ]
 !
 !
 
 
 interpretNode: aNode continue: aBlock
 interpretNode: aNode continue: aBlock
-    aNode interpreter: self continue: aBlock
+	aNode interpreter: self continue: aBlock
 !
 !
 
 
 interpretReturnNode: aNode continue: aBlock
 interpretReturnNode: aNode continue: aBlock
-    self interpret: aNode nodes first continue: [ :value |
-    	shouldReturn := true.
+	self interpret: aNode nodes first continue: [ :value |
+		shouldReturn := true.
 		self continue: aBlock value: value ]
 		self continue: aBlock value: value ]
 !
 !
 
 
 interpretSendNode: aNode continue: aBlock
 interpretSendNode: aNode continue: aBlock
 	"TODO: Handle super sends"
 	"TODO: Handle super sends"
-    
-    self interpret: aNode receiver continue: [ :receiver |
-    	self interpretAll: aNode arguments continue: [ :args |
-    		self 
-            	messageFromSendNode: aNode 
-                arguments: args
-                do: [ :message |
-        			self context pc: self context pc + 1.
-        			self 
-            			continue: aBlock 
-                		value: (message sendTo: receiver) ] ] ]
+	
+	self interpret: aNode receiver continue: [ :receiver |
+		self interpretAll: aNode arguments continue: [ :args |
+			self
+				messageFromSendNode: aNode
+				arguments: args
+				do: [ :message |
+					self context pc: self context pc + 1.
+					self
+						continue: aBlock
+						value: (message sendTo: receiver) ] ] ]
 !
 !
 
 
 interpretSequenceNode: aNode continue: aBlock
 interpretSequenceNode: aNode continue: aBlock
 	self interpretAll: aNode nodes continue: [ :array |
 	self interpretAll: aNode nodes continue: [ :array |
-    	self continue: aBlock value: array last ]
+		self continue: aBlock value: array last ]
 !
 !
 
 
 interpretValueNode: aNode continue: aBlock
 interpretValueNode: aNode continue: aBlock
@@ -345,9 +345,9 @@ interpretValueNode: aNode continue: aBlock
 !
 !
 
 
 interpretVariableNode: aNode continue: aBlock
 interpretVariableNode: aNode continue: aBlock
-    self 
-    	continue: aBlock
-        value: (aNode binding isInstanceVar
+	self
+		continue: aBlock
+		value: (aNode binding isInstanceVar
 			ifTrue: [ self context receiver instVarAt: aNode value ]
 			ifTrue: [ self context receiver instVarAt: aNode value ]
 			ifFalse: [ self context localAt: aNode value ])
 			ifFalse: [ self context localAt: aNode value ])
 ! !
 ! !
@@ -355,62 +355,62 @@ interpretVariableNode: aNode continue: aBlock
 !ASTInterpreter methodsFor: 'private'!
 !ASTInterpreter methodsFor: 'private'!
 
 
 assign: aNode to: anObject
 assign: aNode to: anObject
-	^ aNode binding isInstanceVar 
-    	ifTrue: [ self context receiver instVarAt: aNode value put: anObject ]
-      	ifFalse: [ self context localAt: aNode value put: anObject ]
+	^ aNode binding isInstanceVar
+		ifTrue: [ self context receiver instVarAt: aNode value put: anObject ]
+		ifFalse: [ self context localAt: aNode value put: anObject ]
 !
 !
 
 
 continue: aBlock value: anObject
 continue: aBlock value: anObject
 	result := anObject.
 	result := anObject.
-    aBlock value: anObject
+	aBlock value: anObject
 !
 !
 
 
 eval: aString
 eval: aString
-	"Evaluate aString as JS source inside an JS function. 
-    aString is not sandboxed."
-    
-    | source function |
-    
-    source := String streamContents: [ :str |
-    	str nextPutAll: '(function('.
-        self context locals keys 
-        	do: [ :each | str nextPutAll: each ]
-          	separatedBy: [ str nextPutAll: ',' ].
-        str 
-        	nextPutAll: '){ return (function() {';
-        	nextPutAll: aString;
-            nextPutAll: '})() })' ].
-            
+	"Evaluate aString as JS source inside an JS function.
+	aString is not sandboxed."
+	
+	| source function |
+	
+	source := String streamContents: [ :str |
+		str nextPutAll: '(function('.
+		self context locals keys
+			do: [ :each | str nextPutAll: each ]
+			separatedBy: [ str nextPutAll: ',' ].
+		str
+			nextPutAll: '){ return (function() {';
+			nextPutAll: aString;
+			nextPutAll: '})() })' ].
+			
 	function := Compiler new eval: source.
 	function := Compiler new eval: source.
-    
+	
 	^ function valueWithPossibleArguments: self context locals values
 	^ function valueWithPossibleArguments: self context locals values
 !
 !
 
 
 interpretAll: aCollection continue: aBlock
 interpretAll: aCollection continue: aBlock
-	self 
-    	interpretAll: aCollection 
-        continue: aBlock 
-        result: OrderedCollection new
+	self
+		interpretAll: aCollection
+		continue: aBlock
+		result: OrderedCollection new
 !
 !
 
 
 interpretAll: nodes continue: aBlock result: aCollection
 interpretAll: nodes continue: aBlock result: aCollection
-	nodes isEmpty 
-    	ifTrue: [ self continue: aBlock value: aCollection ]
-    	ifFalse: [
-    		self interpret: nodes first continue: [:value |
-    			self 
-                	interpretAll: nodes allButFirst 
-                    continue: aBlock
-  					result: aCollection, { value } ] ]
+	nodes isEmpty
+		ifTrue: [ self continue: aBlock value: aCollection ]
+		ifFalse: [
+			self interpret: nodes first continue: [:value |
+				self
+					interpretAll: nodes allButFirst
+					continue: aBlock
+					result: aCollection, { value } ] ]
 !
 !
 
 
 messageFromSendNode: aSendNode arguments: aCollection do: aBlock
 messageFromSendNode: aSendNode arguments: aCollection do: aBlock
-    self 
-        continue: aBlock
-        value: (Message new
-    		selector: aSendNode selector;
-        	arguments: aCollection;
-        	yourself)
+	self
+		continue: aBlock
+		value: (Message new
+			selector: aSendNode selector;
+			arguments: aCollection;
+			yourself)
 ! !
 ! !
 
 
 !ASTInterpreter methodsFor: 'testing'!
 !ASTInterpreter methodsFor: 'testing'!
@@ -428,21 +428,21 @@ Use `#step` to actually interpret the next node.
 
 
 Usage example:
 Usage example:
 
 
-    | ast interpreter |
-    ast := Smalltalk current parse: 'foo 1+2+4'.
-    (SemanticAnalyzer on: Object) visit: ast.
-
-    interpreter := ASTSteppingInterpreter new
-        interpret: ast nodes first;
-        yourself.
-        
-    debugger step; step.
-    debugger step; step.
-    debugger result."Answers 1"
-    debugger step.
-    debugger result. "Answers 3"
-    debugger step.
-    debugger result. "Answers 7"!
+	| ast interpreter |
+	ast := Smalltalk current parse: 'foo 1+2+4'.
+	(SemanticAnalyzer on: Object) visit: ast.
+
+	interpreter := ASTSteppingInterpreter new
+		interpret: ast nodes first;
+		yourself.
+		
+	debugger step; step.
+	debugger step; step.
+	debugger result."Answers 1"
+	debugger step.
+	debugger result. "Answers 3"
+	debugger step.
+	debugger result. "Answers 7"!
 
 
 !ASTSteppingInterpreter methodsFor: 'accessing'!
 !ASTSteppingInterpreter methodsFor: 'accessing'!
 
 
@@ -454,15 +454,15 @@ nextNode
 
 
 initialize
 initialize
 	super initialize.
 	super initialize.
-    continuation := [  ]
+	continuation := []
 ! !
 ! !
 
 
 !ASTSteppingInterpreter methodsFor: 'interpreting'!
 !ASTSteppingInterpreter methodsFor: 'interpreting'!
 
 
 interpret: aNode continue: aBlock
 interpret: aNode continue: aBlock
 	nextNode := aNode.
 	nextNode := aNode.
-	continuation := [ 
-    	super interpret: aNode continue: aBlock ]
+	continuation := [
+		super interpret: aNode continue: aBlock ]
 ! !
 ! !
 
 
 !ASTSteppingInterpreter methodsFor: 'stepping'!
 !ASTSteppingInterpreter methodsFor: 'stepping'!

+ 27 - 27
st/Compiler-Semantic.st

@@ -24,7 +24,7 @@ args
 !
 !
 
 
 bindingFor: aStringOrNode
 bindingFor: aStringOrNode
-	^ self pseudoVars at: aStringOrNode value ifAbsent: [ 
+	^ self pseudoVars at: aStringOrNode value ifAbsent: [
 		self args at: aStringOrNode value ifAbsent: [
 		self args at: aStringOrNode value ifAbsent: [
 			self temps at: aStringOrNode value ifAbsent: [ nil ]]]
 			self temps at: aStringOrNode value ifAbsent: [ nil ]]]
 !
 !
@@ -41,7 +41,7 @@ lookupVariable: aNode
 	| lookup |
 	| lookup |
 	lookup := (self bindingFor: aNode).
 	lookup := (self bindingFor: aNode).
 	lookup ifNil: [
 	lookup ifNil: [
-		lookup := self outerScope ifNotNil: [ 
+		lookup := self outerScope ifNotNil: [
 			(self outerScope lookupVariable: aNode) ]].
 			(self outerScope lookupVariable: aNode) ]].
 	^ lookup
 	^ lookup
 !
 !
@@ -76,7 +76,7 @@ pseudoVars
 scopeLevel
 scopeLevel
 	self outerScope ifNil: [ ^ 1 ].
 	self outerScope ifNil: [ ^ 1 ].
 	self isInlined ifTrue: [ ^ self outerScope scopeLevel ].
 	self isInlined ifTrue: [ ^ self outerScope scopeLevel ].
-    
+	
 	^ self outerScope scopeLevel + 1
 	^ self outerScope scopeLevel + 1
 !
 !
 
 
@@ -108,7 +108,7 @@ isBlockScope
 
 
 isInlined
 isInlined
 	^ self instruction notNil and: [
 	^ self instruction notNil and: [
-      	self instruction isInlined ]
+		self instruction isInlined ]
 !
 !
 
 
 isMethodScope
 isMethodScope
@@ -203,7 +203,7 @@ Object subclass: #ScopeVar
 	instanceVariableNames: 'scope name'
 	instanceVariableNames: 'scope name'
 	package: 'Compiler-Semantic'!
 	package: 'Compiler-Semantic'!
 !ScopeVar commentStamp!
 !ScopeVar commentStamp!
-I am an entry in a LexicalScope that gets associated with variable nodes of the same name.  
+I am an entry in a LexicalScope that gets associated with variable nodes of the same name.
 There are 4 different subclasses of vars: temp vars, local vars, args, and unknown/global vars.!
 There are 4 different subclasses of vars: temp vars, local vars, args, and unknown/global vars.!
 
 
 !ScopeVar methodsFor: 'accessing'!
 !ScopeVar methodsFor: 'accessing'!
@@ -264,7 +264,7 @@ validateAssignment
 !ScopeVar class methodsFor: 'instance creation'!
 !ScopeVar class methodsFor: 'instance creation'!
 
 
 on: aString
 on: aString
-	^ self new 
+	^ self new
 		name: aString;
 		name: aString;
 		yourself
 		yourself
 ! !
 ! !
@@ -413,18 +413,18 @@ errorShadowingVariable: aString
 
 
 errorUnknownVariable: aNode
 errorUnknownVariable: aNode
 	"Throw an error if the variable is undeclared in the global JS scope (i.e. window).
 	"Throw an error if the variable is undeclared in the global JS scope (i.e. window).
-    We allow four variable names in addition: `jQuery`, `window`, `process` and `global` 
-    for nodejs and browser environments. 
-    
-    This is only to make sure compilation works on both browser-based and nodejs environments.
-    The ideal solution would be to use a pragma instead"
+	We allow four variable names in addition: `jQuery`, `window`, `process` and `global`
+	for nodejs and browser environments.
+	
+	This is only to make sure compilation works on both browser-based and nodejs environments.
+	The ideal solution would be to use a pragma instead"
 
 
 	| identifier |
 	| identifier |
-    identifier := aNode value.
-    
-	((#('jQuery' 'window' 'document' 'process' 'global') includes: identifier) not 
-        and: [ self isVariableGloballyUndefined: identifier ]) 
-        	ifTrue: [
+	identifier := aNode value.
+	
+	((#('jQuery' 'window' 'document' 'process' 'global') includes: identifier) not
+		and: [ self isVariableGloballyUndefined: identifier ])
+			ifTrue: [
 				UnknownVariableError new
 				UnknownVariableError new
 					variableName: aNode value;
 					variableName: aNode value;
 					signal ]
 					signal ]
@@ -443,7 +443,7 @@ newMethodScope
 !
 !
 
 
 newScopeOfClass: aLexicalScopeClass
 newScopeOfClass: aLexicalScopeClass
-	^ aLexicalScopeClass new 
+	^ aLexicalScopeClass new
 		outerScope: currentScope;
 		outerScope: currentScope;
 		yourself
 		yourself
 ! !
 ! !
@@ -485,7 +485,7 @@ visitBlockNode: aNode
 	aNode scope: currentScope.
 	aNode scope: currentScope.
 	currentScope node: aNode.
 	currentScope node: aNode.
 	
 	
-	aNode parameters do: [ :each | 
+	aNode parameters do: [ :each |
 		self validateVariableScope: each.
 		self validateVariableScope: each.
 		currentScope addArg: each ].
 		currentScope addArg: each ].
 
 
@@ -495,7 +495,7 @@ visitBlockNode: aNode
 
 
 visitCascadeNode: aNode
 visitCascadeNode: aNode
 	"Populate the receiver into all children"
 	"Populate the receiver into all children"
-	aNode nodes do: [ :each | 
+	aNode nodes do: [ :each |
 		each receiver: aNode receiver ].
 		each receiver: aNode receiver ].
 	super visitCascadeNode: aNode.
 	super visitCascadeNode: aNode.
 	aNode nodes first superSend ifTrue: [
 	aNode nodes first superSend ifTrue: [
@@ -512,18 +512,18 @@ visitMethodNode: aNode
 	aNode scope: currentScope.
 	aNode scope: currentScope.
 	currentScope node: aNode.
 	currentScope node: aNode.
 
 
-	self theClass allInstanceVariableNames do: [:each | 
+	self theClass allInstanceVariableNames do: [:each |
 		currentScope addIVar: each ].
 		currentScope addIVar: each ].
-	aNode arguments do: [ :each | 
+	aNode arguments do: [ :each |
 		self validateVariableScope: each.
 		self validateVariableScope: each.
 		currentScope addArg: each ].
 		currentScope addArg: each ].
 
 
 	super visitMethodNode: aNode.
 	super visitMethodNode: aNode.
 
 
-	aNode 
+	aNode
 		classReferences: self classReferences;
 		classReferences: self classReferences;
 		messageSends: self messageSends keys;
 		messageSends: self messageSends keys;
-        superSends: self superSends keys.
+		superSends: self superSends keys.
 	self popScope
 	self popScope
 !
 !
 
 
@@ -537,13 +537,13 @@ visitReturnNode: aNode
 
 
 visitSendNode: aNode
 visitSendNode: aNode
 
 
-	aNode receiver value = 'super' 
+	aNode receiver value = 'super'
 		ifTrue: [
 		ifTrue: [
 			aNode superSend: true.
 			aNode superSend: true.
 			aNode receiver value: 'self'.
 			aNode receiver value: 'self'.
 			self superSends at: aNode selector ifAbsentPut: [ Set new ].
 			self superSends at: aNode selector ifAbsentPut: [ Set new ].
 			(self superSends at: aNode selector) add: aNode ]
 			(self superSends at: aNode selector) add: aNode ]
-          
+		
 		ifFalse: [ (IRSendInliner inlinedSelectors includes: aNode selector) ifTrue: [
 		ifFalse: [ (IRSendInliner inlinedSelectors includes: aNode selector) ifTrue: [
 			aNode shouldBeInlined: true.
 			aNode shouldBeInlined: true.
 			aNode receiver shouldBeAliased: true ] ].
 			aNode receiver shouldBeAliased: true ] ].
@@ -557,7 +557,7 @@ visitSendNode: aNode
 !
 !
 
 
 visitSequenceNode: aNode
 visitSequenceNode: aNode
-	aNode temps do: [ :each | 
+	aNode temps do: [ :each |
 		self validateVariableScope: each.
 		self validateVariableScope: each.
 		currentScope addTemp: each ].
 		currentScope addTemp: each ].
 
 
@@ -568,7 +568,7 @@ visitVariableNode: aNode
 	"Bind a ScopeVar to aNode by doing a lookup in the current scope.
 	"Bind a ScopeVar to aNode by doing a lookup in the current scope.
 	If no ScopeVar is found, bind a UnknowVar and throw an error"
 	If no ScopeVar is found, bind a UnknowVar and throw an error"
 
 
-	aNode binding: ((currentScope lookupVariable: aNode) ifNil: [ 
+	aNode binding: ((currentScope lookupVariable: aNode) ifNil: [
 		self errorUnknownVariable: aNode.
 		self errorUnknownVariable: aNode.
 		UnknownVar new name: aNode value; yourself ])
 		UnknownVar new name: aNode value; yourself ])
 ! !
 ! !

+ 110 - 110
st/Compiler-Tests.st

@@ -13,37 +13,37 @@ interpreter
 
 
 analyze: aNode forClass: aClass
 analyze: aNode forClass: aClass
 	(SemanticAnalyzer on: aClass) visit: aNode.
 	(SemanticAnalyzer on: aClass) visit: aNode.
-    ^ aNode
+	^ aNode
 !
 !
 
 
 interpret: aString
 interpret: aString
-	^ self 
-    	interpret: aString 
-        withArguments: Dictionary new
+	^ self
+		interpret: aString
+		withArguments: Dictionary new
 !
 !
 
 
 interpret: aString receiver: anObject withArguments: aDictionary
 interpret: aString receiver: anObject withArguments: aDictionary
 	"The food is a methodNode. Interpret the sequenceNode only"
 	"The food is a methodNode. Interpret the sequenceNode only"
-    
-    | ctx |
-    
-    ctx := AIContext new.
-    ctx receiver: anObject.
-    aDictionary keysAndValuesDo: [ :key :value |
-    	ctx localAt: key put: value ].
-    
-    ^ self interpreter
-    	context: ctx;
-    	interpret: (self parse: aString forClass: anObject class) 
-        	nodes first;
-        result
+	
+	| ctx |
+	
+	ctx := AIContext new.
+	ctx receiver: anObject.
+	aDictionary keysAndValuesDo: [ :key :value |
+		ctx localAt: key put: value ].
+	
+	^ self interpreter
+		context: ctx;
+		interpret: (self parse: aString forClass: anObject class)
+			nodes first;
+		result
 !
 !
 
 
 interpret: aString withArguments: aDictionary
 interpret: aString withArguments: aDictionary
-	^ self 
-    	interpret: aString 
-        receiver: Object new
-        withArguments: aDictionary
+	^ self
+		interpret: aString
+		receiver: Object new
+		withArguments: aDictionary
 ! !
 ! !
 
 
 !AbstractASTInterpreterTest methodsFor: 'parsing'!
 !AbstractASTInterpreterTest methodsFor: 'parsing'!
@@ -74,8 +74,8 @@ testBinarySend
 
 
 testBlockLiteral
 testBlockLiteral
 	self assert: (self interpret: 'foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 1.
 	self assert: (self interpret: 'foo ^ true ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 1.
-    self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]') equals: 1.
-    self assert: (self interpret: 'foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 2
+	self assert: (self interpret: 'foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]') equals: 1.
+	self assert: (self interpret: 'foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]') equals: 2
 !
 !
 
 
 testCascade
 testCascade
@@ -92,30 +92,30 @@ testDynamicDictionary
 
 
 testInlinedJSStatement
 testInlinedJSStatement
 	self assert: (self interpret: 'foo <return 2+3>') equals: 5.
 	self assert: (self interpret: 'foo <return 2+3>') equals: 5.
-    
-    self 
-    	assert: (self 
-    		interpret: 'foo: anInteger <return 2 + anInteger>' 
-        	withArguments: #{ 'anInteger' -> 3}) 
+	
+	self
+		assert: (self
+			interpret: 'foo: anInteger <return 2 + anInteger>'
+			withArguments: #{ 'anInteger' -> 3})
 		equals: 5
 		equals: 5
 !
 !
 
 
 testInstVarAccess
 testInstVarAccess
-	self 
-    	assert: (self 
-    		interpret: 'foo ^ x'
-        	receiver: 2@3
-        	withArguments: #{})
-        equals: 2
+	self
+		assert: (self
+			interpret: 'foo ^ x'
+			receiver: 2@3
+			withArguments: #{})
+		equals: 2
 !
 !
 
 
 testInstVarAssignment
 testInstVarAssignment
-	self 
-    	assert: (self 
-    		interpret: 'foo: anInteger x := anInteger. ^ x'
-        	receiver: Point new
-        	withArguments: #{'anInteger' -> 2})
-        equals: 2
+	self
+		assert: (self
+			interpret: 'foo: anInteger x := anInteger. ^ x'
+			receiver: Point new
+			withArguments: #{'anInteger' -> 2})
+		equals: 2
 !
 !
 
 
 testNonlocalReturn
 testNonlocalReturn
@@ -123,12 +123,12 @@ testNonlocalReturn
 !
 !
 
 
 testReceiver
 testReceiver
-	self 
-    	assert: (self 
-    		interpret: 'foo ^ self'
-        	receiver: 2@3
-        	withArguments: #{})
-        equals: 2@3
+	self
+		assert: (self
+			interpret: 'foo ^ self'
+			receiver: 2@3
+			withArguments: #{})
+		equals: 2@3
 !
 !
 
 
 testTempAssignment
 testTempAssignment
@@ -149,55 +149,55 @@ interpreter
 
 
 testAtEnd
 testAtEnd
 	self interpret: 'foo 1 + 2'.
 	self interpret: 'foo 1 + 2'.
-    self deny: self interpreter atEnd.
+	self deny: self interpreter atEnd.
 
 
-    self interpreter step.
-    self deny: self interpreter atEnd.
-    
-    self interpreter step.
-    self deny: self interpreter atEnd.
-    
-    self interpreter step.
-    self deny: self interpreter atEnd.
-    
-    self interpreter step.
-    self assert: self interpreter atEnd
+	self interpreter step.
+	self deny: self interpreter atEnd.
+	
+	self interpreter step.
+	self deny: self interpreter atEnd.
+	
+	self interpreter step.
+	self deny: self interpreter atEnd.
+	
+	self interpreter step.
+	self assert: self interpreter atEnd
 !
 !
 
 
 testMessageSend
 testMessageSend
 	self interpret: 'foo 1 + 2'.
 	self interpret: 'foo 1 + 2'.
-    
-    "SequenceNode"
-    self interpreter step.
-    
-    "SendNode"
-    self interpreter step.
-    
-     "ValueNode"
-    self interpreter step.
-    self assert: self interpreter currentNode value equals: 1.
-    
-    "ValueNode"
-    self interpreter step.
-    self assert: self interpreter currentNode value equals: 2.
-    
-    "Result"
-    self interpreter step.
-    self assert: self interpreter result equals: 3
+	
+	"SequenceNode"
+	self interpreter step.
+	
+	"SendNode"
+	self interpreter step.
+	
+	"ValueNode"
+	self interpreter step.
+	self assert: self interpreter currentNode value equals: 1.
+	
+	"ValueNode"
+	self interpreter step.
+	self assert: self interpreter currentNode value equals: 2.
+	
+	"Result"
+	self interpreter step.
+	self assert: self interpreter result equals: 3
 !
 !
 
 
 testSimpleStepping
 testSimpleStepping
 	self interpret: 'foo 1'.
 	self interpret: 'foo 1'.
-    
-    "SequenceNode"
-    self interpreter step.
-    
-    self assert: self interpreter result isNil.
-    
-    "ValueNode"
-    self interpreter step.
-    
-    self assert: self interpreter result equals: 1
+	
+	"SequenceNode"
+	self interpreter step.
+	
+	self assert: self interpreter result isNil.
+	
+	"ValueNode"
+	self interpreter step.
+	
+	self assert: self interpreter result equals: 1
 ! !
 ! !
 
 
 TestCase subclass: #CodeGeneratorTest
 TestCase subclass: #CodeGeneratorTest
@@ -265,40 +265,40 @@ testCascades
 
 
 testDynamicArrayElementsOrdered
 testDynamicArrayElementsOrdered
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := 1.
-  ^ { x. true ifTrue: [ x := 2 ] }
+	| x |
+	x := 1.
+	^ { x. true ifTrue: [ x := 2 ] }
 ' return: #(1 2).
 ' return: #(1 2).
 !
 !
 
 
 testDynamicDictionaryElementsOrdered
 testDynamicDictionaryElementsOrdered
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := ''foo''->1.
-  ^ #{ x. (true ifTrue: [ x := ''bar''->2 ]) }
+	| x |
+	x := ''foo''->1.
+	^ #{ x. (true ifTrue: [ x := ''bar''->2 ]) }
 ' return: #{'foo'->1. 'bar'->2}.
 ' return: #{'foo'->1. 'bar'->2}.
 !
 !
 
 
 testInnerTemporalDependentElementsOrdered
 testInnerTemporalDependentElementsOrdered
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := Array.
-  ^ x with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])
+	| x |
+	x := Array.
+	^ x with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])
 ' return: {'foo'->Array. 'bar'->2}.
 ' return: {'foo'->Array. 'bar'->2}.
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := 1.
-  ^ Array with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])
+	| x |
+	x := 1.
+	^ Array with: ''foo''->x with: ''bar''->(true ifTrue: [ x := 2 ])
 ' return: {'foo'->1. 'bar'->2}.
 ' return: {'foo'->1. 'bar'->2}.
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := 1.
-  ^ { ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }
+	| x |
+	x := 1.
+	^ { ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }
 ' return: {'foo'->1. 'bar'->2}.
 ' return: {'foo'->1. 'bar'->2}.
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := 1.
-  ^ #{ ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }
+	| x |
+	x := 1.
+	^ #{ ''foo''->x. ''bar''->(true ifTrue: [ x := 2 ]) }
 ' return: #{'foo'->1. 'bar'->2}.
 ' return: #{'foo'->1. 'bar'->2}.
 !
 !
 
 
@@ -349,15 +349,15 @@ testNonLocalReturn
 
 
 testSendReceiverAndArgumentsOrdered
 testSendReceiverAndArgumentsOrdered
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := 1.
-  ^ Array with: x with: (true ifTrue: [ x := 2 ])
+	| x |
+	x := 1.
+	^ Array with: x with: (true ifTrue: [ x := 2 ])
 ' return: #(1 2).
 ' return: #(1 2).
 
 
 	self should: 'foo
 	self should: 'foo
-  | x |
-  x := Array.
-  ^ x with: x with: (true ifTrue: [ x := 2 ])
+	| x |
+	x := Array.
+	^ x with: x with: (true ifTrue: [ x := 2 ])
 ' return: {Array. 2}.
 ' return: {Array. 2}.
 !
 !
 
 

+ 12 - 12
st/Examples.st

@@ -3,41 +3,41 @@ Widget subclass: #Counter
 	instanceVariableNames: 'count header'
 	instanceVariableNames: 'count header'
 	package: 'Examples'!
 	package: 'Examples'!
 !Counter commentStamp!
 !Counter commentStamp!
-This is a trivial Widget example mimicking the classic Counter example in Seaside. 
+This is a trivial Widget example mimicking the classic Counter example in Seaside.
 In order to play with it, just select the doit below and press the Do it button in the far right corner.
 In order to play with it, just select the doit below and press the Do it button in the far right corner.
 Then take a look in the HTML document above the IDE.
 Then take a look in the HTML document above the IDE.
 
 
-        Counter new appendToJQuery: 'body' asJQuery!
+		Counter new appendToJQuery: 'body' asJQuery!
 
 
 !Counter methodsFor: 'actions'!
 !Counter methodsFor: 'actions'!
 
 
 decrease
 decrease
-    count := count - 1.
-    header contents: [:html | html with: count asString]
+	count := count - 1.
+	header contents: [:html | html with: count asString]
 !
 !
 
 
 increase
 increase
-    count := count + 1.
-    header contents: [:html | html with: count asString]
+	count := count + 1.
+	header contents: [:html | html with: count asString]
 ! !
 ! !
 
 
 !Counter methodsFor: 'initialization'!
 !Counter methodsFor: 'initialization'!
 
 
 initialize
 initialize
-    super initialize.
-    count := 0
+	super initialize.
+	count := 0
 ! !
 ! !
 
 
 !Counter methodsFor: 'rendering'!
 !Counter methodsFor: 'rendering'!
 
 
 renderOn: html
 renderOn: html
-    header := html h1 
+	header := html h1
 	with: count asString;
 	with: count asString;
 	yourself.
 	yourself.
-    html button
+	html button
 	with: '++';
 	with: '++';
 	onClick: [self increase].
 	onClick: [self increase].
-    html button
+	html button
 	with: '--';
 	with: '--';
 	onClick: [self decrease]
 	onClick: [self decrease]
 ! !
 ! !
@@ -50,6 +50,6 @@ tryExample
 	look in the HTML document above the IDE."
 	look in the HTML document above the IDE."
 
 
 	"Counter tryExample"
 	"Counter tryExample"
-        self new appendToJQuery: 'body' asJQuery
+		self new appendToJQuery: 'body' asJQuery
 ! !
 ! !
 
 

文件差异内容过多而无法显示
+ 252 - 252
st/IDE.st


+ 114 - 114
st/Importer-Exporter.st

@@ -24,13 +24,13 @@ nextChunk
 
 
 	| char result chunk |
 	| char result chunk |
 	result := '' writeStream.
 	result := '' writeStream.
-        [char := stream next.
-        char notNil] whileTrue: [
-                 char = '!!' ifTrue: [
-                         stream peek = '!!'
-                                ifTrue: [stream next "skipping the escape double"]
-                                ifFalse: [^result contents trimBoth  "chunk end marker found"]].
-                 result nextPut: char].
+		[char := stream next.
+		char notNil] whileTrue: [
+				char = '!!' ifTrue: [
+						stream peek = '!!'
+								ifTrue: [stream next "skipping the escape double"]
+								ifFalse: [^result contents trimBoth "chunk end marker found"]].
+				result nextPut: char].
 	^nil "a chunk needs to end with !!"
 	^nil "a chunk needs to end with !!"
 ! !
 ! !
 
 
@@ -47,10 +47,10 @@ Object subclass: #Exporter
 !Exporter methodsFor: 'fileOut'!
 !Exporter methodsFor: 'fileOut'!
 
 
 exportAll
 exportAll
-    "Export all packages in the system."
+	"Export all packages in the system."
 
 
-    ^String streamContents: [:stream |
-    	Smalltalk current packages do: [:pkg |
+	^String streamContents: [:stream |
+		Smalltalk current packages do: [:pkg |
 		stream nextPutAll: (self exportPackage: pkg name)]]
 		stream nextPutAll: (self exportPackage: pkg name)]]
 !
 !
 
 
@@ -69,13 +69,13 @@ exportPackage: packageName
 
 
 	| package |
 	| package |
 	^String streamContents: [:stream |
 	^String streamContents: [:stream |
-                package := Smalltalk current packageAt: packageName.
-                self exportPackageDefinitionOf: package on: stream.
+				package := Smalltalk current packageAt: packageName.
+				self exportPackageDefinitionOf: package on: stream.
 
 
 		"Export classes in dependency order.
 		"Export classes in dependency order.
 		Update (issue #171): Remove duplicates for export"
 		Update (issue #171): Remove duplicates for export"
-	    	package sortedClasses asSet do: [:each |
-                        stream nextPutAll: (self exportClass: each)].
+			package sortedClasses asSet do: [:each |
+						stream nextPutAll: (self exportClass: each)].
 		self exportPackageExtensionsOf: package on: stream]
 		self exportPackageExtensionsOf: package on: stream]
 ! !
 ! !
 
 
@@ -83,29 +83,29 @@ exportPackage: packageName
 
 
 classNameFor: aClass
 classNameFor: aClass
 	^aClass isMetaclass
 	^aClass isMetaclass
-	    ifTrue: [aClass instanceClass name, '.klass']
-	    ifFalse: [
+		ifTrue: [aClass instanceClass name, '.klass']
+		ifFalse: [
 		aClass isNil
 		aClass isNil
-		    ifTrue: ['nil']
-		    ifFalse: [aClass name]]
+			ifTrue: ['nil']
+			ifFalse: [aClass name]]
 !
 !
 
 
 exportDefinitionOf: aClass on: aStream
 exportDefinitionOf: aClass on: aStream
-	aStream 
-	    nextPutAll: 'smalltalk.addClass(';
-	    nextPutAll: '''', (self classNameFor: aClass), ''', ';
-	    nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);
-	    nextPutAll: ', ['.
-	aClass instanceVariableNames 
-	    do: [:each | aStream nextPutAll: '''', each, '''']
-	    separatedBy: [aStream nextPutAll: ', '].
-	aStream	
-	    nextPutAll: '], ''';
-	    nextPutAll: aClass category, '''';
-	    nextPutAll: ');'.
+	aStream
+		nextPutAll: 'smalltalk.addClass(';
+		nextPutAll: '''', (self classNameFor: aClass), ''', ';
+		nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);
+		nextPutAll: ', ['.
+	aClass instanceVariableNames
+		do: [:each | aStream nextPutAll: '''', each, '''']
+		separatedBy: [aStream nextPutAll: ', '].
+	aStream
+		nextPutAll: '], ''';
+		nextPutAll: aClass category, '''';
+		nextPutAll: ');'.
 	aClass comment notEmpty ifTrue: [
 	aClass comment notEmpty ifTrue: [
-	    aStream 
-	    	lf;
+		aStream
+			lf;
 		nextPutAll: 'smalltalk.';
 		nextPutAll: 'smalltalk.';
 		nextPutAll: (self classNameFor: aClass);
 		nextPutAll: (self classNameFor: aClass);
 		nextPutAll: '.comment=';
 		nextPutAll: '.comment=';
@@ -115,17 +115,17 @@ exportDefinitionOf: aClass on: aStream
 
 
 exportMetaDefinitionOf: aClass on: aStream
 exportMetaDefinitionOf: aClass on: aStream
 	aClass class instanceVariableNames isEmpty ifFalse: [
 	aClass class instanceVariableNames isEmpty ifFalse: [
-	    aStream 
+		aStream
 		nextPutAll: 'smalltalk.', (self classNameFor: aClass class);
 		nextPutAll: 'smalltalk.', (self classNameFor: aClass class);
 		nextPutAll: '.iVarNames = ['.
 		nextPutAll: '.iVarNames = ['.
-	    aClass class instanceVariableNames
+		aClass class instanceVariableNames
 		do: [:each | aStream nextPutAll: '''', each, '''']
 		do: [:each | aStream nextPutAll: '''', each, '''']
 		separatedBy: [aStream nextPutAll: ','].
 		separatedBy: [aStream nextPutAll: ','].
-	    aStream nextPutAll: '];', String lf]
+		aStream nextPutAll: '];', String lf]
 !
 !
 
 
 exportMethod: aMethod of: aClass on: aStream
 exportMethod: aMethod of: aClass on: aStream
-	aStream 
+	aStream
 		nextPutAll: 'smalltalk.addMethod(';lf;
 		nextPutAll: 'smalltalk.addMethod(';lf;
 		nextPutAll: aMethod selector asSelector asJavascript, ',';lf;
 		nextPutAll: aMethod selector asSelector asJavascript, ',';lf;
 		nextPutAll: 'smalltalk.method({';lf;
 		nextPutAll: 'smalltalk.method({';lf;
@@ -153,10 +153,10 @@ exportMethodsOf: aClass on: aStream
 !
 !
 
 
 exportPackageDefinitionOf: package on: aStream
 exportPackageDefinitionOf: package on: aStream
-	aStream 
-	    nextPutAll: 'smalltalk.addPackage(';
-	    nextPutAll: '''', package name, ''');';
-        lf
+	aStream
+		nextPutAll: 'smalltalk.addPackage(';
+		nextPutAll: '''', package name, ''');';
+		lf
 !
 !
 
 
 exportPackageExtensionsOf: package on: aStream
 exportPackageExtensionsOf: package on: aStream
@@ -165,7 +165,7 @@ exportPackageExtensionsOf: package on: aStream
 	| name |
 	| name |
 	name := package name.
 	name := package name.
 	(Package sortedClasses: Smalltalk current classes) do: [:each |
 	(Package sortedClasses: Smalltalk current classes) do: [:each |
-		{each. each class} do: [:aClass | 
+		{each. each class} do: [:aClass |
 			((aClass methodDictionary values) sorted: [:a :b | a selector <= b selector]) do: [:method |
 			((aClass methodDictionary values) sorted: [:a :b | a selector <= b selector]) do: [:method |
 				(method category match: '^\*', name) ifTrue: [
 				(method category match: '^\*', name) ifTrue: [
 					self exportMethod: method of: aClass on: aStream ]]]]
 					self exportMethod: method of: aClass on: aStream ]]]]
@@ -185,48 +185,48 @@ chunkEscape: aString
 
 
 classNameFor: aClass
 classNameFor: aClass
 	^aClass isMetaclass
 	^aClass isMetaclass
-	    ifTrue: [aClass instanceClass name, ' class']
-	    ifFalse: [
+		ifTrue: [aClass instanceClass name, ' class']
+		ifFalse: [
 		aClass isNil
 		aClass isNil
-		    ifTrue: ['nil']
-		    ifFalse: [aClass name]]
+			ifTrue: ['nil']
+			ifFalse: [aClass name]]
 !
 !
 
 
 exportDefinitionOf: aClass on: aStream
 exportDefinitionOf: aClass on: aStream
-    "Chunk format."
-
-    aStream 
-        nextPutAll: (self classNameFor: aClass superclass);
-        nextPutAll: ' subclass: #', (self classNameFor: aClass); lf;
-        nextPutAll: '	instanceVariableNames: '''.
-    aClass instanceVariableNames 
-        do: [:each | aStream nextPutAll: each]
-        separatedBy: [aStream nextPutAll: ' '].
-    aStream 
-        nextPutAll: ''''; lf;
-        nextPutAll: '	package: ''', aClass category, '''!!'; lf.
-    aClass comment notEmpty ifTrue: [
-        aStream 
-        nextPutAll: '!!', (self classNameFor: aClass), ' commentStamp!!';lf;
-        nextPutAll: (self chunkEscape: aClass comment), '!!';lf].
-    aStream lf
+	"Chunk format."
+
+	aStream
+		nextPutAll: (self classNameFor: aClass superclass);
+		nextPutAll: ' subclass: #', (self classNameFor: aClass); lf;
+		nextPutAll: ' instanceVariableNames: '''.
+	aClass instanceVariableNames
+		do: [:each | aStream nextPutAll: each]
+		separatedBy: [aStream nextPutAll: ' '].
+	aStream
+		nextPutAll: ''''; lf;
+		nextPutAll: ' package: ''', aClass category, '''!!'; lf.
+	aClass comment notEmpty ifTrue: [
+		aStream
+		nextPutAll: '!!', (self classNameFor: aClass), ' commentStamp!!';lf;
+		nextPutAll: (self chunkEscape: aClass comment), '!!';lf].
+	aStream lf
 !
 !
 
 
 exportMetaDefinitionOf: aClass on: aStream
 exportMetaDefinitionOf: aClass on: aStream
 
 
 	aClass class instanceVariableNames isEmpty ifFalse: [
 	aClass class instanceVariableNames isEmpty ifFalse: [
-		aStream 
-		    nextPutAll: (self classNameFor: aClass class);
-		    nextPutAll: ' instanceVariableNames: '''.
-		aClass class instanceVariableNames 
-		    do: [:each | aStream nextPutAll: each]
-		    separatedBy: [aStream nextPutAll: ' '].
-		aStream	
-		    nextPutAll: '''!!'; lf; lf]
+		aStream
+			nextPutAll: (self classNameFor: aClass class);
+			nextPutAll: ' instanceVariableNames: '''.
+		aClass class instanceVariableNames
+			do: [:each | aStream nextPutAll: each]
+			separatedBy: [aStream nextPutAll: ' '].
+		aStream
+			nextPutAll: '''!!'; lf; lf]
 !
 !
 
 
 exportMethod: aMethod of: aClass on: aStream
 exportMethod: aMethod of: aClass on: aStream
-	aStream 
+	aStream
 		lf; lf; nextPutAll: (self chunkEscape: aMethod source); lf;
 		lf; lf; nextPutAll: (self chunkEscape: aMethod source); lf;
 		nextPutAll: '!!'
 		nextPutAll: '!!'
 !
 !
@@ -247,7 +247,7 @@ exportMethodsOf: aClass on: aStream
 
 
 	| map |
 	| map |
 	map := Dictionary new.
 	map := Dictionary new.
-	aClass protocolsDo: [:category :methods | 
+	aClass protocolsDo: [:category :methods |
 		(category match: '^\*') ifFalse: [ map at: category put: methods ]].
 		(category match: '^\*') ifFalse: [ map at: category put: methods ]].
 	(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |
 	(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |
 		methods := map at: category.
 		methods := map at: category.
@@ -261,7 +261,7 @@ exportMethodsOf: aClass on: aStream
 exportPackageDefinitionOf: package on: aStream
 exportPackageDefinitionOf: package on: aStream
 	"Chunk format."
 	"Chunk format."
 
 
-	aStream 
+	aStream
 		nextPutAll: 'Smalltalk current createPackage: ''', package name, '''!!';
 		nextPutAll: 'Smalltalk current createPackage: ''', package name, '''!!';
 		lf
 		lf
 !
 !
@@ -278,10 +278,10 @@ exportPackageExtensionsOf: package on: aStream
 	(Package sortedClasses: Smalltalk current classes) do: [:each |
 	(Package sortedClasses: Smalltalk current classes) do: [:each |
 		{each. each class} do: [:aClass |
 		{each. each class} do: [:aClass |
 			map := Dictionary new.
 			map := Dictionary new.
-			aClass protocolsDo: [:category :methods | 
+			aClass protocolsDo: [:category :methods |
 				(category match: '^\*', name) ifTrue: [ map at: category put: methods ]].
 				(category match: '^\*', name) ifTrue: [ map at: category put: methods ]].
 			(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |
 			(map keys sorted: [:a :b | a <= b ]) do: [:category | | methods |
-				methods := map at: category.	
+				methods := map at: category.
 				self exportMethods: methods category: category of: aClass on: aStream ]]]
 				self exportMethods: methods category: category of: aClass on: aStream ]]]
 ! !
 ! !
 
 
@@ -292,23 +292,23 @@ Exporter subclass: #StrippedExporter
 !StrippedExporter methodsFor: 'private'!
 !StrippedExporter methodsFor: 'private'!
 
 
 exportDefinitionOf: aClass on: aStream
 exportDefinitionOf: aClass on: aStream
-	aStream 
-	    nextPutAll: 'smalltalk.addClass(';
-	    nextPutAll: '''', (self classNameFor: aClass), ''', ';
-	    nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);
-	    nextPutAll: ', ['.
-	aClass instanceVariableNames 
-	    do: [:each | aStream nextPutAll: '''', each, '''']
-	    separatedBy: [aStream nextPutAll: ', '].
-	aStream	
-	    nextPutAll: '], ''';
-	    nextPutAll: aClass category, '''';
-	    nextPutAll: ');'.
+	aStream
+		nextPutAll: 'smalltalk.addClass(';
+		nextPutAll: '''', (self classNameFor: aClass), ''', ';
+		nextPutAll: 'smalltalk.', (self classNameFor: aClass superclass);
+		nextPutAll: ', ['.
+	aClass instanceVariableNames
+		do: [:each | aStream nextPutAll: '''', each, '''']
+		separatedBy: [aStream nextPutAll: ', '].
+	aStream
+		nextPutAll: '], ''';
+		nextPutAll: aClass category, '''';
+		nextPutAll: ');'.
 	aStream lf
 	aStream lf
 !
 !
 
 
 exportMethod: aMethod of: aClass on: aStream
 exportMethod: aMethod of: aClass on: aStream
-	aStream 
+	aStream
 		nextPutAll: 'smalltalk.addMethod(';lf;
 		nextPutAll: 'smalltalk.addMethod(';lf;
 		nextPutAll: aMethod selector asSelector asJavascript, ',';lf;
 		nextPutAll: aMethod selector asSelector asJavascript, ',';lf;
 		nextPutAll: 'smalltalk.method({';lf;
 		nextPutAll: 'smalltalk.method({';lf;
@@ -327,19 +327,19 @@ Object subclass: #Importer
 !Importer methodsFor: 'fileIn'!
 !Importer methodsFor: 'fileIn'!
 
 
 import: aStream
 import: aStream
-    | chunk result parser lastEmpty |
-    parser := ChunkParser on: aStream.
-    lastEmpty := false.
-    [chunk := parser nextChunk.
-     chunk isNil] whileFalse: [
-        chunk isEmpty
-       		ifTrue: [lastEmpty := true]
-       		ifFalse: [
-        		result := Compiler new evaluateExpression: chunk.
-        		lastEmpty 
-            			ifTrue: [
-                                  	lastEmpty := false.
-                                  	result scanFrom: parser]]]
+	| chunk result parser lastEmpty |
+	parser := ChunkParser on: aStream.
+	lastEmpty := false.
+	[chunk := parser nextChunk.
+	chunk isNil] whileFalse: [
+		chunk isEmpty
+			ifTrue: [lastEmpty := true]
+			ifFalse: [
+				result := Compiler new evaluateExpression: chunk.
+				lastEmpty
+						ifTrue: [
+									lastEmpty := false.
+									result scanFrom: parser]]]
 ! !
 ! !
 
 
 Object subclass: #PackageLoader
 Object subclass: #PackageLoader
@@ -350,30 +350,30 @@ Object subclass: #PackageLoader
 
 
 initializePackageNamed: packageName prefix: aString
 initializePackageNamed: packageName prefix: aString
 
 
-	(Package named: packageName) 
-    	setupClasses;
-        commitPathJs: '/', aString, '/js';
-        commitPathSt: '/', aString, '/st'
+	(Package named: packageName)
+		setupClasses;
+		commitPathJs: '/', aString, '/js';
+		commitPathSt: '/', aString, '/st'
 !
 !
 
 
-loadPackage: packageName prefix: aString	
+loadPackage: packageName prefix: aString
 	| url |
 	| url |
-    url := '/', aString, '/js/', packageName, '.js'.
-	jQuery 
+	url := '/', aString, '/js/', packageName, '.js'.
+	jQuery
 		ajax: url
 		ajax: url
-        options: #{
+		options: #{
 			'type' -> 'GET'.
 			'type' -> 'GET'.
 			'dataType' -> 'script'.
 			'dataType' -> 'script'.
-    		'complete' -> [ :jqXHR :textStatus | 
-				jqXHR readyState = 4 
-                	ifTrue: [ self initializePackageNamed: packageName prefix: aString ] ].
-			'error' -> [ window alert: 'Could not load package at:  ', url ]
+			'complete' -> [ :jqXHR :textStatus |
+				jqXHR readyState = 4
+					ifTrue: [ self initializePackageNamed: packageName prefix: aString ] ].
+			'error' -> [ window alert: 'Could not load package at: ', url ]
 		}
 		}
 !
 !
 
 
 loadPackages: aCollection prefix: aString
 loadPackages: aCollection prefix: aString
 	aCollection do: [ :each |
 	aCollection do: [ :each |
-    	self loadPackage: each prefix: aString ]
+		self loadPackage: each prefix: aString ]
 ! !
 ! !
 
 
 !PackageLoader class methodsFor: 'not yet classified'!
 !PackageLoader class methodsFor: 'not yet classified'!

+ 144 - 144
st/Kernel-Classes.st

@@ -3,13 +3,13 @@ Object subclass: #Behavior
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Classes'!
 	package: 'Kernel-Classes'!
 !Behavior commentStamp!
 !Behavior commentStamp!
-Behavior is the superclass of all class objects. 
+Behavior is the superclass of all class objects.
 
 
 It defines the protocol for creating instances of a class with `#basicNew` and `#new` (see `boot.js` for class constructors details).
 It defines the protocol for creating instances of a class with `#basicNew` and `#new` (see `boot.js` for class constructors details).
-Instances know about the subclass/superclass relationships between classes, contain the description that instances are created from, 
+Instances know about the subclass/superclass relationships between classes, contain the description that instances are created from,
 and hold the method dictionary that's associated with each class.
 and hold the method dictionary that's associated with each class.
 
 
-Behavior also  provides methods for compiling methods, examining the method dictionary, and iterating over the class hierarchy.!
+Behavior also provides methods for compiling methods, examining the method dictionary, and iterating over the class hierarchy.!
 
 
 !Behavior methodsFor: 'accessing'!
 !Behavior methodsFor: 'accessing'!
 
 
@@ -17,7 +17,7 @@ allInstanceVariableNames
 	| result |
 	| result |
 	result := self instanceVariableNames copy.
 	result := self instanceVariableNames copy.
 	self superclass ifNotNil: [
 	self superclass ifNotNil: [
-	    result addAll: self superclass allInstanceVariableNames].
+		result addAll: self superclass allInstanceVariableNames].
 	^result
 	^result
 !
 !
 
 
@@ -31,39 +31,39 @@ allSubclasses
 	| result |
 	| result |
 	result := self subclasses.
 	result := self subclasses.
 	self subclasses do: [:each |
 	self subclasses do: [:each |
-	    result addAll: each allSubclasses].
+		result addAll: each allSubclasses].
 	^result
 	^result
 !
 !
 
 
 allSuperclasses
 allSuperclasses
 	
 	
-    self superclass ifNil: [ ^ #() ].
-    
-	^ (OrderedCollection with: self superclass) 
-    	addAll: self superclass allSuperclasses;
-        yourself
+	self superclass ifNil: [ ^ #() ].
+	
+	^ (OrderedCollection with: self superclass)
+		addAll: self superclass allSuperclasses;
+		yourself
 !
 !
 
 
 comment
 comment
-    ^(self basicAt: 'comment') ifNil: ['']
+	^(self basicAt: 'comment') ifNil: ['']
 !
 !
 
 
 comment: aString
 comment: aString
-    self basicAt: 'comment' put: aString.
-    SystemAnnouncer current
-    	announce: (ClassCommentChanged new
-        	theClass: self;
-            yourself)
+	self basicAt: 'comment' put: aString.
+	SystemAnnouncer current
+		announce: (ClassCommentChanged new
+			theClass: self;
+			yourself)
 !
 !
 
 
 commentStamp
 commentStamp
-    ^ClassCommentReader new
+	^ClassCommentReader new
 	class: self;
 	class: self;
 	yourself
 	yourself
 !
 !
 
 
 commentStamp: aStamp prior: prior
 commentStamp: aStamp prior: prior
-        ^self commentStamp
+		^self commentStamp
 !
 !
 
 
 definition
 definition
@@ -79,12 +79,12 @@ lookupSelector: selector
 	Return the corresponding method if found.
 	Return the corresponding method if found.
 	Otherwise chase the superclass chain and try again.
 	Otherwise chase the superclass chain and try again.
 	Return nil if no method is found."
 	Return nil if no method is found."
-    
+	
 	| lookupClass |
 	| lookupClass |
-    
+	
 	lookupClass := self.
 	lookupClass := self.
 	[ lookupClass = nil ] whileFalse: [
 	[ lookupClass = nil ] whileFalse: [
-      	(lookupClass includesSelector: selector)
+		(lookupClass includesSelector: selector)
 				ifTrue: [ ^ lookupClass methodAt: selector ].
 				ifTrue: [ ^ lookupClass methodAt: selector ].
 			lookupClass := lookupClass superclass ].
 			lookupClass := lookupClass superclass ].
 	^ nil
 	^ nil
@@ -111,8 +111,8 @@ methods
 
 
 methodsFor: aString
 methodsFor: aString
 	^ClassCategoryReader new
 	^ClassCategoryReader new
-	    class: self category: aString;
-	    yourself
+		class: self category: aString;
+		yourself
 !
 !
 
 
 methodsFor: aString stamp: aStamp
 methodsFor: aString stamp: aStamp
@@ -133,7 +133,7 @@ organization
 !
 !
 
 
 protocols
 protocols
-   ^ self organization elements sorted
+	^ self organization elements sorted
 !
 !
 
 
 protocolsDo: aBlock
 protocolsDo: aBlock
@@ -144,7 +144,7 @@ protocolsDo: aBlock
 	methodsByCategory := HashedCollection new.
 	methodsByCategory := HashedCollection new.
 	self methodDictionary values do: [:m |
 	self methodDictionary values do: [:m |
 		(methodsByCategory at: m category ifAbsentPut: [Array new])
 		(methodsByCategory at: m category ifAbsentPut: [Array new])
- 			add: m]. 
+			add: m].
 	self protocols do: [:category |
 	self protocols do: [:category |
 		aBlock value: category value: (methodsByCategory at: category)]
 		aBlock value: category value: (methodsByCategory at: category)]
 !
 !
@@ -181,30 +181,30 @@ withAllSubclasses
 
 
 addCompiledMethod: aMethod
 addCompiledMethod: aMethod
 	| oldMethod announcement |
 	| oldMethod announcement |
-    
-	oldMethod := self methodDictionary 
-    	at: aMethod selector 
-        ifAbsent: [ nil ].
-    
-   (self protocols includes: aMethod protocol)
-   		ifFalse: [ self organization addElement: aMethod protocol ].
-   
+	
+	oldMethod := self methodDictionary
+		at: aMethod selector
+		ifAbsent: [ nil ].
+	
+	(self protocols includes: aMethod protocol)
+		ifFalse: [ self organization addElement: aMethod protocol ].
+
 	self basicAddCompiledMethod: aMethod.
 	self basicAddCompiledMethod: aMethod.
-    
-    announcement := oldMethod 
-    	ifNil: [
-		    MethodAdded new
-		            method: aMethod;
-       			    yourself ]
-    	ifNotNil: [
-          	MethodModified new
-                    oldMethod: oldMethod; 
-		            method: aMethod;
-       			    yourself ].
-                    
-                    
+	
+	announcement := oldMethod
+		ifNil: [
+			MethodAdded new
+					method: aMethod;
+					yourself ]
+		ifNotNil: [
+			MethodModified new
+					oldMethod: oldMethod;
+					method: aMethod;
+					yourself ].
+					
+					
 	SystemAnnouncer current
 	SystemAnnouncer current
-		   		announce: announcement
+				announce: announcement
 !
 !
 
 
 compile: aString
 compile: aString
@@ -213,22 +213,22 @@ compile: aString
 
 
 compile: aString category: anotherString
 compile: aString category: anotherString
 	Compiler new
 	Compiler new
-		install: aString 
-        forClass: self 
-        category: anotherString
+		install: aString
+		forClass: self
+		category: anotherString
 !
 !
 
 
 removeCompiledMethod: aMethod
 removeCompiledMethod: aMethod
 	self basicRemoveCompiledMethod: aMethod.
 	self basicRemoveCompiledMethod: aMethod.
-    
-    self methods 
-    	detect: [ :each | each protocol = aMethod protocol ]
-  		ifNone: [ self organization removeElement: aMethod protocol ].
-    
-    SystemAnnouncer current
-   		announce: (MethodRemoved new
-            method: aMethod;
-            yourself)
+	
+	self methods
+		detect: [ :each | each protocol = aMethod protocol ]
+		ifNone: [ self organization removeElement: aMethod protocol ].
+	
+	SystemAnnouncer current
+		announce: (MethodRemoved new
+			method: aMethod;
+			yourself)
 ! !
 ! !
 
 
 !Behavior methodsFor: 'instance creation'!
 !Behavior methodsFor: 'instance creation'!
@@ -249,9 +249,9 @@ basicAddCompiledMethod: aMethod
 
 
 basicRemoveCompiledMethod: aMethod
 basicRemoveCompiledMethod: aMethod
 	<
 	<
-    	smalltalk.removeMethod(aMethod)
+		smalltalk.removeMethod(aMethod)
 		smalltalk.init(self);
 		smalltalk.init(self);
-    >
+	>
 ! !
 ! !
 
 
 !Behavior methodsFor: 'testing'!
 !Behavior methodsFor: 'testing'!
@@ -273,7 +273,7 @@ Behavior subclass: #Class
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Classes'!
 	package: 'Kernel-Classes'!
 !Class commentStamp!
 !Class commentStamp!
-Class is __the__ class object. 
+Class is __the__ class object.
 
 
 Instances are the classes of the system.
 Instances are the classes of the system.
 Class creation is done throught a `ClassBuilder`!
 Class creation is done throught a `ClassBuilder`!
@@ -286,20 +286,20 @@ category
 
 
 definition
 definition
 	^ String streamContents: [ :stream |
 	^ String streamContents: [ :stream |
-		stream 
-	    	nextPutAll: self superclass asString;
-	    	nextPutAll: ' subclass: #';
-	    	nextPutAll: self name;
-	    	nextPutAll: String lf, String tab;
-	    	nextPutAll: 'instanceVariableNames: '''.
-		self instanceVariableNames 
-          	do: [ :each | stream nextPutAll: each ] 
-	    	separatedBy: [ stream nextPutAll: ' ' ].
 		stream
 		stream
-	    	nextPutAll: '''', String lf, String tab;
-	    	nextPutAll: 'package: ''';
-	    	nextPutAll: self category;
-	    	nextPutAll: '''' ]
+			nextPutAll: self superclass asString;
+			nextPutAll: ' subclass: #';
+			nextPutAll: self name;
+			nextPutAll: String lf, String tab;
+			nextPutAll: 'instanceVariableNames: '''.
+		self instanceVariableNames
+			do: [ :each | stream nextPutAll: each ]
+			separatedBy: [ stream nextPutAll: ' ' ].
+		stream
+			nextPutAll: '''', String lf, String tab;
+			nextPutAll: 'package: ''';
+			nextPutAll: self category;
+			nextPutAll: '''' ]
 !
 !
 
 
 package
 package
@@ -334,7 +334,7 @@ subclass: aString instanceVariableNames: aString2 classVariableNames: classVars
 
 
 subclass: aString instanceVariableNames: aString2 package: aString3
 subclass: aString instanceVariableNames: aString2 package: aString3
 	^ClassBuilder new
 	^ClassBuilder new
-	    superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3
+		superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3
 ! !
 ! !
 
 
 !Class methodsFor: 'converting'!
 !Class methodsFor: 'converting'!
@@ -361,20 +361,20 @@ Behavior subclass: #Metaclass
 !Metaclass commentStamp!
 !Metaclass commentStamp!
 Metaclass is the root of the class hierarchy.
 Metaclass is the root of the class hierarchy.
 
 
-Metaclass instances are metaclasses, one for each real class. 
+Metaclass instances are metaclasses, one for each real class.
 Metaclass instances have a single instance, which they hold onto, which is the class that they are the metaclass of.!
 Metaclass instances have a single instance, which they hold onto, which is the class that they are the metaclass of.!
 
 
 !Metaclass methodsFor: 'accessing'!
 !Metaclass methodsFor: 'accessing'!
 
 
 definition
 definition
 	^ String streamContents: [ :stream |
 	^ String streamContents: [ :stream |
-		stream 
-	   	 	nextPutAll: self asString;
-	    	nextPutAll: ' class ';
-	    	nextPutAll: 'instanceVariableNames: '''.
+		stream
+			nextPutAll: self asString;
+			nextPutAll: ' class ';
+			nextPutAll: 'instanceVariableNames: '''.
 		self instanceVariableNames
 		self instanceVariableNames
-	    	do: [ :each | stream nextPutAll: each ]
-	    	separatedBy: [ stream nextPutAll: ' ' ].
+			do: [ :each | stream nextPutAll: each ]
+			separatedBy: [ stream nextPutAll: ' ' ].
 		stream nextPutAll: '''' ]
 		stream nextPutAll: '''' ]
 !
 !
 
 
@@ -384,7 +384,7 @@ instanceClass
 
 
 instanceVariableNames: aCollection
 instanceVariableNames: aCollection
 	ClassBuilder new
 	ClassBuilder new
-	    class: self instanceVariableNames: aCollection
+		class: self instanceVariableNames: aCollection
 !
 !
 
 
 theMetaClass
 theMetaClass
@@ -430,33 +430,33 @@ instanceVariableNamesFor: aString
 !ClassBuilder methodsFor: 'class definition'!
 !ClassBuilder methodsFor: 'class definition'!
 
 
 addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName
 addSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName
-    | theClass |
-    
-    theClass := Smalltalk current at: aString.
-    
-   	theClass ifNotNil: [ 
-    	theClass superclass == aClass ifFalse: [
-    		^ self 
-        		migrateClassNamed: aString 
-           	 	superclass: aClass 
-           	 	instanceVariableNames: aCollection 
-            	package: packageName ] ].
-
-	^ self 
-    	basicAddSubclassOf: aClass 
-        named: aString 
-        instanceVariableNames: aCollection 
-        package: packageName
+	| theClass |
+	
+	theClass := Smalltalk current at: aString.
+	
+	theClass ifNotNil: [
+		theClass superclass == aClass ifFalse: [
+			^ self
+				migrateClassNamed: aString
+				superclass: aClass
+				instanceVariableNames: aCollection
+				package: packageName ] ].
+
+	^ self
+		basicAddSubclassOf: aClass
+		named: aString
+		instanceVariableNames: aCollection
+		package: packageName
 !
 !
 
 
 class: aClass instanceVariableNames: aString
 class: aClass instanceVariableNames: aString
 	self basicClass: aClass instanceVariableNames: aString.
 	self basicClass: aClass instanceVariableNames: aString.
-    self setupClass: aClass.
-    
-    SystemAnnouncer current
-    	announce: (ClassDefinitionChanged new
-        	theClass: aClass;
-            yourself)
+	self setupClass: aClass.
+	
+	SystemAnnouncer current
+		announce: (ClassDefinitionChanged new
+			theClass: aClass;
+			yourself)
 !
 !
 
 
 superclass: aClass subclass: aString
 superclass: aClass subclass: aString
@@ -466,16 +466,16 @@ superclass: aClass subclass: aString
 superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3
 superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3
 	| newClass |
 	| newClass |
 	
 	
-    newClass := self addSubclassOf: aClass
+	newClass := self addSubclassOf: aClass
 		named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)
 		named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)
 		package: (aString3 ifNil: ['unclassified']).
 		package: (aString3 ifNil: ['unclassified']).
 	self setupClass: newClass.
 	self setupClass: newClass.
-    
-    SystemAnnouncer current 
-    	announce: (ClassAdded new
-        	theClass: newClass;
-            yourself).
-    
+	
+	SystemAnnouncer current
+		announce: (ClassAdded new
+			theClass: newClass;
+			yourself).
+	
 	^newClass
 	^newClass
 ! !
 ! !
 
 
@@ -483,20 +483,20 @@ superclass: aClass subclass: aString instanceVariableNames: aString2 package: aS
 
 
 migrateClass: aClass superclass: anotherClass
 migrateClass: aClass superclass: anotherClass
 	console log: aClass name.
 	console log: aClass name.
-	self 
-    	migrateClassNamed: aClass name
-        superclass: anotherClass
-        instanceVariableNames: aClass instanceVariableNames
-        package: aClass package name
+	self
+		migrateClassNamed: aClass name
+		superclass: anotherClass
+		instanceVariableNames: aClass instanceVariableNames
+		package: aClass package name
 !
 !
 
 
 migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName
 migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection package: packageName
 	| oldClass newClass tmp |
 	| oldClass newClass tmp |
-    
-    tmp := 'new*', aString.
-    oldClass := Smalltalk current at: aString.
-    
-    newClass := self 
+	
+	tmp := 'new*', aString.
+	oldClass := Smalltalk current at: aString.
+	
+	newClass := self
 		addSubclassOf: aClass
 		addSubclassOf: aClass
 		named: tmp
 		named: tmp
 		instanceVariableNames: aCollection
 		instanceVariableNames: aCollection
@@ -508,28 +508,28 @@ migrateClassNamed: aString superclass: aClass instanceVariableNames: aCollection
 		on: Error
 		on: Error
 		do: [ :exception |
 		do: [ :exception |
 			self
 			self
-            	basicSwapClassNames: oldClass with: newClass;
-            	basicRemoveClass: newClass.
-            exception signal ].
+				basicSwapClassNames: oldClass with: newClass;
+				basicRemoveClass: newClass.
+			exception signal ].
 
 
 	self
 	self
 		rawRenameClass: oldClass to: tmp;
 		rawRenameClass: oldClass to: tmp;
-        rawRenameClass: newClass to: aString.
+		rawRenameClass: newClass to: aString.
 
 
 	oldClass subclasses do: [ :each |
 	oldClass subclasses do: [ :each |
-    	self migrateClass: each superclass: newClass ].
+		self migrateClass: each superclass: newClass ].
 
 
-    self basicRemoveClass: oldClass.
+	self basicRemoveClass: oldClass.
 	^newClass
 	^newClass
 !
 !
 
 
 renameClass: aClass to: aString
 renameClass: aClass to: aString
 	self basicRenameClass: aClass to: aString.
 	self basicRenameClass: aClass to: aString.
-    
-    SystemAnnouncer current
-    	announce: (ClassRenamed new
-        	theClass: aClass;
-            yourself)
+	
+	SystemAnnouncer current
+		announce: (ClassRenamed new
+			theClass: aClass;
+			yourself)
 ! !
 ! !
 
 
 !ClassBuilder methodsFor: 'copying'!
 !ClassBuilder methodsFor: 'copying'!
@@ -537,14 +537,14 @@ renameClass: aClass to: aString
 copyClass: aClass named: aString
 copyClass: aClass named: aString
 	| newClass |
 	| newClass |
 
 
-	newClass := self 
+	newClass := self
 		addSubclassOf: aClass superclass
 		addSubclassOf: aClass superclass
-		named: aString 
-		instanceVariableNames: aClass instanceVariableNames 
+		named: aString
+		instanceVariableNames: aClass instanceVariableNames
 		package: aClass package name.
 		package: aClass package name.
 
 
 	self copyClass: aClass to: newClass.
 	self copyClass: aClass to: newClass.
-    
+	
 	^newClass
 	^newClass
 !
 !
 
 
@@ -568,7 +568,7 @@ copyClass: aClass to: anotherClass
 installMethod: aCompiledMethod forClass: aBehavior category: aString
 installMethod: aCompiledMethod forClass: aBehavior category: aString
 	aCompiledMethod category: aString.
 	aCompiledMethod category: aString.
 	aBehavior addCompiledMethod: aCompiledMethod.
 	aBehavior addCompiledMethod: aCompiledMethod.
-    self setupClass: aBehavior.
+	self setupClass: aBehavior.
 	^aCompiledMethod
 	^aCompiledMethod
 ! !
 ! !
 
 
@@ -607,7 +607,7 @@ basicSwapClassNames: aClass with: anotherClass
 	<
 	<
 		var tmp = aClass.className;
 		var tmp = aClass.className;
 		aClass.className = anotherClass.className;
 		aClass.className = anotherClass.className;
-        anotherClass.className = tmp;
+		anotherClass.className = tmp;
 	>
 	>
 !
 !
 
 
@@ -642,7 +642,7 @@ scanFrom: aChunkParser
 	| chunk |
 	| chunk |
 	[chunk := aChunkParser nextChunk.
 	[chunk := aChunkParser nextChunk.
 	chunk isEmpty] whileFalse: [
 	chunk isEmpty] whileFalse: [
-	    self compileMethod: chunk].
+		self compileMethod: chunk].
 	ClassBuilder new setupClass: class
 	ClassBuilder new setupClass: class
 ! !
 ! !
 
 
@@ -677,7 +677,7 @@ scanFrom: aChunkParser
 	| chunk |
 	| chunk |
 	chunk := aChunkParser nextChunk.
 	chunk := aChunkParser nextChunk.
 	chunk isEmpty ifFalse: [
 	chunk isEmpty ifFalse: [
-	    self setComment: chunk].
+		self setComment: chunk].
 ! !
 ! !
 
 
 !ClassCommentReader methodsFor: 'initialization'!
 !ClassCommentReader methodsFor: 'initialization'!
@@ -689,7 +689,7 @@ initialize
 !ClassCommentReader methodsFor: 'private'!
 !ClassCommentReader methodsFor: 'private'!
 
 
 setComment: aString
 setComment: aString
-    class comment: aString
+	class comment: aString
 ! !
 ! !
 
 
 Object subclass: #ClassSorterNode
 Object subclass: #ClassSorterNode

+ 99 - 99
st/Kernel-Collections.st

@@ -29,7 +29,7 @@ value: aValue
 
 
 = anAssociation
 = anAssociation
 	^self class = anAssociation class and: [
 	^self class = anAssociation class and: [
-	    self key = anAssociation key and: [
+		self key = anAssociation key and: [
 		self value = anAssociation value]]
 		self value = anAssociation value]]
 ! !
 ! !
 
 
@@ -52,7 +52,7 @@ storeOn: aStream
 !Association class methodsFor: 'instance creation'!
 !Association class methodsFor: 'instance creation'!
 
 
 key: aKey value: aValue
 key: aKey value: aValue
-	    ^self new
+		^self new
 		key: aKey;
 		key: aKey;
 		value: aValue;
 		value: aValue;
 		yourself
 		yourself
@@ -68,7 +68,7 @@ I provide a set of useful methods to the Collectiohn hierarchy such as enumerati
 
 
 !Collection methodsFor: 'accessing'!
 !Collection methodsFor: 'accessing'!
 
 
-occurrencesOf: anObject 
+occurrencesOf: anObject
 	"Answer how many of the receiver's elements are equal to anObject."
 	"Answer how many of the receiver's elements are equal to anObject."
 
 
 	| tally |
 	| tally |
@@ -105,16 +105,16 @@ add: anObject
 
 
 addAll: aCollection
 addAll: aCollection
 	aCollection do: [:each |
 	aCollection do: [:each |
-	    self add: each].
+		self add: each].
 	^aCollection
 	^aCollection
 !
 !
 
 
 remove: anObject
 remove: anObject
-    ^self remove: anObject ifAbsent: [self errorNotFound]
+	^self remove: anObject ifAbsent: [self errorNotFound]
 !
 !
 
 
 remove: anObject ifAbsent: aBlock
 remove: anObject ifAbsent: aBlock
-    self subclassResponsibility
+	self subclassResponsibility
 ! !
 ! !
 
 
 !Collection methodsFor: 'converting'!
 !Collection methodsFor: 'converting'!
@@ -138,9 +138,9 @@ asSet
 !Collection methodsFor: 'copying'!
 !Collection methodsFor: 'copying'!
 
 
 , aCollection
 , aCollection
-	^self copy 
-	    addAll: aCollection; 
-	    yourself
+	^self copy
+		addAll: aCollection;
+		yourself
 !
 !
 
 
 copyWith: anObject
 copyWith: anObject
@@ -152,7 +152,7 @@ copyWithAll: aCollection
 !
 !
 
 
 copyWithoutAll: aCollection
 copyWithoutAll: aCollection
-	"Answer a copy of the receiver that does not contain any elements 
+	"Answer a copy of the receiver that does not contain any elements
 	equal to those in aCollection."
 	equal to those in aCollection."
 
 
 	^ self reject: [:each | aCollection includes: each]
 	^ self reject: [:each | aCollection includes: each]
@@ -184,15 +184,15 @@ do: aBlock separatedBy: anotherBlock
 	| actionBeforeElement |
 	| actionBeforeElement |
 	actionBeforeElement := [actionBeforeElement := anotherBlock].
 	actionBeforeElement := [actionBeforeElement := anotherBlock].
 	self do: [:each |
 	self do: [:each |
-    	actionBeforeElement value.
-	    aBlock value: each]
+		actionBeforeElement value.
+		aBlock value: each]
 !
 !
 
 
 inject: anObject into: aBlock
 inject: anObject into: aBlock
 	| result |
 	| result |
 	result := anObject.
 	result := anObject.
-	self do: [:each | 
-	    result := aBlock value: result value: each].
+	self do: [:each |
+		result := aBlock value: result value: each].
 	^result
 	^result
 !
 !
 
 
@@ -206,7 +206,7 @@ intersection: aCollection
 	
 	
 	aCollection do: [ :each |
 	aCollection do: [ :each |
 		((set includes: each) and: [(outputSet includes: each) not])
 		((set includes: each) and: [(outputSet includes: each) not])
-			ifTrue: [ 
+			ifTrue: [
 				outputSet add: each]].
 				outputSet add: each]].
 		
 		
 	^ self class withAll: outputSet asArray
 	^ self class withAll: outputSet asArray
@@ -220,7 +220,7 @@ select: aBlock
 	| stream |
 	| stream |
 	stream := self class new writeStream.
 	stream := self class new writeStream.
 	self do: [:each |
 	self do: [:each |
-	    (aBlock value: each) ifTrue: [
+		(aBlock value: each) ifTrue: [
 		stream nextPut: each]].
 		stream nextPut: each]].
 	^stream contents
 	^stream contents
 ! !
 ! !
@@ -246,9 +246,9 @@ printString
 !Collection methodsFor: 'testing'!
 !Collection methodsFor: 'testing'!
 
 
 ifEmpty: aBlock
 ifEmpty: aBlock
-	"Evaluate the given block with the receiver as argument, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its argument in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: 
+	"Evaluate the given block with the receiver as argument, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its argument in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs:
 		(myProtocol ifEmpty: ['As yet unclassified'])"
 		(myProtocol ifEmpty: ['As yet unclassified'])"
-	^ self isEmpty 
+	^ self isEmpty
 		ifTrue: [ aBlock value ]
 		ifTrue: [ aBlock value ]
 		ifFalse: [ self ]
 		ifFalse: [ self ]
 !
 !
@@ -259,8 +259,8 @@ ifNotEmpty: aBlock
 
 
 includes: anObject
 includes: anObject
 	| sentinel |
 	| sentinel |
-    sentinel := Object new.
-    ^(self detect: [ :each | each = anObject] ifNone: [ sentinel ]) ~= sentinel
+	sentinel := Object new.
+	^(self detect: [ :each | each = anObject] ifNone: [ sentinel ]) ~= sentinel
 !
 !
 
 
 isEmpty
 isEmpty
@@ -274,7 +274,7 @@ notEmpty
 !Collection class methodsFor: 'accessing'!
 !Collection class methodsFor: 'accessing'!
 
 
 streamClass
 streamClass
-	    ^Stream
+		^Stream
 ! !
 ! !
 
 
 !Collection class methodsFor: 'instance creation'!
 !Collection class methodsFor: 'instance creation'!
@@ -284,20 +284,20 @@ new: anInteger
 !
 !
 
 
 with: anObject
 with: anObject
-	    ^self new
+		^self new
 		add: anObject;
 		add: anObject;
 		yourself
 		yourself
 !
 !
 
 
 with: anObject with: anotherObject
 with: anObject with: anotherObject
-	    ^self new
+		^self new
 		add: anObject;
 		add: anObject;
 		add: anotherObject;
 		add: anotherObject;
 		yourself
 		yourself
 !
 !
 
 
 with: firstObject with: secondObject with: thirdObject
 with: firstObject with: secondObject with: thirdObject
-	    ^self new
+		^self new
 		add: firstObject;
 		add: firstObject;
 		add: secondObject;
 		add: secondObject;
 		add: thirdObject;
 		add: thirdObject;
@@ -305,7 +305,7 @@ with: firstObject with: secondObject with: thirdObject
 !
 !
 
 
 withAll: aCollection
 withAll: aCollection
-	    ^self new
+		^self new
 		addAll: aCollection;
 		addAll: aCollection;
 		yourself
 		yourself
 ! !
 ! !
@@ -323,31 +323,31 @@ it is an IndexableCollection.!
 !IndexableCollection methodsFor: 'accessing'!
 !IndexableCollection methodsFor: 'accessing'!
 
 
 at: anIndex
 at: anIndex
-	"Lookup the given index in the receiver. 
-	If it is present, answer the value stored at anIndex. 
+	"Lookup the given index in the receiver.
+	If it is present, answer the value stored at anIndex.
 	Otherwise, raise an error."
 	Otherwise, raise an error."
 
 
 	^self at: anIndex ifAbsent: [ self errorNotFound ]
 	^self at: anIndex ifAbsent: [ self errorNotFound ]
 !
 !
 
 
 at: anIndex ifAbsent: aBlock
 at: anIndex ifAbsent: aBlock
-	"Lookup the given index in the receiver. 
-	If it is present, answer the value stored at anIndex. 
+	"Lookup the given index in the receiver.
+	If it is present, answer the value stored at anIndex.
 	Otherwise, answer the value of aBlock."
 	Otherwise, answer the value of aBlock."
 
 
 	self subclassReponsibility
 	self subclassReponsibility
 !
 !
 
 
 at: anIndex ifPresent: aBlock
 at: anIndex ifPresent: aBlock
-	"Lookup the given index in the receiver. 
-	If it is present, answer the value of evaluating aBlock with the value stored at anIndex. 
+	"Lookup the given index in the receiver.
+	If it is present, answer the value of evaluating aBlock with the value stored at anIndex.
 	Otherwise, answer nil."
 	Otherwise, answer nil."
 
 
 	^self at: anIndex ifPresent: aBlock ifAbsent: [ nil ]
 	^self at: anIndex ifPresent: aBlock ifAbsent: [ nil ]
 !
 !
 
 
 at: anIndex ifPresent: aBlock ifAbsent: anotherBlock
 at: anIndex ifPresent: aBlock ifAbsent: anotherBlock
-	"Lookup the given index in the receiver. 
+	"Lookup the given index in the receiver.
 	If it is present, answer the value of evaluating aBlock with the value stored at anIndex.
 	If it is present, answer the value of evaluating aBlock with the value stored at anIndex.
 	Otherwise, answer the value of anotherBlock."
 	Otherwise, answer the value of anotherBlock."
 
 
@@ -404,7 +404,7 @@ Unlike a `Dictionary`, it can only have strings as keys.!
 associations
 associations
 	| associations |
 	| associations |
 	associations := #().
 	associations := #().
-	self associationsDo: [:each |  associations add: each].
+	self associationsDo: [:each | associations add: each].
 	^associations
 	^associations
 !
 !
 
 
@@ -416,12 +416,12 @@ at: aKey ifAbsent: aBlock
 
 
 at: aKey ifAbsentPut: aBlock
 at: aKey ifAbsentPut: aBlock
 	^self at: aKey ifAbsent: [
 	^self at: aKey ifAbsent: [
-	    self at: aKey put: aBlock value]
+		self at: aKey put: aBlock value]
 !
 !
 
 
 at: aKey ifPresent: aBlock ifAbsent: anotherBlock
 at: aKey ifPresent: aBlock ifAbsent: anotherBlock
-	"Lookup the given key in the receiver. 
-	If it is present, answer the value of evaluating the oneArgBlock with the value associated with the key, 
+	"Lookup the given key in the receiver.
+	If it is present, answer the value of evaluating the oneArgBlock with the value associated with the key,
 	otherwise answer the value of absentBlock."
 	otherwise answer the value of absentBlock."
 	^(self includesKey: aKey)
 	^(self includesKey: aKey)
 		ifTrue: [ aBlock value: (self at: aKey) ]
 		ifTrue: [ aBlock value: (self at: aKey) ]
@@ -470,15 +470,15 @@ addAll: aHashedCollection
 !
 !
 
 
 remove: aKey ifAbsent: aBlock
 remove: aKey ifAbsent: aBlock
-    ^self removeKey: aKey ifAbsent: aBlock
+	^self removeKey: aKey ifAbsent: aBlock
 !
 !
 
 
 removeKey: aKey
 removeKey: aKey
-    ^self remove: aKey
+	^self remove: aKey
 !
 !
 
 
 removeKey: aKey ifAbsent: aBlock
 removeKey: aKey ifAbsent: aBlock
-	^(self includesKey: aKey) 
+	^(self includesKey: aKey)
 		ifFalse: [aBlock value]
 		ifFalse: [aBlock value]
 		ifTrue: [self basicDelete: aKey]
 		ifTrue: [self basicDelete: aKey]
 ! !
 ! !
@@ -515,7 +515,7 @@ deepCopy
 	| copy |
 	| copy |
 	copy := self class new.
 	copy := self class new.
 	self keysAndValuesDo: [:key :value |
 	self keysAndValuesDo: [:key :value |
-	    copy at: key  put: value deepCopy].
+		copy at: key put: value deepCopy].
 	^copy
 	^copy
 !
 !
 
 
@@ -523,7 +523,7 @@ shallowCopy
 	| copy |
 	| copy |
 	copy := self class new.
 	copy := self class new.
 	self keysAndValuesDo: [:key :value |
 	self keysAndValuesDo: [:key :value |
-	    copy at: key  put: value].
+		copy at: key put: value].
 	^copy
 	^copy
 ! !
 ! !
 
 
@@ -531,14 +531,14 @@ shallowCopy
 
 
 associationsDo: aBlock
 associationsDo: aBlock
 	self keysAndValuesDo: [:key :value |
 	self keysAndValuesDo: [:key :value |
-	    aBlock value: (Association key: key value: value)]
+		aBlock value: (Association key: key value: value)]
 !
 !
 
 
 collect: aBlock
 collect: aBlock
 	| newDict |
 	| newDict |
 	newDict := self class new.
 	newDict := self class new.
 	self keysAndValuesDo: [:key :value |
 	self keysAndValuesDo: [:key :value |
-	    newDict at: key put: (aBlock value: value)].
+		newDict at: key put: (aBlock value: value)].
 	^newDict
 	^newDict
 !
 !
 
 
@@ -556,7 +556,7 @@ includes: anObject
 
 
 keysAndValuesDo: aBlock
 keysAndValuesDo: aBlock
 	self keysDo: [:each |
 	self keysDo: [:each |
-	    aBlock value: each value: (self at: each)]
+		aBlock value: each value: (self at: each)]
 !
 !
 
 
 keysDo: aBlock
 keysDo: aBlock
@@ -567,7 +567,7 @@ select: aBlock
 	| newDict |
 	| newDict |
 	newDict := self class new.
 	newDict := self class new.
 	self keysAndValuesDo: [:key :value |
 	self keysAndValuesDo: [:key :value |
-	    (aBlock value: value) ifTrue: [newDict at: key put: value]].
+		(aBlock value: value) ifTrue: [newDict at: key put: value]].
 	^newDict
 	^newDict
 !
 !
 
 
@@ -618,8 +618,8 @@ HashedCollection subclass: #Dictionary
 	instanceVariableNames: 'keys values'
 	instanceVariableNames: 'keys values'
 	package: 'Kernel-Collections'!
 	package: 'Kernel-Collections'!
 !Dictionary commentStamp!
 !Dictionary commentStamp!
-I represent a set of elements that can be viewed from one of two perspectives: a set of associations, 
-or a container of values that are externally named where the name can be any object that responds to `=`. 
+I represent a set of elements that can be viewed from one of two perspectives: a set of associations,
+or a container of values that are externally named where the name can be any object that responds to `=`.
 
 
 The external name is referred to as the key.!
 The external name is referred to as the key.!
 
 
@@ -648,8 +648,8 @@ at: aKey put: aValue
 indexOf: anObject ifAbsent: aBlock
 indexOf: anObject ifAbsent: aBlock
 
 
 	| index |
 	| index |
-    index := values indexOf: anObject ifAbsent: [0].
-    ^ index = 0 ifTrue: [ aBlock value ] ifFalse: [ keys at: index ]
+	index := values indexOf: anObject ifAbsent: [0].
+	^ index = 0 ifTrue: [ aBlock value ] ifFalse: [ keys at: index ]
 !
 !
 
 
 keys
 keys
@@ -776,7 +776,7 @@ indexOf: anObject ifAbsent: aBlock
 
 
 indexOf: anObject startingAt: start
 indexOf: anObject startingAt: start
 	"Answer the index of the first occurence of anElement after start
 	"Answer the index of the first occurence of anElement after start
-	within the receiver. If the receiver does not contain anElement, 
+	within the receiver. If the receiver does not contain anElement,
 	answer 0."
 	answer 0."
 	^self indexOf: anObject startingAt: start ifAbsent: [0]
 	^self indexOf: anObject startingAt: start ifAbsent: [0]
 !
 !
@@ -818,7 +818,7 @@ removeLast
 	(self class = aCollection class and: [
 	(self class = aCollection class and: [
 		self size = aCollection size]) ifFalse: [^false].
 		self size = aCollection size]) ifFalse: [^false].
 	self withIndexDo: [:each :i |
 	self withIndexDo: [:each :i |
-                 (aCollection at: i) = each ifFalse: [^false]].
+				(aCollection at: i) = each ifFalse: [^false]].
 	^true
 	^true
 ! !
 ! !
 
 
@@ -835,14 +835,14 @@ copyFrom: anIndex to: anotherIndex
 	range := anIndex to: anotherIndex.
 	range := anIndex to: anotherIndex.
 	newCollection := self class new: range size.
 	newCollection := self class new: range size.
 	range withIndexDo: [:each :i |
 	range withIndexDo: [:each :i |
-	    newCollection at: i put: (self at: each)].
+		newCollection at: i put: (self at: each)].
 	^newCollection
 	^newCollection
 !
 !
 
 
 deepCopy
 deepCopy
 	| newCollection |
 	| newCollection |
 	newCollection := self class new: self size.
 	newCollection := self class new: self size.
-	self withIndexDo: [:each :index | 
+	self withIndexDo: [:each :index |
 		newCollection at: index put: each deepCopy].
 		newCollection at: index put: each deepCopy].
 	^newCollection
 	^newCollection
 !
 !
@@ -850,7 +850,7 @@ deepCopy
 shallowCopy
 shallowCopy
 	| newCollection |
 	| newCollection |
 	newCollection := self class new: self size.
 	newCollection := self class new: self size.
-	self withIndexDo: [ :each :index | 
+	self withIndexDo: [ :each :index |
 		newCollection at: index put: each].
 		newCollection at: index put: each].
 	^newCollection
 	^newCollection
 ! !
 ! !
@@ -922,7 +922,7 @@ remove: anObject ifAbsent: aBlock
 				return self;
 				return self;
 			}
 			}
 		};
 		};
-        aBlock._value();
+		aBlock._value();
 	>
 	>
 !
 !
 
 
@@ -933,7 +933,7 @@ removeFrom: aNumber to: anotherNumber
 !Array methodsFor: 'converting'!
 !Array methodsFor: 'converting'!
 
 
 asJavascript
 asJavascript
-	^'[', ((self collect: [:each | each asJavascript]) join: ', '),  ']'
+	^'[', ((self collect: [:each | each asJavascript]) join: ', '), ']'
 !
 !
 
 
 reversed
 reversed
@@ -947,7 +947,7 @@ join: aString
 !
 !
 
 
 sort
 sort
-    ^self basicPerform: 'sort'
+	^self basicPerform: 'sort'
 !
 !
 
 
 sort: aBlock
 sort: aBlock
@@ -973,20 +973,20 @@ new: anInteger
 !
 !
 
 
 with: anObject
 with: anObject
-	    ^(self new: 1)
+		^(self new: 1)
 		at: 1 put: anObject;
 		at: 1 put: anObject;
 		yourself
 		yourself
 !
 !
 
 
 with: anObject with: anObject2
 with: anObject with: anObject2
-	    ^(self new: 2)
+		^(self new: 2)
 		at: 1 put: anObject;
 		at: 1 put: anObject;
 		at: 2 put: anObject2;
 		at: 2 put: anObject2;
 		yourself
 		yourself
 !
 !
 
 
 with: anObject with: anObject2 with: anObject3
 with: anObject with: anObject2 with: anObject3
-	    ^(self new: 3)
+		^(self new: 3)
 		at: 1 put: anObject;
 		at: 1 put: anObject;
 		at: 2 put: anObject2;
 		at: 2 put: anObject2;
 		at: 3 put: anObject3;
 		at: 3 put: anObject3;
@@ -997,7 +997,7 @@ withAll: aCollection
 	| instance index |
 	| instance index |
 	index := 1.
 	index := 1.
 	instance := self new: aCollection size.
 	instance := self new: aCollection size.
-	aCollection do: [:each  |
+	aCollection do: [:each |
 		instance at: index put: each.
 		instance at: index put: each.
 		index := index + 1].
 		index := index + 1].
 	^instance
 	^instance
@@ -1114,11 +1114,11 @@ unescaped
 
 
 = aString
 = aString
 	<
 	<
-    	if(!! aString._isString || !! aString._isString()) {
-        	return false;
-        }
-    	return String(self) === String(aString)
-    >
+		if(!! aString._isString || !! aString._isString()) {
+			return false;
+		}
+		return String(self) === String(aString)
+	>
 !
 !
 
 
 == aString
 == aString
@@ -1233,7 +1233,7 @@ match: aRegexp
 !
 !
 
 
 matchesOf: aRegularExpression
 matchesOf: aRegularExpression
-      <return self.match(aRegularExpression)>
+	<return self.match(aRegularExpression)>
 !
 !
 
 
 replace: aString with: anotherString
 replace: aString with: anotherString
@@ -1273,10 +1273,10 @@ trimRight: separators
 
 
 !String methodsFor: 'split join'!
 !String methodsFor: 'split join'!
 
 
-join: aCollection 
+join: aCollection
 	^ String
 	^ String
 		streamContents: [:stream | aCollection
 		streamContents: [:stream | aCollection
-				do: [:each | stream nextPutAll: each asString] 
+				do: [:each | stream nextPutAll: each asString]
 				separatedBy: [stream nextPutAll: self]]
 				separatedBy: [stream nextPutAll: self]]
 !
 !
 
 
@@ -1371,7 +1371,7 @@ space
 !
 !
 
 
 streamClass
 streamClass
-	    ^StringStream
+		^StringStream
 !
 !
 
 
 tab
 tab
@@ -1385,7 +1385,7 @@ fromCharCode: anInteger
 !
 !
 
 
 fromString: aString
 fromString: aString
-	    <return new self.fn(aString)>
+		<return new self.fn(aString)>
 !
 !
 
 
 streamContents: blockWithArg
 streamContents: blockWithArg
@@ -1404,7 +1404,7 @@ CharacterArray subclass: #Symbol
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Collections'!
 	package: 'Kernel-Collections'!
 !Symbol commentStamp!
 !Symbol commentStamp!
-I represent Strings that are created uniquely. 
+I represent Strings that are created uniquely.
 Symbols are unique through the system.
 Symbols are unique through the system.
 
 
 Thus, someString asSymbol == someString asSymbol.!
 Thus, someString asSymbol == someString asSymbol.!
@@ -1506,7 +1506,7 @@ withIndexDo: aBlock
 
 
 !Symbol methodsFor: 'evaluating'!
 !Symbol methodsFor: 'evaluating'!
 
 
-value: anObject 
+value: anObject
 	^anObject perform: self
 	^anObject perform: self
 ! !
 ! !
 
 
@@ -1569,7 +1569,7 @@ remove: anObject
 
 
 = aCollection
 = aCollection
 	self class = aCollection class ifFalse: [ ^ false ].
 	self class = aCollection class ifFalse: [ ^ false ].
-    self size = aCollection size ifFalse: [ ^ false ].
+	self size = aCollection size ifFalse: [ ^ false ].
 	self do: [:each | (aCollection includes: each) ifFalse: [ ^ false ] ].
 	self do: [:each | (aCollection includes: each) ifFalse: [ ^ false ] ].
 	^ true
 	^ true
 ! !
 ! !
@@ -1596,7 +1596,7 @@ do: aBlock
 
 
 select: aBlock
 select: aBlock
 	| collection |
 	| collection |
-	collection := self class new. 
+	collection := self class new.
 	self do: [:each |
 	self do: [:each |
 		(aBlock value: each) ifTrue: [
 		(aBlock value: each) ifTrue: [
 			collection add: each]].
 			collection add: each]].
@@ -1637,7 +1637,7 @@ back: anObject
 !
 !
 
 
 front
 front
-    ^self frontIfAbsent: [ self error: 'Cannot read from empty Queue.' ]
+	^self frontIfAbsent: [ self error: 'Cannot read from empty Queue.' ]
 !
 !
 
 
 frontIfAbsent: aBlock
 frontIfAbsent: aBlock
@@ -1646,13 +1646,13 @@ frontIfAbsent: aBlock
 		write isEmpty ifTrue: [
 		write isEmpty ifTrue: [
 			readIndex > 1 ifTrue: [ read := #(). readIndex := 1 ].
 			readIndex > 1 ifTrue: [ read := #(). readIndex := 1 ].
 			^aBlock value ].
 			^aBlock value ].
-    	read := write.
-    	readIndex := 1.
-    	write := OrderedCollection new.
-    	read first ].
-    read at: readIndex put: nil.
-    readIndex := readIndex + 1.
-    ^result
+		read := write.
+		readIndex := 1.
+		write := OrderedCollection new.
+		read first ].
+	read at: readIndex put: nil.
+	readIndex := readIndex + 1.
+	^result
 ! !
 ! !
 
 
 !Queue methodsFor: 'initialization'!
 !Queue methodsFor: 'initialization'!
@@ -1660,8 +1660,8 @@ frontIfAbsent: aBlock
 initialize
 initialize
 	super initialize.
 	super initialize.
 	read := OrderedCollection new.
 	read := OrderedCollection new.
-    write := OrderedCollection new.
-    readIndex := 1
+	write := OrderedCollection new.
+	readIndex := 1
 ! !
 ! !
 
 
 Object subclass: #RegularExpression
 Object subclass: #RegularExpression
@@ -1687,7 +1687,7 @@ test: aString
 !RegularExpression class methodsFor: 'instance creation'!
 !RegularExpression class methodsFor: 'instance creation'!
 
 
 fromString: aString
 fromString: aString
-	    ^self fromString: aString flag: ''
+		^self fromString: aString flag: ''
 !
 !
 
 
 fromString: aString flag: anotherString
 fromString: aString flag: anotherString
@@ -1709,8 +1709,8 @@ collection
 
 
 contents
 contents
 	^self collection
 	^self collection
-	    copyFrom: 1 
-	    to: self streamSize
+		copyFrom: 1
+		to: self streamSize
 !
 !
 
 
 position
 position
@@ -1773,10 +1773,10 @@ skip: anInteger
 !Stream methodsFor: 'reading'!
 !Stream methodsFor: 'reading'!
 
 
 next
 next
-	^self atEnd 
+	^self atEnd
 		ifTrue: [nil]
 		ifTrue: [nil]
 		ifFalse: [
 		ifFalse: [
-			self position: self position + 1. 
+			self position: self position + 1.
 			collection at: self position]
 			collection at: self position]
 !
 !
 
 
@@ -1784,14 +1784,14 @@ next: anInteger
 	| tempCollection |
 	| tempCollection |
 	tempCollection := self collection class new.
 	tempCollection := self collection class new.
 	anInteger timesRepeat: [
 	anInteger timesRepeat: [
-	    self atEnd ifFalse: [
+		self atEnd ifFalse: [
 		tempCollection add: self next]].
 		tempCollection add: self next]].
 	^tempCollection
 	^tempCollection
 !
 !
 
 
 peek
 peek
 	^self atEnd ifFalse: [
 	^self atEnd ifFalse: [
-	    self collection at: self position + 1]
+		self collection at: self position + 1]
 ! !
 ! !
 
 
 !Stream methodsFor: 'testing'!
 !Stream methodsFor: 'testing'!
@@ -1818,13 +1818,13 @@ nextPut: anObject
 
 
 nextPutAll: aCollection
 nextPutAll: aCollection
 	aCollection do: [:each |
 	aCollection do: [:each |
-	    self nextPut: each]
+		self nextPut: each]
 ! !
 ! !
 
 
 !Stream class methodsFor: 'instance creation'!
 !Stream class methodsFor: 'instance creation'!
 
 
 on: aCollection
 on: aCollection
-	    ^self new 
+		^self new
 		setCollection: aCollection;
 		setCollection: aCollection;
 		setStreamSize: aCollection size;
 		setStreamSize: aCollection size;
 		yourself
 		yourself
@@ -1842,7 +1842,7 @@ next: anInteger
 	| tempCollection |
 	| tempCollection |
 	tempCollection := self collection class new.
 	tempCollection := self collection class new.
 	anInteger timesRepeat: [
 	anInteger timesRepeat: [
-	    self atEnd ifFalse: [
+		self atEnd ifFalse: [
 		tempCollection := tempCollection, self next]].
 		tempCollection := tempCollection, self next]].
 	^tempCollection
 	^tempCollection
 ! !
 ! !
@@ -1866,10 +1866,10 @@ nextPut: aString
 !
 !
 
 
 nextPutAll: aString
 nextPutAll: aString
-	self setCollection: 
-	    (self collection copyFrom: 1 to: self position),
-	    aString,
-	    (self collection copyFrom: (self position + 1 + aString size) to: self collection size).
+	self setCollection:
+		(self collection copyFrom: 1 to: self position),
+		aString,
+		(self collection copyFrom: (self position + 1 + aString size) to: self collection size).
 	self position: self position + aString size.
 	self position: self position + aString size.
 	self setStreamSize: (self streamSize max: self position)
 	self setStreamSize: (self streamSize max: self position)
 !
 !

+ 13 - 13
st/Kernel-Exceptions.st

@@ -5,10 +5,10 @@ Object subclass: #Error
 !Error commentStamp!
 !Error commentStamp!
 From the ANSI standard:
 From the ANSI standard:
 
 
-This protocol describes the behavior of instances of class `Error`. 
-These are used to represent error conditions that prevent the normal continuation of processing. 
+This protocol describes the behavior of instances of class `Error`.
+These are used to represent error conditions that prevent the normal continuation of processing.
 Actual error exceptions used by an application may be subclasses of this class.
 Actual error exceptions used by an application may be subclasses of this class.
-As `Error` is explicitly specified  to be subclassable, conforming implementations must implement its behavior in a non-fragile manner.!
+As `Error` is explicitly specified to be subclassable, conforming implementations must implement its behavior in a non-fragile manner.!
 
 
 !Error methodsFor: 'accessing'!
 !Error methodsFor: 'accessing'!
 
 
@@ -58,7 +58,7 @@ signal
 !
 !
 
 
 signal: aString
 signal: aString
-	    ^self new
+		^self new
 		signal: aString
 		signal: aString
 ! !
 ! !
 
 
@@ -73,9 +73,9 @@ See `boot.js` `inContext()` and `BlockClosure >> on:do:`!
 
 
 context: aMethodContext
 context: aMethodContext
 	"Set the context from the outside.
 	"Set the context from the outside.
-    See boot.js `inContext()` exception handling"
-    
-    <self.context = aMethodContext>
+	See boot.js `inContext()` exception handling"
+	
+	<self.context = aMethodContext>
 !
 !
 
 
 exception
 exception
@@ -94,15 +94,15 @@ messageText
 
 
 on: anException
 on: anException
 	^ self new
 	^ self new
-    	exception: anException;
-        yourself
+		exception: anException;
+		yourself
 !
 !
 
 
 on: anException context: aMethodContext
 on: anException context: aMethodContext
 	^ self new
 	^ self new
-    	exception: anException;
-        context: aMethodContext;
-        yourself
+		exception: anException;
+		context: aMethodContext;
+		yourself
 ! !
 ! !
 
 
 Error subclass: #MessageNotUnderstood
 Error subclass: #MessageNotUnderstood
@@ -153,7 +153,7 @@ Object subclass: #ErrorHandler
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Exceptions'!
 	package: 'Kernel-Exceptions'!
 !ErrorHandler commentStamp!
 !ErrorHandler commentStamp!
-ErrorHandler is used to manage Smalltalk errors. 
+ErrorHandler is used to manage Smalltalk errors.
 See `boot.js` `handleError()` function.
 See `boot.js` `handleError()` function.
 
 
 Subclasses of `ErrorHandler` can register themselves as the current handler with
 Subclasses of `ErrorHandler` can register themselves as the current handler with

+ 86 - 86
st/Kernel-Methods.st

@@ -48,16 +48,16 @@ asCompiledMethod: aString
 
 
 currySelf
 currySelf
 	"Transforms [ :selfarg :x :y | stcode ] block
 	"Transforms [ :selfarg :x :y | stcode ] block
-    which represents JS function (selfarg, x, y, ...) {jscode}
-    into function (x, y, ...) {jscode} that takes selfarg from 'this'.
-    IOW, it is usable as JS method and first arg takes the receiver."
-    
-    <
-    	return function () {
-    		var args = [ this ];
-        	args.push.apply(args, arguments);
-        	return self.apply(null, args);
-    	}
+	which represents JS function (selfarg, x, y, ...) {jscode}
+	into function (x, y, ...) {jscode} that takes selfarg from 'this'.
+	IOW, it is usable as JS method and first arg takes the receiver."
+	
+	<
+		return function () {
+			var args = [ this ];
+			args.push.apply(args, arguments);
+			return self.apply(null, args);
+		}
 	>
 	>
 ! !
 ! !
 
 
@@ -65,13 +65,13 @@ currySelf
 
 
 on: anErrorClass do: aBlock
 on: anErrorClass do: aBlock
 	"All exceptions thrown in the Smalltalk stack are cought.
 	"All exceptions thrown in the Smalltalk stack are cought.
-    Convert all JS exceptions to JavaScriptException instances."
-    
+	Convert all JS exceptions to JavaScriptException instances."
+	
 	^self try: self catch: [ :error | | smalltalkError |
 	^self try: self catch: [ :error | | smalltalkError |
-    	smalltalkError := Smalltalk current asSmalltalkException: error.
-	    (smalltalkError isKindOf: anErrorClass) 
-	     ifTrue: [ aBlock value: smalltalkError ]
-	     ifFalse: [ smalltalkError signal ] ]
+		smalltalkError := Smalltalk current asSmalltalkException: error.
+		(smalltalkError isKindOf: anErrorClass)
+		ifTrue: [ aBlock value: smalltalkError ]
+		ifFalse: [ smalltalkError signal ] ]
 ! !
 ! !
 
 
 !BlockClosure methodsFor: 'evaluating'!
 !BlockClosure methodsFor: 'evaluating'!
@@ -85,25 +85,25 @@ ensure: aBlock
 !
 !
 
 
 new
 new
-	"Use the receiver as a JS constructor. 
+	"Use the receiver as a JS constructor.
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	<return new self()>
 	<return new self()>
 !
 !
 
 
 newValue: anObject
 newValue: anObject
-	"Use the receiver as a JS constructor. 
+	"Use the receiver as a JS constructor.
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	<return new self(anObject)>
 	<return new self(anObject)>
 !
 !
 
 
-newValue:  anObject value: anObject2
-	"Use the receiver as a JS constructor. 
+newValue: anObject value: anObject2
+	"Use the receiver as a JS constructor.
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	<return new self(anObject, anObject2)>
 	<return new self(anObject, anObject2)>
 !
 !
 
 
-newValue:  anObject value: anObject2 value: anObject3
-	"Use the receiver as a JS constructor. 
+newValue: anObject value: anObject2 value: anObject3
+	"Use the receiver as a JS constructor.
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	*Do not* use this method to instanciate Smalltalk objects!!"
 	<return new self(anObject, anObject2,anObject3)>
 	<return new self(anObject, anObject2,anObject3)>
 !
 !
@@ -146,16 +146,16 @@ fork
 
 
 valueWithInterval: aNumber
 valueWithInterval: aNumber
 	<
 	<
-    	var interval = setInterval(self, aNumber);
-    	return smalltalk.Timeout._on_(interval);
-    >
+		var interval = setInterval(self, aNumber);
+		return smalltalk.Timeout._on_(interval);
+	>
 !
 !
 
 
 valueWithTimeout: aNumber
 valueWithTimeout: aNumber
 	<
 	<
-    	var timeout = setTimeout(self, aNumber);
-    	return smalltalk.Timeout._on_(timeout);
-    >
+		var timeout = setTimeout(self, aNumber);
+		return smalltalk.Timeout._on_(timeout);
+	>
 ! !
 ! !
 
 
 Object subclass: #CompiledMethod
 Object subclass: #CompiledMethod
@@ -178,7 +178,7 @@ See referenced classes:
 
 
 or messages sent from this method:
 or messages sent from this method:
 	
 	
-	(String methodAt: 'lines')  messageSends!
+	(String methodAt: 'lines') messageSends!
 
 
 !CompiledMethod methodsFor: 'accessing'!
 !CompiledMethod methodsFor: 'accessing'!
 
 
@@ -192,15 +192,15 @@ category
 
 
 category: aString
 category: aString
 	| oldCategory |
 	| oldCategory |
-    oldCategory := self category.
+	oldCategory := self category.
 	self basicAt: 'category' put: aString.
 	self basicAt: 'category' put: aString.
-    
-    self methodClass ifNotNil: [
-    	self methodClass organization addElement: aString.
-    
-		(self methodClass methods 
-    		select: [ :each | each category = oldCategory ])
-        	ifEmpty: [ self methodClass organization removeElement: oldCategory ] ]
+	
+	self methodClass ifNotNil: [
+		self methodClass organization addElement: aString.
+	
+		(self methodClass methods
+			select: [ :each | each category = oldCategory ])
+			ifEmpty: [ self methodClass organization removeElement: oldCategory ] ]
 !
 !
 
 
 fn
 fn
@@ -284,28 +284,28 @@ defaultMaxPoolSize
 !ForkPool methodsFor: 'initialization'!
 !ForkPool methodsFor: 'initialization'!
 
 
 initialize
 initialize
-    super initialize.
-    
+	super initialize.
+	
 	poolSize := 0.
 	poolSize := 0.
-    queue := Queue new.
-    worker := self makeWorker
+	queue := Queue new.
+	worker := self makeWorker
 !
 !
 
 
 makeWorker
 makeWorker
 	| sentinel |
 	| sentinel |
-    sentinel := Object new.
-    ^[ | block |
-        poolSize := poolSize - 1.
+	sentinel := Object new.
+	^[ | block |
+		poolSize := poolSize - 1.
 		block := queue frontIfAbsent: [ sentinel ].
 		block := queue frontIfAbsent: [ sentinel ].
-        block == sentinel ifFalse: [
-        	[ block value ] ensure: [ self addWorker ]]]
+		block == sentinel ifFalse: [
+			[ block value ] ensure: [ self addWorker ]]]
 ! !
 ! !
 
 
 !ForkPool methodsFor: 'private'!
 !ForkPool methodsFor: 'private'!
 
 
 addWorker
 addWorker
 	worker valueWithTimeout: 0.
 	worker valueWithTimeout: 0.
-    poolSize := poolSize + 1
+	poolSize := poolSize + 1
 ! !
 ! !
 
 
 ForkPool class instanceVariableNames: 'default'!
 ForkPool class instanceVariableNames: 'default'!
@@ -329,10 +329,10 @@ Object subclass: #Message
 	package: 'Kernel-Methods'!
 	package: 'Kernel-Methods'!
 !Message commentStamp!
 !Message commentStamp!
 Generally, the system does not use instances of Message for efficiency reasons.
 Generally, the system does not use instances of Message for efficiency reasons.
-However, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission. 
+However, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission.
 This instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver.
 This instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver.
 
 
-See boot.js, `messageNotUnderstood`  and its counterpart `Object>>doesNotUnderstand:`!
+See boot.js, `messageNotUnderstood` and its counterpart `Object>>doesNotUnderstand:`!
 
 
 !Message methodsFor: 'accessing'!
 !Message methodsFor: 'accessing'!
 
 
@@ -355,12 +355,12 @@ selector: aString
 !Message methodsFor: 'printing'!
 !Message methodsFor: 'printing'!
 
 
 printString
 printString
-	^ String streamContents: [:aStream|  
-                                  				aStream 
-                                  					nextPutAll: super printString;
-                                  					nextPutAll: '(';
-                                  					nextPutAll: selector;
-                                  					nextPutAll: ')' 				]
+	^ String streamContents: [:aStream|
+												aStream
+													nextPutAll: super printString;
+													nextPutAll: '(';
+													nextPutAll: selector;
+													nextPutAll: ')' ]
 !
 !
 
 
 sendTo: anObject
 sendTo: anObject
@@ -381,7 +381,7 @@ Object subclass: #MethodContext
 	package: 'Kernel-Methods'!
 	package: 'Kernel-Methods'!
 !MethodContext commentStamp!
 !MethodContext commentStamp!
 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.
 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.
-  
+
 MethodContext instances are JavaScript `SmalltalkMethodContext` objects defined in boot.js!
 MethodContext instances are JavaScript `SmalltalkMethodContext` objects defined in boot.js!
 
 
 !MethodContext methodsFor: 'accessing'!
 !MethodContext methodsFor: 'accessing'!
@@ -400,8 +400,8 @@ method
 
 
 methodContext
 methodContext
 	self isBlockContext ifFalse: [ ^ self ].
 	self isBlockContext ifFalse: [ ^ self ].
-    
-    ^ self home
+	
+	^ self home
 !
 !
 
 
 outerContext
 outerContext
@@ -422,33 +422,33 @@ receiver
 
 
 selector
 selector
 	<
 	<
-    	if(self.selector) {
-        	return smalltalk.convertSelector(self.selector);
-        } else {
-        	return nil;
-        }
-    >
+		if(self.selector) {
+			return smalltalk.convertSelector(self.selector);
+		} else {
+			return nil;
+		}
+	>
 !
 !
 
 
 temps
 temps
 	self deprecatedAPI.
 	self deprecatedAPI.
-    
+	
 	^ self locals
 	^ self locals
 ! !
 ! !
 
 
 !MethodContext methodsFor: 'converting'!
 !MethodContext methodsFor: 'converting'!
 
 
 asString
 asString
-	^self isBlockContext 
-    	ifTrue: [ 'a block (in ', self methodContext receiver class printString, ')' ]
-      	ifFalse: [ self receiver class printString, ' >> ', self selector ]
+	^self isBlockContext
+		ifTrue: [ 'a block (in ', self methodContext receiver class printString, ')' ]
+		ifFalse: [ self receiver class printString, ' >> ', self selector ]
 ! !
 ! !
 
 
 !MethodContext methodsFor: 'testing'!
 !MethodContext methodsFor: 'testing'!
 
 
 isBlockContext
 isBlockContext
 	"Block context do not have selectors."
 	"Block context do not have selectors."
-    
+	
 	^ self selector isNil
 	^ self selector isNil
 ! !
 ! !
 
 
@@ -465,37 +465,37 @@ Created instances will most probably be instance of `JSObjectProxy`.
 
 
 Usage example:
 Usage example:
 
 
-    | ws |
-    ws := NativeFunction constructor: 'WebSocket' value: 'ws://localhost'.
-    ws at: 'onopen' put: [ ws send: 'hey there from Amber' ]!
+	| ws |
+	ws := NativeFunction constructor: 'WebSocket' value: 'ws://localhost'.
+	ws at: 'onopen' put: [ ws send: 'hey there from Amber' ]!
 
 
 !NativeFunction class methodsFor: 'instance creation'!
 !NativeFunction class methodsFor: 'instance creation'!
 
 
 constructor: aString
 constructor: aString
 	<
 	<
-    	var native=eval(aString); 
-        return new native();
+		var native=eval(aString);
+		return new native();
 	>
 	>
 !
 !
 
 
 constructor: aString value:anObject
 constructor: aString value:anObject
 	<
 	<
-    	var native=eval(aString); 
-        return new native(anObject);
+		var native=eval(aString);
+		return new native(anObject);
 	>
 	>
 !
 !
 
 
 constructor: aString value:anObject value: anObject2
 constructor: aString value:anObject value: anObject2
 	<
 	<
-    	var native=eval(aString); 
-        return new native(anObject,anObject2);
+		var native=eval(aString);
+		return new native(anObject,anObject2);
 	>
 	>
 !
 !
 
 
 constructor: aString value:anObject value: anObject2 value:anObject3
 constructor: aString value:anObject value: anObject2 value:anObject3
 	<
 	<
-    	var native=eval(aString); 
-        return new native(anObject,anObject2, anObject3);
+		var native=eval(aString);
+		return new native(anObject,anObject2, anObject3);
 	>
 	>
 ! !
 ! !
 
 
@@ -503,11 +503,11 @@ constructor: aString value:anObject value: anObject2 value:anObject3
 
 
 exists: aString
 exists: aString
 	<
 	<
-    	if(aString in window) {
-        	return true
-        } else {
-        	return false
-        }
-    >
+		if(aString in window) {
+			return true
+		} else {
+			return false
+		}
+	>
 ! !
 ! !
 
 

+ 149 - 149
st/Kernel-Objects.st

@@ -5,7 +5,7 @@ nil subclass: #Object
 !Object commentStamp!
 !Object commentStamp!
 *Object is the root of the Smalltalk class system*. All classes in the system are subclasses of Object.
 *Object is the root of the Smalltalk class system*. All classes in the system are subclasses of Object.
 
 
-Object provides default behavior common to all normal objects, such as: 
+Object provides default behavior common to all normal objects, such as:
 
 
 - access
 - access
 - copying
 - copying
@@ -30,14 +30,14 @@ The hook method `#postCopy` can be overriden in subclasses to copy fields as nec
 
 
 ##Comparison
 ##Comparison
 
 
-Objects understand equality  `#=` and identity `#==` comparison.
+Objects understand equality `#=` and identity `#==` comparison.
 
 
 ##Error handling
 ##Error handling
 
 
 - `#halt` is the typical message to use for inserting breakpoints during debugging.
 - `#halt` is the typical message to use for inserting breakpoints during debugging.
 - `#error:` throws a generic error exception
 - `#error:` throws a generic error exception
 - `#doesNotUnderstand:` handles the fact that there was an attempt to send the given message to the receiver but the receiver does not understand this message.
 - `#doesNotUnderstand:` handles the fact that there was an attempt to send the given message to the receiver but the receiver does not understand this message.
-  Overriding this message can be useful to implement proxies for example.!
+	Overriding this message can be useful to implement proxies for example.!
 
 
 !Object methodsFor: 'accessing'!
 !Object methodsFor: 'accessing'!
 
 
@@ -50,7 +50,7 @@ basicAt: aString put: anObject
 !
 !
 
 
 basicDelete: aString
 basicDelete: aString
-    <delete self[aString]; return aString>
+	<delete self[aString]; return aString>
 !
 !
 
 
 class
 class
@@ -133,8 +133,8 @@ asString
 
 
 test
 test
 	| a |
 	| a |
-    a := 1.
-    self halt
+	a := 1.
+	self halt
 ! !
 ! !
 
 
 !Object methodsFor: 'copying'!
 !Object methodsFor: 'copying'!
@@ -144,14 +144,14 @@ copy
 !
 !
 
 
 deepCopy
 deepCopy
-	<    
-	    var copy = self.klass._new();
-	    for(var i in self) {
+	<
+		var copy = self.klass._new();
+		for(var i in self) {
 		if(/^@.+/.test(i)) {
 		if(/^@.+/.test(i)) {
-		    copy[i] = self[i]._deepCopy();
+			copy[i] = self[i]._deepCopy();
+		}
 		}
 		}
-	    }
-	    return copy;
+		return copy;
 	>
 	>
 !
 !
 
 
@@ -160,13 +160,13 @@ postCopy
 
 
 shallowCopy
 shallowCopy
 	<
 	<
-	    var copy = self.klass._new();
-	    for(var i in self) {
+		var copy = self.klass._new();
+		for(var i in self) {
 		if(/^@.+/.test(i)) {
 		if(/^@.+/.test(i)) {
-		    copy[i] = self[i];
+			copy[i] = self[i];
 		}
 		}
-	    }
-	    return copy;
+		}
+		return copy;
 	>
 	>
 ! !
 ! !
 
 
@@ -217,7 +217,7 @@ initialize
 
 
 !Object methodsFor: 'message handling'!
 !Object methodsFor: 'message handling'!
 
 
-basicPerform: aSymbol 
+basicPerform: aSymbol
 	^self basicPerform: aSymbol withArguments: #()
 	^self basicPerform: aSymbol withArguments: #()
 !
 !
 
 
@@ -238,7 +238,7 @@ perform: aSymbol withArguments: aCollection
 log: aString block: aBlock
 log: aString block: aBlock
 
 
 	| result |
 	| result |
-	console log:  aString,  ' time: ', (Date millisecondsToRun: [result := aBlock value]) printString.
+	console log: aString, ' time: ', (Date millisecondsToRun: [result := aBlock value]) printString.
 	^result
 	^result
 !
 !
 
 
@@ -255,7 +255,7 @@ storeOn: aStream
 !
 !
 
 
 storeString
 storeString
-	"Answer a String representation of the receiver from which the receiver 
+	"Answer a String representation of the receiver from which the receiver
 	can be reconstructed."
 	can be reconstructed."
 
 
 	^ String streamContents: [:s | self storeOn: s]
 	^ String streamContents: [:s | self storeOn: s]
@@ -293,8 +293,8 @@ isClass
 
 
 isKindOf: aClass
 isKindOf: aClass
 	^(self isMemberOf: aClass)
 	^(self isMemberOf: aClass)
-	    ifTrue: [true]
-	    ifFalse: [self class inheritsFrom: aClass]
+		ifTrue: [true]
+		ifFalse: [self class inheritsFrom: aClass]
 !
 !
 
 
 isMemberOf: aClass
 isMemberOf: aClass
@@ -352,11 +352,11 @@ Boolean instances are weither `true` or `false`.!
 
 
 = aBoolean
 = aBoolean
 	<
 	<
-    	if(!! aBoolean._isBoolean || !! aBoolean._isBoolean()) {
-        	return false;
-        }
-    	return Boolean(self == true) == aBoolean
-    >
+		if(!! aBoolean._isBoolean || !! aBoolean._isBoolean()) {
+			return false;
+		}
+		return Boolean(self == true) == aBoolean
+	>
 !
 !
 
 
 == aBoolean
 == aBoolean
@@ -367,18 +367,18 @@ Boolean instances are weither `true` or `false`.!
 
 
 & aBoolean
 & aBoolean
 	<
 	<
-	    if(self == true) {
+		if(self == true) {
 		return aBoolean;
 		return aBoolean;
-	    } else {
+		} else {
 		return false;
 		return false;
-	    }
+		}
 	>
 	>
 !
 !
 
 
 and: aBlock
 and: aBlock
 	^self = true
 	^self = true
-	    ifTrue: aBlock
-	    ifFalse: [false]
+		ifTrue: aBlock
+		ifFalse: [false]
 !
 !
 
 
 ifFalse: aBlock
 ifFalse: aBlock
@@ -399,11 +399,11 @@ ifTrue: aBlock
 ifTrue: aBlock ifFalse: anotherBlock
 ifTrue: aBlock ifFalse: anotherBlock
 	"inlined in the Compiler"
 	"inlined in the Compiler"
 	<
 	<
-	    if(self == true) {
+		if(self == true) {
 		return aBlock();
 		return aBlock();
-	    } else {
+		} else {
 		return anotherBlock();
 		return anotherBlock();
-	    }
+		}
 	>
 	>
 !
 !
 
 
@@ -413,17 +413,17 @@ not
 
 
 or: aBlock
 or: aBlock
 	^self = true
 	^self = true
-	    ifTrue: [true]
-	    ifFalse: aBlock
+		ifTrue: [true]
+		ifFalse: aBlock
 !
 !
 
 
 | aBoolean
 | aBoolean
 	<
 	<
-	    if(self == true) {
+		if(self == true) {
 		return true;
 		return true;
-	    } else {
+		} else {
 		return aBoolean;
 		return aBoolean;
-	    }
+		}
 	>
 	>
 ! !
 ! !
 
 
@@ -651,15 +651,15 @@ JSOjbectProxy makes intensive use of `#doesNotUnderstand:`.
 
 
 JSObjectProxy objects are instanciated by Amber when a Smalltalk message is sent to a JavaScript object.
 JSObjectProxy objects are instanciated by Amber when a Smalltalk message is sent to a JavaScript object.
 
 
-    window alert: 'hello world'.
-    window inspect.
-    (window jQuery: 'body') append: 'hello world'
+	window alert: 'hello world'.
+	window inspect.
+	(window jQuery: 'body') append: 'hello world'
 
 
-Smalltalk messages sends are converted to JavaScript function calls or object property access _(in this order)_. If n one of them match, a `MessageNotUnderstood` error will be thrown. 
+Smalltalk messages sends are converted to JavaScript function calls or object property access _(in this order)_. If n one of them match, a `MessageNotUnderstood` error will be thrown.
 
 
 ## Message conversion rules
 ## Message conversion rules
 
 
-- `someUser name` becomes  `someUser.name`
+- `someUser name` becomes `someUser.name`
 - `someUser name: 'John'` becomes `someUser name = "John"`
 - `someUser name: 'John'` becomes `someUser name = "John"`
 - `console log: 'hello world'` becomes `console.log('hello world')`
 - `console log: 'hello world'` becomes `console.log('hello world')`
 - `(window jQuery: 'foo') css: 'background' color: 'red'` becomes `window.jQuery('foo').css('background', 'red')`
 - `(window jQuery: 'foo') css: 'background' color: 'red'` becomes `window.jQuery('foo').css('background', 'red')`
@@ -675,8 +675,8 @@ at: aSymbol
 at: aSymbol ifAbsent: aBlock
 at: aSymbol ifAbsent: aBlock
 	"return the aSymbol property or evaluate aBlock if the property is not defined on the object"
 	"return the aSymbol property or evaluate aBlock if the property is not defined on the object"
 	<
 	<
-    	var obj = self['@jsObject'],
-        	symbol = aSymbol._asString();
+		var obj = self['@jsObject'],
+			symbol = aSymbol._asString();
 		return symbol in obj ? obj[symbol] : aBlock();
 		return symbol in obj ? obj[symbol] : aBlock();
 	>
 	>
 !
 !
@@ -695,7 +695,7 @@ jsObject: aJSObject
 
 
 value
 value
 	"if attribute 'value' exists on the JS object return it,
 	"if attribute 'value' exists on the JS object return it,
-    otherwise return the result of Object>>value."
+	otherwise return the result of Object>>value."
 	^ self at: 'value' ifAbsent: [super value]
 	^ self at: 'value' ifAbsent: [super value]
 ! !
 ! !
 
 
@@ -703,34 +703,34 @@ value
 
 
 keysAndValuesDo: aBlock
 keysAndValuesDo: aBlock
 	<
 	<
-    	var o = self['@jsObject'];
-    	for(var i in o) {
+		var o = self['@jsObject'];
+		for(var i in o) {
 			aBlock(i, o[i]);
 			aBlock(i, o[i]);
 		}
 		}
-    >
+	>
 ! !
 ! !
 
 
 !JSObjectProxy methodsFor: 'proxy'!
 !JSObjectProxy methodsFor: 'proxy'!
 
 
 addObjectVariablesTo: aDictionary
 addObjectVariablesTo: aDictionary
 	<
 	<
-    	for(var i in self['@jsObject']) {
+		for(var i in self['@jsObject']) {
 			aDictionary._at_put_(i, self['@jsObject'][i]);
 			aDictionary._at_put_(i, self['@jsObject'][i]);
 		}
 		}
-    >
+	>
 !
 !
 
 
 doesNotUnderstand: aMessage
 doesNotUnderstand: aMessage
-    
-   ^ (self canForwardMessage: aMessage) 
-    	ifTrue: [ self forwardMessage: aMessage ]
-        ifFalse: [ ^ super doesNotUnderstand: aMessage ]
+	
+	^ (self canForwardMessage: aMessage)
+		ifTrue: [ self forwardMessage: aMessage ]
+		ifFalse: [ ^ super doesNotUnderstand: aMessage ]
 !
 !
 
 
 forwardMessage: aMessage
 forwardMessage: aMessage
 	<
 	<
-    	return smalltalk.send(self._jsObject(), aMessage._selector()._asJavaScriptSelector(), aMessage._arguments());
-    >
+		return smalltalk.send(self._jsObject(), aMessage._selector()._asJavaScriptSelector(), aMessage._arguments());
+	>
 !
 !
 
 
 inspectOn: anInspector
 inspectOn: anInspector
@@ -750,13 +750,13 @@ printString
 
 
 canForwardMessage: aMessage
 canForwardMessage: aMessage
 	<
 	<
-    	var jsSelector = aMessage._selector()._asJavaScriptSelector();
-    	if(jsSelector in self._jsObject()) {
-        	return true
-        } else {
-        	return false;
-        }
-    >
+		var jsSelector = aMessage._selector()._asJavaScriptSelector();
+		if(jsSelector in self._jsObject()) {
+			return true
+		} else {
+			return false;
+		}
+	>
 ! !
 ! !
 
 
 !JSObjectProxy class methodsFor: 'instance creation'!
 !JSObjectProxy class methodsFor: 'instance creation'!
@@ -771,10 +771,10 @@ Object subclass: #Number
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Objects'!
 	package: 'Kernel-Objects'!
 !Number commentStamp!
 !Number commentStamp!
-Number holds the most general methods for dealing with numbers.  
+Number holds the most general methods for dealing with numbers.
 Number is directly mapped to JavaScript Number.
 Number is directly mapped to JavaScript Number.
 
 
-Most arithmetic methods like `#+` `#/` `#-` `#max:` are directly inlined into javascript. 
+Most arithmetic methods like `#+` `#/` `#-` `#max:` are directly inlined into javascript.
 
 
 ##Enumerating
 ##Enumerating
 A Number can be used to evaluate a Block a fixed number of times:
 A Number can be used to evaluate a Block a fixed number of times:
@@ -859,11 +859,11 @@ squared
 
 
 = aNumber
 = aNumber
 	<
 	<
-    	if(!! aNumber._isNumber || !! aNumber._isNumber()) {
-        	return false;
-        }
-    	return Number(self) == aNumber
-    >
+		if(!! aNumber._isNumber || !! aNumber._isNumber()) {
+			return false;
+		}
+		return Number(self) == aNumber
+	>
 !
 !
 
 
 > aNumber
 > aNumber
@@ -903,7 +903,7 @@ asString
 !
 !
 
 
 atRandom
 atRandom
-    ^(Random new next * self) truncated + 1
+	^(Random new next * self) truncated + 1
 !
 !
 
 
 rounded
 rounded
@@ -917,9 +917,9 @@ to: aNumber
 	count := 1.
 	count := 1.
 	array := Array new.
 	array := Array new.
 	(last - first) timesRepeat: [
 	(last - first) timesRepeat: [
-	    array at: count put: first.
-	    count := count + 1.
-	    first := first + 1].
+		array at: count put: first.
+		count := count + 1.
+		first := first + 1].
 	^array
 	^array
 !
 !
 
 
@@ -931,24 +931,24 @@ to: stop by: step
 	step = 0 ifTrue: [self error: 'step must be non-zero'].
 	step = 0 ifTrue: [self error: 'step must be non-zero'].
 	step < 0
 	step < 0
 		ifTrue: [[ value >= stop ] whileTrue: [
 		ifTrue: [[ value >= stop ] whileTrue: [
-	    			array at: pos put: value.
-	    			pos := pos + 1.
-	    			value := value + step]]
+					array at: pos put: value.
+					pos := pos + 1.
+					value := value + step]]
 		ifFalse: [[ value <= stop ] whileTrue: [
 		ifFalse: [[ value <= stop ] whileTrue: [
-	    			array at: pos put: value.
-	  			pos := pos + 1.
-	    			value := value + step]].
+					array at: pos put: value.
+				pos := pos + 1.
+					value := value + step]].
 	^array
 	^array
 !
 !
 
 
 truncated
 truncated
 	<
 	<
-    	if(self >>= 0) {
-        	return Math.floor(self);
-        } else {
-        	return Math.floor(self * (-1)) * (-1);
-        };
-    >
+		if(self >>= 0) {
+			return Math.floor(self);
+		} else {
+			return Math.floor(self * (-1)) * (-1);
+		};
+	>
 !
 !
 
 
 | aNumber
 | aNumber
@@ -971,8 +971,8 @@ timesRepeat: aBlock
 	| count |
 	| count |
 	count := 1.
 	count := 1.
 	[count > self] whileFalse: [
 	[count > self] whileFalse: [
-	    aBlock value.
-	    count := count + 1]
+		aBlock value.
+		count := count + 1]
 !
 !
 
 
 to: stop by: step do: aBlock
 to: stop by: step do: aBlock
@@ -981,11 +981,11 @@ to: stop by: step do: aBlock
 	step = 0 ifTrue: [self error: 'step must be non-zero'].
 	step = 0 ifTrue: [self error: 'step must be non-zero'].
 	step < 0
 	step < 0
 		ifTrue: [[ value >= stop ] whileTrue: [
 		ifTrue: [[ value >= stop ] whileTrue: [
-	    			aBlock value: value.
-	    			value := value + step]]
+					aBlock value: value.
+					value := value + step]]
 		ifFalse: [[ value <= stop ] whileTrue: [
 		ifFalse: [[ value <= stop ] whileTrue: [
-	    			aBlock value: value.
-	    			value := value + step]]
+					aBlock value: value.
+					value := value + step]]
 !
 !
 
 
 to: stop do: aBlock
 to: stop do: aBlock
@@ -993,7 +993,7 @@ to: stop do: aBlock
 	| nextValue |
 	| nextValue |
 	nextValue := self.
 	nextValue := self.
 	[nextValue <= stop]
 	[nextValue <= stop]
-		whileTrue: 
+		whileTrue:
 			[aBlock value: nextValue.
 			[aBlock value: nextValue.
 			nextValue := nextValue + 1]
 			nextValue := nextValue + 1]
 ! !
 ! !
@@ -1072,18 +1072,18 @@ addElement: aString
 	super addElement: aString.
 	super addElement: aString.
 
 
 	SystemAnnouncer current announce: (ProtocolAdded new
 	SystemAnnouncer current announce: (ProtocolAdded new
-    	protocol: aString;
-        theClass: self theClass;
-        yourself)
+		protocol: aString;
+		theClass: self theClass;
+		yourself)
 !
 !
 
 
 removeElement: aString
 removeElement: aString
 	super removeElement: aString.
 	super removeElement: aString.
 
 
 	SystemAnnouncer current announce: (ProtocolRemoved new
 	SystemAnnouncer current announce: (ProtocolRemoved new
-    	protocol: aString;
-        theClass: self theClass;
-        yourself)
+		protocol: aString;
+		theClass: self theClass;
+		yourself)
 !
 !
 
 
 theClass
 theClass
@@ -1256,15 +1256,15 @@ defaultCommitPathSt: aString
 !
 !
 
 
 resetCommitPaths
 resetCommitPaths
-        defaultCommitPathJs := nil.
-        defaultCommitPathSt := nil.
+		defaultCommitPathJs := nil.
+		defaultCommitPathSt := nil.
 ! !
 ! !
 
 
 !Package class methodsFor: 'initialization'!
 !Package class methodsFor: 'initialization'!
 
 
 initialize
 initialize
 	super initialize.
 	super initialize.
-    self commitPathsFromLoader
+	self commitPathsFromLoader
 ! !
 ! !
 
 
 !Package class methodsFor: 'loading-storing'!
 !Package class methodsFor: 'loading-storing'!
@@ -1274,10 +1274,10 @@ fetch: aPackageName
 !
 !
 
 
 fetch: aPackageName prefix: aPrefix
 fetch: aPackageName prefix: aPrefix
-	jQuery 
-    	getScript: (aPrefix , aPackageName , '.js') 
-        onSuccess: [ 
-        	(Package named: aPackageName) setupClasses ]
+	jQuery
+		getScript: (aPrefix , aPackageName , '.js')
+		onSuccess: [
+			(Package named: aPackageName) setupClasses ]
 ! !
 ! !
 
 
 !Package class methodsFor: 'sorting'!
 !Package class methodsFor: 'sorting'!
@@ -1387,7 +1387,7 @@ printString
 
 
 !Point methodsFor: 'transforming'!
 !Point methodsFor: 'transforming'!
 
 
-translateBy: delta 
+translateBy: delta
 	"Answer a Point translated by delta (an instance of Point)."
 	"Answer a Point translated by delta (an instance of Point)."
 	^(delta x + x) @ (delta y + y)
 	^(delta x + x) @ (delta y + y)
 ! !
 ! !
@@ -1438,14 +1438,14 @@ next
 !
 !
 
 
 next: anInteger
 next: anInteger
-    ^(1 to: anInteger) collect: [:each | self next]
+	^(1 to: anInteger) collect: [:each | self next]
 ! !
 ! !
 
 
 Object subclass: #Smalltalk
 Object subclass: #Smalltalk
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'Kernel-Objects'!
 	package: 'Kernel-Objects'!
 !Smalltalk commentStamp!
 !Smalltalk commentStamp!
-Smalltalk has only one instance, accessed with `Smalltalk current`. 
+Smalltalk has only one instance, accessed with `Smalltalk current`.
 It represents the global JavaScript variable `smalltalk` declared in `js/boot.js`.
 It represents the global JavaScript variable `smalltalk` declared in `js/boot.js`.
 
 
 The `smalltalk` object holds all class and packages defined in the system.
 The `smalltalk` object holds all class and packages defined in the system.
@@ -1468,7 +1468,7 @@ __note:__ classes and packages are accessed using strings, not symbols
 
 
 ## Parsing
 ## Parsing
 
 
-The `#parse:` method is used to parse Smalltalk source code. 
+The `#parse:` method is used to parse Smalltalk source code.
 It requires the `Compiler` package and the `js/parser.js` parser file in order to work!
 It requires the `Compiler` package and the `js/parser.js` parser file in order to work!
 
 
 !Smalltalk methodsFor: 'accessing'!
 !Smalltalk methodsFor: 'accessing'!
@@ -1478,7 +1478,7 @@ at: aSymbol
 !
 !
 
 
 parse: aString
 parse: aString
-	| result | 
+	| result |
 	self try: [result := self basicParse: aString] catch: [:ex | (self parseError: ex parsing: aString) signal].
 	self try: [result := self basicParse: aString] catch: [:ex | (self parseError: ex parsing: aString) signal].
 	^result
 	^result
 !
 !
@@ -1494,8 +1494,8 @@ reservedWords
 
 
 version
 version
 	"Answer the version string of Amber"
 	"Answer the version string of Amber"
-    
-    ^ '0.10'
+	
+	^ '0.10'
 ! !
 ! !
 
 
 !Smalltalk methodsFor: 'classes'!
 !Smalltalk methodsFor: 'classes'!
@@ -1506,30 +1506,30 @@ classes
 
 
 deleteClass: aClass
 deleteClass: aClass
 	"Deletes a class by deleting its binding only. Use #removeClass instead"
 	"Deletes a class by deleting its binding only. Use #removeClass instead"
-    
+	
 	<self.removeClass(aClass)>
 	<self.removeClass(aClass)>
 !
 !
 
 
 removeClass: aClass
 removeClass: aClass
 	aClass isMetaclass ifTrue: [self error: aClass asString, ' is a Metaclass and cannot be removed!!'].
 	aClass isMetaclass ifTrue: [self error: aClass asString, ' is a Metaclass and cannot be removed!!'].
-    
+	
 	self deleteClass: aClass.
 	self deleteClass: aClass.
-    
-    SystemAnnouncer current
-    	announce: (ClassRemoved new
-        	theClass: aClass;
-            yourself)
+	
+	SystemAnnouncer current
+		announce: (ClassRemoved new
+			theClass: aClass;
+			yourself)
 ! !
 ! !
 
 
 !Smalltalk methodsFor: 'error handling'!
 !Smalltalk methodsFor: 'error handling'!
 
 
 asSmalltalkException: anObject
 asSmalltalkException: anObject
 	"A JavaScript exception may be thrown.
 	"A JavaScript exception may be thrown.
-    We then need to convert it back to a Smalltalk object"
-    
-    ^ ((self isSmalltalkObject: anObject) and: [ anObject isKindOf: Error ])
-    	ifTrue: [ anObject ]
-      	ifFalse: [ JavaScriptException on: anObject ]
+	We then need to convert it back to a Smalltalk object"
+	
+	^ ((self isSmalltalkObject: anObject) and: [ anObject isKindOf: Error ])
+		ifTrue: [ anObject ]
+		ifFalse: [ JavaScriptException on: anObject ]
 !
 !
 
 
 parseError: anException parsing: aString
 parseError: anException parsing: aString
@@ -1540,22 +1540,22 @@ parseError: anException parsing: aString
 
 
 createPackage: packageName
 createPackage: packageName
 	"Create and bind a new package with given name and return it."
 	"Create and bind a new package with given name and return it."
-       <return smalltalk.addPackage(packageName)>
+	<return smalltalk.addPackage(packageName)>
 !
 !
 
 
 deletePackage: packageName
 deletePackage: packageName
 	"Deletes a package by deleting its binding, but does not check if it contains classes etc.
 	"Deletes a package by deleting its binding, but does not check if it contains classes etc.
 	To remove a package, use #removePackage instead."
 	To remove a package, use #removePackage instead."
 
 
-       <delete smalltalk.packages[packageName]>
+	<delete smalltalk.packages[packageName]>
 !
 !
 
 
 packageAt: packageName
 packageAt: packageName
-       <return self.packages[packageName]>
+	<return self.packages[packageName]>
 !
 !
 
 
 packageAt: packageName ifAbsent: aBlock
 packageAt: packageName ifAbsent: aBlock
-       ^(self packageAt: packageName) ifNil: aBlock
+	^(self packageAt: packageName) ifNil: aBlock
 !
 !
 
 
 packages
 packages
@@ -1574,7 +1574,7 @@ removePackage: packageName
 	| pkg |
 	| pkg |
 	pkg := self packageAt: packageName ifAbsent: [self error: 'Missing package: ', packageName].
 	pkg := self packageAt: packageName ifAbsent: [self error: 'Missing package: ', packageName].
 	pkg classes do: [:each |
 	pkg classes do: [:each |
-        	self removeClass: each].
+			self removeClass: each].
 	self deletePackage: packageName
 	self deletePackage: packageName
 !
 !
 
 
@@ -1584,7 +1584,7 @@ renamePackage: packageName to: newName
 	| pkg |
 	| pkg |
 	pkg := self packageAt: packageName ifAbsent: [self error: 'Missing package: ', packageName].
 	pkg := self packageAt: packageName ifAbsent: [self error: 'Missing package: ', packageName].
 	(self packageAt: newName) ifNotNil: [self error: 'Already exists a package called: ', newName].
 	(self packageAt: newName) ifNotNil: [self error: 'Already exists a package called: ', newName].
-    (self basicAt: 'packages') at: newName put: pkg.
+	(self basicAt: 'packages') at: newName put: pkg.
 	pkg name: newName.
 	pkg name: newName.
 	self deletePackage: packageName.
 	self deletePackage: packageName.
 ! !
 ! !
@@ -1596,20 +1596,20 @@ basicParse: aString
 !
 !
 
 
 createPackage: packageName properties: aDict
 createPackage: packageName properties: aDict
-    "Needed to import .st files: they begin with this call."
-    self deprecatedAPI.
-    
-    aDict isEmpty ifFalse: [ self error: 'createPackage:properties: called with nonempty properties' ].
-    ^ self createPackage: packageName
+	"Needed to import .st files: they begin with this call."
+	self deprecatedAPI.
+	
+	aDict isEmpty ifFalse: [ self error: 'createPackage:properties: called with nonempty properties' ].
+	^ self createPackage: packageName
 ! !
 ! !
 
 
 !Smalltalk methodsFor: 'testing'!
 !Smalltalk methodsFor: 'testing'!
 
 
 isSmalltalkObject: anObject
 isSmalltalkObject: anObject
 	"Consider anObject a Smalltalk object if it has a 'klass' property.
 	"Consider anObject a Smalltalk object if it has a 'klass' property.
-    Note that this may be unaccurate"
-    
-    <return typeof anObject.klass !!== 'undefined'>
+	Note that this may be unaccurate"
+	
+	<return typeof anObject.klass !!== 'undefined'>
 ! !
 ! !
 
 
 Smalltalk class instanceVariableNames: 'current'!
 Smalltalk class instanceVariableNames: 'current'!
@@ -1638,16 +1638,16 @@ rawTimeout: anObject
 
 
 clearInterval
 clearInterval
 	<
 	<
-    	var interval = self["@rawTimeout"];
+		var interval = self["@rawTimeout"];
 		clearInterval(interval);
 		clearInterval(interval);
-    >
+	>
 !
 !
 
 
 clearTimeout
 clearTimeout
 	<
 	<
-    	var timeout = self["@rawTimeout"];
+		var timeout = self["@rawTimeout"];
 		clearTimeout(timeout);
 		clearTimeout(timeout);
-    >
+	>
 ! !
 ! !
 
 
 !Timeout class methodsFor: 'instance creation'!
 !Timeout class methodsFor: 'instance creation'!
@@ -1678,7 +1678,7 @@ subclass: aString instanceVariableNames: aString2 category: aString3
 
 
 subclass: aString instanceVariableNames: aString2 package: aString3
 subclass: aString instanceVariableNames: aString2 package: aString3
 	^ClassBuilder new
 	^ClassBuilder new
-	    superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3
+		superclass: self subclass: aString asString instanceVariableNames: aString2 package: aString3
 ! !
 ! !
 
 
 !UndefinedObject methodsFor: 'converting'!
 !UndefinedObject methodsFor: 'converting'!
@@ -1700,7 +1700,7 @@ shallowCopy
 !UndefinedObject methodsFor: 'printing'!
 !UndefinedObject methodsFor: 'printing'!
 
 
 printString
 printString
-    ^'nil'
+	^'nil'
 ! !
 ! !
 
 
 !UndefinedObject methodsFor: 'testing'!
 !UndefinedObject methodsFor: 'testing'!
@@ -1736,6 +1736,6 @@ notNil
 !UndefinedObject class methodsFor: 'instance creation'!
 !UndefinedObject class methodsFor: 'instance creation'!
 
 
 new
 new
-	    self error: 'You cannot create new instances of UndefinedObject. Use nil'
+		self error: 'You cannot create new instances of UndefinedObject. Use nil'
 ! !
 ! !
 
 

+ 186 - 186
st/Kernel-Tests.st

@@ -19,11 +19,11 @@ testCompiledSource
 
 
 testCurrySelf
 testCurrySelf
 	| curriedMethod array |
 	| curriedMethod array |
-    curriedMethod := [ :selfarg :x | selfarg at: x ] currySelf asCompiledMethod: 'foo:'.
-    array := #(3 1 4).
-    ClassBuilder new installMethod: curriedMethod forClass: Array category: '**test helper'.
-    [ self assert: (array foo: 2) equals: 1 ]
-    ensure: [ Array removeCompiledMethod: curriedMethod ]
+	curriedMethod := [ :selfarg :x | selfarg at: x ] currySelf asCompiledMethod: 'foo:'.
+	array := #(3 1 4).
+	ClassBuilder new installMethod: curriedMethod forClass: Array category: '**test helper'.
+	[ self assert: (array foo: 2) equals: 1 ]
+	ensure: [ Array removeCompiledMethod: curriedMethod ]
 !
 !
 
 
 testEnsure
 testEnsure
@@ -36,16 +36,16 @@ testEnsureRaises
 
 
 testExceptionSemantics
 testExceptionSemantics
 	"See https://github.com/NicolasPetton/amber/issues/314"
 	"See https://github.com/NicolasPetton/amber/issues/314"
-    self timeout: 100.
-    
-    (self async:  [ 
-    	[ 
-        	self assert: true. 
-            Error signal. 
-            "The following should *not* be run"
-            self deny: true.
-            self finished.
-  		] on: Error do: [ :ex | self finished ] 
+	self timeout: 100.
+	
+	(self async: [
+		[
+			self assert: true.
+			Error signal.
+			"The following should *not* be run"
+			self deny: true.
+			self finished.
+		] on: Error do: [ :ex | self finished ]
 	]) valueWithTimeout: 0
 	]) valueWithTimeout: 0
 !
 !
 
 
@@ -61,7 +61,7 @@ testOnDo
 testValue
 testValue
 	self assert: ([1+1] value) equals: 2.
 	self assert: ([1+1] value) equals: 2.
 	self assert: ([:x | x +1] value: 2) equals: 3.
 	self assert: ([:x | x +1] value: 2) equals: 3.
-	self assert: ([:x :y | x*y] value: 2 value: 4) equals: 8. 
+	self assert: ([:x :y | x*y] value: 2 value: 4) equals: 8.
 
 
 	"Arguments are optional in Amber. This isn't ANSI compliant."
 	"Arguments are optional in Amber. This isn't ANSI compliant."
 
 
@@ -105,7 +105,7 @@ TestCase subclass: #BooleanTest
 testEquality
 testEquality
 	"We're on top of JS...just be sure to check the basics!!"
 	"We're on top of JS...just be sure to check the basics!!"
 
 
-	self deny: 0 = false. 
+	self deny: 0 = false.
 	self deny: false = 0.
 	self deny: false = 0.
 	self deny: '' = false.
 	self deny: '' = false.
 	self deny: false = ''.
 	self deny: false = ''.
@@ -123,7 +123,7 @@ testEquality
 testIdentity
 testIdentity
 	"We're on top of JS...just be sure to check the basics!!"
 	"We're on top of JS...just be sure to check the basics!!"
 
 
-	self deny: 0 == false. 
+	self deny: 0 == false.
 	self deny: false == 0.
 	self deny: false == 0.
 	self deny: '' == false.
 	self deny: '' == false.
 	self deny: false == ''.
 	self deny: false == ''.
@@ -139,7 +139,7 @@ testIdentity
 !
 !
 
 
 testIfTrueIfFalse
 testIfTrueIfFalse
- 
+
 	self assert: (true ifTrue: ['alternative block']) equals: 'alternative block'.
 	self assert: (true ifTrue: ['alternative block']) equals: 'alternative block'.
 	self assert: (true ifFalse: ['alternative block']) equals: nil.
 	self assert: (true ifFalse: ['alternative block']) equals: nil.
 
 
@@ -154,7 +154,7 @@ testIfTrueIfFalse
 !
 !
 
 
 testIfTrueIfFalseWithBoxing
 testIfTrueIfFalseWithBoxing
- 
+
 	self assert: (true yourself ifTrue: ['alternative block']) equals: 'alternative block'.
 	self assert: (true yourself ifTrue: ['alternative block']) equals: 'alternative block'.
 	self assert: (true yourself ifFalse: ['alternative block']) equals: nil.
 	self assert: (true yourself ifFalse: ['alternative block']) equals: nil.
 
 
@@ -171,48 +171,48 @@ testIfTrueIfFalseWithBoxing
 testLogic
 testLogic
 	"Trivial logic table"
 	"Trivial logic table"
 	self assert: (true & true);
 	self assert: (true & true);
-    	deny: (true & false);
-        deny: (false & true);
-        deny: (false & false).
+		deny: (true & false);
+		deny: (false & true);
+		deny: (false & false).
 	self assert: (true | true);
 	self assert: (true | true);
-    	assert: (true | false);
-        assert: (false | true);
-        deny: (false | false).
+		assert: (true | false);
+		assert: (false | true);
+		deny: (false | false).
 	"Checking that expressions work fine too"
 	"Checking that expressions work fine too"
 	self assert: (true & (1 > 0));
 	self assert: (true & (1 > 0));
-    	deny: ((1 > 0) & false);
-        deny: ((1 > 0) & (1 > 2)).
+		deny: ((1 > 0) & false);
+		deny: ((1 > 0) & (1 > 2)).
 	self assert: (false | (1 > 0));
 	self assert: (false | (1 > 0));
-    	assert: ((1 > 0) | false);
-        assert: ((1 > 0) | (1 > 2))
+		assert: ((1 > 0) | false);
+		assert: ((1 > 0) | (1 > 2))
 !
 !
 
 
 testLogicKeywords
 testLogicKeywords
 	"Trivial logic table"
 	"Trivial logic table"
-	self 
-		assert: (true and: [ true]); 
-		deny: (true and: [ false ]); 
-		deny: (false and: [ true ]); 
+	self
+		assert: (true and: [ true]);
+		deny: (true and: [ false ]);
+		deny: (false and: [ true ]);
 		deny: (false and: [ false ]).
 		deny: (false and: [ false ]).
-	self 
-		assert: (true or: [ true ]); 
-		assert: (true or: [ false ]); 
-		assert: (false or: [ true ]); 
+	self
+		assert: (true or: [ true ]);
+		assert: (true or: [ false ]);
+		assert: (false or: [ true ]);
 		deny: (false or: [ false ]).
 		deny: (false or: [ false ]).
-        
+		
 	"Checking that expressions work fine too"
 	"Checking that expressions work fine too"
-	self 
-		assert: (true and: [ 1 > 0 ]); 
-		deny: ((1 > 0) and: [ false ]); 
+	self
+		assert: (true and: [ 1 > 0 ]);
+		deny: ((1 > 0) and: [ false ]);
 		deny: ((1 > 0) and: [ 1 > 2 ]).
 		deny: ((1 > 0) and: [ 1 > 2 ]).
-	self 
-		assert: (false or: [ 1 > 0 ]); 
-		assert: ((1 > 0) or: [ false ]); 
+	self
+		assert: (false or: [ 1 > 0 ]);
+		assert: ((1 > 0) or: [ false ]);
 		assert: ((1 > 0) or: [ 1 > 2 ])
 		assert: ((1 > 0) or: [ 1 > 2 ])
 !
 !
 
 
 testNonBooleanError
 testNonBooleanError
-    self should: [ '' ifTrue: [] ifFalse: [] ] raise: NonBooleanReceiver
+	self should: [ '' ifTrue: [] ifFalse: [] ] raise: NonBooleanReceiver
 ! !
 ! !
 
 
 TestCase subclass: #ClassBuilderTest
 TestCase subclass: #ClassBuilderTest
@@ -242,63 +242,63 @@ testClassCopy
 
 
 testClassMigration
 testClassMigration
 	| instance oldClass |
 	| instance oldClass |
-    
-    oldClass := builder copyClass: ObjectMock named: 'ObjectMock2'.
-    instance := (Smalltalk  current at: 'ObjectMock2') new.
-    
-    "Change the superclass of ObjectMock2"
-    ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
-    	instanceVariableNames: ''
-        package: 'Kernel-Tests'.
-    
-    self deny: oldClass == ObjectMock2.
-    
+	
+	oldClass := builder copyClass: ObjectMock named: 'ObjectMock2'.
+	instance := (Smalltalk current at: 'ObjectMock2') new.
+	
+	"Change the superclass of ObjectMock2"
+	ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
+		instanceVariableNames: ''
+		package: 'Kernel-Tests'.
+	
+	self deny: oldClass == ObjectMock2.
+	
 	self assert: ObjectMock2 superclass == ObjectMock.
 	self assert: ObjectMock2 superclass == ObjectMock.
 	self assert: ObjectMock2 instanceVariableNames isEmpty.
 	self assert: ObjectMock2 instanceVariableNames isEmpty.
 	self assert: ObjectMock2 selectors equals: oldClass selectors.
 	self assert: ObjectMock2 selectors equals: oldClass selectors.
-    self assert: ObjectMock2 comment equals: oldClass comment.
-    self assert: ObjectMock2 package name equals: 'Kernel-Tests'.
-    
+	self assert: ObjectMock2 comment equals: oldClass comment.
+	self assert: ObjectMock2 package name equals: 'Kernel-Tests'.
+	
 	self deny: instance class == ObjectMock2.
 	self deny: instance class == ObjectMock2.
-    "Commeting this out. Tests implementation detail."
-    "self assert: instance class name equals: 'OldObjectMock2'."
-    
+	"Commeting this out. Tests implementation detail."
+	"self assert: instance class name equals: 'OldObjectMock2'."
+	
 	self assert: (Smalltalk current at: instance class name) isNil.
 	self assert: (Smalltalk current at: instance class name) isNil.
-    
-    Smalltalk current removeClass: ObjectMock2
+	
+	Smalltalk current removeClass: ObjectMock2
 !
 !
 
 
 testClassMigrationWithClassInstanceVariables
 testClassMigrationWithClassInstanceVariables
-    
-    builder copyClass: ObjectMock named: 'ObjectMock2'.
-    ObjectMock2 class instanceVariableNames: 'foo bar'.
-    
-    "Change the superclass of ObjectMock2"
-    ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
-    	instanceVariableNames: ''
-        package: 'Kernel-Tests'.
-    
-    self assert: ObjectMock2 class instanceVariableNames equals: #('foo' 'bar').
-    
-    Smalltalk current removeClass: ObjectMock2
+	
+	builder copyClass: ObjectMock named: 'ObjectMock2'.
+	ObjectMock2 class instanceVariableNames: 'foo bar'.
+	
+	"Change the superclass of ObjectMock2"
+	ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
+		instanceVariableNames: ''
+		package: 'Kernel-Tests'.
+	
+	self assert: ObjectMock2 class instanceVariableNames equals: #('foo' 'bar').
+	
+	Smalltalk current removeClass: ObjectMock2
 !
 !
 
 
 testClassMigrationWithSubclasses
 testClassMigrationWithSubclasses
-    
-    builder copyClass: ObjectMock named: 'ObjectMock2'.
-    ObjectMock2 subclass: 'ObjectMock3' instanceVariableNames: '' package: 'Kernel-Tests'.
-    ObjectMock3 subclass: 'ObjectMock4' instanceVariableNames: '' package: 'Kernel-Tests'.
-    
-    "Change the superclass of ObjectMock2"
-    ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
-    	instanceVariableNames: ''
-        package: 'Kernel-Tests'.
-    
-    self assert: (ObjectMock subclasses includes: ObjectMock2).
-    self assert: (ObjectMock2 subclasses includes: ObjectMock3).
-    self assert: (ObjectMock3 subclasses includes: ObjectMock4).
-    
-    ObjectMock allSubclasses do: [ :each | Smalltalk current removeClass: each ]
+	
+	builder copyClass: ObjectMock named: 'ObjectMock2'.
+	ObjectMock2 subclass: 'ObjectMock3' instanceVariableNames: '' package: 'Kernel-Tests'.
+	ObjectMock3 subclass: 'ObjectMock4' instanceVariableNames: '' package: 'Kernel-Tests'.
+	
+	"Change the superclass of ObjectMock2"
+	ObjectMock subclass: (Smalltalk current at: 'ObjectMock2')
+		instanceVariableNames: ''
+		package: 'Kernel-Tests'.
+	
+	self assert: (ObjectMock subclasses includes: ObjectMock2).
+	self assert: (ObjectMock2 subclasses includes: ObjectMock3).
+	self assert: (ObjectMock3 subclasses includes: ObjectMock4).
+	
+	ObjectMock allSubclasses do: [ :each | Smalltalk current removeClass: each ]
 !
 !
 
 
 testInstanceVariableNames
 testInstanceVariableNames
@@ -344,14 +344,14 @@ isCollectionReadOnly
 !CollectionTest methodsFor: 'tests'!
 !CollectionTest methodsFor: 'tests'!
 
 
 testAsArray
 testAsArray
-	self 
-		assertSameContents: self collection 
+	self
+		assertSameContents: self collection
 		as: self collection asArray
 		as: self collection asArray
 !
 !
 
 
 testAsOrderedCollection
 testAsOrderedCollection
-	self 
-		assertSameContents: self collection 
+	self
+		assertSameContents: self collection
 		as: self collection asOrderedCollection
 		as: self collection asOrderedCollection
 !
 !
 
 
@@ -366,8 +366,8 @@ testAsSet
 
 
 testCollect
 testCollect
 	| newCollection |
 	| newCollection |
-	newCollection :=  #(1 2 3 4).
-	self 
+	newCollection := #(1 2 3 4).
+	self
 		assertSameContents: (self collection collect: [ :each |
 		assertSameContents: (self collection collect: [ :each |
 			each abs ])
 			each abs ])
 		as: newCollection
 		as: newCollection
@@ -375,7 +375,7 @@ testCollect
 
 
 testDetect
 testDetect
 	self assert: (self collection detect: [ :each | each < 0 ]) equals: -4.
 	self assert: (self collection detect: [ :each | each < 0 ]) equals: -4.
-	self 
+	self
 		should: [ self collection detect: [ :each | each = 6 ] ]
 		should: [ self collection detect: [ :each | each = 6 ] ]
 		raise: Error
 		raise: Error
 !
 !
@@ -385,8 +385,8 @@ testDo
 	newCollection := OrderedCollection new.
 	newCollection := OrderedCollection new.
 	self collection do: [ :each |
 	self collection do: [ :each |
 		newCollection add: each ].
 		newCollection add: each ].
-	self 
-		assertSameContents: self collection 
+	self
+		assertSameContents: self collection
 		as: newCollection
 		as: newCollection
 !
 !
 
 
@@ -398,7 +398,7 @@ testIsEmpty
 testSelect
 testSelect
 	| newCollection |
 	| newCollection |
 	newCollection := #(2 -4).
 	newCollection := #(2 -4).
-	self 
+	self
 		assertSameContents: (self collection select: [ :each |
 		assertSameContents: (self collection select: [ :each |
 			each even ])
 			each even ])
 		as: newCollection
 		as: newCollection
@@ -578,59 +578,59 @@ testPointKey
 	| d |
 	| d |
 
 
 	d := Dictionary new.
 	d := Dictionary new.
-    
-    d at: 1@1 put: 'foo'.
+	
+	d at: 1@1 put: 'foo'.
 	self assert: (d at: 1@1) equals: 'foo'.
 	self assert: (d at: 1@1) equals: 'foo'.
-    d at: 1@1 put: 'bar'.
+	d at: 1@1 put: 'bar'.
 	self assert: (d at: 1@1) equals: 'bar'.
 	self assert: (d at: 1@1) equals: 'bar'.
-    d removeKey: 1@1.
-    self assert: (d at: 1@1 ifAbsent: [ 'baz' ]) equals: 'baz'.
-    self deny: (d includesKey: 1@1)
+	d removeKey: 1@1.
+	self assert: (d at: 1@1 ifAbsent: [ 'baz' ]) equals: 'baz'.
+	self deny: (d includesKey: 1@1)
 !
 !
 
 
 testPrintString
 testPrintString
 	self
 	self
-		assert: (Dictionary new 
-                         	at:'firstname' put: 'James';
-                        	at:'lastname' put: 'Bond';
-                        	printString)
+		assert: (Dictionary new
+							at:'firstname' put: 'James';
+							at:'lastname' put: 'Bond';
+							printString)
 		equals: 'a Dictionary(''firstname''->''James'' , ''lastname''->''Bond'')'
 		equals: 'a Dictionary(''firstname''->''James'' , ''lastname''->''Bond'')'
 !
 !
 
 
 testRemoveKey
 testRemoveKey
-    | d key |
+	| d key |
 
 
-    d := Dictionary new.
-    d at: 1 put: 2.
-    d at: 2 put: 3.
-    d at: 3 put: 4.
+	d := Dictionary new.
+	d at: 1 put: 2.
+	d at: 2 put: 3.
+	d at: 3 put: 4.
 
 
-    key := 2.
+	key := 2.
 
 
-    self assert: d keys equals: #(1 2 3).
+	self assert: d keys equals: #(1 2 3).
 
 
-    d removeKey: key.
-    self assert: d keys equals: #(1 3).
-    self assert: d values equals: #(2 4).
-    self deny: (d includesKey: 2)
+	d removeKey: key.
+	self assert: d keys equals: #(1 3).
+	self assert: d values equals: #(2 4).
+	self deny: (d includesKey: 2)
 !
 !
 
 
 testRemoveKeyIfAbsent
 testRemoveKeyIfAbsent
-    | d key |
+	| d key |
 
 
-    d := Dictionary new.
-    d at: 1 put: 2.
-    d at: 2 put: 3.
-    d at: 3 put: 4.
+	d := Dictionary new.
+	d at: 1 put: 2.
+	d at: 2 put: 3.
+	d at: 3 put: 4.
 
 
-    key := 2.
-    self assert: (d removeKey: key) equals: 3.
+	key := 2.
+	self assert: (d removeKey: key) equals: 3.
 
 
-    key := 3.
-    self assert: (d removeKey: key ifAbsent: [42]) equals: 4.
+	key := 3.
+	self assert: (d removeKey: key ifAbsent: [42]) equals: 4.
 
 
-    key := 'why'.
-    self assert: (d removeKey: key ifAbsent: [42] ) equals: 42.
+	key := 'why'.
+	self assert: (d removeKey: key ifAbsent: [42] ) equals: 42.
 !
 !
 
 
 testSize
 testSize
@@ -764,21 +764,21 @@ testAtPut
 testCollect
 testCollect
 	| newCollection |
 	| newCollection |
 	newCollection := 'hheelllloo'.
 	newCollection := 'hheelllloo'.
-	self 
+	self
 		assertSameContents: (self collection collect: [ :each |
 		assertSameContents: (self collection collect: [ :each |
 			each, each ])
 			each, each ])
 		as: newCollection
 		as: newCollection
 !
 !
 
 
 testCopyWithoutAll
 testCopyWithoutAll
-	self 
+	self
 		assert: ('*hello* *world*' copyWithoutAll: '*')
 		assert: ('*hello* *world*' copyWithoutAll: '*')
-        equals: 'hello world'
+		equals: 'hello world'
 !
 !
 
 
 testDetect
 testDetect
 	self assert: (self collection detect: [ :each | each = 'h' ]) equals: 'h'.
 	self assert: (self collection detect: [ :each | each = 'h' ]) equals: 'h'.
-	self 
+	self
 		should: [ self collection detect: [ :each | each = 6 ] ]
 		should: [ self collection detect: [ :each | each = 6 ] ]
 		raise: Error
 		raise: Error
 !
 !
@@ -787,7 +787,7 @@ testEquality
 	self assert: 'hello' equals: 'hello'.
 	self assert: 'hello' equals: 'hello'.
 	self deny: 'hello' = 'world'.
 	self deny: 'hello' = 'world'.
 
 
-	self assert: 'hello'  equals: 'hello' yourself.
+	self assert: 'hello' equals: 'hello' yourself.
 	self assert: 'hello' yourself equals: 'hello'.
 	self assert: 'hello' yourself equals: 'hello'.
 
 
 	"test JS falsy value"
 	"test JS falsy value"
@@ -817,7 +817,7 @@ testJoin
 testSelect
 testSelect
 	| newCollection |
 	| newCollection |
 	newCollection := 'o'.
 	newCollection := 'o'.
-	self 
+	self
 		assertSameContents: (self collection select: [ :each |
 		assertSameContents: (self collection select: [ :each |
 			each = 'o' ])
 			each = 'o' ])
 		as: newCollection
 		as: newCollection
@@ -829,10 +829,10 @@ testSize
 !
 !
 
 
 testStreamContents
 testStreamContents
-	self 
-		assert: (String streamContents: [ :aStream | 
-			aStream 
-				nextPutAll: 'hello'; space; 
+	self
+		assert: (String streamContents: [ :aStream |
+			aStream
+				nextPutAll: 'hello'; space;
 				nextPutAll: 'world' ])
 				nextPutAll: 'world' ])
 		equals: 'hello world'
 		equals: 'hello world'
 ! !
 ! !
@@ -881,7 +881,7 @@ testAtPut
 testCollect
 testCollect
 	| newCollection |
 	| newCollection |
 	newCollection := #hheelllloo.
 	newCollection := #hheelllloo.
-	self 
+	self
 		assertSameContents: (self collection collect: [ :each |
 		assertSameContents: (self collection collect: [ :each |
 			each, each ])
 			each, each ])
 		as: newCollection
 		as: newCollection
@@ -908,7 +908,7 @@ testCopying
 
 
 testDetect
 testDetect
 	self assert: (self collection detect: [ :each | each = 'h' ]) equals: 'h'.
 	self assert: (self collection detect: [ :each | each = 'h' ]) equals: 'h'.
-	self 
+	self
 		should: [ self collection detect: [ :each | each = 'z' ] ]
 		should: [ self collection detect: [ :each | each = 'z' ] ]
 		raise: Error
 		raise: Error
 !
 !
@@ -928,7 +928,7 @@ testIdentity
 	self assert: #hello == #hello.
 	self assert: #hello == #hello.
 	self deny: #hello == #world.
 	self deny: #hello == #world.
 
 
-	self assert: #hello  = #hello yourself.
+	self assert: #hello = #hello yourself.
 	self assert: #hello yourself = #hello asString asSymbol
 	self assert: #hello yourself = #hello asString asSymbol
 !
 !
 
 
@@ -947,7 +947,7 @@ testIsSymbolIsString
 testSelect
 testSelect
 	| newCollection |
 	| newCollection |
 	newCollection := 'o'.
 	newCollection := 'o'.
-	self 
+	self
 		assertSameContents: (self collection select: [ :each |
 		assertSameContents: (self collection select: [ :each |
 			each = 'o' ])
 			each = 'o' ])
 		as: newCollection
 		as: newCollection
@@ -978,11 +978,11 @@ jsObject
 
 
 testAtIfAbsent
 testAtIfAbsent
 	| testObject |
 	| testObject |
-    testObject := self jsObject.
+	testObject := self jsObject.
 	self assert: (testObject at: 'abc' ifAbsent: ['Property does not exist']) equals: 'Property does not exist'.
 	self assert: (testObject at: 'abc' ifAbsent: ['Property does not exist']) equals: 'Property does not exist'.
 	self assert: (testObject at: 'e' ifAbsent: ['Property does not exist']) equals: nil.
 	self assert: (testObject at: 'e' ifAbsent: ['Property does not exist']) equals: nil.
-    self assert: (testObject at: 'a' ifAbsent: ['Property does not exist']) equals: 1.
-    self assert: (testObject at: 'f' ifAbsent: ['Property does not exist']) equals: nil.
+	self assert: (testObject at: 'a' ifAbsent: ['Property does not exist']) equals: 1.
+	self assert: (testObject at: 'f' ifAbsent: ['Property does not exist']) equals: nil.
 !
 !
 
 
 testDNU
 testDNU
@@ -1018,15 +1018,15 @@ testPropertyThatReturnsUndefined
 	| object |
 	| object |
 
 
 	object := self jsObject.
 	object := self jsObject.
-	self shouldnt: [ object e ]  raise: MessageNotUnderstood.
-    self assert: object e isNil
+	self shouldnt: [ object e ] raise: MessageNotUnderstood.
+	self assert: object e isNil
 !
 !
 
 
 testValue
 testValue
 	| testObject |
 	| testObject |
-    testObject := self jsObject.
+	testObject := self jsObject.
 	self assert: testObject value printString equals: '[object Object]'.
 	self assert: testObject value printString equals: '[object Object]'.
-    testObject at: 'value' put: 'aValue'.
+	testObject at: 'value' put: 'aValue'.
 	self assert: testObject value equals: 'aValue'
 	self assert: testObject value equals: 'aValue'
 !
 !
 
 
@@ -1053,8 +1053,8 @@ throwException
 
 
 testCatchingException
 testCatchingException
 	[ self throwException ]
 	[ self throwException ]
-  		on: Error
-        do: [ :error | 
+		on: Error
+		do: [ :error |
 			self assert: error exception = 'test' ]
 			self assert: error exception = 'test' ]
 !
 !
 
 
@@ -1075,7 +1075,7 @@ testAbs
 
 
 testArithmetic
 testArithmetic
 	
 	
-	"We rely on JS here, so we won't test complex behavior, just check if 
+	"We rely on JS here, so we won't test complex behavior, just check if
 	message sends are corrects"
 	message sends are corrects"
 
 
 	self assert: 1.5 + 1 equals: 2.5.
 	self assert: 1.5 + 1 equals: 2.5.
@@ -1149,46 +1149,46 @@ testIdentity
 testInvalidHexNumbers
 testInvalidHexNumbers
 
 
 	self should: [16rG] raise: MessageNotUnderstood.
 	self should: [16rG] raise: MessageNotUnderstood.
-   	self should: [16rg] raise: MessageNotUnderstood.
+	self should: [16rg] raise: MessageNotUnderstood.
 	self should: [16rH] raise: MessageNotUnderstood.
 	self should: [16rH] raise: MessageNotUnderstood.
-   	self should: [16rh] raise: MessageNotUnderstood.
+	self should: [16rh] raise: MessageNotUnderstood.
 	self should: [16rI] raise: MessageNotUnderstood.
 	self should: [16rI] raise: MessageNotUnderstood.
-   	self should: [16ri] raise: MessageNotUnderstood.
+	self should: [16ri] raise: MessageNotUnderstood.
 	self should: [16rJ] raise: MessageNotUnderstood.
 	self should: [16rJ] raise: MessageNotUnderstood.
-   	self should: [16rj] raise: MessageNotUnderstood.
+	self should: [16rj] raise: MessageNotUnderstood.
 	self should: [16rK] raise: MessageNotUnderstood.
 	self should: [16rK] raise: MessageNotUnderstood.
-   	self should: [16rk] raise: MessageNotUnderstood.
+	self should: [16rk] raise: MessageNotUnderstood.
 	self should: [16rL] raise: MessageNotUnderstood.
 	self should: [16rL] raise: MessageNotUnderstood.
-   	self should: [16rl] raise: MessageNotUnderstood.
+	self should: [16rl] raise: MessageNotUnderstood.
 	self should: [16rM] raise: MessageNotUnderstood.
 	self should: [16rM] raise: MessageNotUnderstood.
-   	self should: [16rm] raise: MessageNotUnderstood.
+	self should: [16rm] raise: MessageNotUnderstood.
 	self should: [16rN] raise: MessageNotUnderstood.
 	self should: [16rN] raise: MessageNotUnderstood.
-   	self should: [16rn] raise: MessageNotUnderstood.
+	self should: [16rn] raise: MessageNotUnderstood.
 	self should: [16rO] raise: MessageNotUnderstood.
 	self should: [16rO] raise: MessageNotUnderstood.
-   	self should: [16ro] raise: MessageNotUnderstood.
+	self should: [16ro] raise: MessageNotUnderstood.
 	self should: [16rP] raise: MessageNotUnderstood.
 	self should: [16rP] raise: MessageNotUnderstood.
-   	self should: [16rp] raise: MessageNotUnderstood.
+	self should: [16rp] raise: MessageNotUnderstood.
 	self should: [16rQ] raise: MessageNotUnderstood.
 	self should: [16rQ] raise: MessageNotUnderstood.
-   	self should: [16rq] raise: MessageNotUnderstood.
+	self should: [16rq] raise: MessageNotUnderstood.
 	self should: [16rR] raise: MessageNotUnderstood.
 	self should: [16rR] raise: MessageNotUnderstood.
-   	self should: [16rr] raise: MessageNotUnderstood.
+	self should: [16rr] raise: MessageNotUnderstood.
 	self should: [16rS] raise: MessageNotUnderstood.
 	self should: [16rS] raise: MessageNotUnderstood.
-   	self should: [16rs] raise: MessageNotUnderstood.
+	self should: [16rs] raise: MessageNotUnderstood.
 	self should: [16rT] raise: MessageNotUnderstood.
 	self should: [16rT] raise: MessageNotUnderstood.
-   	self should: [16rt] raise: MessageNotUnderstood.
+	self should: [16rt] raise: MessageNotUnderstood.
 	self should: [16rU] raise: MessageNotUnderstood.
 	self should: [16rU] raise: MessageNotUnderstood.
-   	self should: [16ru] raise: MessageNotUnderstood.
+	self should: [16ru] raise: MessageNotUnderstood.
 	self should: [16rV] raise: MessageNotUnderstood.
 	self should: [16rV] raise: MessageNotUnderstood.
-   	self should: [16rv] raise: MessageNotUnderstood.
+	self should: [16rv] raise: MessageNotUnderstood.
 	self should: [16rW] raise: MessageNotUnderstood.
 	self should: [16rW] raise: MessageNotUnderstood.
-   	self should: [16rw] raise: MessageNotUnderstood.
+	self should: [16rw] raise: MessageNotUnderstood.
 	self should: [16rX] raise: MessageNotUnderstood.
 	self should: [16rX] raise: MessageNotUnderstood.
-   	self should: [16rx] raise: MessageNotUnderstood.
+	self should: [16rx] raise: MessageNotUnderstood.
 	self should: [16rY] raise: MessageNotUnderstood.
 	self should: [16rY] raise: MessageNotUnderstood.
-   	self should: [16ry] raise: MessageNotUnderstood.
+	self should: [16ry] raise: MessageNotUnderstood.
 	self should: [16rZ] raise: MessageNotUnderstood.
 	self should: [16rZ] raise: MessageNotUnderstood.
-   	self should: [16rz] raise: MessageNotUnderstood.
-    self should: [16rABcdEfZ] raise: MessageNotUnderstood.
+	self should: [16rz] raise: MessageNotUnderstood.
+	self should: [16rABcdEfZ] raise: MessageNotUnderstood.
 !
 !
 
 
 testMinMax
 testMinMax
@@ -1301,7 +1301,7 @@ testBasicAccess
 testBasicPerform
 testBasicPerform
 	| o |
 	| o |
 	o := Object new.
 	o := Object new.
-	o basicAt: 'func' put: ['hello'].	
+	o basicAt: 'func' put: ['hello'].
 	o basicAt: 'func2' put: [:a | a + 1].
 	o basicAt: 'func2' put: [:a | a + 1].
 
 
 	self assert: (o basicPerform: 'func') equals: 'hello'.
 	self assert: (o basicPerform: 'func') equals: 'hello'.
@@ -1388,7 +1388,7 @@ setUp
 	Package resetCommitPaths.
 	Package resetCommitPaths.
 
 
 	zorkPackage := Package new name: 'Zork'.
 	zorkPackage := Package new name: 'Zork'.
-	grulPackage := Package new 
+	grulPackage := Package new
 					name: 'Grul';
 					name: 'Grul';
 					commitPathJs: 'server/grul/js';
 					commitPathJs: 'server/grul/js';
 					commitPathSt: 'grul/st';
 					commitPathSt: 'grul/st';
@@ -1396,7 +1396,7 @@ setUp
 !
 !
 
 
 tearDown
 tearDown
-	 Package 
+	Package
 		defaultCommitPathJs: backUpCommitPathJs;
 		defaultCommitPathJs: backUpCommitPathJs;
 		defaultCommitPathSt: backUpCommitPathSt
 		defaultCommitPathSt: backUpCommitPathSt
 ! !
 ! !
@@ -1502,7 +1502,7 @@ TestCase subclass: #RandomTest
 textNext
 textNext
 
 
 	10000 timesRepeat: [
 	10000 timesRepeat: [
-			| current next | 
+			| current next |
 			next := Random new next.
 			next := Random new next.
 			self assert: (next >= 0).
 			self assert: (next >= 0).
 			self assert: (next < 1).
 			self assert: (next < 1).
@@ -1542,9 +1542,9 @@ testCollect
 
 
 testComparing
 testComparing
 	self assert: #(0 2) asSet equals: #(0 2) asSet.
 	self assert: #(0 2) asSet equals: #(0 2) asSet.
-    self assert: #(2 0) asSet equals: #(0 2) asSet.
-    self deny: #(0 2 3) asSet = #(0 2) asSet.
-    self deny: #(1 2) asSet = #(0 2) asSet
+	self assert: #(2 0) asSet equals: #(0 2) asSet.
+	self deny: #(0 2 3) asSet = #(0 2) asSet.
+	self deny: #(1 2) asSet = #(0 2) asSet
 !
 !
 
 
 testPrintString
 testPrintString

+ 6 - 6
st/Kernel-Transcript.st

@@ -37,15 +37,15 @@ Transcript class instanceVariableNames: 'current'!
 !Transcript class methodsFor: 'instance creation'!
 !Transcript class methodsFor: 'instance creation'!
 
 
 current
 current
-    ^current
+	^current
 !
 !
 
 
 new
 new
-    self shouldNotImplement
+	self shouldNotImplement
 !
 !
 
 
 open
 open
-    self current open
+	self current open
 !
 !
 
 
 register: aTranscript
 register: aTranscript
@@ -55,14 +55,14 @@ register: aTranscript
 !Transcript class methodsFor: 'printing'!
 !Transcript class methodsFor: 'printing'!
 
 
 clear
 clear
-    self current clear
+	self current clear
 !
 !
 
 
 cr
 cr
-    self current show: String cr
+	self current show: String cr
 !
 !
 
 
 show: anObject
 show: anObject
-    self current show: anObject
+	self current show: anObject
 ! !
 ! !
 
 

+ 40 - 40
st/SUnit-Tests.st

@@ -27,11 +27,11 @@ testGrow
 !
 !
 
 
 testIllegal
 testIllegal
-	self 
-		should: [empty at: 5] 
+	self
+		should: [empty at: 5]
 		raise: Error.
 		raise: Error.
-	self 
-		should: [empty at: 5 put: #abc] 
+	self
+		should: [empty at: 5 put: #abc]
 		raise: Error
 		raise: Error
 !
 !
 
 
@@ -62,40 +62,40 @@ TestCase subclass: #SUnitAsyncTest
 fakeError
 fakeError
 	flag := 'bad'.
 	flag := 'bad'.
 	self timeout: 10.
 	self timeout: 10.
-    flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 5
+	flag := (self async: [ flag := 'ok'. self error: 'Intentional' ]) valueWithTimeout: 5
 !
 !
 
 
 fakeErrorFailingInTearDown
 fakeErrorFailingInTearDown
 	flag := 'bad'.
 	flag := 'bad'.
 	self timeout: 10.
 	self timeout: 10.
-    flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 5
+	flag := (self async: [ self error: 'Intentional' ]) valueWithTimeout: 5
 !
 !
 
 
 fakeFailure
 fakeFailure
 	flag := 'bad'.
 	flag := 'bad'.
 	self timeout: 10.
 	self timeout: 10.
-    flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 5
+	flag := (self async: [ flag := 'ok'. self assert: false ]) valueWithTimeout: 5
 !
 !
 
 
 fakeMultipleTimeoutFailing
 fakeMultipleTimeoutFailing
 	self timeout: 100.
 	self timeout: 100.
-    (self async: [
+	(self async: [
 		self timeout: 5.
 		self timeout: 5.
-        (self async: [ self finished ]) valueWithTimeout: 10
+		(self async: [ self finished ]) valueWithTimeout: 10
 	]) valueWithTimeout: 5
 	]) valueWithTimeout: 5
 !
 !
 
 
 fakeMultipleTimeoutPassing
 fakeMultipleTimeoutPassing
 	self timeout: 10.
 	self timeout: 10.
-    (self async: [
+	(self async: [
 		self timeout: 20.
 		self timeout: 20.
-        (self async: [ self finished ]) valueWithTimeout: 10
+		(self async: [ self finished ]) valueWithTimeout: 10
 	]) valueWithTimeout: 5
 	]) valueWithTimeout: 5
 !
 !
 
 
 fakeTimeout
 fakeTimeout
 	self timeout: 4.
 	self timeout: 4.
-    (self async: [ self finished ]) valueWithTimeout: 5
+	(self async: [ self finished ]) valueWithTimeout: 5
 ! !
 ! !
 
 
 !SUnitAsyncTest methodsFor: 'private'!
 !SUnitAsyncTest methodsFor: 'private'!
@@ -119,59 +119,59 @@ tearDown
 testAsyncErrorsAndFailures
 testAsyncErrorsAndFailures
 	| suite runner result assertBlock |
 	| suite runner result assertBlock |
 	suite := #('fakeError' 'fakeErrorFailingInTearDown' 'fakeFailure' 'testPass') collect: [ :each | self class selector: each ].
 	suite := #('fakeError' 'fakeErrorFailingInTearDown' 'fakeFailure' 'testPass') collect: [ :each | self class selector: each ].
-    runner := TestSuiteRunner on: suite.
-    self timeout: 200.
+	runner := TestSuiteRunner on: suite.
+	self timeout: 200.
 	result := runner result.
 	result := runner result.
-    assertBlock := self async: [
+	assertBlock := self async: [
 		self assert: (self selectorSetOf: result errors) equals: #('fakeError') asSet.
 		self assert: (self selectorSetOf: result errors) equals: #('fakeError') asSet.
 		self assert: (self selectorSetOf: result failures) equals: #('fakeErrorFailingInTearDown' 'fakeFailure') asSet.
 		self assert: (self selectorSetOf: result failures) equals: #('fakeErrorFailingInTearDown' 'fakeFailure') asSet.
 		self finished
 		self finished
-  	].
-    runner announcer on: ResultAnnouncement do: [:ann |
-    	ann result == result  ifTrue: [ result runs = result total ifTrue: assertBlock ]].
+	].
+	runner announcer on: ResultAnnouncement do: [:ann |
+		ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ]].
 	runner run
 	runner run
 !
 !
 
 
 testAsyncNeedsTimeout
 testAsyncNeedsTimeout
-    self should: [ self async: [ ] ] raise: Error.
-    self timeout: 0.
-    self shouldnt: [ self async: [ ] ] raise: Error.
-    self finished
+	self should: [ self async: [ ] ] raise: Error.
+	self timeout: 0.
+	self shouldnt: [ self async: [ ] ] raise: Error.
+	self finished
 !
 !
 
 
 testFinishedNeedsTimeout
 testFinishedNeedsTimeout
-    self should: [ self finished ] raise: Error.
-    self timeout: 0.
-    self shouldnt: [ self finished ] raise: Error.
+	self should: [ self finished ] raise: Error.
+	self timeout: 0.
+	self shouldnt: [ self finished ] raise: Error.
 !
 !
 
 
 testIsAsyncReturnsCorrectValues
 testIsAsyncReturnsCorrectValues
-    self deny: self isAsync.
-    self timeout: 0.
-    self assert: self isAsync.
-    self finished.
-    self deny: self isAsync
+	self deny: self isAsync.
+	self timeout: 0.
+	self assert: self isAsync.
+	self finished.
+	self deny: self isAsync
 !
 !
 
 
 testPass
 testPass
 	flag := 'bad'.
 	flag := 'bad'.
 	self timeout: 10.
 	self timeout: 10.
-    flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5
+	flag := (self async: [ self assert: true. self finished. flag := 'ok' ]) valueWithTimeout: 5
 !
 !
 
 
 testTimeouts
 testTimeouts
 	| suite runner result assertBlock |
 	| suite runner result assertBlock |
 	suite := #('fakeTimeout' 'fakeMultipleTimeoutFailing' 'fakeMultipleTimeoutPassing' 'testPass') collect: [ :each | self class selector: each ].
 	suite := #('fakeTimeout' 'fakeMultipleTimeoutFailing' 'fakeMultipleTimeoutPassing' 'testPass') collect: [ :each | self class selector: each ].
-    runner := TestSuiteRunner on: suite.
-    self timeout: 200.
+	runner := TestSuiteRunner on: suite.
+	self timeout: 200.
 	result := runner result.
 	result := runner result.
-    assertBlock := self async: [
+	assertBlock := self async: [
 		self assert: (self selectorSetOf: result errors) equals: Set new.
 		self assert: (self selectorSetOf: result errors) equals: Set new.
 		self assert: (self selectorSetOf: result failures) equals: #('fakeMultipleTimeoutFailing' 'fakeTimeout') asSet.
 		self assert: (self selectorSetOf: result failures) equals: #('fakeMultipleTimeoutFailing' 'fakeTimeout') asSet.
 		self finished
 		self finished
-  	].
-    runner announcer on: ResultAnnouncement do: [:ann |
-    	ann result == result  ifTrue: [ result runs = result total ifTrue: assertBlock ]].
+	].
+	runner announcer on: ResultAnnouncement do: [:ann |
+		ann result == result ifTrue: [ result runs = result total ifTrue: assertBlock ]].
 	runner run
 	runner run
 !
 !
 
 
@@ -179,8 +179,8 @@ testTwoAsyncPassesWithFinishedOnlyOneIsRun
 	| x |
 	| x |
 	flag := 'bad'.
 	flag := 'bad'.
 	self timeout: 10.
 	self timeout: 10.
-    x := 0.
-    flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.
-    flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.
+	x := 0.
+	flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.
+	flag := (self async: [ self finished. flag := 'ok'. x := x+1. self assert: x equals: 1 ]) valueWithTimeout: 0.
 ! !
 ! !
 
 

+ 64 - 64
st/SUnit.st

@@ -17,14 +17,14 @@ Object subclass: #TestCase
 	instanceVariableNames: 'testSelector asyncTimeout context'
 	instanceVariableNames: 'testSelector asyncTimeout context'
 	package: 'SUnit'!
 	package: 'SUnit'!
 !TestCase commentStamp!
 !TestCase commentStamp!
-A TestCase is an implementation of the command pattern to run a test.  
+A TestCase is an implementation of the command pattern to run a test.
 
 
-`TestCase` instances are created with the class method `#selector:`, 
+`TestCase` instances are created with the class method `#selector:`,
 passing the symbol that names the method to be executed when the test case runs.
 passing the symbol that names the method to be executed when the test case runs.
 
 
-When you discover a new fixture, subclass `TestCase` and create a `#test...` method for the first test.  
-As that method develops and more `#test...` methods are added, you will find yourself refactoring temps 
-into instance variables for the objects in the fixture and overriding `#setUp` to initialize these variables.  
+When you discover a new fixture, subclass `TestCase` and create a `#test...` method for the first test.
+As that method develops and more `#test...` methods are added, you will find yourself refactoring temps
+into instance variables for the objects in the fixture and overriding `#setUp` to initialize these variables.
 As required, override `#tearDown` to nil references, release objects and deallocate.!
 As required, override `#tearDown` to nil references, release objects and deallocate.!
 
 
 !TestCase methodsFor: 'accessing'!
 !TestCase methodsFor: 'accessing'!
@@ -46,8 +46,8 @@ setTestSelector: aSelector
 async: aBlock
 async: aBlock
 	| c |
 	| c |
 	self errorIfNotAsync: '#async'.
 	self errorIfNotAsync: '#async'.
-    c := context.
-    ^ [ self isAsync ifTrue: [ c execute: aBlock ] ]
+	c := context.
+	^ [ self isAsync ifTrue: [ c execute: aBlock ] ]
 !
 !
 
 
 finished
 finished
@@ -57,22 +57,22 @@ finished
 
 
 timeout: aNumber
 timeout: aNumber
 	"Set a grace time timeout in milliseconds to run the test asynchronously"
 	"Set a grace time timeout in milliseconds to run the test asynchronously"
-    
+	
 	asyncTimeout ifNotNil: [ asyncTimeout clearTimeout ].
 	asyncTimeout ifNotNil: [ asyncTimeout clearTimeout ].
-    
-     "to allow #async: message send without throwing an error"
+	
+	"to allow #async: message send without throwing an error"
 	asyncTimeout := 0.
 	asyncTimeout := 0.
-    
-	asyncTimeout := (self async: [ 
-    	self assert: false description: 'SUnit grace time exhausted' ])
-        	valueWithTimeout: aNumber
+	
+	asyncTimeout := (self async: [
+		self assert: false description: 'SUnit grace time exhausted' ])
+			valueWithTimeout: aNumber
 ! !
 ! !
 
 
 !TestCase methodsFor: 'error handling'!
 !TestCase methodsFor: 'error handling'!
 
 
 errorIfNotAsync: aString
 errorIfNotAsync: aString
-	self isAsync ifFalse: [ 
-    	self error: aString, ' used without prior #timeout:' ]
+	self isAsync ifFalse: [
+		self error: aString, ' used without prior #timeout:' ]
 ! !
 ! !
 
 
 !TestCase methodsFor: 'private'!
 !TestCase methodsFor: 'private'!
@@ -129,14 +129,14 @@ should: aBlock
 !
 !
 
 
 should: aBlock raise: anExceptionClass
 should: aBlock raise: anExceptionClass
-	self assert: ([aBlock value. false] 
-		on: anExceptionClass 
+	self assert: ([aBlock value. false]
+		on: anExceptionClass
 		do: [:ex | true])
 		do: [:ex | true])
 !
 !
 
 
 shouldnt: aBlock raise: anExceptionClass
 shouldnt: aBlock raise: anExceptionClass
-	self assert: ([aBlock value. true] 
-		on: anExceptionClass 
+	self assert: ([aBlock value. true]
+		on: anExceptionClass
 		do: [:ex | false])
 		do: [:ex | false])
 ! !
 ! !
 
 
@@ -198,34 +198,34 @@ testCase: aTestCase
 
 
 execute: aBlock
 execute: aBlock
 	| failed |
 	| failed |
-    
-    testCase context: self.
-    [ 
-    	failed := true. 
-        aBlock value. 
-        failed := false 
-	] 
-    	ensure: [
-        	testCase context: nil.
-            
-        	(failed and: [ testCase isAsync ]) ifTrue: [ 
-            	testCase finished ].
-        	testCase isAsync ifFalse: [ 
-        		testCase tearDown ] ]
+	
+	testCase context: self.
+	[
+		failed := true.
+		aBlock value.
+		failed := false
+	]
+		ensure: [
+			testCase context: nil.
+			
+			(failed and: [ testCase isAsync ]) ifTrue: [
+				testCase finished ].
+			testCase isAsync ifFalse: [
+				testCase tearDown ] ]
 !
 !
 
 
 start
 start
-	self execute: [ 
-    	testCase setUp. 
-        testCase performTest ]
+	self execute: [
+		testCase setUp.
+		testCase performTest ]
 ! !
 ! !
 
 
 !TestContext class methodsFor: 'instance creation'!
 !TestContext class methodsFor: 'instance creation'!
 
 
 testCase: aTestCase
 testCase: aTestCase
 	^self new
 	^self new
-        testCase: aTestCase;
-        yourself
+		testCase: aTestCase;
+		yourself
 ! !
 ! !
 
 
 TestContext subclass: #ReportingTestContext
 TestContext subclass: #ReportingTestContext
@@ -252,41 +252,41 @@ result: aTestResult
 !ReportingTestContext methodsFor: 'private'!
 !ReportingTestContext methodsFor: 'private'!
 
 
 withErrorReporting: aBlock
 withErrorReporting: aBlock
- 	[ aBlock
-		on: TestFailure 
-		do: [ :ex | result addFailure: testCase ] 
+	[ aBlock
+		on: TestFailure
+		do: [ :ex | result addFailure: testCase ]
 	]
 	]
-    	on: Error 
-        do: [ :ex | result addError: testCase ]
+		on: Error
+		do: [ :ex | result addError: testCase ]
 ! !
 ! !
 
 
 !ReportingTestContext methodsFor: 'running'!
 !ReportingTestContext methodsFor: 'running'!
 
 
 execute: aBlock
 execute: aBlock
-    [ 
-    	self withErrorReporting: [ super execute: aBlock ] 
+	[
+		self withErrorReporting: [ super execute: aBlock ]
 	]
 	]
-    	ensure: [ 
-        	testCase isAsync ifFalse: [ 
-            	result increaseRuns. finished value ] ]
+		ensure: [
+			testCase isAsync ifFalse: [
+				result increaseRuns. finished value ] ]
 ! !
 ! !
 
 
 !ReportingTestContext class methodsFor: 'instance creation'!
 !ReportingTestContext class methodsFor: 'instance creation'!
 
 
 testCase: aTestCase result: aTestResult finished: aBlock
 testCase: aTestCase result: aTestResult finished: aBlock
 	^(super testCase: aTestCase)
 	^(super testCase: aTestCase)
-        result: aTestResult;
-        finished: aBlock;
-        yourself
+		result: aTestResult;
+		finished: aBlock;
+		yourself
 ! !
 ! !
 
 
 Error subclass: #TestFailure
 Error subclass: #TestFailure
 	instanceVariableNames: ''
 	instanceVariableNames: ''
 	package: 'SUnit'!
 	package: 'SUnit'!
 !TestFailure commentStamp!
 !TestFailure commentStamp!
-The test framework distinguishes between failures and errors.  
-A failure is an event whose possibiity is explicitly anticipated and checked for in an assertion, 
-whereas an error is an unanticipated problem like a division by 0 or an index out of bounds.  
+The test framework distinguishes between failures and errors.
+A failure is an event whose possibiity is explicitly anticipated and checked for in an assertion,
+whereas an error is an unanticipated problem like a division by 0 or an index out of bounds.
 
 
 TestFailure is raised when the boolean parameter of an #`assert:` or `#deny:` call is the opposite of what the assertion claims.!
 TestFailure is raised when the boolean parameter of an #`assert:` or `#deny:` call is the opposite of what the assertion claims.!
 
 
@@ -294,7 +294,7 @@ Object subclass: #TestResult
 	instanceVariableNames: 'timestamp runs errors failures total'
 	instanceVariableNames: 'timestamp runs errors failures total'
 	package: 'SUnit'!
 	package: 'SUnit'!
 !TestResult commentStamp!
 !TestResult commentStamp!
-A TestResult implements the collecting parameter pattern for running a bunch of tests.  
+A TestResult implements the collecting parameter pattern for running a bunch of tests.
 
 
 A TestResult holds tests that have run, sorted into the result categories of passed, failures and errors.
 A TestResult holds tests that have run, sorted into the result categories of passed, failures and errors.
 
 
@@ -327,9 +327,9 @@ runs
 !
 !
 
 
 status
 status
-	^self errors isEmpty 
+	^self errors isEmpty
 		ifTrue: [
 		ifTrue: [
-			self failures isEmpty 
+			self failures isEmpty
 				ifTrue: ['success']
 				ifTrue: ['success']
 				ifFalse: ['failure']]
 				ifFalse: ['failure']]
 		ifFalse: ['error']
 		ifFalse: ['error']
@@ -368,8 +368,8 @@ or does nothing if no more runs"
 !
 !
 
 
 runCase: aTestCase
 runCase: aTestCase
-	[[	self increaseRuns.
-    	aTestCase runCase]
+	[[ self increaseRuns.
+		aTestCase runCase]
 	on: TestFailure do: [:ex | self addFailure: aTestCase]]
 	on: TestFailure do: [:ex | self addFailure: aTestCase]]
 	on: Error do: [:ex | self addError: aTestCase]
 	on: Error do: [:ex | self addError: aTestCase]
 ! !
 ! !
@@ -396,7 +396,7 @@ suite: aCollection
 
 
 resume
 resume
 	runNextTest fork.
 	runNextTest fork.
-    announcer announce: (ResultAnnouncement new result: result)
+	announcer announce: (ResultAnnouncement new result: result)
 !
 !
 
 
 run
 run
@@ -409,14 +409,14 @@ run
 initialize
 initialize
 	super initialize.
 	super initialize.
 	announcer := Announcer new.
 	announcer := Announcer new.
-    result := TestResult new.
-    runNextTest := [ | runs | runs := result runs. runs < result total ifTrue: [ (self contextOf: runs + 1) start ]].
+	result := TestResult new.
+	runNextTest := [ | runs | runs := result runs. runs < result total ifTrue: [ (self contextOf: runs + 1) start ]].
 ! !
 ! !
 
 
 !TestSuiteRunner methodsFor: 'private'!
 !TestSuiteRunner methodsFor: 'private'!
 
 
 contextOf: anInteger
 contextOf: anInteger
-   	^ReportingTestContext testCase: (suite at: anInteger) result: result finished: [ self resume ]
+	^ReportingTestContext testCase: (suite at: anInteger) result: result finished: [ self resume ]
 ! !
 ! !
 
 
 !TestSuiteRunner class methodsFor: 'instance creation'!
 !TestSuiteRunner class methodsFor: 'instance creation'!

+ 8 - 8
st/Spaces.st

@@ -10,13 +10,13 @@ The implementation creates an iframe on the same location as the window, and con
 
 
 ## Usage example:
 ## Usage example:
 
 
-    | space |
-    
-    space := ObjectSpace new.
-    space do: [ smalltalk ] "Answers aSmalltalk"
-    (space do: [ smalltalk ]) == smalltalk "Answers false"
-    
-    space release "Remove the object space environment"!
+	| space |
+	
+	space := ObjectSpace new.
+	space do: [ smalltalk ] "Answers aSmalltalk"
+	(space do: [ smalltalk ]) == smalltalk "Answers false"
+	
+	space release "Remove the object space environment"!
 
 
 !ObjectSpace methodsFor: 'accessing'!
 !ObjectSpace methodsFor: 'accessing'!
 
 
@@ -34,7 +34,7 @@ do: aBlock
 !ObjectSpace methodsFor: 'events'!
 !ObjectSpace methodsFor: 'events'!
 
 
 whenReadyDo: aBlock
 whenReadyDo: aBlock
-	(window jQuery: frame) 
+	(window jQuery: frame)
 		bind: 'load'
 		bind: 'load'
 		do: aBlock
 		do: aBlock
 ! !
 ! !

部分文件因为文件数量过多而无法显示