Browse Source

Recompiles all .js files

Nicolas Petton 13 năm trước cách đây
mục cha
commit
02b3c8e163
42 tập tin đã thay đổi với 2077 bổ sung và 1185 xóa
  1. 8 5
      js/Benchfib.deploy.js
  2. 8 5
      js/Benchfib.js
  3. 28 17
      js/Canvas.deploy.js
  4. 28 17
      js/Canvas.js
  5. 18 9
      js/Compiler-AST.deploy.js
  6. 18 9
      js/Compiler-AST.js
  7. 27 13
      js/Compiler-Core.deploy.js
  8. 27 13
      js/Compiler-Core.js
  9. 60 30
      js/Compiler-IR.deploy.js
  10. 60 30
      js/Compiler-IR.js
  11. 58 29
      js/Compiler-Inlining.deploy.js
  12. 58 29
      js/Compiler-Inlining.js
  13. 26 13
      js/Compiler-Interpreter.deploy.js
  14. 26 13
      js/Compiler-Interpreter.js
  15. 56 32
      js/Compiler-Semantic.deploy.js
  16. 56 32
      js/Compiler-Semantic.js
  17. 64 32
      js/Compiler-Tests.deploy.js
  18. 64 32
      js/Compiler-Tests.js
  19. 191 116
      js/IDE.deploy.js
  20. 191 116
      js/IDE.js
  21. 28 13
      js/Importer-Exporter.deploy.js
  22. 28 13
      js/Importer-Exporter.js
  23. 4 2
      js/Kernel-Announcements.deploy.js
  24. 4 2
      js/Kernel-Announcements.js
  25. 74 41
      js/Kernel-Classes.deploy.js
  26. 74 41
      js/Kernel-Classes.js
  27. 48 26
      js/Kernel-Collections.deploy.js
  28. 48 26
      js/Kernel-Collections.js
  29. 2 1
      js/Kernel-Exceptions.deploy.js
  30. 2 1
      js/Kernel-Exceptions.js
  31. 13 6
      js/Kernel-Methods.deploy.js
  32. 13 6
      js/Kernel-Methods.js
  33. 72 36
      js/Kernel-Objects.deploy.js
  34. 72 36
      js/Kernel-Objects.js
  35. 222 150
      js/Kernel-Tests.deploy.js
  36. 189 129
      js/Kernel-Tests.js
  37. 4 2
      js/Kernel-Transcript.deploy.js
  38. 4 2
      js/Kernel-Transcript.js
  39. 25 16
      js/SUnit-Tests.deploy.js
  40. 25 16
      js/SUnit-Tests.js
  41. 27 14
      js/SUnit.deploy.js
  42. 27 14
      js/SUnit.js

+ 8 - 5
js/Benchfib.deploy.js

@@ -40,12 +40,13 @@ selector: "benchmark",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var size,flags,prime,k,count;
 var size,flags,prime,k,count;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 size=(8190);
 size=(8190);
 _st((1))._to_do_(self,(function(iter){
 _st((1))._to_do_(self,(function(iter){
 return smalltalk.withContext(function($ctx2) {
count=(0);
 return smalltalk.withContext(function($ctx2) {
count=(0);
 count;
 count;
-flags=_st((smalltalk.Array || Array))._new();
+flags=_st($Array())._new();
 flags;
 flags;
 _st(size)._timesRepeat_((function(){
 _st(size)._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
@@ -128,10 +129,11 @@ selector: "jstinyBenchmarks",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var t1,t2,r,n1,n2;
 var t1,t2,r,n1,n2;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 n1=(1);
 n1=(1);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t1=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 t1;
@@ -142,7 +144,7 @@ return n1;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(28);
 n2=(28);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t2=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return r;
 return r;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
@@ -165,10 +167,11 @@ selector: "tinyBenchmarks",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var t1,t2,r,n1,n2;
 var t1,t2,r,n1,n2;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 n1=(1);
 n1=(1);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t1=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 t1;
@@ -179,7 +182,7 @@ return n1;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(16);
 n2=(16);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t2=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return r;
 return r;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));

+ 8 - 5
js/Benchfib.js

@@ -51,12 +51,13 @@ category: '*Benchfib',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var size,flags,prime,k,count;
 var size,flags,prime,k,count;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 size=(8190);
 size=(8190);
 _st((1))._to_do_(self,(function(iter){
 _st((1))._to_do_(self,(function(iter){
 return smalltalk.withContext(function($ctx2) {
count=(0);
 return smalltalk.withContext(function($ctx2) {
count=(0);
 count;
 count;
-flags=_st((smalltalk.Array || Array))._new();
+flags=_st($Array())._new();
 flags;
 flags;
 _st(size)._timesRepeat_((function(){
 _st(size)._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
 return smalltalk.withContext(function($ctx3) {
return _st(flags)._add_(true);
@@ -154,10 +155,11 @@ category: '*Benchfib',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var t1,t2,r,n1,n2;
 var t1,t2,r,n1,n2;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 n1=(1);
 n1=(1);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t1=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._jsbenchmark();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 t1;
@@ -168,7 +170,7 @@ return n1;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(28);
 n2=(28);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t2=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._jsbenchFib();
 return r;
 return r;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
@@ -196,10 +198,11 @@ category: '*Benchfib',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var t1,t2,r,n1,n2;
 var t1,t2,r,n1,n2;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 n1=(1);
 n1=(1);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t1=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t1=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
 return smalltalk.withContext(function($ctx3) {
return _st(n1)._benchmark();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 t1;
 t1;
@@ -210,7 +213,7 @@ return n1;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 n2=(16);
 n2=(16);
 _st((function(){
 _st((function(){
-return smalltalk.withContext(function($ctx2) {
t2=_st((smalltalk.Date || Date))._millisecondsToRun_((function(){
+return smalltalk.withContext(function($ctx2) {
t2=_st($Date())._millisecondsToRun_((function(){
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return smalltalk.withContext(function($ctx3) {
r=_st(n2)._benchFib();
 return r;
 return r;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));

+ 28 - 17
js/Canvas.deploy.js

@@ -739,11 +739,12 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 $1=self["@root"];
 $1=self["@root"];
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-self["@root"]=_st((smalltalk.TagBrush || TagBrush))._fromString_canvas_("div",self);
+self["@root"]=_st($TagBrush())._fromString_canvas_("div",self);
 self["@root"];
 self["@root"];
 } else {
 } else {
 $1;
 $1;
@@ -758,7 +759,8 @@ smalltalk.method({
 selector: "initializeFromJQuery:",
 selector: "initializeFromJQuery:",
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@root"]=_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(aJQuery,self);
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
+return smalltalk.withContext(function($ctx1) { 
self["@root"]=_st($TagBrush())._fromJQuery_canvas_(aJQuery,self);
 return self}, function($ctx1) {$ctx1.fill(self,"initializeFromJQuery:",{aJQuery:aJQuery},smalltalk.HTMLCanvas)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initializeFromJQuery:",{aJQuery:aJQuery},smalltalk.HTMLCanvas)})},
 messageSends: ["fromJQuery:canvas:"]}),
 messageSends: ["fromJQuery:canvas:"]}),
 smalltalk.HTMLCanvas);
 smalltalk.HTMLCanvas);
@@ -912,8 +914,9 @@ smalltalk.method({
 selector: "newTag:",
 selector: "newTag:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.TagBrush || TagBrush))._fromString_canvas_(aString,self);
+$1=_st($TagBrush())._fromString_canvas_(aString,self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 messageSends: ["fromString:canvas:"]}),
 messageSends: ["fromString:canvas:"]}),
@@ -1158,16 +1161,17 @@ selector: "snippet:",
 fn: function (anElement){
 fn: function (anElement){
 var self=this;
 var self=this;
 var clone,caret;
 var clone,caret;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 clone=_st(_st(anElement)._asJQuery())._clone();
 clone=_st(_st(anElement)._asJQuery())._clone();
-_st(self)._with_(_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(clone,self));
+_st(self)._with_(_st($TagBrush())._fromJQuery_canvas_(clone,self));
 caret=_st(clone)._find_("[data-snippet=\x22*\x22]");
 caret=_st(clone)._find_("[data-snippet=\x22*\x22]");
 $1=_st(_st(caret)._toArray())._isEmpty();
 $1=_st(_st(caret)._toArray())._isEmpty();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 caret=clone;
 caret=clone;
 caret;
 caret;
 };
 };
-$2=_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(_st(caret)._removeAttr_("data-snippet"),self);
+$2=_st($TagBrush())._fromJQuery_canvas_(_st(caret)._removeAttr_("data-snippet"),self);
 return $2;
 return $2;
 }, function($ctx1) {$ctx1.fill(self,"snippet:",{anElement:anElement,clone:clone,caret:caret},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"snippet:",{anElement:anElement,clone:clone,caret:caret},smalltalk.HTMLCanvas)})},
 messageSends: ["clone", "asJQuery", "with:", "fromJQuery:canvas:", "find:", "ifTrue:", "isEmpty", "toArray", "removeAttr:"]}),
 messageSends: ["clone", "asJQuery", "with:", "fromJQuery:canvas:", "find:", "ifTrue:", "isEmpty", "toArray", "removeAttr:"]}),
@@ -1244,8 +1248,9 @@ smalltalk.method({
 selector: "style",
 selector: "style",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $StyleTag(){return smalltalk.StyleTag||(typeof StyleTag=="undefined"?nil:StyleTag)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self["@root"])._addBrush_(_st((smalltalk.StyleTag || StyleTag))._canvas_(self));
+$1=_st(self["@root"])._addBrush_(_st($StyleTag())._canvas_(self));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 messageSends: ["addBrush:", "canvas:"]}),
 messageSends: ["addBrush:", "canvas:"]}),
@@ -1509,7 +1514,7 @@ selector: "browserVersion",
 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(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._version();
+$1=_st(_st(jQuery)._at_("browser"))._version();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["version", "at:"]}),
 messageSends: ["version", "at:"]}),
@@ -1522,7 +1527,7 @@ selector: "isMSIE",
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("msie")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("msie"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
 messageSends: ["notNil", "at:"]}),
@@ -1535,7 +1540,7 @@ selector: "isMozilla",
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("mozilla")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("mozilla"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
 messageSends: ["notNil", "at:"]}),
@@ -1548,7 +1553,7 @@ selector: "isOpera",
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("opera")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("opera"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
 messageSends: ["notNil", "at:"]}),
@@ -1561,7 +1566,7 @@ selector: "isWebkit",
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("webkit")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("webkit"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
 messageSends: ["notNil", "at:"]}),
@@ -1643,9 +1648,11 @@ smalltalk.method({
 selector: "snippetAt:compile:",
 selector: "snippetAt:compile:",
 fn: function (aString,anElement){
 fn: function (aString,anElement){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(_st((function(htmlReceiver){
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($ClassBuilder())._new())._installMethod_forClass_category_(_st(_st((function(htmlReceiver){
 return smalltalk.withContext(function($ctx2) {
return _st(htmlReceiver)._snippet_(anElement);
 return smalltalk.withContext(function($ctx2) {
return _st(htmlReceiver)._snippet_(anElement);
-}, function($ctx2) {$ctx2.fillBlock({htmlReceiver:htmlReceiver},$ctx1)})}))._currySelf())._asCompiledMethod_(aString),(smalltalk.HTMLCanvas || HTMLCanvas),"**snippets");
+}, function($ctx2) {$ctx2.fillBlock({htmlReceiver:htmlReceiver},$ctx1)})}))._currySelf())._asCompiledMethod_(aString),$HTMLCanvas(),"**snippets");
 return self}, function($ctx1) {$ctx1.fill(self,"snippetAt:compile:",{aString:aString,anElement:anElement},smalltalk.HTMLSnippet)})},
 return self}, function($ctx1) {$ctx1.fill(self,"snippetAt:compile:",{aString:aString,anElement:anElement},smalltalk.HTMLSnippet)})},
 messageSends: ["installMethod:forClass:category:", "asCompiledMethod:", "currySelf", "snippet:", "new"]}),
 messageSends: ["installMethod:forClass:category:", "asCompiledMethod:", "currySelf", "snippet:", "new"]}),
 smalltalk.HTMLSnippet);
 smalltalk.HTMLSnippet);
@@ -2569,8 +2576,9 @@ smalltalk.method({
 selector: "with:",
 selector: "with:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HTMLCanvas || HTMLCanvas))._isMSIE();
+$1=_st($HTMLCanvas())._isMSIE();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 } else {
 } else {
@@ -2616,7 +2624,8 @@ smalltalk.method({
 selector: "appendToJQuery:",
 selector: "appendToJQuery:",
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._renderOn_(_st((smalltalk.HTMLCanvas || HTMLCanvas))._onJQuery_(aJQuery));
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._renderOn_(_st($HTMLCanvas())._onJQuery_(aJQuery));
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.Widget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.Widget)})},
 messageSends: ["renderOn:", "onJQuery:"]}),
 messageSends: ["renderOn:", "onJQuery:"]}),
 smalltalk.Widget);
 smalltalk.Widget);
@@ -2672,7 +2681,8 @@ smalltalk.method({
 selector: "appendToJQuery:",
 selector: "appendToJQuery:",
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._value_(_st((smalltalk.HTMLCanvas || HTMLCanvas))._onJQuery_(aJQuery));
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._value_(_st($HTMLCanvas())._onJQuery_(aJQuery));
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.BlockClosure)})},
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.BlockClosure)})},
 messageSends: ["value:", "onJQuery:"]}),
 messageSends: ["value:", "onJQuery:"]}),
 smalltalk.BlockClosure);
 smalltalk.BlockClosure);
@@ -2683,8 +2693,9 @@ smalltalk.method({
 selector: "asSnippet",
 selector: "asSnippet",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $HTMLSnippet(){return smalltalk.HTMLSnippet||(typeof HTMLSnippet=="undefined"?nil:HTMLSnippet)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.HTMLSnippet || HTMLSnippet))._current())._snippetAt_(_st(self)._asString());
+$1=_st(_st($HTMLSnippet())._current())._snippetAt_(_st(self)._asString());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 messageSends: ["snippetAt:", "asString", "current"]}),
 messageSends: ["snippetAt:", "asString", "current"]}),

+ 28 - 17
js/Canvas.js

@@ -1020,11 +1020,12 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 $1=self["@root"];
 $1=self["@root"];
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-self["@root"]=_st((smalltalk.TagBrush || TagBrush))._fromString_canvas_("div",self);
+self["@root"]=_st($TagBrush())._fromString_canvas_("div",self);
 self["@root"];
 self["@root"];
 } else {
 } else {
 $1;
 $1;
@@ -1044,7 +1045,8 @@ selector: "initializeFromJQuery:",
 category: 'initialization',
 category: 'initialization',
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@root"]=_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(aJQuery,self);
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
+return smalltalk.withContext(function($ctx1) { 
self["@root"]=_st($TagBrush())._fromJQuery_canvas_(aJQuery,self);
 return self}, function($ctx1) {$ctx1.fill(self,"initializeFromJQuery:",{aJQuery:aJQuery},smalltalk.HTMLCanvas)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initializeFromJQuery:",{aJQuery:aJQuery},smalltalk.HTMLCanvas)})},
 args: ["aJQuery"],
 args: ["aJQuery"],
 source: "initializeFromJQuery: aJQuery\x0a\x09root := TagBrush fromJQuery: aJQuery canvas: self",
 source: "initializeFromJQuery: aJQuery\x0a\x09root := TagBrush fromJQuery: aJQuery canvas: self",
@@ -1258,8 +1260,9 @@ selector: "newTag:",
 category: 'tags',
 category: 'tags',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.TagBrush || TagBrush))._fromString_canvas_(aString,self);
+$1=_st($TagBrush())._fromString_canvas_(aString,self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 args: ["aString"],
 args: ["aString"],
@@ -1599,16 +1602,17 @@ category: 'accessing',
 fn: function (anElement){
 fn: function (anElement){
 var self=this;
 var self=this;
 var clone,caret;
 var clone,caret;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 clone=_st(_st(anElement)._asJQuery())._clone();
 clone=_st(_st(anElement)._asJQuery())._clone();
-_st(self)._with_(_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(clone,self));
+_st(self)._with_(_st($TagBrush())._fromJQuery_canvas_(clone,self));
 caret=_st(clone)._find_("[data-snippet=\x22*\x22]");
 caret=_st(clone)._find_("[data-snippet=\x22*\x22]");
 $1=_st(_st(caret)._toArray())._isEmpty();
 $1=_st(_st(caret)._toArray())._isEmpty();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 caret=clone;
 caret=clone;
 caret;
 caret;
 };
 };
-$2=_st((smalltalk.TagBrush || TagBrush))._fromJQuery_canvas_(_st(caret)._removeAttr_("data-snippet"),self);
+$2=_st($TagBrush())._fromJQuery_canvas_(_st(caret)._removeAttr_("data-snippet"),self);
 return $2;
 return $2;
 }, function($ctx1) {$ctx1.fill(self,"snippet:",{anElement:anElement,clone:clone,caret:caret},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"snippet:",{anElement:anElement,clone:clone,caret:caret},smalltalk.HTMLCanvas)})},
 args: ["anElement"],
 args: ["anElement"],
@@ -1715,8 +1719,9 @@ selector: "style",
 category: 'tags',
 category: 'tags',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $StyleTag(){return smalltalk.StyleTag||(typeof StyleTag=="undefined"?nil:StyleTag)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self["@root"])._addBrush_(_st((smalltalk.StyleTag || StyleTag))._canvas_(self));
+$1=_st(self["@root"])._addBrush_(_st($StyleTag())._canvas_(self));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 args: [],
 args: [],
@@ -2080,7 +2085,7 @@ category: 'instance creation',
 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(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._version();
+$1=_st(_st(jQuery)._at_("browser"))._version();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
 args: [],
@@ -2098,7 +2103,7 @@ category: 'instance creation',
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("msie")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("msie"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
 args: [],
@@ -2116,7 +2121,7 @@ category: 'instance creation',
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("mozilla")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("mozilla"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
 args: [],
@@ -2134,7 +2139,7 @@ category: 'instance creation',
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("opera")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("opera"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
 args: [],
@@ -2152,7 +2157,7 @@ category: 'instance creation',
 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(_st(_st(jQuery)._at_(smalltalk.symbolFor("browser")))._at_(smalltalk.symbolFor("webkit")))._notNil();
+$1=_st(_st(_st(jQuery)._at_("browser"))._at_("webkit"))._notNil();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
 args: [],
@@ -2260,9 +2265,11 @@ selector: "snippetAt:compile:",
 category: 'method generation',
 category: 'method generation',
 fn: function (aString,anElement){
 fn: function (aString,anElement){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._installMethod_forClass_category_(_st(_st((function(htmlReceiver){
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($ClassBuilder())._new())._installMethod_forClass_category_(_st(_st((function(htmlReceiver){
 return smalltalk.withContext(function($ctx2) {
return _st(htmlReceiver)._snippet_(anElement);
 return smalltalk.withContext(function($ctx2) {
return _st(htmlReceiver)._snippet_(anElement);
-}, function($ctx2) {$ctx2.fillBlock({htmlReceiver:htmlReceiver},$ctx1)})}))._currySelf())._asCompiledMethod_(aString),(smalltalk.HTMLCanvas || HTMLCanvas),"**snippets");
+}, function($ctx2) {$ctx2.fillBlock({htmlReceiver:htmlReceiver},$ctx1)})}))._currySelf())._asCompiledMethod_(aString),$HTMLCanvas(),"**snippets");
 return self}, function($ctx1) {$ctx1.fill(self,"snippetAt:compile:",{aString:aString,anElement:anElement},smalltalk.HTMLSnippet)})},
 return self}, function($ctx1) {$ctx1.fill(self,"snippetAt:compile:",{aString:aString,anElement:anElement},smalltalk.HTMLSnippet)})},
 args: ["aString", "anElement"],
 args: ["aString", "anElement"],
 source: "snippetAt: aString compile: anElement\x0a\x09\x22Method generation for the snippet.\x0a\x09The selector is aString, the method block uses anElement\x22\x0a\x09\x0a\x09ClassBuilder new\x0a\x09\x09installMethod: ([ :htmlReceiver | htmlReceiver snippet: anElement ]\x0a\x09\x09\x09currySelf asCompiledMethod: aString)\x0a\x09\x09forClass: HTMLCanvas\x0a\x09\x09category: '**snippets'",
 source: "snippetAt: aString compile: anElement\x0a\x09\x22Method generation for the snippet.\x0a\x09The selector is aString, the method block uses anElement\x22\x0a\x09\x0a\x09ClassBuilder new\x0a\x09\x09installMethod: ([ :htmlReceiver | htmlReceiver snippet: anElement ]\x0a\x09\x09\x09currySelf asCompiledMethod: aString)\x0a\x09\x09forClass: HTMLCanvas\x0a\x09\x09category: '**snippets'",
@@ -3577,8 +3584,9 @@ selector: "with:",
 category: 'adding',
 category: 'adding',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HTMLCanvas || HTMLCanvas))._isMSIE();
+$1=_st($HTMLCanvas())._isMSIE();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 } else {
 } else {
@@ -3639,7 +3647,8 @@ selector: "appendToJQuery:",
 category: 'adding',
 category: 'adding',
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._renderOn_(_st((smalltalk.HTMLCanvas || HTMLCanvas))._onJQuery_(aJQuery));
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._renderOn_(_st($HTMLCanvas())._onJQuery_(aJQuery));
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.Widget)})},
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.Widget)})},
 args: ["aJQuery"],
 args: ["aJQuery"],
 source: "appendToJQuery: aJQuery\x0a\x09self renderOn: (HTMLCanvas onJQuery: aJQuery)",
 source: "appendToJQuery: aJQuery\x0a\x09self renderOn: (HTMLCanvas onJQuery: aJQuery)",
@@ -3720,7 +3729,8 @@ selector: "appendToJQuery:",
 category: '*Canvas',
 category: '*Canvas',
 fn: function (aJQuery){
 fn: function (aJQuery){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._value_(_st((smalltalk.HTMLCanvas || HTMLCanvas))._onJQuery_(aJQuery));
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._value_(_st($HTMLCanvas())._onJQuery_(aJQuery));
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.BlockClosure)})},
 return self}, function($ctx1) {$ctx1.fill(self,"appendToJQuery:",{aJQuery:aJQuery},smalltalk.BlockClosure)})},
 args: ["aJQuery"],
 args: ["aJQuery"],
 source: "appendToJQuery: aJQuery\x0a\x09self value: (HTMLCanvas onJQuery: aJQuery)",
 source: "appendToJQuery: aJQuery\x0a\x09self value: (HTMLCanvas onJQuery: aJQuery)",
@@ -3736,8 +3746,9 @@ selector: "asSnippet",
 category: '*Canvas',
 category: '*Canvas',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $HTMLSnippet(){return smalltalk.HTMLSnippet||(typeof HTMLSnippet=="undefined"?nil:HTMLSnippet)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.HTMLSnippet || HTMLSnippet))._current())._snippetAt_(_st(self)._asString());
+$1=_st(_st($HTMLSnippet())._current())._snippetAt_(_st(self)._asString());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 args: [],
 args: [],

+ 18 - 9
js/Compiler-AST.deploy.js

@@ -118,10 +118,11 @@ smalltalk.method({
 selector: "nodes",
 selector: "nodes",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@nodes"];
 $2=self["@nodes"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@nodes"]=_st((smalltalk.Array || Array))._new();
+self["@nodes"]=_st($Array())._new();
 $1=self["@nodes"];
 $1=self["@nodes"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -308,8 +309,9 @@ smalltalk.method({
 selector: "nodes",
 selector: "nodes",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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($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"]}),
@@ -372,10 +374,11 @@ smalltalk.method({
 selector: "parameters",
 selector: "parameters",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@parameters"];
 $2=self["@parameters"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@parameters"]=_st((smalltalk.Array || Array))._new();
+self["@parameters"]=_st($Array())._new();
 $1=self["@parameters"];
 $1=self["@parameters"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -858,15 +861,18 @@ selector: "cascadeNodeWithMessages:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var first;
 var first;
+function $SendNode(){return smalltalk.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
+function $CascadeNode(){return smalltalk.CascadeNode||(typeof CascadeNode=="undefined"?nil:CascadeNode)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
-$1=_st((smalltalk.SendNode || SendNode))._new();
+$1=_st($SendNode())._new();
 _st($1)._selector_(_st(self)._selector());
 _st($1)._selector_(_st(self)._selector());
 _st($1)._arguments_(_st(self)._arguments());
 _st($1)._arguments_(_st(self)._arguments());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 first=$2;
 first=$2;
-$4=_st((smalltalk.CascadeNode || CascadeNode))._new();
+$4=_st($CascadeNode())._new();
 _st($4)._receiver_(_st(self)._receiver());
 _st($4)._receiver_(_st(self)._receiver());
-_st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aCollection));
+_st($4)._nodes_(_st(_st($Array())._with_(first)).__comma(aCollection));
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $3=$5;
 $3=$5;
 return $3;
 return $3;
@@ -915,8 +921,9 @@ smalltalk.method({
 selector: "nodes",
 selector: "nodes",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Array || Array))._withAll_(_st(self)._arguments());
+$2=_st($Array())._withAll_(_st(self)._arguments());
 _st($2)._add_(_st(self)._receiver());
 _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -1008,8 +1015,9 @@ smalltalk.method({
 selector: "valueForReceiver:",
 selector: "valueForReceiver:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $SendNode(){return smalltalk.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$6,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$6,$1;
-$2=_st((smalltalk.SendNode || SendNode))._new();
+$2=_st($SendNode())._new();
 $3=$2;
 $3=$2;
 $5=_st(self)._receiver();
 $5=_st(self)._receiver();
 if(($receiver = $5) == nil || $receiver == undefined){
 if(($receiver = $5) == nil || $receiver == undefined){
@@ -1049,8 +1057,9 @@ smalltalk.method({
 selector: "asBlockSequenceNode",
 selector: "asBlockSequenceNode",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $BlockSequenceNode(){return smalltalk.BlockSequenceNode||(typeof BlockSequenceNode=="undefined"?nil:BlockSequenceNode)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.BlockSequenceNode || BlockSequenceNode))._new();
+$2=_st($BlockSequenceNode())._new();
 _st($2)._nodes_(_st(self)._nodes());
 _st($2)._nodes_(_st(self)._nodes());
 _st($2)._temps_(_st(self)._temps());
 _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();

+ 18 - 9
js/Compiler-AST.js

@@ -170,10 +170,11 @@ selector: "nodes",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@nodes"];
 $2=self["@nodes"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@nodes"]=_st((smalltalk.Array || Array))._new();
+self["@nodes"]=_st($Array())._new();
 $1=self["@nodes"];
 $1=self["@nodes"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -425,8 +426,9 @@ selector: "nodes",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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($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: [],
@@ -514,10 +516,11 @@ selector: "parameters",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@parameters"];
 $2=self["@parameters"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@parameters"]=_st((smalltalk.Array || Array))._new();
+self["@parameters"]=_st($Array())._new();
 $1=self["@parameters"];
 $1=self["@parameters"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1180,15 +1183,18 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var first;
 var first;
+function $SendNode(){return smalltalk.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
+function $CascadeNode(){return smalltalk.CascadeNode||(typeof CascadeNode=="undefined"?nil:CascadeNode)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
-$1=_st((smalltalk.SendNode || SendNode))._new();
+$1=_st($SendNode())._new();
 _st($1)._selector_(_st(self)._selector());
 _st($1)._selector_(_st(self)._selector());
 _st($1)._arguments_(_st(self)._arguments());
 _st($1)._arguments_(_st(self)._arguments());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 first=$2;
 first=$2;
-$4=_st((smalltalk.CascadeNode || CascadeNode))._new();
+$4=_st($CascadeNode())._new();
 _st($4)._receiver_(_st(self)._receiver());
 _st($4)._receiver_(_st(self)._receiver());
-_st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aCollection));
+_st($4)._nodes_(_st(_st($Array())._with_(first)).__comma(aCollection));
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $3=$5;
 $3=$5;
 return $3;
 return $3;
@@ -1257,8 +1263,9 @@ selector: "nodes",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Array || Array))._withAll_(_st(self)._arguments());
+$2=_st($Array())._withAll_(_st(self)._arguments());
 _st($2)._add_(_st(self)._receiver());
 _st($2)._add_(_st(self)._receiver());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -1385,8 +1392,9 @@ selector: "valueForReceiver:",
 category: 'accessing',
 category: 'accessing',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $SendNode(){return smalltalk.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$6,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$5,$4,$6,$1;
-$2=_st((smalltalk.SendNode || SendNode))._new();
+$2=_st($SendNode())._new();
 $3=$2;
 $3=$2;
 $5=_st(self)._receiver();
 $5=_st(self)._receiver();
 if(($receiver = $5) == nil || $receiver == undefined){
 if(($receiver = $5) == nil || $receiver == undefined){
@@ -1436,8 +1444,9 @@ selector: "asBlockSequenceNode",
 category: 'testing',
 category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $BlockSequenceNode(){return smalltalk.BlockSequenceNode||(typeof BlockSequenceNode=="undefined"?nil:BlockSequenceNode)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.BlockSequenceNode || BlockSequenceNode))._new();
+$2=_st($BlockSequenceNode())._new();
 _st($2)._nodes_(_st(self)._nodes());
 _st($2)._nodes_(_st(self)._nodes());
 _st($2)._temps_(_st(self)._temps());
 _st($2)._temps_(_st(self)._temps());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();

+ 27 - 13
js/Compiler-Core.deploy.js

@@ -64,7 +64,9 @@ smalltalk.method({
 selector: "pseudoVariables",
 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) { 
var $1;
+$1=["self", "super", "true", "false", "nil", "thisContext"];
+return $1;
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariables",{},smalltalk.AbstractCodeGenerator)})},
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariables",{},smalltalk.AbstractCodeGenerator)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
 smalltalk.AbstractCodeGenerator);
@@ -75,8 +77,9 @@ smalltalk.method({
 selector: "safeVariableNameFor:",
 selector: "safeVariableNameFor:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$2=_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._reservedWords())._includes_(aString);
+$2=_st(_st(_st($Smalltalk())._current())._reservedWords())._includes_(aString);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(aString).__comma("_");
 $1=_st(aString).__comma("_");
 } else {
 } else {
@@ -144,8 +147,9 @@ smalltalk.method({
 selector: "irTranslator",
 selector: "irTranslator",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRJSTranslator(){return smalltalk.IRJSTranslator||(typeof IRJSTranslator=="undefined"?nil:IRJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
+$1=_st($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"]}),
@@ -157,8 +161,9 @@ smalltalk.method({
 selector: "semanticAnalyzer",
 selector: "semanticAnalyzer",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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($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"]}),
@@ -170,8 +175,9 @@ smalltalk.method({
 selector: "translator",
 selector: "translator",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRASTTranslator(){return smalltalk.IRASTTranslator||(typeof IRASTTranslator=="undefined"?nil:IRASTTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRASTTranslator || IRASTTranslator))._new();
+$2=_st($IRASTTranslator())._new();
 _st($2)._source_(_st(self)._source());
 _st($2)._source_(_st(self)._source());
 _st($2)._theClass_(_st(self)._currentClass());
 _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
@@ -190,10 +196,11 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 selector: "codeGeneratorClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@codeGeneratorClass"];
 $2=self["@codeGeneratorClass"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 } else {
 } else {
 $1=$2;
 $1=$2;
 };
 };
@@ -247,8 +254,9 @@ smalltalk.method({
 selector: "compileExpression:",
 selector: "compileExpression:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-_st(self)._currentClass_((smalltalk.DoIt || DoIt));
+_st(self)._currentClass_($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;
@@ -332,8 +340,9 @@ smalltalk.method({
 selector: "evaluateExpression:",
 selector: "evaluateExpression:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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($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"]}),
@@ -364,8 +373,9 @@ smalltalk.method({
 selector: "install:forClass:category:",
 selector: "install:forClass:category:",
 fn: function (aString,aBehavior,anotherString){
 fn: function (aString,aBehavior,anotherString){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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"]}),
@@ -377,8 +387,9 @@ smalltalk.method({
 selector: "parse:",
 selector: "parse:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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())._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"]}),
@@ -422,9 +433,11 @@ smalltalk.method({
 selector: "recompileAll",
 selector: "recompileAll",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Transcript(){return smalltalk.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$1=(smalltalk.Transcript || Transcript);
+_st(_st(_st($Smalltalk())._current())._classes())._do_((function(each){
+return smalltalk.withContext(function($ctx2) {
$1=$Transcript();
 _st($1)._show_(each);
 _st($1)._show_(each);
 $2=_st($1)._cr();
 $2=_st($1)._cr();
 $2;
 $2;
@@ -507,7 +520,8 @@ smalltalk.method({
 selector: "recompileAll",
 selector: "recompileAll",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(_st($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)})},

+ 27 - 13
js/Compiler-Core.js

@@ -86,7 +86,9 @@ selector: "pseudoVariables",
 category: 'accessing',
 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) { 
var $1;
+$1=["self", "super", "true", "false", "nil", "thisContext"];
+return $1;
 }, 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')",
@@ -102,8 +104,9 @@ selector: "safeVariableNameFor:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$2=_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._reservedWords())._includes_(aString);
+$2=_st(_st(_st($Smalltalk())._current())._reservedWords())._includes_(aString);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(aString).__comma("_");
 $1=_st(aString).__comma("_");
 } else {
 } else {
@@ -192,8 +195,9 @@ selector: "irTranslator",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRJSTranslator(){return smalltalk.IRJSTranslator||(typeof IRJSTranslator=="undefined"?nil:IRJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
+$1=_st($IRJSTranslator())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 args: [],
 args: [],
@@ -210,8 +214,9 @@ selector: "semanticAnalyzer",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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($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: [],
@@ -228,8 +233,9 @@ selector: "translator",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRASTTranslator(){return smalltalk.IRASTTranslator||(typeof IRASTTranslator=="undefined"?nil:IRASTTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRASTTranslator || IRASTTranslator))._new();
+$2=_st($IRASTTranslator())._new();
 _st($2)._source_(_st(self)._source());
 _st($2)._source_(_st(self)._source());
 _st($2)._theClass_(_st(self)._currentClass());
 _st($2)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
@@ -254,10 +260,11 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@codeGeneratorClass"];
 $2=self["@codeGeneratorClass"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 } else {
 } else {
 $1=$2;
 $1=$2;
 };
 };
@@ -331,8 +338,9 @@ selector: "compileExpression:",
 category: 'compiling',
 category: 'compiling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-_st(self)._currentClass_((smalltalk.DoIt || DoIt));
+_st(self)._currentClass_($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;
@@ -446,8 +454,9 @@ selector: "evaluateExpression:",
 category: 'compiling',
 category: 'compiling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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($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"],
@@ -488,8 +497,9 @@ selector: "install:forClass:category:",
 category: 'compiling',
 category: 'compiling',
 fn: function (aString,aBehavior,anotherString){
 fn: function (aString,aBehavior,anotherString){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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"],
@@ -506,8 +516,9 @@ selector: "parse:",
 category: 'compiling',
 category: 'compiling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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())._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"],
@@ -566,9 +577,11 @@ selector: "recompileAll",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Transcript(){return smalltalk.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$1=(smalltalk.Transcript || Transcript);
+_st(_st(_st($Smalltalk())._current())._classes())._do_((function(each){
+return smalltalk.withContext(function($ctx2) {
$1=$Transcript();
 _st($1)._show_(each);
 _st($1)._show_(each);
 $2=_st($1)._cr();
 $2=_st($1)._cr();
 $2;
 $2;
@@ -681,7 +694,8 @@ selector: "recompileAll",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._classes())._do_((function(each){
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(_st($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)})},

+ 60 - 30
js/Compiler-IR.deploy.js

@@ -7,17 +7,20 @@ selector: "alias:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var variable;
 var variable;
+function $AliasVar(){return smalltalk.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)}
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 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=_st(aNode)._isImmutable();
 $1=_st(aNode)._isImmutable();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(self)._visit_(aNode);
 $2=_st(self)._visit_(aNode);
 return $2;
 return $2;
 };
 };
-$3=_st((smalltalk.IRVariable || IRVariable))._new();
-_st($3)._variable_(_st(_st((smalltalk.AliasVar || AliasVar))._new())._name_(_st("$").__comma(_st(self)._nextAlias())));
+$3=_st($IRVariable())._new();
+_st($3)._variable_(_st(_st($AliasVar())._new())._name_(_st("$").__comma(_st(self)._nextAlias())));
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 variable=$4;
 variable=$4;
-$5=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$5=_st($IRAssignment())._new();
 _st($5)._add_(variable);
 _st($5)._add_(variable);
 _st($5)._add_(_st(self)._visit_(aNode));
 _st($5)._add_(_st(self)._visit_(aNode));
 $6=_st($5)._yourself();
 $6=_st($5)._yourself();
@@ -36,6 +39,7 @@ selector: "aliasTemporally:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var threshold,result;
 var threshold,result;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$3,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$3,$5;
 threshold=(0);
 threshold=(0);
 _st(aCollection)._withIndexDo_((function(each,i){
 _st(aCollection)._withIndexDo_((function(each,i){
@@ -45,7 +49,7 @@ threshold=i;
 return threshold;
 return threshold;
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})}));
-result=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+result=_st($OrderedCollection())._new();
 _st(aCollection)._withIndexDo_((function(each,i){
 _st(aCollection)._withIndexDo_((function(each,i){
 return smalltalk.withContext(function($ctx2) {
$2=result;
 return smalltalk.withContext(function($ctx2) {
$2=result;
 $4=_st(i).__lt_eq(threshold);
 $4=_st(i).__lt_eq(threshold);
@@ -186,10 +190,11 @@ selector: "visitAssignmentNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var left,right,assignment;
 var left,right,assignment;
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 right=_st(self)._visit_(_st(aNode)._right());
 right=_st(self)._visit_(_st(aNode)._right());
 left=_st(self)._visit_(_st(aNode)._left());
 left=_st(self)._visit_(_st(aNode)._left());
-$1=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$1=_st($IRAssignment())._new();
 _st($1)._add_(left);
 _st($1)._add_(left);
 _st($1)._add_(right);
 _st($1)._add_(right);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
@@ -207,14 +212,16 @@ selector: "visitBlockNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var closure;
 var closure;
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
-$1=_st((smalltalk.IRClosure || IRClosure))._new();
+$1=_st($IRClosure())._new();
 _st($1)._arguments_(_st(aNode)._parameters());
 _st($1)._arguments_(_st(aNode)._parameters());
 _st($1)._scope_(_st(aNode)._scope());
 _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 closure=$2;
 closure=$2;
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$3=_st((smalltalk.IRTempDeclaration || IRTempDeclaration))._new();
+return smalltalk.withContext(function($ctx2) {
$3=_st($IRTempDeclaration())._new();
 _st($3)._name_(_st(each)._name());
 _st($3)._name_(_st(each)._name());
 _st($3)._scope_(_st(aNode)._scope());
 _st($3)._scope_(_st(aNode)._scope());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
@@ -235,8 +242,10 @@ smalltalk.method({
 selector: "visitBlockSequenceNode:",
 selector: "visitBlockSequenceNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
+function $IRBlockReturn(){return smalltalk.IRBlockReturn||(typeof IRBlockReturn=="undefined"?nil:IRBlockReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$1;
-$1=_st(self)._withSequence_do_(_st((smalltalk.IRBlockSequence || IRBlockSequence))._new(),(function(){
+$1=_st(self)._withSequence_do_(_st($IRBlockSequence())._new(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx3) {
_st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
_st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx4) {
return _st(_st(self)._sequence())._add_(_st(self)._visit_(each));
 return smalltalk.withContext(function($ctx4) {
return _st(_st(self)._sequence())._add_(_st(self)._visit_(each));
@@ -245,7 +254,7 @@ $2=_st(_st(_st(aNode)._nodes())._last())._isReturnNode();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 } else {
 } else {
-$3=_st((smalltalk.IRBlockReturn || IRBlockReturn))._new();
+$3=_st($IRBlockReturn())._new();
 _st($3)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 _st($3)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 return _st(_st(self)._sequence())._add_($4);
 return _st(_st(self)._sequence())._add_($4);
@@ -264,13 +273,14 @@ selector: "visitCascadeNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var alias;
 var alias;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(_st(aNode)._receiver())._isImmutable();
 $1=_st(_st(aNode)._receiver())._isImmutable();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 alias=_st(self)._alias_(_st(aNode)._receiver());
 alias=_st(self)._alias_(_st(aNode)._receiver());
 alias;
 alias;
 _st(_st(aNode)._nodes())._do_((function(each){
 _st(_st(aNode)._nodes())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(_st((smalltalk.VariableNode || VariableNode))._new())._binding_(_st(alias)._variable()));
+return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(_st($VariableNode())._new())._binding_(_st(alias)._variable()));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
 };
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
@@ -289,8 +299,9 @@ selector: "visitDynamicArrayNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var array;
 var array;
+function $IRDynamicArray(){return smalltalk.IRDynamicArray||(typeof IRDynamicArray=="undefined"?nil:IRDynamicArray)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-array=_st((smalltalk.IRDynamicArray || IRDynamicArray))._new();
+array=_st($IRDynamicArray())._new();
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(array)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(array)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -307,8 +318,9 @@ selector: "visitDynamicDictionaryNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var dictionary;
 var dictionary;
+function $IRDynamicDictionary(){return smalltalk.IRDynamicDictionary||(typeof IRDynamicDictionary=="undefined"?nil:IRDynamicDictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-dictionary=_st((smalltalk.IRDynamicDictionary || IRDynamicDictionary))._new();
+dictionary=_st($IRDynamicDictionary())._new();
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(dictionary)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(dictionary)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -324,8 +336,9 @@ smalltalk.method({
 selector: "visitJSStatementNode:",
 selector: "visitJSStatementNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRVerbatim(){return smalltalk.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRVerbatim || IRVerbatim))._new();
+$2=_st($IRVerbatim())._new();
 _st($2)._source_(_st(aNode)._source());
 _st($2)._source_(_st(aNode)._source());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -340,8 +353,12 @@ smalltalk.method({
 selector: "visitMethodNode:",
 selector: "visitMethodNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRMethod(){return smalltalk.IRMethod||(typeof IRMethod=="undefined"?nil:IRMethod)}
+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
-$1=_st((smalltalk.IRMethod || IRMethod))._new();
+$1=_st($IRMethod())._new();
 _st($1)._source_(_st(self)._source());
 _st($1)._source_(_st(self)._source());
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._arguments_(_st(aNode)._arguments());
 _st($1)._arguments_(_st(aNode)._arguments());
@@ -353,7 +370,7 @@ _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(self)._method_($2);
 _st(self)._method_($2);
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$3=_st((smalltalk.IRTempDeclaration || IRTempDeclaration))._new();
+return smalltalk.withContext(function($ctx2) {
$3=_st($IRTempDeclaration())._new();
 _st($3)._name_(_st(each)._name());
 _st($3)._name_(_st(each)._name());
 _st($3)._scope_(_st(aNode)._scope());
 _st($3)._scope_(_st(aNode)._scope());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
@@ -364,10 +381,10 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._method())._
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $5=_st(_st(aNode)._scope())._hasLocalReturn();
 $5=_st(_st(aNode)._scope())._hasLocalReturn();
 if(! smalltalk.assert($5)){
 if(! smalltalk.assert($5)){
-$6=_st((smalltalk.IRVariable || IRVariable))._new();
+$6=_st($IRVariable())._new();
 _st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
 _st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
 $7=_st($6)._yourself();
 $7=_st($6)._yourself();
-_st(_st(_st(self)._method())._add_(_st((smalltalk.IRReturn || IRReturn))._new()))._add_($7);
+_st(_st(_st(self)._method())._add_(_st($IRReturn())._new()))._add_($7);
 };
 };
 $8=_st(self)._method();
 $8=_st(self)._method();
 return $8;
 return $8;
@@ -382,12 +399,14 @@ selector: "visitReturnNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var return_;
 var return_;
+function $IRNonLocalReturn(){return smalltalk.IRNonLocalReturn||(typeof IRNonLocalReturn=="undefined"?nil:IRNonLocalReturn)}
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(aNode)._nonLocalReturn();
 $1=_st(aNode)._nonLocalReturn();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-return_=_st((smalltalk.IRNonLocalReturn || IRNonLocalReturn))._new();
+return_=_st($IRNonLocalReturn())._new();
 } else {
 } else {
-return_=_st((smalltalk.IRReturn || IRReturn))._new();
+return_=_st($IRReturn())._new();
 };
 };
 _st(return_)._scope_(_st(aNode)._scope());
 _st(return_)._scope_(_st(aNode)._scope());
 _st(_st(aNode)._nodes())._do_((function(each){
 _st(_st(aNode)._nodes())._do_((function(each){
@@ -406,8 +425,9 @@ selector: "visitSendNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var send,all,receiver,arguments;
 var send,all,receiver,arguments;
+function $IRSend(){return smalltalk.IRSend||(typeof IRSend=="undefined"?nil:IRSend)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
-send=_st((smalltalk.IRSend || IRSend))._new();
+send=_st($IRSend())._new();
 $1=send;
 $1=send;
 _st($1)._selector_(_st(aNode)._selector());
 _st($1)._selector_(_st(aNode)._selector());
 $2=_st($1)._index_(_st(aNode)._index());
 $2=_st($1)._index_(_st(aNode)._index());
@@ -434,8 +454,9 @@ smalltalk.method({
 selector: "visitSequenceNode:",
 selector: "visitSequenceNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRSequence(){return smalltalk.IRSequence||(typeof IRSequence=="undefined"?nil:IRSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$1=_st(self)._withSequence_do_(_st((smalltalk.IRSequence || IRSequence))._new(),(function(){
+$1=_st(self)._withSequence_do_(_st($IRSequence())._new(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._do_((function(each){
 var instruction;
 var instruction;
 return smalltalk.withContext(function($ctx3) {
instruction=_st(self)._visit_(each);
 return smalltalk.withContext(function($ctx3) {
instruction=_st(self)._visit_(each);
@@ -457,8 +478,9 @@ smalltalk.method({
 selector: "visitValueNode:",
 selector: "visitValueNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRValue(){return smalltalk.IRValue||(typeof IRValue=="undefined"?nil:IRValue)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRValue || IRValue))._new();
+$2=_st($IRValue())._new();
 _st($2)._value_(_st(aNode)._value());
 _st($2)._value_(_st(aNode)._value());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -473,8 +495,9 @@ smalltalk.method({
 selector: "visitVariableNode:",
 selector: "visitVariableNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRVariable || IRVariable))._new();
+$2=_st($IRVariable())._new();
 _st($2)._variable_(_st(aNode)._binding());
 _st($2)._variable_(_st(aNode)._binding());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -548,10 +571,11 @@ smalltalk.method({
 selector: "instructions",
 selector: "instructions",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@instructions"];
 $2=self["@instructions"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@instructions"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@instructions"]=_st($OrderedCollection())._new();
 $1=self["@instructions"];
 $1=self["@instructions"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -996,10 +1020,11 @@ smalltalk.method({
 selector: "internalVariables",
 selector: "internalVariables",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@internalVariables"];
 $2=self["@internalVariables"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@internalVariables"]=_st((smalltalk.Set || Set))._new();
+self["@internalVariables"]=_st($Set())._new();
 $1=self["@internalVariables"];
 $1=self["@internalVariables"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1892,8 +1917,9 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $JSStream(){return smalltalk.JSStream||(typeof JSStream=="undefined"?nil:JSStream)}
 return smalltalk.withContext(function($ctx1) { 
smalltalk.IRVisitor.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.IRVisitor.fn.prototype._initialize.apply(_st(self), []);
-self["@stream"]=_st((smalltalk.JSStream || JSStream))._new();
+self["@stream"]=_st($JSStream())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})},
 messageSends: ["initialize", "new"]}),
 messageSends: ["initialize", "new"]}),
 smalltalk.IRJSTranslator);
 smalltalk.IRJSTranslator);
@@ -2231,10 +2257,11 @@ smalltalk.method({
 selector: "nextPutBlockContextFor:during:",
 selector: "nextPutBlockContextFor:during:",
 fn: function (anIRClosure,aBlock){
 fn: function (anIRClosure,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 $1=self;
 $1=self;
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
-$2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$2=_st($1)._nextPutAll_(_st($String())._cr());
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self;
 $3=self;
 _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
 _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
@@ -2305,10 +2332,11 @@ smalltalk.method({
 selector: "nextPutContextFor:during:",
 selector: "nextPutContextFor:during:",
 fn: function (aMethod,aBlock){
 fn: function (aMethod,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 $1=self;
 $1=self;
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") { "));
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") { "));
-$2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$2=_st($1)._nextPutAll_(_st($String())._cr());
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self;
 $3=self;
 _st($3)._nextPutAll_(_st(_st(_st("}, function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") {")).__comma(_st(_st(aMethod)._scope())._alias()));
 _st($3)._nextPutAll_(_st(_st(_st("}, function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") {")).__comma(_st(_st(aMethod)._scope())._alias()));
@@ -2401,6 +2429,7 @@ smalltalk.method({
 selector: "nextPutMethodDeclaration:with:",
 selector: "nextPutMethodDeclaration:with:",
 fn: function (aMethod,aBlock){
 fn: function (aMethod,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 $1=self["@stream"];
 $1=self["@stream"];
 _st($1)._nextPutAll_("smalltalk.method({");
 _st($1)._nextPutAll_("smalltalk.method({");
@@ -2411,7 +2440,7 @@ _st($1)._nextPutAll_(_st(_st("source: ").__comma(_st(_st(aMethod)._source())._as
 $2=_st($1)._lf();
 $2=_st($1)._lf();
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self["@stream"];
 $3=self["@stream"];
-_st($3)._nextPutAll_(_st(_st(",").__comma(_st((smalltalk.String || String))._lf())).__comma("messageSends: "));
+_st($3)._nextPutAll_(_st(_st(",").__comma(_st($String())._lf())).__comma("messageSends: "));
 _st($3)._nextPutAll_(_st(_st(_st(_st(aMethod)._messageSends())._asArray())._asJavascript()).__comma(","));
 _st($3)._nextPutAll_(_st(_st(_st(_st(aMethod)._messageSends())._asArray())._asJavascript()).__comma(","));
 _st($3)._lf();
 _st($3)._lf();
 _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
 _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
@@ -2580,8 +2609,9 @@ smalltalk.method({
 selector: "asVariableName",
 selector: "asVariableName",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$2=_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._reservedWords())._includes_(self);
+$2=_st(_st(_st($Smalltalk())._current())._reservedWords())._includes_(self);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(self).__comma("_");
 $1=_st(self).__comma("_");
 } else {
 } else {

+ 60 - 30
js/Compiler-IR.js

@@ -9,17 +9,20 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var variable;
 var variable;
+function $AliasVar(){return smalltalk.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)}
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 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=_st(aNode)._isImmutable();
 $1=_st(aNode)._isImmutable();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(self)._visit_(aNode);
 $2=_st(self)._visit_(aNode);
 return $2;
 return $2;
 };
 };
-$3=_st((smalltalk.IRVariable || IRVariable))._new();
-_st($3)._variable_(_st(_st((smalltalk.AliasVar || AliasVar))._new())._name_(_st("$").__comma(_st(self)._nextAlias())));
+$3=_st($IRVariable())._new();
+_st($3)._variable_(_st(_st($AliasVar())._new())._name_(_st("$").__comma(_st(self)._nextAlias())));
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 variable=$4;
 variable=$4;
-$5=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$5=_st($IRAssignment())._new();
 _st($5)._add_(variable);
 _st($5)._add_(variable);
 _st($5)._add_(_st(self)._visit_(aNode));
 _st($5)._add_(_st(self)._visit_(aNode));
 $6=_st($5)._yourself();
 $6=_st($5)._yourself();
@@ -43,6 +46,7 @@ category: 'visiting',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var threshold,result;
 var threshold,result;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$3,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$3,$5;
 threshold=(0);
 threshold=(0);
 _st(aCollection)._withIndexDo_((function(each,i){
 _st(aCollection)._withIndexDo_((function(each,i){
@@ -52,7 +56,7 @@ threshold=i;
 return threshold;
 return threshold;
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})}));
-result=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+result=_st($OrderedCollection())._new();
 _st(aCollection)._withIndexDo_((function(each,i){
 _st(aCollection)._withIndexDo_((function(each,i){
 return smalltalk.withContext(function($ctx2) {
$2=result;
 return smalltalk.withContext(function($ctx2) {
$2=result;
 $4=_st(i).__lt_eq(threshold);
 $4=_st(i).__lt_eq(threshold);
@@ -243,10 +247,11 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var left,right,assignment;
 var left,right,assignment;
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 right=_st(self)._visit_(_st(aNode)._right());
 right=_st(self)._visit_(_st(aNode)._right());
 left=_st(self)._visit_(_st(aNode)._left());
 left=_st(self)._visit_(_st(aNode)._left());
-$1=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$1=_st($IRAssignment())._new();
 _st($1)._add_(left);
 _st($1)._add_(left);
 _st($1)._add_(right);
 _st($1)._add_(right);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
@@ -269,14 +274,16 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var closure;
 var closure;
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
-$1=_st((smalltalk.IRClosure || IRClosure))._new();
+$1=_st($IRClosure())._new();
 _st($1)._arguments_(_st(aNode)._parameters());
 _st($1)._arguments_(_st(aNode)._parameters());
 _st($1)._scope_(_st(aNode)._scope());
 _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 closure=$2;
 closure=$2;
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$3=_st((smalltalk.IRTempDeclaration || IRTempDeclaration))._new();
+return smalltalk.withContext(function($ctx2) {
$3=_st($IRTempDeclaration())._new();
 _st($3)._name_(_st(each)._name());
 _st($3)._name_(_st(each)._name());
 _st($3)._scope_(_st(aNode)._scope());
 _st($3)._scope_(_st(aNode)._scope());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
@@ -302,8 +309,10 @@ selector: "visitBlockSequenceNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
+function $IRBlockReturn(){return smalltalk.IRBlockReturn||(typeof IRBlockReturn=="undefined"?nil:IRBlockReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$1;
-$1=_st(self)._withSequence_do_(_st((smalltalk.IRBlockSequence || IRBlockSequence))._new(),(function(){
+$1=_st(self)._withSequence_do_(_st($IRBlockSequence())._new(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx3) {
_st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
_st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 return smalltalk.withContext(function($ctx4) {
return _st(_st(self)._sequence())._add_(_st(self)._visit_(each));
 return smalltalk.withContext(function($ctx4) {
return _st(_st(self)._sequence())._add_(_st(self)._visit_(each));
@@ -312,7 +321,7 @@ $2=_st(_st(_st(aNode)._nodes())._last())._isReturnNode();
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 } else {
 } else {
-$3=_st((smalltalk.IRBlockReturn || IRBlockReturn))._new();
+$3=_st($IRBlockReturn())._new();
 _st($3)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 _st($3)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 return _st(_st(self)._sequence())._add_($4);
 return _st(_st(self)._sequence())._add_($4);
@@ -336,13 +345,14 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var alias;
 var alias;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(_st(aNode)._receiver())._isImmutable();
 $1=_st(_st(aNode)._receiver())._isImmutable();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
 alias=_st(self)._alias_(_st(aNode)._receiver());
 alias=_st(self)._alias_(_st(aNode)._receiver());
 alias;
 alias;
 _st(_st(aNode)._nodes())._do_((function(each){
 _st(_st(aNode)._nodes())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(_st((smalltalk.VariableNode || VariableNode))._new())._binding_(_st(alias)._variable()));
+return smalltalk.withContext(function($ctx2) {
return _st(each)._receiver_(_st(_st($VariableNode())._new())._binding_(_st(alias)._variable()));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 };
 };
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
@@ -366,8 +376,9 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var array;
 var array;
+function $IRDynamicArray(){return smalltalk.IRDynamicArray||(typeof IRDynamicArray=="undefined"?nil:IRDynamicArray)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-array=_st((smalltalk.IRDynamicArray || IRDynamicArray))._new();
+array=_st($IRDynamicArray())._new();
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(array)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(array)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -389,8 +400,9 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var dictionary;
 var dictionary;
+function $IRDynamicDictionary(){return smalltalk.IRDynamicDictionary||(typeof IRDynamicDictionary=="undefined"?nil:IRDynamicDictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-dictionary=_st((smalltalk.IRDynamicDictionary || IRDynamicDictionary))._new();
+dictionary=_st($IRDynamicDictionary())._new();
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(dictionary)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(dictionary)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -411,8 +423,9 @@ selector: "visitJSStatementNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRVerbatim(){return smalltalk.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRVerbatim || IRVerbatim))._new();
+$2=_st($IRVerbatim())._new();
 _st($2)._source_(_st(aNode)._source());
 _st($2)._source_(_st(aNode)._source());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -432,8 +445,12 @@ selector: "visitMethodNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRMethod(){return smalltalk.IRMethod||(typeof IRMethod=="undefined"?nil:IRMethod)}
+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
-$1=_st((smalltalk.IRMethod || IRMethod))._new();
+$1=_st($IRMethod())._new();
 _st($1)._source_(_st(self)._source());
 _st($1)._source_(_st(self)._source());
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._arguments_(_st(aNode)._arguments());
 _st($1)._arguments_(_st(aNode)._arguments());
@@ -445,7 +462,7 @@ _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 _st(self)._method_($2);
 _st(self)._method_($2);
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
 _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$3=_st((smalltalk.IRTempDeclaration || IRTempDeclaration))._new();
+return smalltalk.withContext(function($ctx2) {
$3=_st($IRTempDeclaration())._new();
 _st($3)._name_(_st(each)._name());
 _st($3)._name_(_st(each)._name());
 _st($3)._scope_(_st(aNode)._scope());
 _st($3)._scope_(_st(aNode)._scope());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
@@ -456,10 +473,10 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._method())._
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $5=_st(_st(aNode)._scope())._hasLocalReturn();
 $5=_st(_st(aNode)._scope())._hasLocalReturn();
 if(! smalltalk.assert($5)){
 if(! smalltalk.assert($5)){
-$6=_st((smalltalk.IRVariable || IRVariable))._new();
+$6=_st($IRVariable())._new();
 _st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
 _st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
 $7=_st($6)._yourself();
 $7=_st($6)._yourself();
-_st(_st(_st(self)._method())._add_(_st((smalltalk.IRReturn || IRReturn))._new()))._add_($7);
+_st(_st(_st(self)._method())._add_(_st($IRReturn())._new()))._add_($7);
 };
 };
 $8=_st(self)._method();
 $8=_st(self)._method();
 return $8;
 return $8;
@@ -479,12 +496,14 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var return_;
 var return_;
+function $IRNonLocalReturn(){return smalltalk.IRNonLocalReturn||(typeof IRNonLocalReturn=="undefined"?nil:IRNonLocalReturn)}
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(aNode)._nonLocalReturn();
 $1=_st(aNode)._nonLocalReturn();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-return_=_st((smalltalk.IRNonLocalReturn || IRNonLocalReturn))._new();
+return_=_st($IRNonLocalReturn())._new();
 } else {
 } else {
-return_=_st((smalltalk.IRReturn || IRReturn))._new();
+return_=_st($IRReturn())._new();
 };
 };
 _st(return_)._scope_(_st(aNode)._scope());
 _st(return_)._scope_(_st(aNode)._scope());
 _st(_st(aNode)._nodes())._do_((function(each){
 _st(_st(aNode)._nodes())._do_((function(each){
@@ -508,8 +527,9 @@ category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var send,all,receiver,arguments;
 var send,all,receiver,arguments;
+function $IRSend(){return smalltalk.IRSend||(typeof IRSend=="undefined"?nil:IRSend)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
-send=_st((smalltalk.IRSend || IRSend))._new();
+send=_st($IRSend())._new();
 $1=send;
 $1=send;
 _st($1)._selector_(_st(aNode)._selector());
 _st($1)._selector_(_st(aNode)._selector());
 $2=_st($1)._index_(_st(aNode)._index());
 $2=_st($1)._index_(_st(aNode)._index());
@@ -541,8 +561,9 @@ selector: "visitSequenceNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRSequence(){return smalltalk.IRSequence||(typeof IRSequence=="undefined"?nil:IRSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$1=_st(self)._withSequence_do_(_st((smalltalk.IRSequence || IRSequence))._new(),(function(){
+$1=_st(self)._withSequence_do_(_st($IRSequence())._new(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(aNode)._nodes())._do_((function(each){
 var instruction;
 var instruction;
 return smalltalk.withContext(function($ctx3) {
instruction=_st(self)._visit_(each);
 return smalltalk.withContext(function($ctx3) {
instruction=_st(self)._visit_(each);
@@ -569,8 +590,9 @@ selector: "visitValueNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRValue(){return smalltalk.IRValue||(typeof IRValue=="undefined"?nil:IRValue)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRValue || IRValue))._new();
+$2=_st($IRValue())._new();
 _st($2)._value_(_st(aNode)._value());
 _st($2)._value_(_st(aNode)._value());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -590,8 +612,9 @@ selector: "visitVariableNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRVariable || IRVariable))._new();
+$2=_st($IRVariable())._new();
 _st($2)._variable_(_st(aNode)._binding());
 _st($2)._variable_(_st(aNode)._binding());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -691,10 +714,11 @@ selector: "instructions",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@instructions"];
 $2=self["@instructions"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@instructions"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@instructions"]=_st($OrderedCollection())._new();
 $1=self["@instructions"];
 $1=self["@instructions"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1310,10 +1334,11 @@ selector: "internalVariables",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@internalVariables"];
 $2=self["@internalVariables"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@internalVariables"]=_st((smalltalk.Set || Set))._new();
+self["@internalVariables"]=_st($Set())._new();
 $1=self["@internalVariables"];
 $1=self["@internalVariables"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -2557,8 +2582,9 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $JSStream(){return smalltalk.JSStream||(typeof JSStream=="undefined"?nil:JSStream)}
 return smalltalk.withContext(function($ctx1) { 
smalltalk.IRVisitor.fn.prototype._initialize.apply(_st(self), []);
 return smalltalk.withContext(function($ctx1) { 
smalltalk.IRVisitor.fn.prototype._initialize.apply(_st(self), []);
-self["@stream"]=_st((smalltalk.JSStream || JSStream))._new();
+self["@stream"]=_st($JSStream())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})},
 args: [],
 args: [],
 source: "initialize\x0a\x09super initialize.\x0a\x09stream := JSStream new.",
 source: "initialize\x0a\x09super initialize.\x0a\x09stream := JSStream new.",
@@ -3006,10 +3032,11 @@ selector: "nextPutBlockContextFor:during:",
 category: 'streaming',
 category: 'streaming',
 fn: function (anIRClosure,aBlock){
 fn: function (anIRClosure,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 $1=self;
 $1=self;
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
-$2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$2=_st($1)._nextPutAll_(_st($String())._cr());
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self;
 $3=self;
 _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
 _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
@@ -3095,10 +3122,11 @@ selector: "nextPutContextFor:during:",
 category: 'streaming',
 category: 'streaming',
 fn: function (aMethod,aBlock){
 fn: function (aMethod,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6,$7,$8;
 $1=self;
 $1=self;
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") { "));
 _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") { "));
-$2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$2=_st($1)._nextPutAll_(_st($String())._cr());
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self;
 $3=self;
 _st($3)._nextPutAll_(_st(_st(_st("}, function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") {")).__comma(_st(_st(aMethod)._scope())._alias()));
 _st($3)._nextPutAll_(_st(_st(_st("}, function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") {")).__comma(_st(_st(aMethod)._scope())._alias()));
@@ -3211,6 +3239,7 @@ selector: "nextPutMethodDeclaration:with:",
 category: 'streaming',
 category: 'streaming',
 fn: function (aMethod,aBlock){
 fn: function (aMethod,aBlock){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 $1=self["@stream"];
 $1=self["@stream"];
 _st($1)._nextPutAll_("smalltalk.method({");
 _st($1)._nextPutAll_("smalltalk.method({");
@@ -3221,7 +3250,7 @@ _st($1)._nextPutAll_(_st(_st("source: ").__comma(_st(_st(aMethod)._source())._as
 $2=_st($1)._lf();
 $2=_st($1)._lf();
 _st(aBlock)._value();
 _st(aBlock)._value();
 $3=self["@stream"];
 $3=self["@stream"];
-_st($3)._nextPutAll_(_st(_st(",").__comma(_st((smalltalk.String || String))._lf())).__comma("messageSends: "));
+_st($3)._nextPutAll_(_st(_st(",").__comma(_st($String())._lf())).__comma("messageSends: "));
 _st($3)._nextPutAll_(_st(_st(_st(_st(aMethod)._messageSends())._asArray())._asJavascript()).__comma(","));
 _st($3)._nextPutAll_(_st(_st(_st(_st(aMethod)._messageSends())._asArray())._asJavascript()).__comma(","));
 _st($3)._lf();
 _st($3)._lf();
 _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
 _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
@@ -3440,8 +3469,9 @@ selector: "asVariableName",
 category: '*Compiler-IR',
 category: '*Compiler-IR',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-$2=_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._reservedWords())._includes_(self);
+$2=_st(_st(_st($Smalltalk())._current())._reservedWords())._includes_(self);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=_st(self).__comma("_");
 $1=_st(self).__comma("_");
 } else {
 } else {

+ 58 - 29
js/Compiler-Inlining.deploy.js

@@ -218,8 +218,9 @@ smalltalk.method({
 selector: "assignmentInliner",
 selector: "assignmentInliner",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRAssignmentInliner(){return smalltalk.IRAssignmentInliner||(typeof IRAssignmentInliner=="undefined"?nil:IRAssignmentInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRAssignmentInliner || IRAssignmentInliner))._new();
+$2=_st($IRAssignmentInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -234,8 +235,9 @@ smalltalk.method({
 selector: "nonLocalReturnInliner",
 selector: "nonLocalReturnInliner",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRNonLocalReturnInliner(){return smalltalk.IRNonLocalReturnInliner||(typeof IRNonLocalReturnInliner=="undefined"?nil:IRNonLocalReturnInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRNonLocalReturnInliner || IRNonLocalReturnInliner))._new();
+$2=_st($IRNonLocalReturnInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -250,8 +252,9 @@ smalltalk.method({
 selector: "returnInliner",
 selector: "returnInliner",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRReturnInliner(){return smalltalk.IRReturnInliner||(typeof IRReturnInliner=="undefined"?nil:IRReturnInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRReturnInliner || IRReturnInliner))._new();
+$2=_st($IRReturnInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -266,8 +269,9 @@ smalltalk.method({
 selector: "sendInliner",
 selector: "sendInliner",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRSendInliner || IRSendInliner))._new();
+$2=_st($IRSendInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -316,9 +320,10 @@ smalltalk.method({
 selector: "shouldInlineSend:",
 selector: "shouldInlineSend:",
 fn: function (anIRSend){
 fn: function (anIRSend){
 var self=this;
 var self=this;
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 $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($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)})},
@@ -332,11 +337,12 @@ selector: "transformNonLocalReturn:",
 fn: function (anIRNonLocalReturn){
 fn: function (anIRNonLocalReturn){
 var self=this;
 var self=this;
 var localReturn;
 var localReturn;
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 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(anIRNonLocalReturn)._scope())._canInlineNonLocalReturns();
 $1=_st(_st(anIRNonLocalReturn)._scope())._canInlineNonLocalReturns();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(_st(anIRNonLocalReturn)._scope())._methodScope())._removeNonLocalReturn_(_st(anIRNonLocalReturn)._scope());
 _st(_st(_st(anIRNonLocalReturn)._scope())._methodScope())._removeNonLocalReturn_(_st(anIRNonLocalReturn)._scope());
-$2=_st((smalltalk.IRReturn || IRReturn))._new();
+$2=_st($IRReturn())._new();
 _st($2)._scope_(_st(anIRNonLocalReturn)._scope());
 _st($2)._scope_(_st(anIRNonLocalReturn)._scope());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 localReturn=$3;
 localReturn=$3;
@@ -595,8 +601,9 @@ smalltalk.method({
 selector: "ifFalse:",
 selector: "ifFalse:",
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfFalse(){return smalltalk.IRInlinedIfFalse||(typeof IRInlinedIfFalse=="undefined"?nil:IRInlinedIfFalse)}
 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($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"]}),
@@ -609,7 +616,7 @@ selector: "ifFalse:ifTrue:",
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 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_("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:"]}),
@@ -621,15 +628,18 @@ smalltalk.method({
 selector: "ifNil:",
 selector: "ifNil:",
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$2=_st((smalltalk.IRClosure || IRClosure))._new();
+$2=_st($IRClosure())._new();
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
-$3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
+$3=_st($IRBlockSequence())._new();
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 _st($2)._add_($4);
 _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($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"]}),
@@ -641,8 +651,9 @@ smalltalk.method({
 selector: "ifNil:ifNotNil:",
 selector: "ifNil:ifNotNil:",
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 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($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"]}),
@@ -654,15 +665,18 @@ smalltalk.method({
 selector: "ifNotNil:",
 selector: "ifNotNil:",
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$2=_st((smalltalk.IRClosure || IRClosure))._new();
+$2=_st($IRClosure())._new();
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
-$3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
+$3=_st($IRBlockSequence())._new();
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 _st($2)._add_($4);
 _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($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"]}),
@@ -674,8 +688,9 @@ smalltalk.method({
 selector: "ifNotNil:ifNil:",
 selector: "ifNotNil:ifNil:",
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 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($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"]}),
@@ -687,8 +702,9 @@ smalltalk.method({
 selector: "ifTrue:",
 selector: "ifTrue:",
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfTrue(){return smalltalk.IRInlinedIfTrue||(typeof IRInlinedIfTrue=="undefined"?nil:IRInlinedIfTrue)}
 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($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"]}),
@@ -700,8 +716,9 @@ smalltalk.method({
 selector: "ifTrue:ifFalse:",
 selector: "ifTrue:ifFalse:",
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfTrueIfFalse(){return smalltalk.IRInlinedIfTrueIfFalse||(typeof IRInlinedIfTrueIfFalse=="undefined"?nil:IRInlinedIfTrueIfFalse)}
 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($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"]}),
@@ -762,8 +779,9 @@ smalltalk.method({
 selector: "inlinedClosure",
 selector: "inlinedClosure",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedClosure(){return smalltalk.IRInlinedClosure||(typeof IRInlinedClosure=="undefined"?nil:IRInlinedClosure)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
+$1=_st($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"]}),
@@ -839,8 +857,9 @@ smalltalk.method({
 selector: "inlinedSequence",
 selector: "inlinedSequence",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedSequence(){return smalltalk.IRInlinedSequence||(typeof IRInlinedSequence=="undefined"?nil:IRInlinedSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
+$1=_st($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"]}),
@@ -852,7 +871,8 @@ smalltalk.method({
 selector: "inliningError:",
 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);
+function $InliningError(){return smalltalk.InliningError||(typeof InliningError=="undefined"?nil:InliningError)}
+return smalltalk.withContext(function($ctx1) { 
_st($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);
@@ -912,7 +932,9 @@ smalltalk.method({
 selector: "inlinedSelectors",
 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) { 
var $1;
+$1=["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
+return $1;
 }, 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);
@@ -976,9 +998,10 @@ selector: "inlineAssignment:",
 fn: function (anIRAssignment){
 fn: function (anIRAssignment){
 var self=this;
 var self=this;
 var inlinedAssignment;
 var inlinedAssignment;
+function $IRInlinedAssignment(){return smalltalk.IRInlinedAssignment||(typeof IRInlinedAssignment=="undefined"?nil:IRInlinedAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._assignment_(anIRAssignment);
 _st(self)._assignment_(anIRAssignment);
-inlinedAssignment=_st((smalltalk.IRInlinedAssignment || IRInlinedAssignment))._new();
+inlinedAssignment=_st($IRInlinedAssignment())._new();
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -997,13 +1020,14 @@ selector: "inlineClosure:",
 fn: function (anIRClosure){
 fn: function (anIRClosure){
 var self=this;
 var self=this;
 var inlinedClosure,statements;
 var inlinedClosure,statements;
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 inlinedClosure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 inlinedClosure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 statements=_st(_st(_st(inlinedClosure)._instructions())._last())._instructions();
 statements=_st(_st(_st(inlinedClosure)._instructions())._last())._instructions();
 _st(statements)._ifNotEmpty_((function(){
 _st(statements)._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._canBeAssigned();
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._canBeAssigned();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$2=_st($IRAssignment())._new();
 _st($2)._add_(_st(_st(_st(self)._assignment())._instructions())._first());
 _st($2)._add_(_st(_st(_st(self)._assignment())._instructions())._first());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
@@ -1038,8 +1062,9 @@ smalltalk.method({
 selector: "inlinedReturn",
 selector: "inlinedReturn",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedNonLocalReturn(){return smalltalk.IRInlinedNonLocalReturn||(typeof IRInlinedNonLocalReturn=="undefined"?nil:IRInlinedNonLocalReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
+$1=_st($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"]}),
@@ -1055,13 +1080,14 @@ selector: "inlineClosure:",
 fn: function (anIRClosure){
 fn: function (anIRClosure){
 var self=this;
 var self=this;
 var closure,statements;
 var closure,statements;
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 closure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 closure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 statements=_st(_st(_st(closure)._instructions())._last())._instructions();
 statements=_st(_st(_st(closure)._instructions())._last())._instructions();
 _st(statements)._ifNotEmpty_((function(){
 _st(statements)._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._isReturn();
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._isReturn();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
-$2=_st((smalltalk.IRReturn || IRReturn))._new();
+$2=_st($IRReturn())._new();
 _st($2)._add_(_st(_st(statements)._last())._copy());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 return _st(_st(statements)._last())._replaceWith_($3);
 return _st(_st(statements)._last())._replaceWith_($3);
@@ -1099,8 +1125,9 @@ smalltalk.method({
 selector: "inlinedReturn",
 selector: "inlinedReturn",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedReturn(){return smalltalk.IRInlinedReturn||(typeof IRInlinedReturn=="undefined"?nil:IRInlinedReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
+$1=_st($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"]}),
@@ -1135,8 +1162,9 @@ smalltalk.method({
 selector: "inliner",
 selector: "inliner",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInliner(){return smalltalk.IRInliner||(typeof IRInliner=="undefined"?nil:IRInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInliner || IRInliner))._new();
+$1=_st($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"]}),
@@ -1148,8 +1176,9 @@ smalltalk.method({
 selector: "irTranslator",
 selector: "irTranslator",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInliningJSTranslator(){return smalltalk.IRInliningJSTranslator||(typeof IRInliningJSTranslator=="undefined"?nil:IRInliningJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
+$1=_st($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"]}),

+ 58 - 29
js/Compiler-Inlining.js

@@ -306,8 +306,9 @@ selector: "assignmentInliner",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRAssignmentInliner(){return smalltalk.IRAssignmentInliner||(typeof IRAssignmentInliner=="undefined"?nil:IRAssignmentInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRAssignmentInliner || IRAssignmentInliner))._new();
+$2=_st($IRAssignmentInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -327,8 +328,9 @@ selector: "nonLocalReturnInliner",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRNonLocalReturnInliner(){return smalltalk.IRNonLocalReturnInliner||(typeof IRNonLocalReturnInliner=="undefined"?nil:IRNonLocalReturnInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRNonLocalReturnInliner || IRNonLocalReturnInliner))._new();
+$2=_st($IRNonLocalReturnInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -348,8 +350,9 @@ selector: "returnInliner",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRReturnInliner(){return smalltalk.IRReturnInliner||(typeof IRReturnInliner=="undefined"?nil:IRReturnInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRReturnInliner || IRReturnInliner))._new();
+$2=_st($IRReturnInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -369,8 +372,9 @@ selector: "sendInliner",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.IRSendInliner || IRSendInliner))._new();
+$2=_st($IRSendInliner())._new();
 _st($2)._translator_(self);
 _st($2)._translator_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -434,9 +438,10 @@ selector: "shouldInlineSend:",
 category: 'testing',
 category: 'testing',
 fn: function (anIRSend){
 fn: function (anIRSend){
 var self=this;
 var self=this;
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
 $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($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)})},
@@ -455,11 +460,12 @@ category: 'visiting',
 fn: function (anIRNonLocalReturn){
 fn: function (anIRNonLocalReturn){
 var self=this;
 var self=this;
 var localReturn;
 var localReturn;
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 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(anIRNonLocalReturn)._scope())._canInlineNonLocalReturns();
 $1=_st(_st(anIRNonLocalReturn)._scope())._canInlineNonLocalReturns();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(_st(_st(anIRNonLocalReturn)._scope())._methodScope())._removeNonLocalReturn_(_st(anIRNonLocalReturn)._scope());
 _st(_st(_st(anIRNonLocalReturn)._scope())._methodScope())._removeNonLocalReturn_(_st(anIRNonLocalReturn)._scope());
-$2=_st((smalltalk.IRReturn || IRReturn))._new();
+$2=_st($IRReturn())._new();
 _st($2)._scope_(_st(anIRNonLocalReturn)._scope());
 _st($2)._scope_(_st(anIRNonLocalReturn)._scope());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 localReturn=$3;
 localReturn=$3;
@@ -795,8 +801,9 @@ selector: "ifFalse:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfFalse(){return smalltalk.IRInlinedIfFalse||(typeof IRInlinedIfFalse=="undefined"?nil:IRInlinedIfFalse)}
 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($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"],
@@ -814,7 +821,7 @@ category: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 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_("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"],
@@ -831,15 +838,18 @@ selector: "ifNil:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$2=_st((smalltalk.IRClosure || IRClosure))._new();
+$2=_st($IRClosure())._new();
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
-$3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
+$3=_st($IRBlockSequence())._new();
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 _st($2)._add_($4);
 _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($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"],
@@ -856,8 +866,9 @@ selector: "ifNil:ifNotNil:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 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($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"],
@@ -874,15 +885,18 @@ selector: "ifNotNil:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
+function $IRClosure(){return smalltalk.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
+function $IRBlockSequence(){return smalltalk.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$2=_st((smalltalk.IRClosure || IRClosure))._new();
+$2=_st($IRClosure())._new();
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
 _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
-$3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
+$3=_st($IRBlockSequence())._new();
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 _st($2)._add_($4);
 _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($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"],
@@ -899,8 +913,9 @@ selector: "ifNotNil:ifNil:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfNilIfNotNil(){return smalltalk.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 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($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"],
@@ -917,8 +932,9 @@ selector: "ifTrue:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction){
 fn: function (anIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfTrue(){return smalltalk.IRInlinedIfTrue||(typeof IRInlinedIfTrue=="undefined"?nil:IRInlinedIfTrue)}
 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($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"],
@@ -935,8 +951,9 @@ selector: "ifTrue:ifFalse:",
 category: 'inlining',
 category: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
 var self=this;
+function $IRInlinedIfTrueIfFalse(){return smalltalk.IRInlinedIfTrueIfFalse||(typeof IRInlinedIfTrueIfFalse=="undefined"?nil:IRInlinedIfTrueIfFalse)}
 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($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"],
@@ -1012,8 +1029,9 @@ selector: "inlinedClosure",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedClosure(){return smalltalk.IRInlinedClosure||(typeof IRInlinedClosure=="undefined"?nil:IRInlinedClosure)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
+$1=_st($IRInlinedClosure())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{},smalltalk.IRSendInliner)})},
 }, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
@@ -1104,8 +1122,9 @@ selector: "inlinedSequence",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedSequence(){return smalltalk.IRInlinedSequence||(typeof IRInlinedSequence=="undefined"?nil:IRInlinedSequence)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
+$1=_st($IRInlinedSequence())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{},smalltalk.IRSendInliner)})},
 }, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{},smalltalk.IRSendInliner)})},
 args: [],
 args: [],
@@ -1122,7 +1141,8 @@ selector: "inliningError:",
 category: 'error handling',
 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);
+function $InliningError(){return smalltalk.InliningError||(typeof InliningError=="undefined"?nil:InliningError)}
+return smalltalk.withContext(function($ctx1) { 
_st($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",
@@ -1207,7 +1227,9 @@ selector: "inlinedSelectors",
 category: 'accessing',
 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) { 
var $1;
+$1=["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
+return $1;
 }, 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')",
@@ -1292,9 +1314,10 @@ category: 'inlining',
 fn: function (anIRAssignment){
 fn: function (anIRAssignment){
 var self=this;
 var self=this;
 var inlinedAssignment;
 var inlinedAssignment;
+function $IRInlinedAssignment(){return smalltalk.IRInlinedAssignment||(typeof IRInlinedAssignment=="undefined"?nil:IRInlinedAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 _st(self)._assignment_(anIRAssignment);
 _st(self)._assignment_(anIRAssignment);
-inlinedAssignment=_st((smalltalk.IRInlinedAssignment || IRInlinedAssignment))._new();
+inlinedAssignment=_st($IRInlinedAssignment())._new();
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 _st(_st(anIRAssignment)._instructions())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(inlinedAssignment)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -1318,13 +1341,14 @@ category: 'inlining',
 fn: function (anIRClosure){
 fn: function (anIRClosure){
 var self=this;
 var self=this;
 var inlinedClosure,statements;
 var inlinedClosure,statements;
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 inlinedClosure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 inlinedClosure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 statements=_st(_st(_st(inlinedClosure)._instructions())._last())._instructions();
 statements=_st(_st(_st(inlinedClosure)._instructions())._last())._instructions();
 _st(statements)._ifNotEmpty_((function(){
 _st(statements)._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._canBeAssigned();
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._canBeAssigned();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$2=_st($IRAssignment())._new();
 _st($2)._add_(_st(_st(_st(self)._assignment())._instructions())._first());
 _st($2)._add_(_st(_st(_st(self)._assignment())._instructions())._first());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
@@ -1369,8 +1393,9 @@ selector: "inlinedReturn",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedNonLocalReturn(){return smalltalk.IRInlinedNonLocalReturn||(typeof IRInlinedNonLocalReturn=="undefined"?nil:IRInlinedNonLocalReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
+$1=_st($IRInlinedNonLocalReturn())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRNonLocalReturnInliner)})},
 }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRNonLocalReturnInliner)})},
 args: [],
 args: [],
@@ -1392,13 +1417,14 @@ category: 'inlining',
 fn: function (anIRClosure){
 fn: function (anIRClosure){
 var self=this;
 var self=this;
 var closure,statements;
 var closure,statements;
+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 closure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 closure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
 statements=_st(_st(_st(closure)._instructions())._last())._instructions();
 statements=_st(_st(_st(closure)._instructions())._last())._instructions();
 _st(statements)._ifNotEmpty_((function(){
 _st(statements)._ifNotEmpty_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._isReturn();
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(statements)._last())._isReturn();
 if(! smalltalk.assert($1)){
 if(! smalltalk.assert($1)){
-$2=_st((smalltalk.IRReturn || IRReturn))._new();
+$2=_st($IRReturn())._new();
 _st($2)._add_(_st(_st(statements)._last())._copy());
 _st($2)._add_(_st(_st(statements)._last())._copy());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 return _st(_st(statements)._last())._replaceWith_($3);
 return _st(_st(statements)._last())._replaceWith_($3);
@@ -1446,8 +1472,9 @@ selector: "inlinedReturn",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInlinedReturn(){return smalltalk.IRInlinedReturn||(typeof IRInlinedReturn=="undefined"?nil:IRInlinedReturn)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
+$1=_st($IRInlinedReturn())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRReturnInliner)})},
 }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRReturnInliner)})},
 args: [],
 args: [],
@@ -1493,8 +1520,9 @@ selector: "inliner",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInliner(){return smalltalk.IRInliner||(typeof IRInliner=="undefined"?nil:IRInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInliner || IRInliner))._new();
+$1=_st($IRInliner())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"inliner",{},smalltalk.InliningCodeGenerator)})},
 }, function($ctx1) {$ctx1.fill(self,"inliner",{},smalltalk.InliningCodeGenerator)})},
 args: [],
 args: [],
@@ -1511,8 +1539,9 @@ selector: "irTranslator",
 category: 'compiling',
 category: 'compiling',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $IRInliningJSTranslator(){return smalltalk.IRInliningJSTranslator||(typeof IRInliningJSTranslator=="undefined"?nil:IRInliningJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
+$1=_st($IRInliningJSTranslator())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.InliningCodeGenerator)})},
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.InliningCodeGenerator)})},
 args: [],
 args: [],

+ 26 - 13
js/Compiler-Interpreter.deploy.js

@@ -55,10 +55,11 @@ smalltalk.method({
 selector: "locals",
 selector: "locals",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@locals"];
 $2=self["@locals"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@locals"]=_st($Dictionary())._new();
 $1=self["@locals"];
 $1=self["@locals"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -214,9 +215,11 @@ selector: "buildAST",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var ast;
 var ast;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-ast=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(_st(_st(self)._method())._source());
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
+ast=_st(_st($Smalltalk())._current())._parse_(_st(_st(self)._method())._source());
+_st(_st($SemanticAnalyzer())._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
 $1=ast;
 $1=ast;
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
@@ -242,7 +245,8 @@ smalltalk.method({
 selector: "context:",
 selector: "context:",
 fn: function (aContext){
 fn: function (aContext){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
+return smalltalk.withContext(function($ctx1) { 
self["@context"]=_st($AIContext())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext},smalltalk.ASTDebugger)})},
 return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext},smalltalk.ASTDebugger)})},
 messageSends: ["new"]}),
 messageSends: ["new"]}),
 smalltalk.ASTDebugger);
 smalltalk.ASTDebugger);
@@ -253,8 +257,9 @@ smalltalk.method({
 selector: "defaultInterpreterClass",
 selector: "defaultInterpreterClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
+$1=$ASTSteppingInterpreter();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 messageSends: []}),
 messageSends: []}),
@@ -277,7 +282,8 @@ smalltalk.method({
 selector: "initializeWithContext:",
 selector: "initializeWithContext:",
 fn: function (aMethodContext){
 fn: function (aMethodContext){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._context_(_st((smalltalk.AIContext || AIContext))._fromMethodContext_(aMethodContext));
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._context_(_st($AIContext())._fromMethodContext_(aMethodContext));
 _st(self)._initializeInterpreter();
 _st(self)._initializeInterpreter();
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 messageSends: ["context:", "fromMethodContext:", "initializeInterpreter"]}),
 messageSends: ["context:", "fromMethodContext:", "initializeInterpreter"]}),
@@ -433,10 +439,11 @@ smalltalk.method({
 selector: "context",
 selector: "context",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@context"];
 $2=self["@context"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+self["@context"]=_st($AIContext())._new();
 $1=self["@context"];
 $1=self["@context"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -489,8 +496,10 @@ selector: "eval:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 var source,function_;
 var source,function_;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
-source=_st((smalltalk.String || String))._streamContents_((function(str){
+source=_st($String())._streamContents_((function(str){
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
@@ -503,7 +512,7 @@ _st($1)._nextPutAll_(aString);
 $2=_st($1)._nextPutAll_("})() })");
 $2=_st($1)._nextPutAll_("})() })");
 return $2;
 return $2;
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
-function_=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(source);
+function_=_st(_st($Compiler())._new())._eval_(source);
 $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
 $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
 return $3;
 return $3;
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
@@ -569,7 +578,8 @@ smalltalk.method({
 selector: "interpretAll:continue:",
 selector: "interpretAll:continue:",
 fn: function (aCollection,aBlock){
 fn: function (aCollection,aBlock){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_result_(aCollection,aBlock,_st((smalltalk.OrderedCollection || OrderedCollection))._new());
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_result_(aCollection,aBlock,_st($OrderedCollection())._new());
 return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 messageSends: ["interpretAll:continue:result:", "new"]}),
 messageSends: ["interpretAll:continue:result:", "new"]}),
 smalltalk.ASTInterpreter);
 smalltalk.ASTInterpreter);
@@ -660,7 +670,8 @@ smalltalk.method({
 selector: "interpretClassReferenceNode:continue:",
 selector: "interpretClassReferenceNode:continue:",
 fn: function (aNode,aBlock){
 fn: function (aNode,aBlock){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._continue_value_(aBlock,_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(_st(aNode)._value()));
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._continue_value_(aBlock,_st(_st($Smalltalk())._current())._at_(_st(aNode)._value()));
 return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 messageSends: ["continue:value:", "at:", "value", "current"]}),
 messageSends: ["continue:value:", "at:", "value", "current"]}),
 smalltalk.ASTInterpreter);
 smalltalk.ASTInterpreter);
@@ -684,9 +695,10 @@ smalltalk.method({
 selector: "interpretDynamicDictionaryNode:continue:",
 selector: "interpretDynamicDictionaryNode:continue:",
 fn: function (aNode,aBlock){
 fn: function (aNode,aBlock){
 var self=this;
 var self=this;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
 var hashedCollection;
 var hashedCollection;
-return smalltalk.withContext(function($ctx2) {
hashedCollection=_st((smalltalk.HashedCollection || HashedCollection))._new();
+return smalltalk.withContext(function($ctx2) {
hashedCollection=_st($HashedCollection())._new();
 hashedCollection;
 hashedCollection;
 _st(array)._do_((function(each){
 _st(array)._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
@@ -816,8 +828,9 @@ smalltalk.method({
 selector: "messageFromSendNode:arguments:do:",
 selector: "messageFromSendNode:arguments:do:",
 fn: function (aSendNode,aCollection,aBlock){
 fn: function (aSendNode,aCollection,aBlock){
 var self=this;
 var self=this;
+function $Message(){return smalltalk.Message||(typeof Message=="undefined"?nil:Message)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.Message || Message))._new();
+$1=_st($Message())._new();
 _st($1)._selector_(_st(aSendNode)._selector());
 _st($1)._selector_(_st(aSendNode)._selector());
 _st($1)._arguments_(aCollection);
 _st($1)._arguments_(aCollection);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();

+ 26 - 13
js/Compiler-Interpreter.js

@@ -72,10 +72,11 @@ selector: "locals",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@locals"];
 $2=self["@locals"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@locals"]=_st($Dictionary())._new();
 $1=self["@locals"];
 $1=self["@locals"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -287,9 +288,11 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var ast;
 var ast;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-ast=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(_st(_st(self)._method())._source());
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
+ast=_st(_st($Smalltalk())._current())._parse_(_st(_st(self)._method())._source());
+_st(_st($SemanticAnalyzer())._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
 $1=ast;
 $1=ast;
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
@@ -325,7 +328,8 @@ selector: "context:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aContext){
 fn: function (aContext){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
+return smalltalk.withContext(function($ctx1) { 
self["@context"]=_st($AIContext())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext},smalltalk.ASTDebugger)})},
 return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext},smalltalk.ASTDebugger)})},
 args: ["aContext"],
 args: ["aContext"],
 source: "context: aContext\x0a\x09context := AIContext new.",
 source: "context: aContext\x0a\x09context := AIContext new.",
@@ -341,8 +345,9 @@ selector: "defaultInterpreterClass",
 category: 'defaults',
 category: 'defaults',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
+$1=$ASTSteppingInterpreter();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 args: [],
 args: [],
@@ -375,7 +380,8 @@ selector: "initializeWithContext:",
 category: 'initialization',
 category: 'initialization',
 fn: function (aMethodContext){
 fn: function (aMethodContext){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._context_(_st((smalltalk.AIContext || AIContext))._fromMethodContext_(aMethodContext));
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._context_(_st($AIContext())._fromMethodContext_(aMethodContext));
 _st(self)._initializeInterpreter();
 _st(self)._initializeInterpreter();
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 args: ["aMethodContext"],
 args: ["aMethodContext"],
@@ -587,10 +593,11 @@ selector: "context",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@context"];
 $2=self["@context"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+self["@context"]=_st($AIContext())._new();
 $1=self["@context"];
 $1=self["@context"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -663,8 +670,10 @@ category: 'private',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
 var source,function_;
 var source,function_;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
-source=_st((smalltalk.String || String))._streamContents_((function(str){
+source=_st($String())._streamContents_((function(str){
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
@@ -677,7 +686,7 @@ _st($1)._nextPutAll_(aString);
 $2=_st($1)._nextPutAll_("})() })");
 $2=_st($1)._nextPutAll_("})() })");
 return $2;
 return $2;
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
-function_=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(source);
+function_=_st(_st($Compiler())._new())._eval_(source);
 $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
 $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
 return $3;
 return $3;
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
@@ -763,7 +772,8 @@ selector: "interpretAll:continue:",
 category: 'private',
 category: 'private',
 fn: function (aCollection,aBlock){
 fn: function (aCollection,aBlock){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_result_(aCollection,aBlock,_st((smalltalk.OrderedCollection || OrderedCollection))._new());
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_result_(aCollection,aBlock,_st($OrderedCollection())._new());
 return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 args: ["aCollection", "aBlock"],
 args: ["aCollection", "aBlock"],
 source: "interpretAll: aCollection continue: aBlock\x0a\x09self\x0a\x09\x09interpretAll: aCollection\x0a\x09\x09continue: aBlock\x0a\x09\x09result: OrderedCollection new",
 source: "interpretAll: aCollection continue: aBlock\x0a\x09self\x0a\x09\x09interpretAll: aCollection\x0a\x09\x09continue: aBlock\x0a\x09\x09result: OrderedCollection new",
@@ -884,7 +894,8 @@ selector: "interpretClassReferenceNode:continue:",
 category: 'interpreting',
 category: 'interpreting',
 fn: function (aNode,aBlock){
 fn: function (aNode,aBlock){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._continue_value_(aBlock,_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(_st(aNode)._value()));
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._continue_value_(aBlock,_st(_st($Smalltalk())._current())._at_(_st(aNode)._value()));
 return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock},smalltalk.ASTInterpreter)})},
 args: ["aNode", "aBlock"],
 args: ["aNode", "aBlock"],
 source: "interpretClassReferenceNode: aNode continue: aBlock\x0a\x09self continue: aBlock value: (Smalltalk current at: aNode value)",
 source: "interpretClassReferenceNode: aNode continue: aBlock\x0a\x09self continue: aBlock value: (Smalltalk current at: aNode value)",
@@ -918,9 +929,10 @@ selector: "interpretDynamicDictionaryNode:continue:",
 category: 'interpreting',
 category: 'interpreting',
 fn: function (aNode,aBlock){
 fn: function (aNode,aBlock){
 var self=this;
 var self=this;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._interpretAll_continue_(_st(aNode)._nodes(),(function(array){
 var hashedCollection;
 var hashedCollection;
-return smalltalk.withContext(function($ctx2) {
hashedCollection=_st((smalltalk.HashedCollection || HashedCollection))._new();
+return smalltalk.withContext(function($ctx2) {
hashedCollection=_st($HashedCollection())._new();
 hashedCollection;
 hashedCollection;
 _st(array)._do_((function(each){
 _st(array)._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
@@ -1095,8 +1107,9 @@ selector: "messageFromSendNode:arguments:do:",
 category: 'private',
 category: 'private',
 fn: function (aSendNode,aCollection,aBlock){
 fn: function (aSendNode,aCollection,aBlock){
 var self=this;
 var self=this;
+function $Message(){return smalltalk.Message||(typeof Message=="undefined"?nil:Message)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.Message || Message))._new();
+$1=_st($Message())._new();
 _st($1)._selector_(_st(aSendNode)._selector());
 _st($1)._selector_(_st(aSendNode)._selector());
 _st($1)._arguments_(aCollection);
 _st($1)._arguments_(aCollection);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();

+ 56 - 32
js/Compiler-Semantic.deploy.js

@@ -6,7 +6,8 @@ smalltalk.method({
 selector: "addArg:",
 selector: "addArg:",
 fn: function (aString){
 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));
+function $ArgVar(){return smalltalk.ArgVar||(typeof ArgVar=="undefined"?nil:ArgVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st($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:"]}),
@@ -18,7 +19,8 @@ smalltalk.method({
 selector: "addTemp:",
 selector: "addTemp:",
 fn: function (aString){
 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));
+function $TempVar(){return smalltalk.TempVar||(typeof TempVar=="undefined"?nil:TempVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st($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:"]}),
@@ -56,10 +58,11 @@ smalltalk.method({
 selector: "args",
 selector: "args",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@args"];
 $2=self["@args"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@args"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@args"]=_st($Dictionary())._new();
 $1=self["@args"];
 $1=self["@args"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -278,20 +281,21 @@ smalltalk.method({
 selector: "scopeLevel",
 selector: "scopeLevel",
 fn: function (){
 fn: function (){
 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,$5;
 $1=_st(self)._outerScope();
 $1=_st(self)._outerScope();
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-return (1);
+$2=(1);
+return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$2=_st(self)._isInlined();
-if(smalltalk.assert($2)){
-$3=_st(_st(self)._outerScope())._scopeLevel();
-return $3;
-};
-$4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
+$3=_st(self)._isInlined();
+if(smalltalk.assert($3)){
+$4=_st(_st(self)._outerScope())._scopeLevel();
 return $4;
 return $4;
+};
+$5=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
+return $5;
 }, 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);
@@ -302,10 +306,11 @@ smalltalk.method({
 selector: "temps",
 selector: "temps",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@temps"];
 $2=self["@temps"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@temps"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@temps"]=_st($Dictionary())._new();
 $1=self["@temps"];
 $1=self["@temps"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -324,7 +329,8 @@ smalltalk.method({
 selector: "addIVar:",
 selector: "addIVar:",
 fn: function (aString){
 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));
+function $InstanceVar(){return smalltalk.InstanceVar||(typeof InstanceVar=="undefined"?nil:InstanceVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st($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:"]}),
@@ -417,10 +423,11 @@ smalltalk.method({
 selector: "iVars",
 selector: "iVars",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@iVars"];
 $2=self["@iVars"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@iVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@iVars"]=_st($Dictionary())._new();
 $1=self["@iVars"];
 $1=self["@iVars"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -489,10 +496,11 @@ smalltalk.method({
 selector: "nonLocalReturns",
 selector: "nonLocalReturns",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@nonLocalReturns"];
 $2=self["@nonLocalReturns"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@nonLocalReturns"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@nonLocalReturns"]=_st($OrderedCollection())._new();
 $1=self["@nonLocalReturns"];
 $1=self["@nonLocalReturns"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -508,13 +516,16 @@ smalltalk.method({
 selector: "pseudoVars",
 selector: "pseudoVars",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+function $PseudoVar(){return smalltalk.PseudoVar||(typeof PseudoVar=="undefined"?nil:PseudoVar)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=self["@pseudoVars"];
 $1=self["@pseudoVars"];
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-self["@pseudoVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@pseudoVars"]=_st($Dictionary())._new();
 self["@pseudoVars"];
 self["@pseudoVars"];
-_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._pseudoVariableNames())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$2=_st((smalltalk.PseudoVar || PseudoVar))._on_(each);
+_st(_st(_st($Smalltalk())._current())._pseudoVariableNames())._do_((function(each){
+return smalltalk.withContext(function($ctx2) {
$2=_st($PseudoVar())._on_(each);
 _st($2)._scope_(_st(self)._methodScope());
 _st($2)._scope_(_st(self)._methodScope());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 return _st(self["@pseudoVars"])._at_put_(each,$3);
 return _st(self["@pseudoVars"])._at_put_(each,$3);
@@ -546,10 +557,11 @@ smalltalk.method({
 selector: "unknownVariables",
 selector: "unknownVariables",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@unknownVariables"];
 $2=self["@unknownVariables"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@unknownVariables"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@unknownVariables"]=_st($OrderedCollection())._new();
 $1=self["@unknownVariables"];
 $1=self["@unknownVariables"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -695,12 +707,13 @@ smalltalk.method({
 selector: "validateAssignment",
 selector: "validateAssignment",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(self)._isArgVar())._or_((function(){
 $1=_st(_st(self)._isArgVar())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.InvalidAssignmentError || InvalidAssignmentError))._new();
+$2=_st($InvalidAssignmentError())._new();
 _st($2)._variableName_(_st(self)._name());
 _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
@@ -884,10 +897,11 @@ smalltalk.method({
 selector: "classReferences",
 selector: "classReferences",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@classReferences"];
 $2=self["@classReferences"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@classReferences"]=_st((smalltalk.Set || Set))._new();
+self["@classReferences"]=_st($Set())._new();
 $1=self["@classReferences"];
 $1=self["@classReferences"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -903,8 +917,9 @@ smalltalk.method({
 selector: "errorShadowingVariable:",
 selector: "errorShadowingVariable:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
+$1=_st($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)})},
@@ -918,13 +933,14 @@ selector: "errorUnknownVariable:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var identifier;
 var identifier;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 identifier=_st(aNode)._value();
 identifier=_st(aNode)._value();
 $1=_st(_st(_st(["jQuery", "window", "document", "process", "global"])._includes_(identifier))._not())._and_((function(){
 $1=_st(_st(_st(["jQuery", "window", "document", "process", "global"])._includes_(identifier))._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.UnknownVariableError || UnknownVariableError))._new();
+$2=_st($UnknownVariableError())._new();
 _st($2)._variableName_(_st(aNode)._value());
 _st($2)._variableName_(_st(aNode)._value());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
@@ -952,10 +968,11 @@ smalltalk.method({
 selector: "messageSends",
 selector: "messageSends",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@messageSends"];
 $2=self["@messageSends"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@messageSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@messageSends"]=_st($Dictionary())._new();
 $1=self["@messageSends"];
 $1=self["@messageSends"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -971,8 +988,9 @@ smalltalk.method({
 selector: "newBlockScope",
 selector: "newBlockScope",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $LexicalScope(){return smalltalk.LexicalScope||(typeof LexicalScope=="undefined"?nil:LexicalScope)}
 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_($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:"]}),
@@ -984,8 +1002,9 @@ smalltalk.method({
 selector: "newMethodScope",
 selector: "newMethodScope",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 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_($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:"]}),
@@ -1043,10 +1062,11 @@ smalltalk.method({
 selector: "superSends",
 selector: "superSends",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@superSends"];
 $2=self["@superSends"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@superSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@superSends"]=_st($Dictionary())._new();
 $1=self["@superSends"];
 $1=self["@superSends"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1155,9 +1175,10 @@ smalltalk.method({
 selector: "visitClassReferenceNode:",
 selector: "visitClassReferenceNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $ClassRefVar(){return smalltalk.ClassRefVar||(typeof ClassRefVar=="undefined"?nil:ClassRefVar)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(_st(self)._classReferences())._add_(_st(aNode)._value());
 _st(_st(self)._classReferences())._add_(_st(aNode)._value());
-$1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
+$1=_st($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);
@@ -1217,24 +1238,26 @@ smalltalk.method({
 selector: "visitSendNode:",
 selector: "visitSendNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(_st(_st(aNode)._receiver())._value()).__eq("super");
 $1=_st(_st(_st(aNode)._receiver())._value()).__eq("super");
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(aNode)._superSend_(true);
 _st(aNode)._superSend_(true);
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
+return smalltalk.withContext(function($ctx2) {
return _st($Set())._new();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
 } else {
 } else {
-$2=_st(_st((smalltalk.IRSendInliner || IRSendInliner))._inlinedSelectors())._includes_(_st(aNode)._selector());
+$2=_st(_st($IRSendInliner())._inlinedSelectors())._includes_(_st(aNode)._selector());
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 _st(aNode)._shouldBeInlined_(true);
 _st(aNode)._shouldBeInlined_(true);
 _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 };
 };
 };
 };
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
+return smalltalk.withContext(function($ctx2) {
return _st($Set())._new();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _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());
@@ -1264,12 +1287,13 @@ smalltalk.method({
 selector: "visitVariableNode:",
 selector: "visitVariableNode:",
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $UnknownVar(){return smalltalk.UnknownVar||(typeof UnknownVar=="undefined"?nil:UnknownVar)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$5,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$5,$2;
 $1=aNode;
 $1=aNode;
 $3=_st(self["@currentScope"])._lookupVariable_(aNode);
 $3=_st(self["@currentScope"])._lookupVariable_(aNode);
 if(($receiver = $3) == nil || $receiver == undefined){
 if(($receiver = $3) == nil || $receiver == undefined){
 _st(self)._errorUnknownVariable_(aNode);
 _st(self)._errorUnknownVariable_(aNode);
-$4=_st((smalltalk.UnknownVar || UnknownVar))._new();
+$4=_st($UnknownVar())._new();
 _st($4)._name_(_st(aNode)._value());
 _st($4)._name_(_st(aNode)._value());
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $2=$5;
 $2=$5;

+ 56 - 32
js/Compiler-Semantic.js

@@ -8,7 +8,8 @@ selector: "addArg:",
 category: 'adding',
 category: 'adding',
 fn: function (aString){
 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));
+function $ArgVar(){return smalltalk.ArgVar||(typeof ArgVar=="undefined"?nil:ArgVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._args())._at_put_(aString,_st($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"],
@@ -25,7 +26,8 @@ selector: "addTemp:",
 category: 'adding',
 category: 'adding',
 fn: function (aString){
 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));
+function $TempVar(){return smalltalk.TempVar||(typeof TempVar=="undefined"?nil:TempVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._temps())._at_put_(aString,_st($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"],
@@ -78,10 +80,11 @@ selector: "args",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@args"];
 $2=self["@args"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@args"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@args"]=_st($Dictionary())._new();
 $1=self["@args"];
 $1=self["@args"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -375,20 +378,21 @@ selector: "scopeLevel",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 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,$5;
 $1=_st(self)._outerScope();
 $1=_st(self)._outerScope();
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-return (1);
+$2=(1);
+return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$2=_st(self)._isInlined();
-if(smalltalk.assert($2)){
-$3=_st(_st(self)._outerScope())._scopeLevel();
-return $3;
-};
-$4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
+$3=_st(self)._isInlined();
+if(smalltalk.assert($3)){
+$4=_st(_st(self)._outerScope())._scopeLevel();
 return $4;
 return $4;
+};
+$5=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
+return $5;
 }, 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\x09\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",
@@ -404,10 +408,11 @@ selector: "temps",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@temps"];
 $2=self["@temps"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@temps"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@temps"]=_st($Dictionary())._new();
 $1=self["@temps"];
 $1=self["@temps"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -432,7 +437,8 @@ selector: "addIVar:",
 category: 'adding',
 category: 'adding',
 fn: function (aString){
 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));
+function $InstanceVar(){return smalltalk.InstanceVar||(typeof InstanceVar=="undefined"?nil:InstanceVar)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._iVars())._at_put_(aString,_st($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"],
@@ -560,10 +566,11 @@ selector: "iVars",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@iVars"];
 $2=self["@iVars"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@iVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@iVars"]=_st($Dictionary())._new();
 $1=self["@iVars"];
 $1=self["@iVars"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -657,10 +664,11 @@ selector: "nonLocalReturns",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@nonLocalReturns"];
 $2=self["@nonLocalReturns"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@nonLocalReturns"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@nonLocalReturns"]=_st($OrderedCollection())._new();
 $1=self["@nonLocalReturns"];
 $1=self["@nonLocalReturns"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -681,13 +689,16 @@ selector: "pseudoVars",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+function $PseudoVar(){return smalltalk.PseudoVar||(typeof PseudoVar=="undefined"?nil:PseudoVar)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 $1=self["@pseudoVars"];
 $1=self["@pseudoVars"];
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-self["@pseudoVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@pseudoVars"]=_st($Dictionary())._new();
 self["@pseudoVars"];
 self["@pseudoVars"];
-_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._pseudoVariableNames())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$2=_st((smalltalk.PseudoVar || PseudoVar))._on_(each);
+_st(_st(_st($Smalltalk())._current())._pseudoVariableNames())._do_((function(each){
+return smalltalk.withContext(function($ctx2) {
$2=_st($PseudoVar())._on_(each);
 _st($2)._scope_(_st(self)._methodScope());
 _st($2)._scope_(_st(self)._methodScope());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 return _st(self["@pseudoVars"])._at_put_(each,$3);
 return _st(self["@pseudoVars"])._at_put_(each,$3);
@@ -729,10 +740,11 @@ selector: "unknownVariables",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@unknownVariables"];
 $2=self["@unknownVariables"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@unknownVariables"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@unknownVariables"]=_st($OrderedCollection())._new();
 $1=self["@unknownVariables"];
 $1=self["@unknownVariables"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -939,12 +951,13 @@ selector: "validateAssignment",
 category: 'testing',
 category: 'testing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(self)._isArgVar())._or_((function(){
 $1=_st(_st(self)._isArgVar())._or_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isPseudoVar();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.InvalidAssignmentError || InvalidAssignmentError))._new();
+$2=_st($InvalidAssignmentError())._new();
 _st($2)._variableName_(_st(self)._name());
 _st($2)._variableName_(_st(self)._name());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
@@ -1201,10 +1214,11 @@ selector: "classReferences",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@classReferences"];
 $2=self["@classReferences"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@classReferences"]=_st((smalltalk.Set || Set))._new();
+self["@classReferences"]=_st($Set())._new();
 $1=self["@classReferences"];
 $1=self["@classReferences"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1225,8 +1239,9 @@ selector: "errorShadowingVariable:",
 category: 'error handling',
 category: 'error handling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
+$1=_st($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)})},
@@ -1245,13 +1260,14 @@ category: 'error handling',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
 var identifier;
 var identifier;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 identifier=_st(aNode)._value();
 identifier=_st(aNode)._value();
 $1=_st(_st(_st(["jQuery", "window", "document", "process", "global"])._includes_(identifier))._not())._and_((function(){
 $1=_st(_st(_st(["jQuery", "window", "document", "process", "global"])._includes_(identifier))._not())._and_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._isVariableGloballyUndefined_(identifier);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
-$2=_st((smalltalk.UnknownVariableError || UnknownVariableError))._new();
+$2=_st($UnknownVariableError())._new();
 _st($2)._variableName_(_st(aNode)._value());
 _st($2)._variableName_(_st(aNode)._value());
 $3=_st($2)._signal();
 $3=_st($2)._signal();
 $3;
 $3;
@@ -1289,10 +1305,11 @@ selector: "messageSends",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@messageSends"];
 $2=self["@messageSends"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@messageSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@messageSends"]=_st($Dictionary())._new();
 $1=self["@messageSends"];
 $1=self["@messageSends"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1313,8 +1330,9 @@ selector: "newBlockScope",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $LexicalScope(){return smalltalk.LexicalScope||(typeof LexicalScope=="undefined"?nil:LexicalScope)}
 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_($LexicalScope());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"newBlockScope",{},smalltalk.SemanticAnalyzer)})},
 }, function($ctx1) {$ctx1.fill(self,"newBlockScope",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
@@ -1331,8 +1349,9 @@ selector: "newMethodScope",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 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_($MethodLexicalScope());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"newMethodScope",{},smalltalk.SemanticAnalyzer)})},
 }, function($ctx1) {$ctx1.fill(self,"newMethodScope",{},smalltalk.SemanticAnalyzer)})},
 args: [],
 args: [],
@@ -1410,10 +1429,11 @@ selector: "superSends",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@superSends"];
 $2=self["@superSends"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@superSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@superSends"]=_st($Dictionary())._new();
 $1=self["@superSends"];
 $1=self["@superSends"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -1557,9 +1577,10 @@ selector: "visitClassReferenceNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $ClassRefVar(){return smalltalk.ClassRefVar||(typeof ClassRefVar=="undefined"?nil:ClassRefVar)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(_st(self)._classReferences())._add_(_st(aNode)._value());
 _st(_st(self)._classReferences())._add_(_st(aNode)._value());
-$1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
+$1=_st($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);
@@ -1634,24 +1655,26 @@ selector: "visitSendNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+function $IRSendInliner(){return smalltalk.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(_st(_st(aNode)._receiver())._value()).__eq("super");
 $1=_st(_st(_st(aNode)._receiver())._value()).__eq("super");
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(aNode)._superSend_(true);
 _st(aNode)._superSend_(true);
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(aNode)._receiver())._value_("self");
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
+return smalltalk.withContext(function($ctx2) {
return _st($Set())._new();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
 _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
 } else {
 } else {
-$2=_st(_st((smalltalk.IRSendInliner || IRSendInliner))._inlinedSelectors())._includes_(_st(aNode)._selector());
+$2=_st(_st($IRSendInliner())._inlinedSelectors())._includes_(_st(aNode)._selector());
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 _st(aNode)._shouldBeInlined_(true);
 _st(aNode)._shouldBeInlined_(true);
 _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 _st(_st(aNode)._receiver())._shouldBeAliased_(true);
 };
 };
 };
 };
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
 _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.Set || Set))._new();
+return smalltalk.withContext(function($ctx2) {
return _st($Set())._new();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 _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());
@@ -1691,12 +1714,13 @@ selector: "visitVariableNode:",
 category: 'visiting',
 category: 'visiting',
 fn: function (aNode){
 fn: function (aNode){
 var self=this;
 var self=this;
+function $UnknownVar(){return smalltalk.UnknownVar||(typeof UnknownVar=="undefined"?nil:UnknownVar)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$5,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$5,$2;
 $1=aNode;
 $1=aNode;
 $3=_st(self["@currentScope"])._lookupVariable_(aNode);
 $3=_st(self["@currentScope"])._lookupVariable_(aNode);
 if(($receiver = $3) == nil || $receiver == undefined){
 if(($receiver = $3) == nil || $receiver == undefined){
 _st(self)._errorUnknownVariable_(aNode);
 _st(self)._errorUnknownVariable_(aNode);
-$4=_st((smalltalk.UnknownVar || UnknownVar))._new();
+$4=_st($UnknownVar())._new();
 _st($4)._name_(_st(aNode)._value());
 _st($4)._name_(_st(aNode)._value());
 $5=_st($4)._yourself();
 $5=_st($4)._yourself();
 $2=$5;
 $2=$5;

+ 64 - 32
js/Compiler-Tests.deploy.js

@@ -6,8 +6,9 @@ smalltalk.method({
 selector: "analyze:forClass:",
 selector: "analyze:forClass:",
 fn: function (aNode,aClass){
 fn: function (aNode,aClass){
 var self=this;
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
+_st(_st($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)})},
@@ -20,8 +21,9 @@ smalltalk.method({
 selector: "interpret:",
 selector: "interpret:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 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($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"]}),
@@ -34,8 +36,9 @@ selector: "interpret:receiver:withArguments:",
 fn: function (aString,anObject,aDictionary){
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var self=this;
 var ctx;
 var ctx;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-ctx=_st((smalltalk.AIContext || AIContext))._new();
+ctx=_st($AIContext())._new();
 _st(ctx)._receiver_(anObject);
 _st(ctx)._receiver_(anObject);
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
@@ -56,8 +59,9 @@ smalltalk.method({
 selector: "interpret:withArguments:",
 selector: "interpret:withArguments:",
 fn: function (aString,aDictionary){
 fn: function (aString,aDictionary){
 var self=this;
 var self=this;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 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($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"]}),
@@ -82,8 +86,9 @@ smalltalk.method({
 selector: "parse:",
 selector: "parse:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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())._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"]}),
@@ -111,8 +116,9 @@ smalltalk.method({
 selector: "interpreter",
 selector: "interpreter",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTInterpreter(){return smalltalk.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
+$1=_st($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"]}),
@@ -148,7 +154,8 @@ smalltalk.method({
 selector: "testCascade",
 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)));
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st($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);
@@ -204,7 +211,8 @@ smalltalk.method({
 selector: "testInstVarAssignment",
 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));
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st($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);
@@ -251,10 +259,11 @@ smalltalk.method({
 selector: "interpreter",
 selector: "interpreter",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@interpreter"];
 $2=self["@interpreter"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@interpreter"]=_st((smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter))._new();
+self["@interpreter"]=_st($ASTSteppingInterpreter())._new();
 $1=self["@interpreter"];
 $1=self["@interpreter"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -327,8 +336,9 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 selector: "codeGeneratorClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $CodeGenerator(){return smalltalk.CodeGenerator||(typeof CodeGenerator=="undefined"?nil:CodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.CodeGenerator || CodeGenerator);
+$1=$CodeGenerator();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
@@ -340,8 +350,9 @@ smalltalk.method({
 selector: "compiler",
 selector: "compiler",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Compiler || Compiler))._new();
+$2=_st($Compiler())._new();
 _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -382,8 +393,9 @@ smalltalk.method({
 selector: "targetClass",
 selector: "targetClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.DoIt || DoIt);
+$1=$DoIt();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
@@ -464,7 +476,8 @@ 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\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))]);
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
+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($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^ 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",[_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))]));
 _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))]));
@@ -485,7 +498,7 @@ _st(self)._should_return_("foo ^ {1. [:x | x ] value: 2. 3. [4] value}",[(1), (2
 _st(self)._should_return_("foo ^ true",true);
 _st(self)._should_return_("foo ^ true",true);
 _st(self)._should_return_("foo ^ false",false);
 _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","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:", "->"]}),
@@ -578,8 +591,9 @@ smalltalk.method({
 selector: "testSendReceiverAndArgumentsOrdered",
 selector: "testSendReceiverAndArgumentsOrdered",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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)]);
 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)]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[$Array(),(2)]);
 return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 messageSends: ["should:return:"]}),
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
 smalltalk.CodeGeneratorTest);
@@ -691,8 +705,9 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 selector: "codeGeneratorClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 messageSends: []}),
 messageSends: []}),
@@ -708,12 +723,14 @@ selector: "testClassRefVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node;
 var node;
+function $ClassReferenceNode(){return smalltalk.ClassReferenceNode||(typeof ClassReferenceNode=="undefined"?nil:ClassReferenceNode)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.ClassReferenceNode || ClassReferenceNode))._new();
+$1=_st($ClassReferenceNode())._new();
 _st($1)._value_("Object");
 _st($1)._value_("Object");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
+_st(_st($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"]}),
@@ -726,12 +743,14 @@ selector: "testInstanceVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,scope;
 var node,scope;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($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)})},
@@ -745,15 +764,17 @@ selector: "testPseudoVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,pseudoVars;
 var node,pseudoVars;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 pseudoVars=["self", "super", "true", "false", "nil"];
 pseudoVars=["self", "super", "true", "false", "nil"];
 _st(pseudoVars)._do_((function(each){
 _st(pseudoVars)._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$1=_st((smalltalk.VariableNode || VariableNode))._new();
+return smalltalk.withContext(function($ctx2) {
$1=_st($VariableNode())._new();
 _st($1)._value_(each);
 _st($1)._value_(each);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 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($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:"]}),
@@ -766,12 +787,14 @@ selector: "testTempVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,scope;
 var node,scope;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($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)})},
@@ -785,12 +808,14 @@ selector: "testUnknownVar",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node;
 var node;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _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($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);
@@ -804,7 +829,9 @@ smalltalk.method({
 selector: "setUp",
 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));
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
+return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st($SemanticAnalyzer())._on_($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);
@@ -816,11 +843,12 @@ selector: "testAssignment",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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);
@@ -908,11 +936,12 @@ selector: "testUnknownVariables",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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);
@@ -924,11 +953,12 @@ selector: "testUnknownVariablesWithScope",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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);
@@ -954,11 +984,12 @@ selector: "testVariableShadowing2",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a := 2 ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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);
@@ -998,11 +1029,12 @@ selector: "testVariableShadowing5",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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);

+ 64 - 32
js/Compiler-Tests.js

@@ -7,8 +7,9 @@ selector: "analyze:forClass:",
 category: 'interpreting',
 category: 'interpreting',
 fn: function (aNode,aClass){
 fn: function (aNode,aClass){
 var self=this;
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
+_st(_st($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)})},
@@ -26,8 +27,9 @@ selector: "interpret:",
 category: 'interpreting',
 category: 'interpreting',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 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($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"],
@@ -45,8 +47,9 @@ category: 'interpreting',
 fn: function (aString,anObject,aDictionary){
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var self=this;
 var ctx;
 var ctx;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-ctx=_st((smalltalk.AIContext || AIContext))._new();
+ctx=_st($AIContext())._new();
 _st(ctx)._receiver_(anObject);
 _st(ctx)._receiver_(anObject);
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
@@ -72,8 +75,9 @@ selector: "interpret:withArguments:",
 category: 'interpreting',
 category: 'interpreting',
 fn: function (aString,aDictionary){
 fn: function (aString,aDictionary){
 var self=this;
 var self=this;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 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($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"],
@@ -108,8 +112,9 @@ selector: "parse:",
 category: 'parsing',
 category: 'parsing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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())._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"],
@@ -147,8 +152,9 @@ selector: "interpreter",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTInterpreter(){return smalltalk.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
+$1=_st($ASTInterpreter())._new();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 }, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 args: [],
 args: [],
@@ -199,7 +205,8 @@ selector: "testCascade",
 category: 'tests',
 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)));
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st($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)",
@@ -280,7 +287,8 @@ selector: "testInstVarAssignment",
 category: 'tests',
 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));
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
+return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_receiver_withArguments_("foo: anInteger x := anInteger. ^ x",_st($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\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",
 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",
@@ -347,10 +355,11 @@ selector: "interpreter",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@interpreter"];
 $2=self["@interpreter"];
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@interpreter"]=_st((smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter))._new();
+self["@interpreter"]=_st($ASTSteppingInterpreter())._new();
 $1=self["@interpreter"];
 $1=self["@interpreter"];
 } else {
 } else {
 $1=$2;
 $1=$2;
@@ -443,8 +452,9 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $CodeGenerator(){return smalltalk.CodeGenerator||(typeof CodeGenerator=="undefined"?nil:CodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.CodeGenerator || CodeGenerator);
+$1=$CodeGenerator();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
@@ -461,8 +471,9 @@ selector: "compiler",
 category: 'factory',
 category: 'factory',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Compiler || Compiler))._new();
+$2=_st($Compiler())._new();
 _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -518,8 +529,9 @@ selector: "targetClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.DoIt || DoIt);
+$1=$DoIt();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
@@ -635,7 +647,8 @@ 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\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))]);
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
+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($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^ 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",[_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))]));
 _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))]));
@@ -661,7 +674,7 @@ _st(self)._should_return_("foo ^ {1. [:x | x ] value: 2. 3. [4] value}",[(1), (2
 _st(self)._should_return_("foo ^ true",true);
 _st(self)._should_return_("foo ^ true",true);
 _st(self)._should_return_("foo ^ false",false);
 _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","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: [],
@@ -789,8 +802,9 @@ selector: "testSendReceiverAndArgumentsOrdered",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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)]);
 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)]);
+_st(self)._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[$Array(),(2)]);
 return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},smalltalk.CodeGeneratorTest)})},
 args: [],
 args: [],
 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}.",
 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}.",
@@ -942,8 +956,9 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 args: [],
 args: [],
@@ -964,12 +979,14 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node;
 var node;
+function $ClassReferenceNode(){return smalltalk.ClassReferenceNode||(typeof ClassReferenceNode=="undefined"?nil:ClassReferenceNode)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.ClassReferenceNode || ClassReferenceNode))._new();
+$1=_st($ClassReferenceNode())._new();
 _st($1)._value_("Object");
 _st($1)._value_("Object");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
+_st(_st($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: [],
@@ -987,12 +1004,14 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,scope;
 var node,scope;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($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)})},
@@ -1011,15 +1030,17 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,pseudoVars;
 var node,pseudoVars;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 pseudoVars=["self", "super", "true", "false", "nil"];
 pseudoVars=["self", "super", "true", "false", "nil"];
 _st(pseudoVars)._do_((function(each){
 _st(pseudoVars)._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
$1=_st((smalltalk.VariableNode || VariableNode))._new();
+return smalltalk.withContext(function($ctx2) {
$1=_st($VariableNode())._new();
 _st($1)._value_(each);
 _st($1)._value_(each);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 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($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: [],
@@ -1037,12 +1058,14 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node,scope;
 var node,scope;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
 node=$2;
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($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)})},
@@ -1061,12 +1084,14 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var node;
 var node;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
+function $MethodLexicalScope(){return smalltalk.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 _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($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",
@@ -1085,7 +1110,9 @@ selector: "setUp",
 category: 'running',
 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));
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
+return smalltalk.withContext(function($ctx1) { 
self["@analyzer"]=_st($SemanticAnalyzer())._on_($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",
@@ -1102,11 +1129,12 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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",
@@ -1224,11 +1252,12 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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",
@@ -1245,11 +1274,12 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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",
@@ -1285,11 +1315,12 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a := 2 ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ | a | a := 2 ]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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",
@@ -1344,11 +1375,12 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var src,ast;
 var src,ast;
+function $ShadowingVariableError(){return smalltalk.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]";
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 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)})}),$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",

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 191 - 116
js/IDE.deploy.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 191 - 116
js/IDE.js


+ 28 - 13
js/Importer-Exporter.deploy.js

@@ -91,9 +91,11 @@ smalltalk.method({
 selector: "exportAll",
 selector: "exportAll",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
return _st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packages())._do_((function(pkg){
+$1=_st($String())._streamContents_((function(stream){
+return smalltalk.withContext(function($ctx2) {
return _st(_st(_st($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($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)})}));
@@ -108,8 +110,9 @@ smalltalk.method({
 selector: "exportClass:",
 selector: "exportClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($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);
@@ -162,6 +165,7 @@ smalltalk.method({
 selector: "exportMetaDefinitionOf:on:",
 selector: "exportMetaDefinitionOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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)){
@@ -174,7 +178,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(
 }, 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($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"]}),
@@ -246,9 +250,11 @@ selector: "exportPackage:",
 fn: function (packageName){
 fn: function (packageName){
 var self=this;
 var self=this;
 var package_;
 var package_;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
+$1=_st($String())._streamContents_((function(stream){
+return smalltalk.withContext(function($ctx2) {
package_=_st(_st($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){
@@ -283,9 +289,11 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name;
 var name;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($Package())._sortedClasses_(_st(_st($Smalltalk())._current())._classes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
 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($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($ctx4) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
@@ -453,8 +461,9 @@ selector: "exportMethodsOf:on:",
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
 var map;
 var map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+map=_st($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)){
@@ -494,11 +503,14 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name,map;
 var name,map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($Package())._sortedClasses_(_st(_st($Smalltalk())._current())._classes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
 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($ctx3) {
map=_st($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));
@@ -588,8 +600,10 @@ selector: "import:",
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
 var chunk,result,parser,lastEmpty;
 var chunk,result,parser,lastEmpty;
+function $ChunkParser(){return smalltalk.ChunkParser||(typeof ChunkParser=="undefined"?nil:ChunkParser)}
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 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($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();
@@ -601,7 +615,7 @@ if(smalltalk.assert($1)){
 lastEmpty=true;
 lastEmpty=true;
 return lastEmpty;
 return lastEmpty;
 } else {
 } else {
-result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
+result=_st(_st($Compiler())._new())._evaluateExpression_(chunk);
 result;
 result;
 $2=lastEmpty;
 $2=lastEmpty;
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -624,8 +638,9 @@ smalltalk.method({
 selector: "initializePackageNamed:prefix:",
 selector: "initializePackageNamed:prefix:",
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($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"));

+ 28 - 13
js/Importer-Exporter.js

@@ -112,9 +112,11 @@ selector: "exportAll",
 category: 'fileOut',
 category: 'fileOut',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
return _st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packages())._do_((function(pkg){
+$1=_st($String())._streamContents_((function(stream){
+return smalltalk.withContext(function($ctx2) {
return _st(_st(_st($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($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)})}));
@@ -134,8 +136,9 @@ selector: "exportClass:",
 category: 'fileOut',
 category: 'fileOut',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($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);
@@ -198,6 +201,7 @@ selector: "exportMetaDefinitionOf:on:",
 category: 'private',
 category: 'private',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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)){
@@ -210,7 +214,7 @@ return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(
 }, 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($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"],
@@ -297,9 +301,11 @@ category: 'fileOut',
 fn: function (packageName){
 fn: function (packageName){
 var self=this;
 var self=this;
 var package_;
 var package_;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
-return smalltalk.withContext(function($ctx2) {
package_=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(packageName);
+$1=_st($String())._streamContents_((function(stream){
+return smalltalk.withContext(function($ctx2) {
package_=_st(_st($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){
@@ -344,9 +350,11 @@ category: 'private',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name;
 var name;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($Package())._sortedClasses_(_st(_st($Smalltalk())._current())._classes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
 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($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($ctx4) {
return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
@@ -549,8 +557,9 @@ category: 'not yet classified',
 fn: function (aClass,aStream){
 fn: function (aClass,aStream){
 var self=this;
 var self=this;
 var map;
 var map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+map=_st($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)){
@@ -600,11 +609,14 @@ category: 'not yet classified',
 fn: function (package_,aStream){
 fn: function (package_,aStream){
 var self=this;
 var self=this;
 var name,map;
 var name,map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($Package())._sortedClasses_(_st(_st($Smalltalk())._current())._classes()))._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st([each,_st(each)._class()])._do_((function(aClass){
 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($ctx3) {
map=_st($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));
@@ -709,8 +721,10 @@ category: 'fileIn',
 fn: function (aStream){
 fn: function (aStream){
 var self=this;
 var self=this;
 var chunk,result,parser,lastEmpty;
 var chunk,result,parser,lastEmpty;
+function $ChunkParser(){return smalltalk.ChunkParser||(typeof ChunkParser=="undefined"?nil:ChunkParser)}
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 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($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();
@@ -722,7 +736,7 @@ if(smalltalk.assert($1)){
 lastEmpty=true;
 lastEmpty=true;
 return lastEmpty;
 return lastEmpty;
 } else {
 } else {
-result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
+result=_st(_st($Compiler())._new())._evaluateExpression_(chunk);
 result;
 result;
 $2=lastEmpty;
 $2=lastEmpty;
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -750,8 +764,9 @@ selector: "initializePackageNamed:prefix:",
 category: 'laoding',
 category: 'laoding',
 fn: function (packageName,aString){
 fn: function (packageName,aString){
 var self=this;
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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($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"));

+ 4 - 2
js/Kernel-Announcements.deploy.js

@@ -98,8 +98,9 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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($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);
@@ -110,8 +111,9 @@ smalltalk.method({
 selector: "on:do:",
 selector: "on:do:",
 fn: function (aClass,aBlock){
 fn: function (aClass,aBlock){
 var self=this;
 var self=this;
+function $AnnouncementSubscription(){return smalltalk.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.AnnouncementSubscription || AnnouncementSubscription))._new();
+$1=_st($AnnouncementSubscription())._new();
 _st($1)._block_(aBlock);
 _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();

+ 4 - 2
js/Kernel-Announcements.js

@@ -136,8 +136,9 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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($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",
@@ -153,8 +154,9 @@ selector: "on:do:",
 category: 'subscribing',
 category: 'subscribing',
 fn: function (aClass,aBlock){
 fn: function (aClass,aBlock){
 var self=this;
 var self=this;
+function $AnnouncementSubscription(){return smalltalk.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.AnnouncementSubscription || AnnouncementSubscription))._new();
+$1=_st($AnnouncementSubscription())._new();
 _st($1)._block_(aBlock);
 _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();

+ 74 - 41
js/Kernel-Classes.deploy.js

@@ -7,6 +7,9 @@ selector: "addCompiledMethod:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 var oldMethod,announcement;
 var oldMethod,announcement;
+function $MethodAdded(){return smalltalk.MethodAdded||(typeof MethodAdded=="undefined"?nil:MethodAdded)}
+function $MethodModified(){return smalltalk.MethodModified||(typeof MethodModified=="undefined"?nil:MethodModified)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
 return smalltalk.withContext(function($ctx2) {
return nil;
@@ -18,18 +21,18 @@ _st(_st(self)._organization())._addElement_(_st(aMethod)._protocol());
 _st(self)._basicAddCompiledMethod_(aMethod);
 _st(self)._basicAddCompiledMethod_(aMethod);
 $2=oldMethod;
 $2=oldMethod;
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st((smalltalk.MethodAdded || MethodAdded))._new();
+$3=_st($MethodAdded())._new();
 _st($3)._method_(aMethod);
 _st($3)._method_(aMethod);
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 announcement=$4;
 announcement=$4;
 } else {
 } else {
-$5=_st((smalltalk.MethodModified || MethodModified))._new();
+$5=_st($MethodModified())._new();
 _st($5)._oldMethod_(oldMethod);
 _st($5)._oldMethod_(oldMethod);
 _st($5)._method_(aMethod);
 _st($5)._method_(aMethod);
 $6=_st($5)._yourself();
 $6=_st($5)._yourself();
 announcement=$6;
 announcement=$6;
 };
 };
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
+_st(_st($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);
@@ -97,18 +100,20 @@ smalltalk.method({
 selector: "allSuperclasses",
 selector: "allSuperclasses",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$2;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
 $1=_st(self)._superclass();
 $1=_st(self)._superclass();
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-return [];
+$2=[];
+return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=_st((smalltalk.OrderedCollection || OrderedCollection))._with_(_st(self)._superclass());
-_st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
-$4=_st($3)._yourself();
-$2=$4;
-return $2;
+$4=_st($OrderedCollection())._with_(_st(self)._superclass());
+_st($4)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
+$5=_st($4)._yourself();
+$3=$5;
+return $3;
 }, 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);
@@ -190,12 +195,14 @@ smalltalk.method({
 selector: "comment:",
 selector: "comment:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ClassCommentChanged(){return smalltalk.ClassCommentChanged||(typeof ClassCommentChanged=="undefined"?nil:ClassCommentChanged)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicAt_put_("comment",aString);
 _st(self)._basicAt_put_("comment",aString);
-$1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
+$1=_st($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($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);
@@ -206,8 +213,9 @@ smalltalk.method({
 selector: "commentStamp",
 selector: "commentStamp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ClassCommentReader(){return smalltalk.ClassCommentReader||(typeof ClassCommentReader=="undefined"?nil:ClassCommentReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCommentReader || ClassCommentReader))._new();
+$2=_st($ClassCommentReader())._new();
 _st($2)._class_(self);
 _st($2)._class_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -246,7 +254,8 @@ smalltalk.method({
 selector: "compile:category:",
 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);
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -378,8 +387,9 @@ smalltalk.method({
 selector: "methodsFor:",
 selector: "methodsFor:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ClassCategoryReader(){return smalltalk.ClassCategoryReader||(typeof ClassCategoryReader=="undefined"?nil:ClassCategoryReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCategoryReader || ClassCategoryReader))._new();
+$2=_st($ClassCategoryReader())._new();
 _st($2)._class_category_(self,aString);
 _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -473,10 +483,12 @@ selector: "protocolsDo:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var methodsByCategory;
 var methodsByCategory;
-return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st((smalltalk.HashedCollection || HashedCollection))._new();
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
+return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st($HashedCollection())._new();
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
-return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Array))._new();
+return smalltalk.withContext(function($ctx3) {
return _st($Array())._new();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
 }, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
 _st(_st(self)._protocols())._do_((function(category){
@@ -503,6 +515,8 @@ smalltalk.method({
 selector: "removeCompiledMethod:",
 selector: "removeCompiledMethod:",
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
+function $MethodRemoved(){return smalltalk.MethodRemoved||(typeof MethodRemoved=="undefined"?nil:MethodRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _st(_st(self)._methods())._detect_ifNone_((function(each){
 _st(_st(self)._methods())._detect_ifNone_((function(each){
@@ -510,10 +524,10 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol())
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-$1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
+$1=_st($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($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);
@@ -585,8 +599,9 @@ smalltalk.method({
 selector: "withAllSubclasses",
 selector: "withAllSubclasses",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Array || Array))._with_(self);
+$2=_st($Array())._with_(self);
 _st($2)._addAll_(_st(self)._allSubclasses());
 _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -635,13 +650,14 @@ smalltalk.method({
 selector: "definition",
 selector: "definition",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(" subclass: #");
 _st($2)._nextPutAll_(" subclass: #");
 _st($2)._nextPutAll_(_st(self)._name());
 _st($2)._nextPutAll_(_st(self)._name());
-_st($2)._nextPutAll_(_st(_st((smalltalk.String || String))._lf()).__comma(_st((smalltalk.String || String))._tab()));
+_st($2)._nextPutAll_(_st(_st($String())._lf()).__comma(_st($String())._tab()));
 $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
@@ -650,7 +666,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(e
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
 $4=stream;
-_st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
+_st($4)._nextPutAll_(_st(_st("'").__comma(_st($String())._lf())).__comma(_st($String())._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
 $5=_st($4)._nextPutAll_("'");
@@ -711,7 +727,8 @@ smalltalk.method({
 selector: "rename:",
 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);
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -762,8 +779,9 @@ smalltalk.method({
 selector: "subclass:instanceVariableNames:package:",
 selector: "subclass:instanceVariableNames:package:",
 fn: function (aString,aString2,aString3){
 fn: function (aString,aString2,aString3){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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"]}),
@@ -791,8 +809,9 @@ smalltalk.method({
 selector: "definition",
 selector: "definition",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(" class ");
 _st($2)._nextPutAll_(" class ");
@@ -827,7 +846,8 @@ smalltalk.method({
 selector: "instanceVariableNames:",
 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);
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -893,8 +913,9 @@ selector: "addSubclassOf:named:instanceVariableNames:package:",
 fn: function (aClass,aString,aCollection,packageName){
 fn: function (aClass,aString,aCollection,packageName){
 var self=this;
 var self=this;
 var theClass;
 var theClass;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
-theClass=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
+theClass=_st(_st($Smalltalk())._current())._at_(aString);
 $1=theClass;
 $1=theClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
 $1;
 $1;
@@ -999,13 +1020,15 @@ smalltalk.method({
 selector: "class:instanceVariableNames:",
 selector: "class:instanceVariableNames:",
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
+function $ClassDefinitionChanged(){return smalltalk.ClassDefinitionChanged||(typeof ClassDefinitionChanged=="undefined"?nil:ClassDefinitionChanged)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._setupClass_(aClass);
 _st(self)._setupClass_(aClass);
-$1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
+$1=_st($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($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);
@@ -1032,13 +1055,14 @@ smalltalk.method({
 selector: "copyClass:to:",
 selector: "copyClass:to:",
 fn: function (aClass,anotherClass){
 fn: function (aClass,anotherClass){
 var self=this;
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),anotherClass,_st(each)._category());
+return smalltalk.withContext(function($ctx2) {
return _st(_st($Compiler())._new())._install_forClass_category_(_st(each)._source(),anotherClass,_st(each)._category());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
+return smalltalk.withContext(function($ctx2) {
return _st(_st($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)})},
@@ -1095,14 +1119,16 @@ selector: "migrateClassNamed:superclass:instanceVariableNames:package:",
 fn: function (aString,aClass,aCollection,packageName){
 fn: function (aString,aClass,aCollection,packageName){
 var self=this;
 var self=this;
 var oldClass,newClass,tmp;
 var oldClass,newClass,tmp;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 tmp=_st("new*").__comma(aString);
 tmp=_st("new*").__comma(aString);
-oldClass=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
+oldClass=_st(_st($Smalltalk())._current())._at_(aString);
 newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
 newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st((function(){
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._copyClass_to_(oldClass,newClass);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._copyClass_to_(oldClass,newClass);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(exception){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($Error(),(function(exception){
 return smalltalk.withContext(function($ctx2) {
$1=self;
 return smalltalk.withContext(function($ctx2) {
$1=self;
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
@@ -1141,12 +1167,14 @@ smalltalk.method({
 selector: "renameClass:to:",
 selector: "renameClass:to:",
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
+function $ClassRenamed(){return smalltalk.ClassRenamed||(typeof ClassRenamed=="undefined"?nil:ClassRenamed)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicRenameClass_to_(aClass,aString);
 _st(self)._basicRenameClass_to_(aClass,aString);
-$1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
+$1=_st($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($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);
@@ -1182,6 +1210,8 @@ selector: "superclass:subclass:instanceVariableNames:package:",
 fn: function (aClass,aString,aString2,aString3){
 fn: function (aClass,aString,aString2,aString3){
 var self=this;
 var self=this;
 var newClass;
 var newClass;
+function $ClassAdded(){return smalltalk.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$6,$5,$7,$8,$9;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$6,$5,$7,$8,$9;
 $1=self;
 $1=self;
 $2=aClass;
 $2=aClass;
@@ -1195,10 +1225,10 @@ $5=$6;
 };
 };
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 _st(self)._setupClass_(newClass);
 _st(self)._setupClass_(newClass);
-$7=_st((smalltalk.ClassAdded || ClassAdded))._new();
+$7=_st($ClassAdded())._new();
 _st($7)._theClass_(newClass);
 _st($7)._theClass_(newClass);
 $8=_st($7)._yourself();
 $8=_st($7)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
+_st(_st($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)})},
@@ -1226,7 +1256,8 @@ smalltalk.method({
 selector: "compileMethod:",
 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"]);
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -1249,6 +1280,7 @@ selector: "scanFrom:",
 fn: function (aChunkParser){
 fn: function (aChunkParser){
 var self=this;
 var self=this;
 var chunk;
 var chunk;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
 chunk;
@@ -1256,7 +1288,7 @@ return _st(chunk)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 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($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);
@@ -1324,6 +1356,7 @@ selector: "getNodesFrom:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var children,others;
 var children,others;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 children=[];
 children=[];
 others=[];
 others=[];
@@ -1336,7 +1369,7 @@ return _st(others)._add_(each);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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($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"]}),

+ 74 - 41
js/Kernel-Classes.js

@@ -9,6 +9,9 @@ category: 'compiling',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
 var oldMethod,announcement;
 var oldMethod,announcement;
+function $MethodAdded(){return smalltalk.MethodAdded||(typeof MethodAdded=="undefined"?nil:MethodAdded)}
+function $MethodModified(){return smalltalk.MethodModified||(typeof MethodModified=="undefined"?nil:MethodModified)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5,$6;
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
 return smalltalk.withContext(function($ctx2) {
return nil;
@@ -20,18 +23,18 @@ _st(_st(self)._organization())._addElement_(_st(aMethod)._protocol());
 _st(self)._basicAddCompiledMethod_(aMethod);
 _st(self)._basicAddCompiledMethod_(aMethod);
 $2=oldMethod;
 $2=oldMethod;
 if(($receiver = $2) == nil || $receiver == undefined){
 if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st((smalltalk.MethodAdded || MethodAdded))._new();
+$3=_st($MethodAdded())._new();
 _st($3)._method_(aMethod);
 _st($3)._method_(aMethod);
 $4=_st($3)._yourself();
 $4=_st($3)._yourself();
 announcement=$4;
 announcement=$4;
 } else {
 } else {
-$5=_st((smalltalk.MethodModified || MethodModified))._new();
+$5=_st($MethodModified())._new();
 _st($5)._oldMethod_(oldMethod);
 _st($5)._oldMethod_(oldMethod);
 _st($5)._method_(aMethod);
 _st($5)._method_(aMethod);
 $6=_st($5)._yourself();
 $6=_st($5)._yourself();
 announcement=$6;
 announcement=$6;
 };
 };
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_(announcement);
+_st(_st($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\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",
 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",
@@ -119,18 +122,20 @@ selector: "allSuperclasses",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
var $1,$3,$4,$2;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
+return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$5,$3;
 $1=_st(self)._superclass();
 $1=_st(self)._superclass();
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
-return [];
+$2=[];
+return $2;
 } else {
 } else {
 $1;
 $1;
 };
 };
-$3=_st((smalltalk.OrderedCollection || OrderedCollection))._with_(_st(self)._superclass());
-_st($3)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
-$4=_st($3)._yourself();
-$2=$4;
-return $2;
+$4=_st($OrderedCollection())._with_(_st(self)._superclass());
+_st($4)._addAll_(_st(_st(self)._superclass())._allSuperclasses());
+$5=_st($4)._yourself();
+$3=$5;
+return $3;
 }, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{},smalltalk.Behavior)})},
 }, function($ctx1) {$ctx1.fill(self,"allSuperclasses",{},smalltalk.Behavior)})},
 args: [],
 args: [],
 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",
 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",
@@ -242,12 +247,14 @@ selector: "comment:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ClassCommentChanged(){return smalltalk.ClassCommentChanged||(typeof ClassCommentChanged=="undefined"?nil:ClassCommentChanged)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicAt_put_("comment",aString);
 _st(self)._basicAt_put_("comment",aString);
-$1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
+$1=_st($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($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\x09self basicAt: 'comment' put: aString.\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassCommentChanged new\x0a\x09\x09\x09theClass: self;\x0a\x09\x09\x09yourself)",
 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)",
@@ -263,8 +270,9 @@ selector: "commentStamp",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ClassCommentReader(){return smalltalk.ClassCommentReader||(typeof ClassCommentReader=="undefined"?nil:ClassCommentReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCommentReader || ClassCommentReader))._new();
+$2=_st($ClassCommentReader())._new();
 _st($2)._class_(self);
 _st($2)._class_(self);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -318,7 +326,8 @@ selector: "compile:category:",
 category: 'compiling',
 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);
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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\x09\x09forClass: self\x0a\x09\x09category: anotherString",
 source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString\x0a\x09\x09forClass: self\x0a\x09\x09category: anotherString",
@@ -495,8 +504,9 @@ selector: "methodsFor:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ClassCategoryReader(){return smalltalk.ClassCategoryReader||(typeof ClassCategoryReader=="undefined"?nil:ClassCategoryReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCategoryReader || ClassCategoryReader))._new();
+$2=_st($ClassCategoryReader())._new();
 _st($2)._class_category_(self,aString);
 _st($2)._class_category_(self,aString);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -625,10 +635,12 @@ category: 'accessing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var methodsByCategory;
 var methodsByCategory;
-return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st((smalltalk.HashedCollection || HashedCollection))._new();
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
+return smalltalk.withContext(function($ctx1) { 
methodsByCategory=_st($HashedCollection())._new();
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 _st(_st(_st(self)._methodDictionary())._values())._do_((function(m){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(methodsByCategory)._at_ifAbsentPut_(_st(m)._category(),(function(){
-return smalltalk.withContext(function($ctx3) {
return _st((smalltalk.Array || Array))._new();
+return smalltalk.withContext(function($ctx3) {
return _st($Array())._new();
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._add_(m);
 }, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
 _st(_st(self)._protocols())._do_((function(category){
@@ -665,6 +677,8 @@ selector: "removeCompiledMethod:",
 category: 'compiling',
 category: 'compiling',
 fn: function (aMethod){
 fn: function (aMethod){
 var self=this;
 var self=this;
+function $MethodRemoved(){return smalltalk.MethodRemoved||(typeof MethodRemoved=="undefined"?nil:MethodRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _st(_st(self)._methods())._detect_ifNone_((function(each){
 _st(_st(self)._methods())._detect_ifNone_((function(each){
@@ -672,10 +686,10 @@ return smalltalk.withContext(function($ctx2) {
return _st(_st(each)._protocol())
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-$1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
+$1=_st($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($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\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)",
 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)",
@@ -777,8 +791,9 @@ selector: "withAllSubclasses",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.Array || Array))._with_(self);
+$2=_st($Array())._with_(self);
 _st($2)._addAll_(_st(self)._allSubclasses());
 _st($2)._addAll_(_st(self)._allSubclasses());
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
 $1=$3;
 $1=$3;
@@ -843,13 +858,14 @@ selector: "definition",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$4,$5,$1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(" subclass: #");
 _st($2)._nextPutAll_(" subclass: #");
 _st($2)._nextPutAll_(_st(self)._name());
 _st($2)._nextPutAll_(_st(self)._name());
-_st($2)._nextPutAll_(_st(_st((smalltalk.String || String))._lf()).__comma(_st((smalltalk.String || String))._tab()));
+_st($2)._nextPutAll_(_st(_st($String())._lf()).__comma(_st($String())._tab()));
 $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3=_st($2)._nextPutAll_("instanceVariableNames: '");
 $3;
 $3;
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
 _st(_st(self)._instanceVariableNames())._do_separatedBy_((function(each){
@@ -858,7 +874,7 @@ return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(e
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(" ");
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
 $4=stream;
-_st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
+_st($4)._nextPutAll_(_st(_st("'").__comma(_st($String())._lf())).__comma(_st($String())._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
 $5=_st($4)._nextPutAll_("'");
@@ -944,7 +960,8 @@ selector: "rename:",
 category: 'accessing',
 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);
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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",
@@ -1015,8 +1032,9 @@ selector: "subclass:instanceVariableNames:package:",
 category: 'class creation',
 category: 'class creation',
 fn: function (aString,aString2,aString3){
 fn: function (aString,aString2,aString3){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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"],
@@ -1055,8 +1073,9 @@ selector: "definition",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 return smalltalk.withContext(function($ctx2) {
$2=stream;
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(" class ");
 _st($2)._nextPutAll_(" class ");
@@ -1101,7 +1120,8 @@ selector: "instanceVariableNames:",
 category: 'accessing',
 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);
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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\x09class: self instanceVariableNames: aCollection",
 source: "instanceVariableNames: aCollection\x0a\x09ClassBuilder new\x0a\x09\x09class: self instanceVariableNames: aCollection",
@@ -1193,8 +1213,9 @@ category: 'class definition',
 fn: function (aClass,aString,aCollection,packageName){
 fn: function (aClass,aString,aCollection,packageName){
 var self=this;
 var self=this;
 var theClass;
 var theClass;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
-theClass=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
+theClass=_st(_st($Smalltalk())._current())._at_(aString);
 $1=theClass;
 $1=theClass;
 if(($receiver = $1) == nil || $receiver == undefined){
 if(($receiver = $1) == nil || $receiver == undefined){
 $1;
 $1;
@@ -1334,13 +1355,15 @@ selector: "class:instanceVariableNames:",
 category: 'class definition',
 category: 'class definition',
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
+function $ClassDefinitionChanged(){return smalltalk.ClassDefinitionChanged||(typeof ClassDefinitionChanged=="undefined"?nil:ClassDefinitionChanged)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._setupClass_(aClass);
 _st(self)._setupClass_(aClass);
-$1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
+$1=_st($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($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\x09self setupClass: aClass.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassDefinitionChanged new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
 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)",
@@ -1377,13 +1400,14 @@ selector: "copyClass:to:",
 category: 'copying',
 category: 'copying',
 fn: function (aClass,anotherClass){
 fn: function (aClass,anotherClass){
 var self=this;
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
 _st(_st(_st(aClass)._methodDictionary())._values())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),anotherClass,_st(each)._category());
+return smalltalk.withContext(function($ctx2) {
return _st(_st($Compiler())._new())._install_forClass_category_(_st(each)._source(),anotherClass,_st(each)._category());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
 _st(_st(_st(_st(aClass)._class())._methodDictionary())._values())._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(_st(each)._source(),_st(anotherClass)._class(),_st(each)._category());
+return smalltalk.withContext(function($ctx2) {
return _st(_st($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)})},
@@ -1460,14 +1484,16 @@ category: 'class migration',
 fn: function (aString,aClass,aCollection,packageName){
 fn: function (aString,aClass,aCollection,packageName){
 var self=this;
 var self=this;
 var oldClass,newClass,tmp;
 var oldClass,newClass,tmp;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$5;
 tmp=_st("new*").__comma(aString);
 tmp=_st("new*").__comma(aString);
-oldClass=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._at_(aString);
+oldClass=_st(_st($Smalltalk())._current())._at_(aString);
 newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
 newClass=_st(self)._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st((function(){
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._copyClass_to_(oldClass,newClass);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._copyClass_to_(oldClass,newClass);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(exception){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($Error(),(function(exception){
 return smalltalk.withContext(function($ctx2) {
$1=self;
 return smalltalk.withContext(function($ctx2) {
$1=self;
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
@@ -1516,12 +1542,14 @@ selector: "renameClass:to:",
 category: 'class migration',
 category: 'class migration',
 fn: function (aClass,aString){
 fn: function (aClass,aString){
 var self=this;
 var self=this;
+function $ClassRenamed(){return smalltalk.ClassRenamed||(typeof ClassRenamed=="undefined"?nil:ClassRenamed)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 _st(self)._basicRenameClass_to_(aClass,aString);
 _st(self)._basicRenameClass_to_(aClass,aString);
-$1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
+$1=_st($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($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\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRenamed new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
 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)",
@@ -1572,6 +1600,8 @@ category: 'class definition',
 fn: function (aClass,aString,aString2,aString3){
 fn: function (aClass,aString,aString2,aString3){
 var self=this;
 var self=this;
 var newClass;
 var newClass;
+function $ClassAdded(){return smalltalk.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$6,$5,$7,$8,$9;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4,$6,$5,$7,$8,$9;
 $1=self;
 $1=self;
 $2=aClass;
 $2=aClass;
@@ -1585,10 +1615,10 @@ $5=$6;
 };
 };
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 _st(self)._setupClass_(newClass);
 _st(self)._setupClass_(newClass);
-$7=_st((smalltalk.ClassAdded || ClassAdded))._new();
+$7=_st($ClassAdded())._new();
 _st($7)._theClass_(newClass);
 _st($7)._theClass_(newClass);
 $8=_st($7)._yourself();
 $8=_st($7)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
+_st(_st($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)})},
@@ -1627,7 +1657,8 @@ selector: "compileMethod:",
 category: 'private',
 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"]);
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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",
@@ -1660,6 +1691,7 @@ category: 'fileIn',
 fn: function (aChunkParser){
 fn: function (aChunkParser){
 var self=this;
 var self=this;
 var chunk;
 var chunk;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
 chunk;
@@ -1667,7 +1699,7 @@ return _st(chunk)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 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($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\x09self 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",
@@ -1761,6 +1793,7 @@ category: 'accessing',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var children,others;
 var children,others;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 children=[];
 children=[];
 others=[];
 others=[];
@@ -1773,7 +1806,7 @@ return _st(others)._add_(each);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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($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"],

+ 48 - 26
js/Kernel-Collections.deploy.js

@@ -147,8 +147,9 @@ smalltalk.method({
 selector: "asArray",
 selector: "asArray",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Array || Array))._withAll_(self);
+$1=_st($Array())._withAll_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asArray",{},smalltalk.Collection)})},
 }, function($ctx1) {$ctx1.fill(self,"asArray",{},smalltalk.Collection)})},
 messageSends: ["withAll:"]}),
 messageSends: ["withAll:"]}),
@@ -188,8 +189,9 @@ smalltalk.method({
 selector: "asSet",
 selector: "asSet",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Set || Set))._withAll_(self);
+$1=_st($Set())._withAll_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSet",{},smalltalk.Collection)})},
 }, function($ctx1) {$ctx1.fill(self,"asSet",{},smalltalk.Collection)})},
 messageSends: ["withAll:"]}),
 messageSends: ["withAll:"]}),
@@ -365,8 +367,9 @@ selector: "includes:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 var sentinel;
 var sentinel;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-sentinel=_st((smalltalk.Object || Object))._new();
+sentinel=_st($Object())._new();
 $1=_st(_st(self)._detect_ifNone_((function(each){
 $1=_st(_st(self)._detect_ifNone_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each).__eq(anObject);
 return smalltalk.withContext(function($ctx2) {
return _st(each).__eq(anObject);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
@@ -403,9 +406,10 @@ selector: "intersection:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var set,outputSet;
 var set,outputSet;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 set=_st(self)._asSet();
 set=_st(self)._asSet();
-outputSet=_st((smalltalk.Set || Set))._new();
+outputSet=_st($Set())._new();
 _st(aCollection)._do_((function(each){
 _st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(set)._includes_(each))._and_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(set)._includes_(each))._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(outputSet)._includes_(each))._not();
 return smalltalk.withContext(function($ctx3) {
return _st(_st(outputSet)._includes_(each))._not();
@@ -816,8 +820,9 @@ smalltalk.method({
 selector: "asDictionary",
 selector: "asDictionary",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Dictionary || Dictionary))._fromPairs_(_st(self)._associations());
+$1=_st($Dictionary())._fromPairs_(_st(self)._associations());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asDictionary",{},smalltalk.HashedCollection)})},
 }, function($ctx1) {$ctx1.fill(self,"asDictionary",{},smalltalk.HashedCollection)})},
 messageSends: ["fromPairs:", "associations"]}),
 messageSends: ["fromPairs:", "associations"]}),
@@ -865,8 +870,9 @@ smalltalk.method({
 selector: "associationsDo:",
 selector: "associationsDo:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
+function $Association(){return smalltalk.Association||(typeof Association=="undefined"?nil:Association)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._keysAndValuesDo_((function(key,value){
-return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_(_st((smalltalk.Association || Association))._key_value_(key,value));
+return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_(_st($Association())._key_value_(key,value));
 }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"associationsDo:",{aBlock:aBlock},smalltalk.HashedCollection)})},
 return self}, function($ctx1) {$ctx1.fill(self,"associationsDo:",{aBlock:aBlock},smalltalk.HashedCollection)})},
 messageSends: ["keysAndValuesDo:", "value:", "key:value:"]}),
 messageSends: ["keysAndValuesDo:", "value:", "key:value:"]}),
@@ -1257,8 +1263,9 @@ smalltalk.method({
 selector: "asHashedCollection",
 selector: "asHashedCollection",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HashedCollection || HashedCollection))._fromPairs_(_st(self)._associations());
+$1=_st($HashedCollection())._fromPairs_(_st(self)._associations());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asHashedCollection",{},smalltalk.Dictionary)})},
 }, function($ctx1) {$ctx1.fill(self,"asHashedCollection",{},smalltalk.Dictionary)})},
 messageSends: ["fromPairs:", "associations"]}),
 messageSends: ["fromPairs:", "associations"]}),
@@ -1882,8 +1889,9 @@ smalltalk.method({
 selector: "streamClass",
 selector: "streamClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Stream(){return smalltalk.Stream||(typeof Stream=="undefined"?nil:Stream)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.Stream || Stream);
+$1=$Stream();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.SequenceableCollection.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.SequenceableCollection.klass)})},
 messageSends: []}),
 messageSends: []}),
@@ -2491,8 +2499,9 @@ smalltalk.method({
 selector: "asRegexp",
 selector: "asRegexp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.RegularExpression || RegularExpression))._fromString_(self);
+$1=_st($RegularExpression())._fromString_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asRegexp",{},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"asRegexp",{},smalltalk.String)})},
 messageSends: ["fromString:"]}),
 messageSends: ["fromString:"]}),
@@ -2668,8 +2677,9 @@ smalltalk.method({
 selector: "join:",
 selector: "join:",
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(aCollection)._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aCollection)._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(each)._asString());
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(each)._asString());
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
@@ -2688,14 +2698,15 @@ selector: "lineIndicesDo:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var cr,lf,start,sz,nextLF,nextCR;
 var cr,lf,start,sz,nextLF,nextCR;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 var $early={};
 var $early={};
 try {
 try {
 start=(1);
 start=(1);
 sz=_st(self)._size();
 sz=_st(self)._size();
-cr=_st((smalltalk.String || String))._cr();
+cr=_st($String())._cr();
 nextCR=_st(self)._indexOf_startingAt_(cr,(1));
 nextCR=_st(self)._indexOf_startingAt_(cr,(1));
-lf=_st((smalltalk.String || String))._lf();
+lf=_st($String())._lf();
 nextLF=_st(self)._indexOf_startingAt_(lf,(1));
 nextLF=_st(self)._indexOf_startingAt_(lf,(1));
 _st((function(){
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(start).__lt_eq(sz);
 return smalltalk.withContext(function($ctx2) {
return _st(start).__lt_eq(sz);
@@ -2777,8 +2788,9 @@ selector: "lines",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var lines;
 var lines;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-lines=_st((smalltalk.Array || Array))._new();
+lines=_st($Array())._new();
 _st(self)._linesDo_((function(aLine){
 _st(self)._linesDo_((function(aLine){
 return smalltalk.withContext(function($ctx2) {
return _st(lines)._add_(aLine);
 return smalltalk.withContext(function($ctx2) {
return _st(lines)._add_(aLine);
 }, function($ctx2) {$ctx2.fillBlock({aLine:aLine},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aLine:aLine},$ctx1)})}));
@@ -2855,8 +2867,9 @@ smalltalk.method({
 selector: "replace:with:",
 selector: "replace:with:",
 fn: function (aString,anotherString){
 fn: function (aString,anotherString){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(aString,"g"),anotherString);
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(aString,"g"),anotherString);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"replace:with:",{aString:aString,anotherString:anotherString},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"replace:with:",{aString:aString,anotherString:anotherString},smalltalk.String)})},
 messageSends: ["replaceRegexp:with:", "fromString:flag:"]}),
 messageSends: ["replaceRegexp:with:", "fromString:flag:"]}),
@@ -2964,8 +2977,9 @@ smalltalk.method({
 selector: "trimLeft:",
 selector: "trimLeft:",
 fn: function (separators){
 fn: function (separators){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(_st(_st("^[").__comma(separators)).__comma("]+"),"g"),"");
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(_st(_st("^[").__comma(separators)).__comma("]+"),"g"),"");
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"trimLeft:",{separators:separators},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"trimLeft:",{separators:separators},smalltalk.String)})},
 messageSends: ["replaceRegexp:with:", "fromString:flag:", ","]}),
 messageSends: ["replaceRegexp:with:", "fromString:flag:", ","]}),
@@ -2990,8 +3004,9 @@ smalltalk.method({
 selector: "trimRight:",
 selector: "trimRight:",
 fn: function (separators){
 fn: function (separators){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(_st(_st("[").__comma(separators)).__comma("]+$"),"g"),"");
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(_st(_st("[").__comma(separators)).__comma("]+$"),"g"),"");
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"trimRight:",{separators:separators},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"trimRight:",{separators:separators},smalltalk.String)})},
 messageSends: ["replaceRegexp:with:", "fromString:flag:", ","]}),
 messageSends: ["replaceRegexp:with:", "fromString:flag:", ","]}),
@@ -3082,7 +3097,7 @@ selector: "random",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);;
 return smalltalk.withContext(function($ctx1) { 
return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);;
-return self}, function($ctx1) {$ctx1.fill(self,"random",{}, smalltalk.String.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"random",{},smalltalk.String.klass)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.String.klass);
 smalltalk.String.klass);
 
 
@@ -3101,7 +3116,7 @@ return _st(aString)._includesSubString_(result);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue();
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"randomNotIn:",{aString:aString,result:result}, smalltalk.String.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"randomNotIn:",{aString:aString,result:result},smalltalk.String.klass)})},
 messageSends: ["whileTrue", "random", "includesSubString:"]}),
 messageSends: ["whileTrue", "random", "includesSubString:"]}),
 smalltalk.String.klass);
 smalltalk.String.klass);
 
 
@@ -3122,8 +3137,9 @@ smalltalk.method({
 selector: "streamClass",
 selector: "streamClass",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $StringStream(){return smalltalk.StringStream||(typeof StringStream=="undefined"?nil:StringStream)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.StringStream || StringStream);
+$1=$StringStream();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.String.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.String.klass)})},
 messageSends: []}),
 messageSends: []}),
@@ -3377,6 +3393,7 @@ selector: "frontIfAbsent:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var result;
 var result;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 var $early={};
 var $early={};
 try {
 try {
@@ -3397,7 +3414,7 @@ self["@read"]=self["@write"];
 self["@read"];
 self["@read"];
 self["@readIndex"]=(1);
 self["@readIndex"]=(1);
 self["@readIndex"];
 self["@readIndex"];
-self["@write"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@write"]=_st($OrderedCollection())._new();
 self["@write"];
 self["@write"];
 return _st(self["@read"])._first();
 return _st(self["@read"])._first();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
@@ -3417,9 +3434,10 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 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["@read"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
-self["@write"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@read"]=_st($OrderedCollection())._new();
+self["@write"]=_st($OrderedCollection())._new();
 self["@readIndex"]=(1);
 self["@readIndex"]=(1);
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Queue)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Queue)})},
 messageSends: ["initialize", "new"]}),
 messageSends: ["initialize", "new"]}),
@@ -3852,8 +3870,9 @@ smalltalk.method({
 selector: "cr",
 selector: "cr",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$1=_st(self)._nextPutAll_(_st($String())._cr());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"cr",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"cr",{},smalltalk.StringStream)})},
 messageSends: ["nextPutAll:", "cr"]}),
 messageSends: ["nextPutAll:", "cr"]}),
@@ -3865,8 +3884,9 @@ smalltalk.method({
 selector: "crlf",
 selector: "crlf",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._crlf());
+$1=_st(self)._nextPutAll_(_st($String())._crlf());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"crlf",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"crlf",{},smalltalk.StringStream)})},
 messageSends: ["nextPutAll:", "crlf"]}),
 messageSends: ["nextPutAll:", "crlf"]}),
@@ -3878,8 +3898,9 @@ smalltalk.method({
 selector: "lf",
 selector: "lf",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._lf());
+$1=_st(self)._nextPutAll_(_st($String())._lf());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"lf",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"lf",{},smalltalk.StringStream)})},
 messageSends: ["nextPutAll:", "lf"]}),
 messageSends: ["nextPutAll:", "lf"]}),
@@ -3970,8 +3991,9 @@ smalltalk.method({
 selector: "tab",
 selector: "tab",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._tab());
+$1=_st(self)._nextPutAll_(_st($String())._tab());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"tab",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"tab",{},smalltalk.StringStream)})},
 messageSends: ["nextPutAll:", "tab"]}),
 messageSends: ["nextPutAll:", "tab"]}),

+ 48 - 26
js/Kernel-Collections.js

@@ -200,8 +200,9 @@ selector: "asArray",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Array || Array))._withAll_(self);
+$1=_st($Array())._withAll_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asArray",{},smalltalk.Collection)})},
 }, function($ctx1) {$ctx1.fill(self,"asArray",{},smalltalk.Collection)})},
 args: [],
 args: [],
@@ -256,8 +257,9 @@ selector: "asSet",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Set || Set))._withAll_(self);
+$1=_st($Set())._withAll_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSet",{},smalltalk.Collection)})},
 }, function($ctx1) {$ctx1.fill(self,"asSet",{},smalltalk.Collection)})},
 args: [],
 args: [],
@@ -493,8 +495,9 @@ category: 'testing',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
 var sentinel;
 var sentinel;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-sentinel=_st((smalltalk.Object || Object))._new();
+sentinel=_st($Object())._new();
 $1=_st(_st(self)._detect_ifNone_((function(each){
 $1=_st(_st(self)._detect_ifNone_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each).__eq(anObject);
 return smalltalk.withContext(function($ctx2) {
return _st(each).__eq(anObject);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
@@ -541,9 +544,10 @@ category: 'enumerating',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
 var set,outputSet;
 var set,outputSet;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 set=_st(self)._asSet();
 set=_st(self)._asSet();
-outputSet=_st((smalltalk.Set || Set))._new();
+outputSet=_st($Set())._new();
 _st(aCollection)._do_((function(each){
 _st(aCollection)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(set)._includes_(each))._and_((function(){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(set)._includes_(each))._and_((function(){
 return smalltalk.withContext(function($ctx3) {
return _st(_st(outputSet)._includes_(each))._not();
 return smalltalk.withContext(function($ctx3) {
return _st(_st(outputSet)._includes_(each))._not();
@@ -1096,8 +1100,9 @@ selector: "asDictionary",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Dictionary || Dictionary))._fromPairs_(_st(self)._associations());
+$1=_st($Dictionary())._fromPairs_(_st(self)._associations());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asDictionary",{},smalltalk.HashedCollection)})},
 }, function($ctx1) {$ctx1.fill(self,"asDictionary",{},smalltalk.HashedCollection)})},
 args: [],
 args: [],
@@ -1160,8 +1165,9 @@ selector: "associationsDo:",
 category: 'enumerating',
 category: 'enumerating',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
+function $Association(){return smalltalk.Association||(typeof Association=="undefined"?nil:Association)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._keysAndValuesDo_((function(key,value){
-return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_(_st((smalltalk.Association || Association))._key_value_(key,value));
+return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._value_(_st($Association())._key_value_(key,value));
 }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"associationsDo:",{aBlock:aBlock},smalltalk.HashedCollection)})},
 return self}, function($ctx1) {$ctx1.fill(self,"associationsDo:",{aBlock:aBlock},smalltalk.HashedCollection)})},
 args: ["aBlock"],
 args: ["aBlock"],
@@ -1683,8 +1689,9 @@ selector: "asHashedCollection",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HashedCollection || HashedCollection))._fromPairs_(_st(self)._associations());
+$1=_st($HashedCollection())._fromPairs_(_st(self)._associations());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asHashedCollection",{},smalltalk.Dictionary)})},
 }, function($ctx1) {$ctx1.fill(self,"asHashedCollection",{},smalltalk.Dictionary)})},
 args: [],
 args: [],
@@ -2524,8 +2531,9 @@ selector: "streamClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Stream(){return smalltalk.Stream||(typeof Stream=="undefined"?nil:Stream)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.Stream || Stream);
+$1=$Stream();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.SequenceableCollection.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.SequenceableCollection.klass)})},
 args: [],
 args: [],
@@ -3366,8 +3374,9 @@ selector: "asRegexp",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.RegularExpression || RegularExpression))._fromString_(self);
+$1=_st($RegularExpression())._fromString_(self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asRegexp",{},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"asRegexp",{},smalltalk.String)})},
 args: [],
 args: [],
@@ -3618,8 +3627,9 @@ selector: "join:",
 category: 'split join',
 category: 'split join',
 fn: function (aCollection){
 fn: function (aCollection){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(aCollection)._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(aCollection)._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(each)._asString());
 return smalltalk.withContext(function($ctx3) {
return _st(stream)._nextPutAll_(_st(each)._asString());
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
@@ -3643,14 +3653,15 @@ category: 'split join',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var cr,lf,start,sz,nextLF,nextCR;
 var cr,lf,start,sz,nextLF,nextCR;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 var $early={};
 var $early={};
 try {
 try {
 start=(1);
 start=(1);
 sz=_st(self)._size();
 sz=_st(self)._size();
-cr=_st((smalltalk.String || String))._cr();
+cr=_st($String())._cr();
 nextCR=_st(self)._indexOf_startingAt_(cr,(1));
 nextCR=_st(self)._indexOf_startingAt_(cr,(1));
-lf=_st((smalltalk.String || String))._lf();
+lf=_st($String())._lf();
 nextLF=_st(self)._indexOf_startingAt_(lf,(1));
 nextLF=_st(self)._indexOf_startingAt_(lf,(1));
 _st((function(){
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(start).__lt_eq(sz);
 return smalltalk.withContext(function($ctx2) {
return _st(start).__lt_eq(sz);
@@ -3742,8 +3753,9 @@ category: 'split join',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var lines;
 var lines;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-lines=_st((smalltalk.Array || Array))._new();
+lines=_st($Array())._new();
 _st(self)._linesDo_((function(aLine){
 _st(self)._linesDo_((function(aLine){
 return smalltalk.withContext(function($ctx2) {
return _st(lines)._add_(aLine);
 return smalltalk.withContext(function($ctx2) {
return _st(lines)._add_(aLine);
 }, function($ctx2) {$ctx2.fillBlock({aLine:aLine},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aLine:aLine},$ctx1)})}));
@@ -3850,8 +3862,9 @@ selector: "replace:with:",
 category: 'regular expressions',
 category: 'regular expressions',
 fn: function (aString,anotherString){
 fn: function (aString,anotherString){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(aString,"g"),anotherString);
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(aString,"g"),anotherString);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"replace:with:",{aString:aString,anotherString:anotherString},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"replace:with:",{aString:aString,anotherString:anotherString},smalltalk.String)})},
 args: ["aString", "anotherString"],
 args: ["aString", "anotherString"],
@@ -4004,8 +4017,9 @@ selector: "trimLeft:",
 category: 'regular expressions',
 category: 'regular expressions',
 fn: function (separators){
 fn: function (separators){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(_st(_st("^[").__comma(separators)).__comma("]+"),"g"),"");
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(_st(_st("^[").__comma(separators)).__comma("]+"),"g"),"");
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"trimLeft:",{separators:separators},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"trimLeft:",{separators:separators},smalltalk.String)})},
 args: ["separators"],
 args: ["separators"],
@@ -4040,8 +4054,9 @@ selector: "trimRight:",
 category: 'regular expressions',
 category: 'regular expressions',
 fn: function (separators){
 fn: function (separators){
 var self=this;
 var self=this;
+function $RegularExpression(){return smalltalk.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._replaceRegexp_with_(_st((smalltalk.RegularExpression || RegularExpression))._fromString_flag_(_st(_st("[").__comma(separators)).__comma("]+$"),"g"),"");
+$1=_st(self)._replaceRegexp_with_(_st($RegularExpression())._fromString_flag_(_st(_st("[").__comma(separators)).__comma("]+$"),"g"),"");
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"trimRight:",{separators:separators},smalltalk.String)})},
 }, function($ctx1) {$ctx1.fill(self,"trimRight:",{separators:separators},smalltalk.String)})},
 args: ["separators"],
 args: ["separators"],
@@ -4172,7 +4187,7 @@ category: 'random',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);;
 return smalltalk.withContext(function($ctx1) { 
return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);;
-return self}, function($ctx1) {$ctx1.fill(self,"random",{}, smalltalk.String.klass)})},
+return self}, function($ctx1) {$ctx1.fill(self,"random",{},smalltalk.String.klass)})},
 args: [],
 args: [],
 source: "random\x0a\x09\x22Returns random alphanumeric string beginning with letter\x22\x0a\x09<return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);>",
 source: "random\x0a\x09\x22Returns random alphanumeric string beginning with letter\x22\x0a\x09<return (Math.random()*(22/32)+(10/32)).toString(32).slice(2);>",
 messageSends: [],
 messageSends: [],
@@ -4196,7 +4211,7 @@ return _st(aString)._includesSubString_(result);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileTrue();
 $1=result;
 $1=result;
 return $1;
 return $1;
-}, function($ctx1) {$ctx1.fill(self,"randomNotIn:",{aString:aString,result:result}, smalltalk.String.klass)})},
+}, function($ctx1) {$ctx1.fill(self,"randomNotIn:",{aString:aString,result:result},smalltalk.String.klass)})},
 args: ["aString"],
 args: ["aString"],
 source: "randomNotIn: aString\x0a\x09| result |\x0a    [ result := self random. aString includesSubString: result ] whileTrue.\x0a    ^result",
 source: "randomNotIn: aString\x0a\x09| result |\x0a    [ result := self random. aString includesSubString: result ] whileTrue.\x0a    ^result",
 messageSends: ["whileTrue", "random", "includesSubString:"],
 messageSends: ["whileTrue", "random", "includesSubString:"],
@@ -4227,8 +4242,9 @@ selector: "streamClass",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $StringStream(){return smalltalk.StringStream||(typeof StringStream=="undefined"?nil:StringStream)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.StringStream || StringStream);
+$1=$StringStream();
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.String.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"streamClass",{},smalltalk.String.klass)})},
 args: [],
 args: [],
@@ -4569,6 +4585,7 @@ category: 'accessing',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var result;
 var result;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3,$4;
 var $early={};
 var $early={};
 try {
 try {
@@ -4589,7 +4606,7 @@ self["@read"]=self["@write"];
 self["@read"];
 self["@read"];
 self["@readIndex"]=(1);
 self["@readIndex"]=(1);
 self["@readIndex"];
 self["@readIndex"];
-self["@write"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@write"]=_st($OrderedCollection())._new();
 self["@write"];
 self["@write"];
 return _st(self["@read"])._first();
 return _st(self["@read"])._first();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
@@ -4614,9 +4631,10 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 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["@read"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
-self["@write"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@read"]=_st($OrderedCollection())._new();
+self["@write"]=_st($OrderedCollection())._new();
 self["@readIndex"]=(1);
 self["@readIndex"]=(1);
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Queue)})},
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Queue)})},
 args: [],
 args: [],
@@ -5217,8 +5235,9 @@ selector: "cr",
 category: 'writing',
 category: 'writing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._cr());
+$1=_st(self)._nextPutAll_(_st($String())._cr());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"cr",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"cr",{},smalltalk.StringStream)})},
 args: [],
 args: [],
@@ -5235,8 +5254,9 @@ selector: "crlf",
 category: 'writing',
 category: 'writing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._crlf());
+$1=_st(self)._nextPutAll_(_st($String())._crlf());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"crlf",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"crlf",{},smalltalk.StringStream)})},
 args: [],
 args: [],
@@ -5253,8 +5273,9 @@ selector: "lf",
 category: 'writing',
 category: 'writing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._lf());
+$1=_st(self)._nextPutAll_(_st($String())._lf());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"lf",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"lf",{},smalltalk.StringStream)})},
 args: [],
 args: [],
@@ -5375,8 +5396,9 @@ selector: "tab",
 category: 'writing',
 category: 'writing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(self)._nextPutAll_(_st((smalltalk.String || String))._tab());
+$1=_st(self)._nextPutAll_(_st($String())._tab());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"tab",{},smalltalk.StringStream)})},
 }, function($ctx1) {$ctx1.fill(self,"tab",{},smalltalk.StringStream)})},
 args: [],
 args: [],

+ 2 - 1
js/Kernel-Exceptions.deploy.js

@@ -411,7 +411,8 @@ smalltalk.method({
 selector: "register",
 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());
+function $ErrorHandler(){return smalltalk.ErrorHandler||(typeof ErrorHandler=="undefined"?nil:ErrorHandler)}
+return smalltalk.withContext(function($ctx1) { 
_st($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);

+ 2 - 1
js/Kernel-Exceptions.js

@@ -567,7 +567,8 @@ selector: "register",
 category: 'initialization',
 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());
+function $ErrorHandler(){return smalltalk.ErrorHandler||(typeof ErrorHandler=="undefined"?nil:ErrorHandler)}
+return smalltalk.withContext(function($ctx1) { 
_st($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",

+ 13 - 6
js/Kernel-Methods.deploy.js

@@ -67,7 +67,8 @@ smalltalk.method({
 selector: "fork",
 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);
+function $ForkPool(){return smalltalk.ForkPool||(typeof ForkPool=="undefined"?nil:ForkPool)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -133,10 +134,11 @@ smalltalk.method({
 selector: "on:do:",
 selector: "on:do:",
 fn: function (anErrorClass,aBlock){
 fn: function (anErrorClass,aBlock){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $1=_st(self)._try_catch_(self,(function(error){
 $1=_st(self)._try_catch_(self,(function(error){
 var smalltalkError;
 var smalltalkError;
-return smalltalk.withContext(function($ctx2) {
smalltalkError=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._asSmalltalkException_(error);
+return smalltalk.withContext(function($ctx2) {
smalltalkError=_st(_st($Smalltalk())._current())._asSmalltalkException_(error);
 smalltalkError;
 smalltalkError;
 $2=_st(smalltalkError)._isKindOf_(anErrorClass);
 $2=_st(smalltalkError)._isKindOf_(anErrorClass);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -156,8 +158,9 @@ smalltalk.method({
 selector: "timeToRun",
 selector: "timeToRun",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
+$1=_st($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:"]}),
@@ -539,9 +542,10 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Queue(){return smalltalk.Queue||(typeof Queue=="undefined"?nil:Queue)}
 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["@poolSize"]=(0);
 self["@poolSize"]=(0);
-self["@queue"]=_st((smalltalk.Queue || Queue))._new();
+self["@queue"]=_st($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"]}),
@@ -554,8 +558,9 @@ selector: "makeWorker",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var sentinel;
 var sentinel;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-sentinel=_st((smalltalk.Object || Object))._new();
+sentinel=_st($Object())._new();
 $1=(function(){
 $1=(function(){
 var block;
 var block;
 return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@poolSize"]).__minus((1));
 return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@poolSize"]).__minus((1));
@@ -634,7 +639,9 @@ smalltalk.method({
 selector: "defaultMaxPoolSize",
 selector: "defaultMaxPoolSize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return (100);
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=(100);
+return $1;
 }, 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);

+ 13 - 6
js/Kernel-Methods.js

@@ -94,7 +94,8 @@ selector: "fork",
 category: 'timeout/interval',
 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);
+function $ForkPool(){return smalltalk.ForkPool||(typeof ForkPool=="undefined"?nil:ForkPool)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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",
@@ -190,10 +191,11 @@ selector: "on:do:",
 category: 'error handling',
 category: 'error handling',
 fn: function (anErrorClass,aBlock){
 fn: function (anErrorClass,aBlock){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $1=_st(self)._try_catch_(self,(function(error){
 $1=_st(self)._try_catch_(self,(function(error){
 var smalltalkError;
 var smalltalkError;
-return smalltalk.withContext(function($ctx2) {
smalltalkError=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._asSmalltalkException_(error);
+return smalltalk.withContext(function($ctx2) {
smalltalkError=_st(_st($Smalltalk())._current())._asSmalltalkException_(error);
 smalltalkError;
 smalltalkError;
 $2=_st(smalltalkError)._isKindOf_(anErrorClass);
 $2=_st(smalltalkError)._isKindOf_(anErrorClass);
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
@@ -218,8 +220,9 @@ selector: "timeToRun",
 category: 'evaluating',
 category: 'evaluating',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Date || Date))._millisecondsToRun_(self);
+$1=_st($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: [],
@@ -748,9 +751,10 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Queue(){return smalltalk.Queue||(typeof Queue=="undefined"?nil:Queue)}
 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["@poolSize"]=(0);
 self["@poolSize"]=(0);
-self["@queue"]=_st((smalltalk.Queue || Queue))._new();
+self["@queue"]=_st($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: [],
@@ -768,8 +772,9 @@ category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var sentinel;
 var sentinel;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
-sentinel=_st((smalltalk.Object || Object))._new();
+sentinel=_st($Object())._new();
 $1=(function(){
 $1=(function(){
 var block;
 var block;
 return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@poolSize"]).__minus((1));
 return smalltalk.withContext(function($ctx2) {
self["@poolSize"]=_st(self["@poolSize"]).__minus((1));
@@ -868,7 +873,9 @@ selector: "defaultMaxPoolSize",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return (100);
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=(100);
+return $1;
 }, 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",

+ 72 - 36
js/Kernel-Objects.deploy.js

@@ -6,8 +6,9 @@ smalltalk.method({
 selector: "->",
 selector: "->",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $Association(){return smalltalk.Association||(typeof Association=="undefined"?nil:Association)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Association || Association))._key_value_(self,anObject);
+$1=_st($Association())._key_value_(self,anObject);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},smalltalk.Object)})},
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},smalltalk.Object)})},
 messageSends: ["key:value:"]}),
 messageSends: ["key:value:"]}),
@@ -46,8 +47,9 @@ selector: "asJSON",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var variables;
 var variables;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-variables=_st((smalltalk.HashedCollection || HashedCollection))._new();
+variables=_st($HashedCollection())._new();
 _st(_st(_st(self)._class())._allInstanceVariableNames())._do_((function(each){
 _st(_st(_st(self)._class())._allInstanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(variables)._at_put_(each,_st(_st(self)._instVarAt_(each))._asJSON());
 return smalltalk.withContext(function($ctx2) {
return _st(variables)._at_put_(each,_st(_st(self)._instVarAt_(each))._asJSON());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -63,8 +65,9 @@ smalltalk.method({
 selector: "asJSONString",
 selector: "asJSONString",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $JSON(){return smalltalk.JSON||(typeof JSON=="undefined"?nil:JSON)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.JSON || JSON))._stringify_(_st(self)._asJSON());
+$1=_st($JSON())._stringify_(_st(self)._asJSON());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},smalltalk.Object)})},
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},smalltalk.Object)})},
 messageSends: ["stringify:", "asJSON"]}),
 messageSends: ["stringify:", "asJSON"]}),
@@ -213,8 +216,9 @@ smalltalk.method({
 selector: "doesNotUnderstand:",
 selector: "doesNotUnderstand:",
 fn: function (aMessage){
 fn: function (aMessage){
 var self=this;
 var self=this;
+function $MessageNotUnderstood(){return smalltalk.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.MessageNotUnderstood || MessageNotUnderstood))._new();
+$1=_st($MessageNotUnderstood())._new();
 _st($1)._receiver_(self);
 _st($1)._receiver_(self);
 _st($1)._message_(aMessage);
 _st($1)._message_(aMessage);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
@@ -228,7 +232,8 @@ smalltalk.method({
 selector: "error:",
 selector: "error:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.Error || Error))._signal_(aString);
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+return smalltalk.withContext(function($ctx1) { 
_st($Error())._signal_(aString);
 return self}, function($ctx1) {$ctx1.fill(self,"error:",{aString:aString},smalltalk.Object)})},
 return self}, function($ctx1) {$ctx1.fill(self,"error:",{aString:aString},smalltalk.Object)})},
 messageSends: ["signal:"]}),
 messageSends: ["signal:"]}),
 smalltalk.Object);
 smalltalk.Object);
@@ -548,8 +553,9 @@ smalltalk.method({
 selector: "printString",
 selector: "printString",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._printOn_(stream);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._printOn_(stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
@@ -1402,10 +1408,11 @@ selector: "millisecondsToRun:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var t;
 var t;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-t=_st((smalltalk.Date || Date))._now();
+t=_st($Date())._now();
 _st(aBlock)._value();
 _st(aBlock)._value();
-$1=_st(_st((smalltalk.Date || Date))._now()).__minus(t);
+$1=_st(_st($Date())._now()).__minus(t);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},smalltalk.Date.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},smalltalk.Date.klass)})},
 messageSends: ["now", "value", "-"]}),
 messageSends: ["now", "value", "-"]}),
@@ -1586,7 +1593,8 @@ selector: "inspectOn:",
 fn: function (anInspector){
 fn: function (anInspector){
 var self=this;
 var self=this;
 var variables;
 var variables;
-return smalltalk.withContext(function($ctx1) { 
variables=_st((smalltalk.Dictionary || Dictionary))._new();
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+return smalltalk.withContext(function($ctx1) { 
variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",_st(self)._jsObject());
 _st(variables)._at_put_("#self",_st(self)._jsObject());
 _st(anInspector)._setLabel_(_st(self)._printString());
 _st(anInspector)._setLabel_(_st(self)._printString());
 _st(self)._addObjectVariablesTo_(variables);
 _st(self)._addObjectVariablesTo_(variables);
@@ -1801,8 +1809,9 @@ smalltalk.method({
 selector: "@",
 selector: "@",
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(self,aNumber);
+$1=_st($Point())._x_y_(self,aNumber);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},smalltalk.Number)})},
 messageSends: ["x:y:"]}),
 messageSends: ["x:y:"]}),
@@ -1885,8 +1894,9 @@ smalltalk.method({
 selector: "asPoint",
 selector: "asPoint",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(self,self);
+$1=_st($Point())._x_y_(self,self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},smalltalk.Number)})},
 messageSends: ["x:y:"]}),
 messageSends: ["x:y:"]}),
@@ -1909,8 +1919,9 @@ smalltalk.method({
 selector: "atRandom",
 selector: "atRandom",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Random(){return smalltalk.Random||(typeof Random=="undefined"?nil:Random)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st(_st(_st(_st((smalltalk.Random || Random))._new())._next()).__star(self))._truncated()).__plus((1));
+$1=_st(_st(_st(_st(_st($Random())._new())._next()).__star(self))._truncated()).__plus((1));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},smalltalk.Number)})},
 messageSends: ["+", "truncated", "*", "next", "new"]}),
 messageSends: ["+", "truncated", "*", "next", "new"]}),
@@ -2149,11 +2160,12 @@ selector: "to:",
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 var array,first,last,count;
 var array,first,last,count;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 first=_st(self)._truncated();
 first=_st(self)._truncated();
 last=_st(_st(aNumber)._truncated()).__plus((1));
 last=_st(_st(aNumber)._truncated()).__plus((1));
 count=(1);
 count=(1);
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 _st(_st(last).__minus(first))._timesRepeat_((function(){
 _st(_st(last).__minus(first))._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(array)._at_put_(count,first);
 return smalltalk.withContext(function($ctx2) {
_st(array)._at_put_(count,first);
 count=_st(count).__plus((1));
 count=_st(count).__plus((1));
@@ -2174,9 +2186,10 @@ selector: "to:by:",
 fn: function (stop,step){
 fn: function (stop,step){
 var self=this;
 var self=this;
 var array,value,pos;
 var array,value,pos;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 value=self;
 value=self;
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 pos=(1);
 pos=(1);
 $1=_st(step).__eq((0));
 $1=_st(step).__eq((0));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
@@ -2350,13 +2363,15 @@ smalltalk.method({
 selector: "addElement:",
 selector: "addElement:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ProtocolAdded(){return smalltalk.ProtocolAdded||(typeof ProtocolAdded=="undefined"?nil:ProtocolAdded)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 smalltalk.Organizer.fn.prototype._addElement_.apply(_st(self), [aString]);
 smalltalk.Organizer.fn.prototype._addElement_.apply(_st(self), [aString]);
-$1=_st((smalltalk.ProtocolAdded || ProtocolAdded))._new();
+$1=_st($ProtocolAdded())._new();
 _st($1)._protocol_(aString);
 _st($1)._protocol_(aString);
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"addElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 return self}, function($ctx1) {$ctx1.fill(self,"addElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 messageSends: ["addElement:", "announce:", "protocol:", "new", "theClass:", "theClass", "yourself", "current"]}),
 messageSends: ["addElement:", "announce:", "protocol:", "new", "theClass:", "theClass", "yourself", "current"]}),
 smalltalk.ClassOrganizer);
 smalltalk.ClassOrganizer);
@@ -2367,13 +2382,15 @@ smalltalk.method({
 selector: "removeElement:",
 selector: "removeElement:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ProtocolRemoved(){return smalltalk.ProtocolRemoved||(typeof ProtocolRemoved=="undefined"?nil:ProtocolRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 smalltalk.Organizer.fn.prototype._removeElement_.apply(_st(self), [aString]);
 smalltalk.Organizer.fn.prototype._removeElement_.apply(_st(self), [aString]);
-$1=_st((smalltalk.ProtocolRemoved || ProtocolRemoved))._new();
+$1=_st($ProtocolRemoved())._new();
 _st($1)._protocol_(aString);
 _st($1)._protocol_(aString);
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"removeElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 return self}, function($ctx1) {$ctx1.fill(self,"removeElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 messageSends: ["removeElement:", "announce:", "protocol:", "new", "theClass:", "theClass", "yourself", "current"]}),
 messageSends: ["removeElement:", "announce:", "protocol:", "new", "theClass:", "theClass", "yourself", "current"]}),
 smalltalk.ClassOrganizer);
 smalltalk.ClassOrganizer);
@@ -2573,8 +2590,9 @@ smalltalk.method({
 selector: "properties",
 selector: "properties",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._readJSObject_(_st(self)._basicAt_("properties"));
+$1=_st(_st($Smalltalk())._current())._readJSObject_(_st(self)._basicAt_("properties"));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"properties",{},smalltalk.Package)})},
 }, function($ctx1) {$ctx1.fill(self,"properties",{},smalltalk.Package)})},
 messageSends: ["readJSObject:", "basicAt:", "current"]}),
 messageSends: ["readJSObject:", "basicAt:", "current"]}),
@@ -2637,10 +2655,11 @@ smalltalk.method({
 selector: "setupClasses",
 selector: "setupClasses",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(self)._classes();
 $1=_st(self)._classes();
 _st($1)._do_((function(each){
 _st($1)._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(_st($ClassBuilder())._new())._setupClass_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $2=_st($1)._do_((function(each){
 $2=_st($1)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._initialize();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._initialize();
@@ -2757,8 +2776,9 @@ smalltalk.method({
 selector: "fetch:prefix:",
 selector: "fetch:prefix:",
 fn: function (aPackageName,aPrefix){
 fn: function (aPackageName,aPrefix){
 var self=this;
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 return smalltalk.withContext(function($ctx1) { 
_st(jQuery)._getScript_onSuccess_(_st(_st(aPrefix).__comma(aPackageName)).__comma(".js"),(function(){
 return smalltalk.withContext(function($ctx1) { 
_st(jQuery)._getScript_onSuccess_(_st(_st(aPrefix).__comma(aPackageName)).__comma(".js"),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Package || Package))._named_(aPackageName))._setupClasses();
+return smalltalk.withContext(function($ctx2) {
return _st(_st($Package())._named_(aPackageName))._setupClasses();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"fetch:prefix:",{aPackageName:aPackageName,aPrefix:aPrefix},smalltalk.Package.klass)})},
 return self}, function($ctx1) {$ctx1.fill(self,"fetch:prefix:",{aPackageName:aPackageName,aPrefix:aPrefix},smalltalk.Package.klass)})},
 messageSends: ["getScript:onSuccess:", ",", "setupClasses", "named:"]}),
 messageSends: ["getScript:onSuccess:", ",", "setupClasses", "named:"]}),
@@ -2782,8 +2802,9 @@ smalltalk.method({
 selector: "named:",
 selector: "named:",
 fn: function (aPackageName){
 fn: function (aPackageName){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(aPackageName);
+$1=_st(_st($Smalltalk())._current())._packageAt_(aPackageName);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"named:",{aPackageName:aPackageName},smalltalk.Package.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"named:",{aPackageName:aPackageName},smalltalk.Package.klass)})},
 messageSends: ["packageAt:", "current"]}),
 messageSends: ["packageAt:", "current"]}),
@@ -2795,8 +2816,9 @@ smalltalk.method({
 selector: "named:ifAbsent:",
 selector: "named:ifAbsent:",
 fn: function (aPackageName,aBlock){
 fn: function (aPackageName,aBlock){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_ifAbsent_(aPackageName,aBlock);
+$1=_st(_st($Smalltalk())._current())._packageAt_ifAbsent_(aPackageName,aBlock);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},smalltalk.Package.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},smalltalk.Package.klass)})},
 messageSends: ["packageAt:ifAbsent:", "current"]}),
 messageSends: ["packageAt:ifAbsent:", "current"]}),
@@ -2821,6 +2843,8 @@ selector: "sortedClasses:",
 fn: function (classes){
 fn: function (classes){
 var self=this;
 var self=this;
 var children,others,nodes,expandedClasses;
 var children,others,nodes,expandedClasses;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 children=[];
 children=[];
 others=[];
 others=[];
@@ -2833,12 +2857,12 @@ return _st(children)._add_(each);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 nodes=_st(children)._collect_((function(each){
 nodes=_st(children)._collect_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,(0));
+return smalltalk.withContext(function($ctx2) {
return _st($ClassSorterNode())._on_classes_level_(each,others,(0));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 nodes=_st(nodes)._sorted_((function(a,b){
 nodes=_st(nodes)._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
-expandedClasses=_st((smalltalk.Array || Array))._new();
+expandedClasses=_st($Array())._new();
 _st(nodes)._do_((function(aNode){
 _st(nodes)._do_((function(aNode){
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(expandedClasses);
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(expandedClasses);
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
@@ -2856,8 +2880,9 @@ smalltalk.method({
 selector: "*",
 selector: "*",
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__star(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__star(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__star(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__star(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},smalltalk.Point)})},
 messageSends: ["x:y:", "*", "x", "asPoint", "y"]}),
 messageSends: ["x:y:", "*", "x", "asPoint", "y"]}),
@@ -2869,8 +2894,9 @@ smalltalk.method({
 selector: "+",
 selector: "+",
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__plus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__plus(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__plus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__plus(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},smalltalk.Point)})},
 messageSends: ["x:y:", "+", "x", "asPoint", "y"]}),
 messageSends: ["x:y:", "+", "x", "asPoint", "y"]}),
@@ -2882,8 +2908,9 @@ smalltalk.method({
 selector: "-",
 selector: "-",
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__minus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__minus(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__minus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__minus(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},smalltalk.Point)})},
 messageSends: ["x:y:", "-", "x", "asPoint", "y"]}),
 messageSends: ["x:y:", "-", "x", "asPoint", "y"]}),
@@ -2895,8 +2922,9 @@ smalltalk.method({
 selector: "/",
 selector: "/",
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__slash(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__slash(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__slash(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__slash(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},smalltalk.Point)})},
 messageSends: ["x:y:", "/", "x", "asPoint", "y"]}),
 messageSends: ["x:y:", "/", "x", "asPoint", "y"]}),
@@ -3066,14 +3094,16 @@ smalltalk.method({
 selector: "asSmalltalkException:",
 selector: "asSmalltalkException:",
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $JavaScriptException(){return smalltalk.JavaScriptException||(typeof JavaScriptException=="undefined"?nil:JavaScriptException)}
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=_st(_st(self)._isSmalltalkObject_(anObject))._and_((function(){
 $2=_st(_st(self)._isSmalltalkObject_(anObject))._and_((function(){
-return smalltalk.withContext(function($ctx2) {
return _st(anObject)._isKindOf_((smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx2) {
return _st(anObject)._isKindOf_($Error());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=anObject;
 $1=anObject;
 } else {
 } else {
-$1=_st((smalltalk.JavaScriptException || JavaScriptException))._on_(anObject);
+$1=_st($JavaScriptException())._on_(anObject);
 };
 };
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},smalltalk.Smalltalk)})},
@@ -3237,8 +3267,9 @@ smalltalk.method({
 selector: "parseError:parsing:",
 selector: "parseError:parsing:",
 fn: function (anException,aString){
 fn: function (anException,aString){
 var self=this;
 var self=this;
+function $ParseError(){return smalltalk.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.ParseError || ParseError))._new())._messageText_(_st(_st(_st(_st(_st("Parse error on line ").__comma(_st(anException)._basicAt_("line"))).__comma(" column ")).__comma(_st(anException)._basicAt_("column"))).__comma(" : Unexpected character ")).__comma(_st(anException)._basicAt_("found")));
+$1=_st(_st($ParseError())._new())._messageText_(_st(_st(_st(_st(_st("Parse error on line ").__comma(_st(anException)._basicAt_("line"))).__comma(" column ")).__comma(_st(anException)._basicAt_("column"))).__comma(" : Unexpected character ")).__comma(_st(anException)._basicAt_("found")));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"parseError:parsing:",{anException:anException,aString:aString},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"parseError:parsing:",{anException:anException,aString:aString},smalltalk.Smalltalk)})},
 messageSends: ["messageText:", ",", "basicAt:", "new"]}),
 messageSends: ["messageText:", ",", "basicAt:", "new"]}),
@@ -3250,7 +3281,9 @@ smalltalk.method({
 selector: "pseudoVariableNames",
 selector: "pseudoVariableNames",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "nil", "true", "false", "thisContext"];
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=["self", "super", "nil", "true", "false", "thisContext"];
+return $1;
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariableNames",{},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariableNames",{},smalltalk.Smalltalk)})},
 messageSends: []}),
 messageSends: []}),
 smalltalk.Smalltalk);
 smalltalk.Smalltalk);
@@ -3272,16 +3305,18 @@ smalltalk.method({
 selector: "removeClass:",
 selector: "removeClass:",
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
+function $ClassRemoved(){return smalltalk.ClassRemoved||(typeof ClassRemoved=="undefined"?nil:ClassRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(aClass)._isMetaclass();
 $1=_st(aClass)._isMetaclass();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(self)._error_(_st(_st(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 _st(self)._error_(_st(_st(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 };
 };
 _st(self)._deleteClass_(aClass);
 _st(self)._deleteClass_(aClass);
-$2=_st((smalltalk.ClassRemoved || ClassRemoved))._new();
+$2=_st($ClassRemoved())._new();
 _st($2)._theClass_(aClass);
 _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($3);
+_st(_st($SystemAnnouncer())._current())._announce_($3);
 return self}, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},smalltalk.Smalltalk)})},
 return self}, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},smalltalk.Smalltalk)})},
 messageSends: ["ifTrue:", "error:", ",", "asString", "isMetaclass", "deleteClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 messageSends: ["ifTrue:", "error:", ",", "asString", "isMetaclass", "deleteClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.Smalltalk);
 smalltalk.Smalltalk);
@@ -3593,8 +3628,9 @@ smalltalk.method({
 selector: "subclass:instanceVariableNames:package:",
 selector: "subclass:instanceVariableNames:package:",
 fn: function (aString,aString2,aString3){
 fn: function (aString,aString2,aString3){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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.UndefinedObject)})},
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.UndefinedObject)})},
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"]}),
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"]}),

+ 72 - 36
js/Kernel-Objects.js

@@ -8,8 +8,9 @@ selector: "->",
 category: 'converting',
 category: 'converting',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $Association(){return smalltalk.Association||(typeof Association=="undefined"?nil:Association)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Association || Association))._key_value_(self,anObject);
+$1=_st($Association())._key_value_(self,anObject);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},smalltalk.Object)})},
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},smalltalk.Object)})},
 args: ["anObject"],
 args: ["anObject"],
@@ -63,8 +64,9 @@ category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var variables;
 var variables;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-variables=_st((smalltalk.HashedCollection || HashedCollection))._new();
+variables=_st($HashedCollection())._new();
 _st(_st(_st(self)._class())._allInstanceVariableNames())._do_((function(each){
 _st(_st(_st(self)._class())._allInstanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(variables)._at_put_(each,_st(_st(self)._instVarAt_(each))._asJSON());
 return smalltalk.withContext(function($ctx2) {
return _st(variables)._at_put_(each,_st(_st(self)._instVarAt_(each))._asJSON());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -85,8 +87,9 @@ selector: "asJSONString",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $JSON(){return smalltalk.JSON||(typeof JSON=="undefined"?nil:JSON)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.JSON || JSON))._stringify_(_st(self)._asJSON());
+$1=_st($JSON())._stringify_(_st(self)._asJSON());
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},smalltalk.Object)})},
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},smalltalk.Object)})},
 args: [],
 args: [],
@@ -295,8 +298,9 @@ selector: "doesNotUnderstand:",
 category: 'error handling',
 category: 'error handling',
 fn: function (aMessage){
 fn: function (aMessage){
 var self=this;
 var self=this;
+function $MessageNotUnderstood(){return smalltalk.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.MessageNotUnderstood || MessageNotUnderstood))._new();
+$1=_st($MessageNotUnderstood())._new();
 _st($1)._receiver_(self);
 _st($1)._receiver_(self);
 _st($1)._message_(aMessage);
 _st($1)._message_(aMessage);
 $2=_st($1)._signal();
 $2=_st($1)._signal();
@@ -315,7 +319,8 @@ selector: "error:",
 category: 'error handling',
 category: 'error handling',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st((smalltalk.Error || Error))._signal_(aString);
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+return smalltalk.withContext(function($ctx1) { 
_st($Error())._signal_(aString);
 return self}, function($ctx1) {$ctx1.fill(self,"error:",{aString:aString},smalltalk.Object)})},
 return self}, function($ctx1) {$ctx1.fill(self,"error:",{aString:aString},smalltalk.Object)})},
 args: ["aString"],
 args: ["aString"],
 source: "error: aString\x0a\x09Error signal: aString",
 source: "error: aString\x0a\x09Error signal: aString",
@@ -765,8 +770,9 @@ selector: "printString",
 category: 'printing',
 category: 'printing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.String || String))._streamContents_((function(stream){
+$1=_st($String())._streamContents_((function(stream){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._printOn_(stream);
 return smalltalk.withContext(function($ctx2) {
return _st(self)._printOn_(stream);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
 return $1;
@@ -1966,10 +1972,11 @@ category: 'instance creation',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
 var t;
 var t;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-t=_st((smalltalk.Date || Date))._now();
+t=_st($Date())._now();
 _st(aBlock)._value();
 _st(aBlock)._value();
-$1=_st(_st((smalltalk.Date || Date))._now()).__minus(t);
+$1=_st(_st($Date())._now()).__minus(t);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},smalltalk.Date.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},smalltalk.Date.klass)})},
 args: ["aBlock"],
 args: ["aBlock"],
@@ -2216,7 +2223,8 @@ category: 'proxy',
 fn: function (anInspector){
 fn: function (anInspector){
 var self=this;
 var self=this;
 var variables;
 var variables;
-return smalltalk.withContext(function($ctx1) { 
variables=_st((smalltalk.Dictionary || Dictionary))._new();
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
+return smalltalk.withContext(function($ctx1) { 
variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",_st(self)._jsObject());
 _st(variables)._at_put_("#self",_st(self)._jsObject());
 _st(anInspector)._setLabel_(_st(self)._printString());
 _st(anInspector)._setLabel_(_st(self)._printString());
 _st(self)._addObjectVariablesTo_(variables);
 _st(self)._addObjectVariablesTo_(variables);
@@ -2517,8 +2525,9 @@ selector: "@",
 category: 'converting',
 category: 'converting',
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(self,aNumber);
+$1=_st($Point())._x_y_(self,aNumber);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},smalltalk.Number)})},
 args: ["aNumber"],
 args: ["aNumber"],
@@ -2636,8 +2645,9 @@ selector: "asPoint",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(self,self);
+$1=_st($Point())._x_y_(self,self);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},smalltalk.Number)})},
 args: [],
 args: [],
@@ -2670,8 +2680,9 @@ selector: "atRandom",
 category: 'converting',
 category: 'converting',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Random(){return smalltalk.Random||(typeof Random=="undefined"?nil:Random)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st(_st(_st(_st((smalltalk.Random || Random))._new())._next()).__star(self))._truncated()).__plus((1));
+$1=_st(_st(_st(_st(_st($Random())._new())._next()).__star(self))._truncated()).__plus((1));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},smalltalk.Number)})},
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},smalltalk.Number)})},
 args: [],
 args: [],
@@ -3005,11 +3016,12 @@ category: 'converting',
 fn: function (aNumber){
 fn: function (aNumber){
 var self=this;
 var self=this;
 var array,first,last,count;
 var array,first,last,count;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 first=_st(self)._truncated();
 first=_st(self)._truncated();
 last=_st(_st(aNumber)._truncated()).__plus((1));
 last=_st(_st(aNumber)._truncated()).__plus((1));
 count=(1);
 count=(1);
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 _st(_st(last).__minus(first))._timesRepeat_((function(){
 _st(_st(last).__minus(first))._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(array)._at_put_(count,first);
 return smalltalk.withContext(function($ctx2) {
_st(array)._at_put_(count,first);
 count=_st(count).__plus((1));
 count=_st(count).__plus((1));
@@ -3035,9 +3047,10 @@ category: 'converting',
 fn: function (stop,step){
 fn: function (stop,step){
 var self=this;
 var self=this;
 var array,value,pos;
 var array,value,pos;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 value=self;
 value=self;
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 pos=(1);
 pos=(1);
 $1=_st(step).__eq((0));
 $1=_st(step).__eq((0));
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
@@ -3256,13 +3269,15 @@ selector: "addElement:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ProtocolAdded(){return smalltalk.ProtocolAdded||(typeof ProtocolAdded=="undefined"?nil:ProtocolAdded)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 smalltalk.Organizer.fn.prototype._addElement_.apply(_st(self), [aString]);
 smalltalk.Organizer.fn.prototype._addElement_.apply(_st(self), [aString]);
-$1=_st((smalltalk.ProtocolAdded || ProtocolAdded))._new();
+$1=_st($ProtocolAdded())._new();
 _st($1)._protocol_(aString);
 _st($1)._protocol_(aString);
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"addElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 return self}, function($ctx1) {$ctx1.fill(self,"addElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 args: ["aString"],
 args: ["aString"],
 source: "addElement: aString\x0a\x09super addElement: aString.\x0a\x0a\x09SystemAnnouncer current announce: (ProtocolAdded new\x0a\x09\x09protocol: aString;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09yourself)",
 source: "addElement: aString\x0a\x09super addElement: aString.\x0a\x0a\x09SystemAnnouncer current announce: (ProtocolAdded new\x0a\x09\x09protocol: aString;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09yourself)",
@@ -3278,13 +3293,15 @@ selector: "removeElement:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $ProtocolRemoved(){return smalltalk.ProtocolRemoved||(typeof ProtocolRemoved=="undefined"?nil:ProtocolRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 smalltalk.Organizer.fn.prototype._removeElement_.apply(_st(self), [aString]);
 smalltalk.Organizer.fn.prototype._removeElement_.apply(_st(self), [aString]);
-$1=_st((smalltalk.ProtocolRemoved || ProtocolRemoved))._new();
+$1=_st($ProtocolRemoved())._new();
 _st($1)._protocol_(aString);
 _st($1)._protocol_(aString);
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._theClass_(_st(self)._theClass());
 $2=_st($1)._yourself();
 $2=_st($1)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($2);
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"removeElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 return self}, function($ctx1) {$ctx1.fill(self,"removeElement:",{aString:aString},smalltalk.ClassOrganizer)})},
 args: ["aString"],
 args: ["aString"],
 source: "removeElement: aString\x0a\x09super removeElement: aString.\x0a\x0a\x09SystemAnnouncer current announce: (ProtocolRemoved new\x0a\x09\x09protocol: aString;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09yourself)",
 source: "removeElement: aString\x0a\x09super removeElement: aString.\x0a\x0a\x09SystemAnnouncer current announce: (ProtocolRemoved new\x0a\x09\x09protocol: aString;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09yourself)",
@@ -3560,8 +3577,9 @@ selector: "properties",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._readJSObject_(_st(self)._basicAt_("properties"));
+$1=_st(_st($Smalltalk())._current())._readJSObject_(_st(self)._basicAt_("properties"));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"properties",{},smalltalk.Package)})},
 }, function($ctx1) {$ctx1.fill(self,"properties",{},smalltalk.Package)})},
 args: [],
 args: [],
@@ -3649,10 +3667,11 @@ selector: "setupClasses",
 category: 'classes',
 category: 'classes',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(self)._classes();
 $1=_st(self)._classes();
 _st($1)._do_((function(each){
 _st($1)._do_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.ClassBuilder || ClassBuilder))._new())._setupClass_(each);
+return smalltalk.withContext(function($ctx2) {
return _st(_st($ClassBuilder())._new())._setupClass_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 $2=_st($1)._do_((function(each){
 $2=_st($1)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._initialize();
 return smalltalk.withContext(function($ctx2) {
return _st(each)._initialize();
@@ -3809,8 +3828,9 @@ selector: "fetch:prefix:",
 category: 'loading-storing',
 category: 'loading-storing',
 fn: function (aPackageName,aPrefix){
 fn: function (aPackageName,aPrefix){
 var self=this;
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 return smalltalk.withContext(function($ctx1) { 
_st(jQuery)._getScript_onSuccess_(_st(_st(aPrefix).__comma(aPackageName)).__comma(".js"),(function(){
 return smalltalk.withContext(function($ctx1) { 
_st(jQuery)._getScript_onSuccess_(_st(_st(aPrefix).__comma(aPackageName)).__comma(".js"),(function(){
-return smalltalk.withContext(function($ctx2) {
return _st(_st((smalltalk.Package || Package))._named_(aPackageName))._setupClasses();
+return smalltalk.withContext(function($ctx2) {
return _st(_st($Package())._named_(aPackageName))._setupClasses();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"fetch:prefix:",{aPackageName:aPackageName,aPrefix:aPrefix},smalltalk.Package.klass)})},
 return self}, function($ctx1) {$ctx1.fill(self,"fetch:prefix:",{aPackageName:aPackageName,aPrefix:aPrefix},smalltalk.Package.klass)})},
 args: ["aPackageName", "aPrefix"],
 args: ["aPackageName", "aPrefix"],
@@ -3844,8 +3864,9 @@ selector: "named:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aPackageName){
 fn: function (aPackageName){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_(aPackageName);
+$1=_st(_st($Smalltalk())._current())._packageAt_(aPackageName);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"named:",{aPackageName:aPackageName},smalltalk.Package.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"named:",{aPackageName:aPackageName},smalltalk.Package.klass)})},
 args: ["aPackageName"],
 args: ["aPackageName"],
@@ -3862,8 +3883,9 @@ selector: "named:ifAbsent:",
 category: 'accessing',
 category: 'accessing',
 fn: function (aPackageName,aBlock){
 fn: function (aPackageName,aBlock){
 var self=this;
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._packageAt_ifAbsent_(aPackageName,aBlock);
+$1=_st(_st($Smalltalk())._current())._packageAt_ifAbsent_(aPackageName,aBlock);
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},smalltalk.Package.klass)})},
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},smalltalk.Package.klass)})},
 args: ["aPackageName", "aBlock"],
 args: ["aPackageName", "aBlock"],
@@ -3898,6 +3920,8 @@ category: 'sorting',
 fn: function (classes){
 fn: function (classes){
 var self=this;
 var self=this;
 var children,others,nodes,expandedClasses;
 var children,others,nodes,expandedClasses;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 children=[];
 children=[];
 others=[];
 others=[];
@@ -3910,12 +3934,12 @@ return _st(children)._add_(each);
 };
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 nodes=_st(children)._collect_((function(each){
 nodes=_st(children)._collect_((function(each){
-return smalltalk.withContext(function($ctx2) {
return _st((smalltalk.ClassSorterNode || ClassSorterNode))._on_classes_level_(each,others,(0));
+return smalltalk.withContext(function($ctx2) {
return _st($ClassSorterNode())._on_classes_level_(each,others,(0));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 nodes=_st(nodes)._sorted_((function(a,b){
 nodes=_st(nodes)._sorted_((function(a,b){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
 return smalltalk.withContext(function($ctx2) {
return _st(_st(_st(a)._theClass())._name()).__lt_eq(_st(_st(b)._theClass())._name());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
-expandedClasses=_st((smalltalk.Array || Array))._new();
+expandedClasses=_st($Array())._new();
 _st(nodes)._do_((function(aNode){
 _st(nodes)._do_((function(aNode){
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(expandedClasses);
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(expandedClasses);
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
@@ -3939,8 +3963,9 @@ selector: "*",
 category: 'arithmetic',
 category: 'arithmetic',
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__star(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__star(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__star(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__star(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
 args: ["aPoint"],
@@ -3957,8 +3982,9 @@ selector: "+",
 category: 'arithmetic',
 category: 'arithmetic',
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__plus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__plus(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__plus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__plus(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
 args: ["aPoint"],
@@ -3975,8 +4001,9 @@ selector: "-",
 category: 'arithmetic',
 category: 'arithmetic',
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__minus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__minus(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__minus(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__minus(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
 args: ["aPoint"],
@@ -3993,8 +4020,9 @@ selector: "/",
 category: 'arithmetic',
 category: 'arithmetic',
 fn: function (aPoint){
 fn: function (aPoint){
 var self=this;
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.Point || Point))._x_y_(_st(_st(self)._x()).__slash(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__slash(_st(_st(aPoint)._asPoint())._y()));
+$1=_st($Point())._x_y_(_st(_st(self)._x()).__slash(_st(_st(aPoint)._asPoint())._x()),_st(_st(self)._y()).__slash(_st(_st(aPoint)._asPoint())._y()));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},smalltalk.Point)})},
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
 args: ["aPoint"],
@@ -4226,14 +4254,16 @@ selector: "asSmalltalkException:",
 category: 'error handling',
 category: 'error handling',
 fn: function (anObject){
 fn: function (anObject){
 var self=this;
 var self=this;
+function $JavaScriptException(){return smalltalk.JavaScriptException||(typeof JavaScriptException=="undefined"?nil:JavaScriptException)}
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=_st(_st(self)._isSmalltalkObject_(anObject))._and_((function(){
 $2=_st(_st(self)._isSmalltalkObject_(anObject))._and_((function(){
-return smalltalk.withContext(function($ctx2) {
return _st(anObject)._isKindOf_((smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx2) {
return _st(anObject)._isKindOf_($Error());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 if(smalltalk.assert($2)){
 if(smalltalk.assert($2)){
 $1=anObject;
 $1=anObject;
 } else {
 } else {
-$1=_st((smalltalk.JavaScriptException || JavaScriptException))._on_(anObject);
+$1=_st($JavaScriptException())._on_(anObject);
 };
 };
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},smalltalk.Smalltalk)})},
@@ -4462,8 +4492,9 @@ selector: "parseError:parsing:",
 category: 'error handling',
 category: 'error handling',
 fn: function (anException,aString){
 fn: function (anException,aString){
 var self=this;
 var self=this;
+function $ParseError(){return smalltalk.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st(_st((smalltalk.ParseError || ParseError))._new())._messageText_(_st(_st(_st(_st(_st("Parse error on line ").__comma(_st(anException)._basicAt_("line"))).__comma(" column ")).__comma(_st(anException)._basicAt_("column"))).__comma(" : Unexpected character ")).__comma(_st(anException)._basicAt_("found")));
+$1=_st(_st($ParseError())._new())._messageText_(_st(_st(_st(_st(_st("Parse error on line ").__comma(_st(anException)._basicAt_("line"))).__comma(" column ")).__comma(_st(anException)._basicAt_("column"))).__comma(" : Unexpected character ")).__comma(_st(anException)._basicAt_("found")));
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"parseError:parsing:",{anException:anException,aString:aString},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"parseError:parsing:",{anException:anException,aString:aString},smalltalk.Smalltalk)})},
 args: ["anException", "aString"],
 args: ["anException", "aString"],
@@ -4480,7 +4511,9 @@ selector: "pseudoVariableNames",
 category: 'packages',
 category: 'packages',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
return ["self", "super", "nil", "true", "false", "thisContext"];
+return smalltalk.withContext(function($ctx1) { 
var $1;
+$1=["self", "super", "nil", "true", "false", "thisContext"];
+return $1;
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariableNames",{},smalltalk.Smalltalk)})},
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariableNames",{},smalltalk.Smalltalk)})},
 args: [],
 args: [],
 source: "pseudoVariableNames\x0a\x09^ #('self' 'super' 'nil' 'true' 'false' 'thisContext')",
 source: "pseudoVariableNames\x0a\x09^ #('self' 'super' 'nil' 'true' 'false' 'thisContext')",
@@ -4512,16 +4545,18 @@ selector: "removeClass:",
 category: 'classes',
 category: 'classes',
 fn: function (aClass){
 fn: function (aClass){
 var self=this;
 var self=this;
+function $ClassRemoved(){return smalltalk.ClassRemoved||(typeof ClassRemoved=="undefined"?nil:ClassRemoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(aClass)._isMetaclass();
 $1=_st(aClass)._isMetaclass();
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 _st(self)._error_(_st(_st(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 _st(self)._error_(_st(_st(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 };
 };
 _st(self)._deleteClass_(aClass);
 _st(self)._deleteClass_(aClass);
-$2=_st((smalltalk.ClassRemoved || ClassRemoved))._new();
+$2=_st($ClassRemoved())._new();
 _st($2)._theClass_(aClass);
 _st($2)._theClass_(aClass);
 $3=_st($2)._yourself();
 $3=_st($2)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($3);
+_st(_st($SystemAnnouncer())._current())._announce_($3);
 return self}, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},smalltalk.Smalltalk)})},
 return self}, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},smalltalk.Smalltalk)})},
 args: ["aClass"],
 args: ["aClass"],
 source: "removeClass: aClass\x0a\x09aClass isMetaclass ifTrue: [self error: aClass asString, ' is a Metaclass and cannot be removed!'].\x0a\x09\x0a\x09self deleteClass: aClass.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRemoved new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
 source: "removeClass: aClass\x0a\x09aClass isMetaclass ifTrue: [self error: aClass asString, ' is a Metaclass and cannot be removed!'].\x0a\x09\x0a\x09self deleteClass: aClass.\x0a\x09\x0a\x09SystemAnnouncer current\x0a\x09\x09announce: (ClassRemoved new\x0a\x09\x09\x09theClass: aClass;\x0a\x09\x09\x09yourself)",
@@ -4950,8 +4985,9 @@ selector: "subclass:instanceVariableNames:package:",
 category: 'class creation',
 category: 'class creation',
 fn: function (aString,aString2,aString3){
 fn: function (aString,aString2,aString3){
 var self=this;
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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($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.UndefinedObject)})},
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.UndefinedObject)})},
 args: ["aString", "aString2", "aString3"],
 args: ["aString", "aString2", "aString3"],

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 222 - 150
js/Kernel-Tests.deploy.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 189 - 129
js/Kernel-Tests.js


+ 4 - 2
js/Kernel-Transcript.deploy.js

@@ -48,7 +48,8 @@ smalltalk.method({
 selector: "initialize",
 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());
+function $Transcript(){return smalltalk.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
+return smalltalk.withContext(function($ctx1) { 
_st($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);
@@ -74,7 +75,8 @@ smalltalk.method({
 selector: "cr",
 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());
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(_st($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);

+ 4 - 2
js/Kernel-Transcript.js

@@ -69,7 +69,8 @@ selector: "initialize",
 category: 'initialization',
 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());
+function $Transcript(){return smalltalk.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
+return smalltalk.withContext(function($ctx1) { 
_st($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",
@@ -105,7 +106,8 @@ selector: "cr",
 category: 'printing',
 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());
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st(self)._current())._show_(_st($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\x09self current show: String cr",
 source: "cr\x0a\x09self current show: String cr",

+ 25 - 16
js/SUnit-Tests.deploy.js

@@ -6,8 +6,9 @@ smalltalk.method({
 selector: "setUp",
 selector: "setUp",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
-self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st($Set())._new();
+self["@full"]=_st($Set())._with_with_((5),"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);
@@ -42,12 +43,13 @@ smalltalk.method({
 selector: "testIllegal",
 selector: "testIllegal",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$Error());
 _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"));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),"abc");
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$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);
@@ -59,7 +61,7 @@ selector: "testIncludes",
 fn: function (){
 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_("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);
@@ -85,7 +87,7 @@ selector: "testRemove",
 fn: function (){
 fn: function (){
 var self=this;
 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_("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:"]}),
@@ -235,11 +237,13 @@ selector: "testAsyncErrorsAndFailures",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var suite,runner,result,assertBlock;
 var suite,runner,result,assertBlock;
+function $TestSuiteRunner(){return smalltalk.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 result=_st(runner)._result();
 assertBlock=_st(self)._async_((function(){
 assertBlock=_st(self)._async_((function(){
@@ -247,7 +251,7 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(sel
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeErrorFailingInTearDown", "fakeFailure"])._asSet());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeErrorFailingInTearDown", "fakeFailure"])._asSet());
 return _st(self)._finished();
 return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-_st(_st(runner)._announcer())._on_do_((smalltalk.ResultAnnouncement || ResultAnnouncement),(function(ann){
+_st(_st(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
@@ -265,15 +269,16 @@ smalltalk.method({
 selector: "testAsyncNeedsTimeout",
 selector: "testAsyncNeedsTimeout",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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)})}),$Error());
 _st(self)._timeout_((0));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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)})}),$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"]}),
@@ -285,13 +290,14 @@ smalltalk.method({
 selector: "testFinishedNeedsTimeout",
 selector: "testFinishedNeedsTimeout",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_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)})}),$Error());
 _st(self)._timeout_((0));
 _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)})}),$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);
@@ -336,19 +342,22 @@ selector: "testTimeouts",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var suite,runner,result,assertBlock;
 var suite,runner,result,assertBlock;
+function $TestSuiteRunner(){return smalltalk.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 result=_st(runner)._result();
 assertBlock=_st(self)._async_((function(){
 assertBlock=_st(self)._async_((function(){
-return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._errors()),_st((smalltalk.Set || Set))._new());
+return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._errors()),_st($Set())._new());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeMultipleTimeoutFailing", "fakeTimeout"])._asSet());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeMultipleTimeoutFailing", "fakeTimeout"])._asSet());
 return _st(self)._finished();
 return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-_st(_st(runner)._announcer())._on_do_((smalltalk.ResultAnnouncement || ResultAnnouncement),(function(ann){
+_st(_st(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());

+ 25 - 16
js/SUnit-Tests.js

@@ -8,8 +8,9 @@ selector: "setUp",
 category: 'running',
 category: 'running',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
-self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st($Set())._new();
+self["@full"]=_st($Set())._with_with_((5),"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",
@@ -59,12 +60,13 @@ selector: "testIllegal",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
 return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_((5));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$Error());
 _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"));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.Error || Error));
+return smalltalk.withContext(function($ctx2) {
return _st(self["@empty"])._at_put_((5),"abc");
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$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",
@@ -81,7 +83,7 @@ category: 'tests',
 fn: function (){
 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_("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)",
@@ -117,7 +119,7 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 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_("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: [],
@@ -317,11 +319,13 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var suite,runner,result,assertBlock;
 var suite,runner,result,assertBlock;
+function $TestSuiteRunner(){return smalltalk.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 result=_st(runner)._result();
 assertBlock=_st(self)._async_((function(){
 assertBlock=_st(self)._async_((function(){
@@ -329,7 +333,7 @@ return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(sel
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeErrorFailingInTearDown", "fakeFailure"])._asSet());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeErrorFailingInTearDown", "fakeFailure"])._asSet());
 return _st(self)._finished();
 return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-_st(_st(runner)._announcer())._on_do_((smalltalk.ResultAnnouncement || ResultAnnouncement),(function(ann){
+_st(_st(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
@@ -352,15 +356,16 @@ selector: "testAsyncNeedsTimeout",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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)})}),$Error());
 _st(self)._timeout_((0));
 _st(self)._timeout_((0));
 _st(self)._shouldnt_raise_((function(){
 _st(self)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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)})}),$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: [],
@@ -377,13 +382,14 @@ selector: "testFinishedNeedsTimeout",
 category: 'tests',
 category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx1) { 
_st(self)._should_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)})}),$Error());
 _st(self)._timeout_((0));
 _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)})}),$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\x09self should: [ self finished ] raise: Error.\x0a\x09self timeout: 0.\x0a\x09self 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.",
@@ -443,19 +449,22 @@ category: 'tests',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
 var suite,runner,result,assertBlock;
 var suite,runner,result,assertBlock;
+function $TestSuiteRunner(){return smalltalk.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 result=_st(runner)._result();
 assertBlock=_st(self)._async_((function(){
 assertBlock=_st(self)._async_((function(){
-return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._errors()),_st((smalltalk.Set || Set))._new());
+return smalltalk.withContext(function($ctx2) {
_st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._errors()),_st($Set())._new());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeMultipleTimeoutFailing", "fakeTimeout"])._asSet());
 _st(self)._assert_equals_(_st(self)._selectorSetOf_(_st(result)._failures()),_st(["fakeMultipleTimeoutFailing", "fakeTimeout"])._asSet());
 return _st(self)._finished();
 return _st(self)._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-_st(_st(runner)._announcer())._on_do_((smalltalk.ResultAnnouncement || ResultAnnouncement),(function(ann){
+_st(_st(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 return smalltalk.withContext(function($ctx2) {
$1=_st(_st(ann)._result()).__eq_eq(result);
 if(smalltalk.assert($1)){
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());

+ 27 - 14
js/SUnit.deploy.js

@@ -167,7 +167,8 @@ smalltalk.method({
 selector: "runCase",
 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();
+function $TestContext(){return smalltalk.TestContext||(typeof TestContext=="undefined"?nil:TestContext)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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);
@@ -255,8 +256,9 @@ smalltalk.method({
 selector: "signalFailure:",
 selector: "signalFailure:",
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.TestFailure || TestFailure))._new();
+$1=_st($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)})},
@@ -348,8 +350,9 @@ smalltalk.method({
 selector: "lookupHierarchyRoot",
 selector: "lookupHierarchyRoot",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $TestCase(){return smalltalk.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.TestCase || TestCase);
+$1=$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: []}),
@@ -527,11 +530,13 @@ smalltalk.method({
 selector: "withErrorReporting:",
 selector: "withErrorReporting:",
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
-return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_($TestFailure(),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($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)})},
@@ -626,11 +631,13 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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["@timestamp"]=_st((smalltalk.Date || Date))._now();
+self["@timestamp"]=_st($Date())._now();
 self["@runs"]=(0);
 self["@runs"]=(0);
-self["@errors"]=_st((smalltalk.Array || Array))._new();
-self["@failures"]=_st((smalltalk.Array || Array))._new();
+self["@errors"]=_st($Array())._new();
+self["@failures"]=_st($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"]}),
@@ -658,14 +665,16 @@ smalltalk.method({
 selector: "runCase:",
 selector: "runCase:",
 fn: function (aTestCase){
 fn: function (aTestCase){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return _st(aTestCase)._runCase();
 return _st(aTestCase)._runCase();
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_($TestFailure(),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($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)})},
@@ -767,8 +776,9 @@ smalltalk.method({
 selector: "contextOf:",
 selector: "contextOf:",
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
+function $ReportingTestContext(){return smalltalk.ReportingTestContext||(typeof ReportingTestContext=="undefined"?nil:ReportingTestContext)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
+$1=_st($ReportingTestContext())._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
 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;
@@ -782,10 +792,12 @@ smalltalk.method({
 selector: "initialize",
 selector: "initialize",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Announcer(){return smalltalk.Announcer||(typeof Announcer=="undefined"?nil:Announcer)}
+function $TestResult(){return smalltalk.TestResult||(typeof TestResult=="undefined"?nil:TestResult)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new();
-self["@result"]=_st((smalltalk.TestResult || TestResult))._new();
+self["@announcer"]=_st($Announcer())._new();
+self["@result"]=_st($TestResult())._new();
 self["@runNextTest"]=(function(){
 self["@runNextTest"]=(function(){
 var runs;
 var runs;
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
@@ -818,8 +830,9 @@ smalltalk.method({
 selector: "resume",
 selector: "resume",
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 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($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);

+ 27 - 14
js/SUnit.js

@@ -229,7 +229,8 @@ selector: "runCase",
 category: 'running',
 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();
+function $TestContext(){return smalltalk.TestContext||(typeof TestContext=="undefined"?nil:TestContext)}
+return smalltalk.withContext(function($ctx1) { 
_st(_st($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",
@@ -352,8 +353,9 @@ selector: "signalFailure:",
 category: 'private',
 category: 'private',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.TestFailure || TestFailure))._new();
+$1=_st($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)})},
@@ -475,8 +477,9 @@ selector: "lookupHierarchyRoot",
 category: 'accessing',
 category: 'accessing',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $TestCase(){return smalltalk.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.TestCase || TestCase);
+$1=$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: [],
@@ -711,11 +714,13 @@ selector: "withErrorReporting:",
 category: 'private',
 category: 'private',
 fn: function (aBlock){
 fn: function (aBlock){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
-return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+return smalltalk.withContext(function($ctx2) {
return _st(aBlock)._on_do_($TestFailure(),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
 return smalltalk.withContext(function($ctx3) {
return _st(self["@result"])._addFailure_(self["@testCase"]);
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($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)})},
@@ -847,11 +852,13 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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["@timestamp"]=_st((smalltalk.Date || Date))._now();
+self["@timestamp"]=_st($Date())._now();
 self["@runs"]=(0);
 self["@runs"]=(0);
-self["@errors"]=_st((smalltalk.Array || Array))._new();
-self["@failures"]=_st((smalltalk.Array || Array))._new();
+self["@errors"]=_st($Array())._new();
+self["@failures"]=_st($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: [],
@@ -889,14 +896,16 @@ selector: "runCase:",
 category: 'running',
 category: 'running',
 fn: function (aTestCase){
 fn: function (aTestCase){
 var self=this;
 var self=this;
+function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 return _st(aTestCase)._runCase();
 return _st(aTestCase)._runCase();
-}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_($TestFailure(),(function(ex){
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
 return smalltalk.withContext(function($ctx3) {
return _st(self)._addFailure_(aTestCase);
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
 }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($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)})},
@@ -1033,8 +1042,9 @@ selector: "contextOf:",
 category: 'private',
 category: 'private',
 fn: function (anInteger){
 fn: function (anInteger){
 var self=this;
 var self=this;
+function $ReportingTestContext(){return smalltalk.ReportingTestContext||(typeof ReportingTestContext=="undefined"?nil:ReportingTestContext)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
+$1=_st($ReportingTestContext())._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
 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;
@@ -1053,10 +1063,12 @@ selector: "initialize",
 category: 'initialization',
 category: 'initialization',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $Announcer(){return smalltalk.Announcer||(typeof Announcer=="undefined"?nil:Announcer)}
+function $TestResult(){return smalltalk.TestResult||(typeof TestResult=="undefined"?nil:TestResult)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
-self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new();
-self["@result"]=_st((smalltalk.TestResult || TestResult))._new();
+self["@announcer"]=_st($Announcer())._new();
+self["@result"]=_st($TestResult())._new();
 self["@runNextTest"]=(function(){
 self["@runNextTest"]=(function(){
 var runs;
 var runs;
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
@@ -1099,8 +1111,9 @@ selector: "resume",
 category: 'actions',
 category: 'actions',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 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($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\x09announcer announce: (ResultAnnouncement new result: result)",
 source: "resume\x0a\x09runNextTest fork.\x0a\x09announcer announce: (ResultAnnouncement new result: result)",

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác