Browse Source

Recompiles all .js files

Nicolas Petton 11 years ago
parent
commit
02b3c8e163

+ 8 - 5
js/Benchfib.deploy.js

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

+ 8 - 5
js/Benchfib.js

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

+ 28 - 17
js/Canvas.deploy.js

@@ -739,11 +739,12 @@ smalltalk.method({
 selector: "initialize",
 fn: function (){
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 $1=self["@root"];
 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"];
 } else {
 $1;
@@ -758,7 +759,8 @@ smalltalk.method({
 selector: "initializeFromJQuery:",
 fn: function (aJQuery){
 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)})},
 messageSends: ["fromJQuery:canvas:"]}),
 smalltalk.HTMLCanvas);
@@ -912,8 +914,9 @@ smalltalk.method({
 selector: "newTag:",
 fn: function (aString){
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 messageSends: ["fromString:canvas:"]}),
@@ -1158,16 +1161,17 @@ selector: "snippet:",
 fn: function (anElement){
 var self=this;
 var clone,caret;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 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]");
 $1=_st(_st(caret)._toArray())._isEmpty();
 if(smalltalk.assert($1)){
 caret=clone;
 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;
 }, 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:"]}),
@@ -1244,8 +1248,9 @@ smalltalk.method({
 selector: "style",
 fn: function (){
 var self=this;
+function $StyleTag(){return smalltalk.StyleTag||(typeof StyleTag=="undefined"?nil:StyleTag)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 messageSends: ["addBrush:", "canvas:"]}),
@@ -1509,7 +1514,7 @@ selector: "browserVersion",
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["version", "at:"]}),
@@ -1522,7 +1527,7 @@ selector: "isMSIE",
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
@@ -1535,7 +1540,7 @@ selector: "isMozilla",
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
@@ -1548,7 +1553,7 @@ selector: "isOpera",
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
@@ -1561,7 +1566,7 @@ selector: "isWebkit",
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 messageSends: ["notNil", "at:"]}),
@@ -1643,9 +1648,11 @@ smalltalk.method({
 selector: "snippetAt:compile:",
 fn: function (aString,anElement){
 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);
-}, 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)})},
 messageSends: ["installMethod:forClass:category:", "asCompiledMethod:", "currySelf", "snippet:", "new"]}),
 smalltalk.HTMLSnippet);
@@ -2569,8 +2576,9 @@ smalltalk.method({
 selector: "with:",
 fn: function (aString){
 var self=this;
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HTMLCanvas || HTMLCanvas))._isMSIE();
+$1=_st($HTMLCanvas())._isMSIE();
 if(smalltalk.assert($1)){
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 } else {
@@ -2616,7 +2624,8 @@ smalltalk.method({
 selector: "appendToJQuery:",
 fn: function (aJQuery){
 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)})},
 messageSends: ["renderOn:", "onJQuery:"]}),
 smalltalk.Widget);
@@ -2672,7 +2681,8 @@ smalltalk.method({
 selector: "appendToJQuery:",
 fn: function (aJQuery){
 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)})},
 messageSends: ["value:", "onJQuery:"]}),
 smalltalk.BlockClosure);
@@ -2683,8 +2693,9 @@ smalltalk.method({
 selector: "asSnippet",
 fn: function (){
 var self=this;
+function $HTMLSnippet(){return smalltalk.HTMLSnippet||(typeof HTMLSnippet=="undefined"?nil:HTMLSnippet)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 messageSends: ["snippetAt:", "asString", "current"]}),

+ 28 - 17
js/Canvas.js

@@ -1020,11 +1020,12 @@ selector: "initialize",
 category: 'initialization',
 fn: function (){
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 $1=self["@root"];
 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"];
 } else {
 $1;
@@ -1044,7 +1045,8 @@ selector: "initializeFromJQuery:",
 category: 'initialization',
 fn: function (aJQuery){
 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)})},
 args: ["aJQuery"],
 source: "initializeFromJQuery: aJQuery\x0a\x09root := TagBrush fromJQuery: aJQuery canvas: self",
@@ -1258,8 +1260,9 @@ selector: "newTag:",
 category: 'tags',
 fn: function (aString){
 var self=this;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"newTag:",{aString:aString},smalltalk.HTMLCanvas)})},
 args: ["aString"],
@@ -1599,16 +1602,17 @@ category: 'accessing',
 fn: function (anElement){
 var self=this;
 var clone,caret;
+function $TagBrush(){return smalltalk.TagBrush||(typeof TagBrush=="undefined"?nil:TagBrush)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 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]");
 $1=_st(_st(caret)._toArray())._isEmpty();
 if(smalltalk.assert($1)){
 caret=clone;
 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;
 }, function($ctx1) {$ctx1.fill(self,"snippet:",{anElement:anElement,clone:clone,caret:caret},smalltalk.HTMLCanvas)})},
 args: ["anElement"],
@@ -1715,8 +1719,9 @@ selector: "style",
 category: 'tags',
 fn: function (){
 var self=this;
+function $StyleTag(){return smalltalk.StyleTag||(typeof StyleTag=="undefined"?nil:StyleTag)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"style",{},smalltalk.HTMLCanvas)})},
 args: [],
@@ -2080,7 +2085,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"browserVersion",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
@@ -2098,7 +2103,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isMSIE",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
@@ -2116,7 +2121,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isMozilla",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
@@ -2134,7 +2139,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isOpera",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
@@ -2152,7 +2157,7 @@ category: 'instance creation',
 fn: function (){
 var self=this;
 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;
 }, function($ctx1) {$ctx1.fill(self,"isWebkit",{},smalltalk.HTMLCanvas.klass)})},
 args: [],
@@ -2260,9 +2265,11 @@ selector: "snippetAt:compile:",
 category: 'method generation',
 fn: function (aString,anElement){
 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);
-}, 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)})},
 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'",
@@ -3577,8 +3584,9 @@ selector: "with:",
 category: 'adding',
 fn: function (aString){
 var self=this;
+function $HTMLCanvas(){return smalltalk.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.HTMLCanvas || HTMLCanvas))._isMSIE();
+$1=_st($HTMLCanvas())._isMSIE();
 if(smalltalk.assert($1)){
 _st(_st(_st(self)._element())._styleSheet())._cssText_(aString);
 } else {
@@ -3639,7 +3647,8 @@ selector: "appendToJQuery:",
 category: 'adding',
 fn: function (aJQuery){
 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)})},
 args: ["aJQuery"],
 source: "appendToJQuery: aJQuery\x0a\x09self renderOn: (HTMLCanvas onJQuery: aJQuery)",
@@ -3720,7 +3729,8 @@ selector: "appendToJQuery:",
 category: '*Canvas',
 fn: function (aJQuery){
 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)})},
 args: ["aJQuery"],
 source: "appendToJQuery: aJQuery\x0a\x09self value: (HTMLCanvas onJQuery: aJQuery)",
@@ -3736,8 +3746,9 @@ selector: "asSnippet",
 category: '*Canvas',
 fn: function (){
 var self=this;
+function $HTMLSnippet(){return smalltalk.HTMLSnippet||(typeof HTMLSnippet=="undefined"?nil:HTMLSnippet)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"asSnippet",{},smalltalk.CharacterArray)})},
 args: [],

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

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

+ 18 - 9
js/Compiler-AST.js

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

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

@@ -64,7 +64,9 @@ smalltalk.method({
 selector: "pseudoVariables",
 fn: function (){
 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)})},
 messageSends: []}),
 smalltalk.AbstractCodeGenerator);
@@ -75,8 +77,9 @@ smalltalk.method({
 selector: "safeVariableNameFor:",
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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)){
 $1=_st(aString).__comma("_");
 } else {
@@ -144,8 +147,9 @@ smalltalk.method({
 selector: "irTranslator",
 fn: function (){
 var self=this;
+function $IRJSTranslator(){return smalltalk.IRJSTranslator||(typeof IRJSTranslator=="undefined"?nil:IRJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
+$1=_st($IRJSTranslator())._new();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 messageSends: ["new"]}),
@@ -157,8 +161,9 @@ smalltalk.method({
 selector: "semanticAnalyzer",
 fn: function (){
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{},smalltalk.CodeGenerator)})},
 messageSends: ["on:", "currentClass"]}),
@@ -170,8 +175,9 @@ smalltalk.method({
 selector: "translator",
 fn: function (){
 var self=this;
+function $IRASTTranslator(){return smalltalk.IRASTTranslator||(typeof IRASTTranslator=="undefined"?nil:IRASTTranslator)}
 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)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
@@ -190,10 +196,11 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 fn: function (){
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@codeGeneratorClass"];
 if(($receiver = $2) == nil || $receiver == undefined){
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 } else {
 $1=$2;
 };
@@ -247,8 +254,9 @@ smalltalk.method({
 selector: "compileExpression:",
 fn: function (aString){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
@@ -332,8 +340,9 @@ smalltalk.method({
 selector: "evaluateExpression:",
 fn: function (aString){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["evaluateExpression:on:", "new"]}),
@@ -364,8 +373,9 @@ smalltalk.method({
 selector: "install:forClass:category:",
 fn: function (aString,aBehavior,anotherString){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString},smalltalk.Compiler)})},
 messageSends: ["installMethod:forClass:category:", "eval:", "compile:forClass:", "new"]}),
@@ -377,8 +387,9 @@ smalltalk.method({
 selector: "parse:",
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.Compiler)})},
 messageSends: ["parse:", "current"]}),
@@ -422,9 +433,11 @@ smalltalk.method({
 selector: "recompileAll",
 fn: function (){
 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;
-_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);
 $2=_st($1)._cr();
 $2;
@@ -507,7 +520,8 @@ smalltalk.method({
 selector: "recompileAll",
 fn: function (){
 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);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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',
 fn: function (){
 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)})},
 args: [],
 source: "pseudoVariables\x0a\x09^#('self' 'super' 'true' 'false' 'nil' 'thisContext')",
@@ -102,8 +104,9 @@ selector: "safeVariableNameFor:",
 category: 'accessing',
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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)){
 $1=_st(aString).__comma("_");
 } else {
@@ -192,8 +195,9 @@ selector: "irTranslator",
 category: 'compiling',
 fn: function (){
 var self=this;
+function $IRJSTranslator(){return smalltalk.IRJSTranslator||(typeof IRJSTranslator=="undefined"?nil:IRJSTranslator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.IRJSTranslator || IRJSTranslator))._new();
+$1=_st($IRJSTranslator())._new();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},smalltalk.CodeGenerator)})},
 args: [],
@@ -210,8 +214,9 @@ selector: "semanticAnalyzer",
 category: 'compiling',
 fn: function (){
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"semanticAnalyzer",{},smalltalk.CodeGenerator)})},
 args: [],
@@ -228,8 +233,9 @@ selector: "translator",
 category: 'compiling',
 fn: function (){
 var self=this;
+function $IRASTTranslator(){return smalltalk.IRASTTranslator||(typeof IRASTTranslator=="undefined"?nil:IRASTTranslator)}
 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)._theClass_(_st(self)._currentClass());
 $3=_st($2)._yourself();
@@ -254,10 +260,11 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@codeGeneratorClass"];
 if(($receiver = $2) == nil || $receiver == undefined){
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 } else {
 $1=$2;
 };
@@ -331,8 +338,9 @@ selector: "compileExpression:",
 category: 'compiling',
 fn: function (aString){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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"));
 $1=_st(self)._compileNode_(_st(self)._parse_(_st(self)._source()));
 return $1;
@@ -446,8 +454,9 @@ selector: "evaluateExpression:",
 category: 'compiling',
 fn: function (aString){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
@@ -488,8 +497,9 @@ selector: "install:forClass:category:",
 category: 'compiling',
 fn: function (aString,aBehavior,anotherString){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"install:forClass:category:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString},smalltalk.Compiler)})},
 args: ["aString", "aBehavior", "anotherString"],
@@ -506,8 +516,9 @@ selector: "parse:",
 category: 'compiling',
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.Compiler)})},
 args: ["aString"],
@@ -566,9 +577,11 @@ selector: "recompileAll",
 category: 'compiling',
 fn: function (){
 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;
-_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);
 $2=_st($1)._cr();
 $2;
@@ -681,7 +694,8 @@ selector: "recompileAll",
 category: 'compiling',
 fn: function (){
 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);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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){
 var self=this;
 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;
 $1=_st(aNode)._isImmutable();
 if(smalltalk.assert($1)){
 $2=_st(self)._visit_(aNode);
 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();
 variable=$4;
-$5=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$5=_st($IRAssignment())._new();
 _st($5)._add_(variable);
 _st($5)._add_(_st(self)._visit_(aNode));
 $6=_st($5)._yourself();
@@ -36,6 +39,7 @@ selector: "aliasTemporally:",
 fn: function (aCollection){
 var self=this;
 var threshold,result;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$4,$3,$5;
 threshold=(0);
 _st(aCollection)._withIndexDo_((function(each,i){
@@ -45,7 +49,7 @@ threshold=i;
 return threshold;
 };
 }, 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){
 return smalltalk.withContext(function($ctx2) {
$2=result;
 $4=_st(i).__lt_eq(threshold);
@@ -186,10 +190,11 @@ selector: "visitAssignmentNode:",
 fn: function (aNode){
 var self=this;
 var left,right,assignment;
+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 right=_st(self)._visit_(_st(aNode)._right());
 left=_st(self)._visit_(_st(aNode)._left());
-$1=_st((smalltalk.IRAssignment || IRAssignment))._new();
+$1=_st($IRAssignment())._new();
 _st($1)._add_(left);
 _st($1)._add_(right);
 $2=_st($1)._yourself();
@@ -207,14 +212,16 @@ selector: "visitBlockNode:",
 fn: function (aNode){
 var self=this;
 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;
-$1=_st((smalltalk.IRClosure || IRClosure))._new();
+$1=_st($IRClosure())._new();
 _st($1)._arguments_(_st(aNode)._parameters());
 _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 closure=$2;
 _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)._scope_(_st(aNode)._scope());
 $4=_st($3)._yourself();
@@ -235,8 +242,10 @@ smalltalk.method({
 selector: "visitBlockSequenceNode:",
 fn: function (aNode){
 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;
-$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($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));
@@ -245,7 +254,7 @@ $2=_st(_st(_st(aNode)._nodes())._last())._isReturnNode();
 if(smalltalk.assert($2)){
 return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 } else {
-$3=_st((smalltalk.IRBlockReturn || IRBlockReturn))._new();
+$3=_st($IRBlockReturn())._new();
 _st($3)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
 $4=_st($3)._yourself();
 return _st(_st(self)._sequence())._add_($4);
@@ -264,13 +273,14 @@ selector: "visitCascadeNode:",
 fn: function (aNode){
 var self=this;
 var alias;
+function $VariableNode(){return smalltalk.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(_st(aNode)._receiver())._isImmutable();
 if(! smalltalk.assert($1)){
 alias=_st(self)._alias_(_st(aNode)._receiver());
 alias;
 _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)})}));
 };
 _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
@@ -289,8 +299,9 @@ selector: "visitDynamicArrayNode:",
 fn: function (aNode){
 var self=this;
 var array;
+function $IRDynamicArray(){return smalltalk.IRDynamicArray||(typeof IRDynamicArray=="undefined"?nil:IRDynamicArray)}
 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){
 return smalltalk.withContext(function($ctx2) {
return _st(array)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -307,8 +318,9 @@ selector: "visitDynamicDictionaryNode:",
 fn: function (aNode){
 var self=this;
 var dictionary;
+function $IRDynamicDictionary(){return smalltalk.IRDynamicDictionary||(typeof IRDynamicDictionary=="undefined"?nil:IRDynamicDictionary)}
 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){
 return smalltalk.withContext(function($ctx2) {
return _st(dictionary)._add_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -324,8 +336,9 @@ smalltalk.method({
 selector: "visitJSStatementNode:",
 fn: function (aNode){
 var self=this;
+function $IRVerbatim(){return smalltalk.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -340,8 +353,12 @@ smalltalk.method({
 selector: "visitMethodNode:",
 fn: function (aNode){
 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;
-$1=_st((smalltalk.IRMethod || IRMethod))._new();
+$1=_st($IRMethod())._new();
 _st($1)._source_(_st(self)._source());
 _st($1)._theClass_(_st(self)._theClass());
 _st($1)._arguments_(_st(aNode)._arguments());
@@ -353,7 +370,7 @@ _st($1)._scope_(_st(aNode)._scope());
 $2=_st($1)._yourself();
 _st(self)._method_($2);
 _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)._scope_(_st(aNode)._scope());
 $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)})}));
 $5=_st(_st(aNode)._scope())._hasLocalReturn();
 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"));
 $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();
 return $8;
@@ -382,12 +399,14 @@ selector: "visitReturnNode:",
 fn: function (aNode){
 var self=this;
 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;
 $1=_st(aNode)._nonLocalReturn();
 if(smalltalk.assert($1)){
-return_=_st((smalltalk.IRNonLocalReturn || IRNonLocalReturn))._new();
+return_=_st($IRNonLocalReturn())._new();
 } else {
-return_=_st((smalltalk.IRReturn || IRReturn))._new();
+return_=_st($IRReturn())._new();
 };
 _st(return_)._scope_(_st(aNode)._scope());
 _st(_st(aNode)._nodes())._do_((function(each){
@@ -406,8 +425,9 @@ selector: "visitSendNode:",
 fn: function (aNode){
 var self=this;
 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;
-send=_st((smalltalk.IRSend || IRSend))._new();
+send=_st($IRSend())._new();
 $1=send;
 _st($1)._selector_(_st(aNode)._selector());
 $2=_st($1)._index_(_st(aNode)._index());
@@ -434,8 +454,9 @@ smalltalk.method({
 selector: "visitSequenceNode:",
 fn: function (aNode){
 var self=this;
+function $IRSequence(){return smalltalk.IRSequence||(typeof IRSequence=="undefined"?nil:IRSequence)}
 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){
 var instruction;
 return smalltalk.withContext(function($ctx3) {
instruction=_st(self)._visit_(each);
@@ -457,8 +478,9 @@ smalltalk.method({
 selector: "visitValueNode:",
 fn: function (aNode){
 var self=this;
+function $IRValue(){return smalltalk.IRValue||(typeof IRValue=="undefined"?nil:IRValue)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -473,8 +495,9 @@ smalltalk.method({
 selector: "visitVariableNode:",
 fn: function (aNode){
 var self=this;
+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -548,10 +571,11 @@ smalltalk.method({
 selector: "instructions",
 fn: function (){
 var self=this;
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@instructions"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@instructions"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
+self["@instructions"]=_st($OrderedCollection())._new();
 $1=self["@instructions"];
 } else {
 $1=$2;
@@ -996,10 +1020,11 @@ smalltalk.method({
 selector: "internalVariables",
 fn: function (){
 var self=this;
+function $Set(){return smalltalk.Set||(typeof Set=="undefined"?nil:Set)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@internalVariables"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@internalVariables"]=_st((smalltalk.Set || Set))._new();
+self["@internalVariables"]=_st($Set())._new();
 $1=self["@internalVariables"];
 } else {
 $1=$2;
@@ -1892,8 +1917,9 @@ smalltalk.method({
 selector: "initialize",
 fn: function (){
 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), []);
-self["@stream"]=_st((smalltalk.JSStream || JSStream))._new();
+self["@stream"]=_st($JSStream())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})},
 messageSends: ["initialize", "new"]}),
 smalltalk.IRJSTranslator);
@@ -2231,10 +2257,11 @@ smalltalk.method({
 selector: "nextPutBlockContextFor:during:",
 fn: function (anIRClosure,aBlock){
 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;
 $1=self;
 _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();
 $3=self;
 _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
@@ -2305,10 +2332,11 @@ smalltalk.method({
 selector: "nextPutContextFor:during:",
 fn: function (aMethod,aBlock){
 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;
 $1=self;
 _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();
 $3=self;
 _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:",
 fn: function (aMethod,aBlock){
 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;
 $1=self["@stream"];
 _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();
 _st(aBlock)._value();
 $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)._lf();
 _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
@@ -2580,8 +2609,9 @@ smalltalk.method({
 selector: "asVariableName",
 fn: function (){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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)){
 $1=_st(self).__comma("_");
 } else {

+ 60 - 30
js/Compiler-IR.js

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

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

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

+ 58 - 29
js/Compiler-Inlining.js

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

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

@@ -55,10 +55,11 @@ smalltalk.method({
 selector: "locals",
 fn: function (){
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@locals"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@locals"]=_st($Dictionary())._new();
 $1=self["@locals"];
 } else {
 $1=$2;
@@ -214,9 +215,11 @@ selector: "buildAST",
 fn: function (){
 var self=this;
 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;
-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;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
@@ -242,7 +245,8 @@ smalltalk.method({
 selector: "context:",
 fn: function (aContext){
 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)})},
 messageSends: ["new"]}),
 smalltalk.ASTDebugger);
@@ -253,8 +257,9 @@ smalltalk.method({
 selector: "defaultInterpreterClass",
 fn: function (){
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
+$1=$ASTSteppingInterpreter();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 messageSends: []}),
@@ -277,7 +282,8 @@ smalltalk.method({
 selector: "initializeWithContext:",
 fn: function (aMethodContext){
 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();
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 messageSends: ["context:", "fromMethodContext:", "initializeInterpreter"]}),
@@ -433,10 +439,11 @@ smalltalk.method({
 selector: "context",
 fn: function (){
 var self=this;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@context"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+self["@context"]=_st($AIContext())._new();
 $1=self["@context"];
 } else {
 $1=$2;
@@ -489,8 +496,10 @@ selector: "eval:",
 fn: function (aString){
 var self=this;
 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;
-source=_st((smalltalk.String || String))._streamContents_((function(str){
+source=_st($String())._streamContents_((function(str){
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
@@ -503,7 +512,7 @@ _st($1)._nextPutAll_(aString);
 $2=_st($1)._nextPutAll_("})() })");
 return $2;
 }, 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());
 return $3;
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
@@ -569,7 +578,8 @@ smalltalk.method({
 selector: "interpretAll:continue:",
 fn: function (aCollection,aBlock){
 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)})},
 messageSends: ["interpretAll:continue:result:", "new"]}),
 smalltalk.ASTInterpreter);
@@ -660,7 +670,8 @@ smalltalk.method({
 selector: "interpretClassReferenceNode:continue:",
 fn: function (aNode,aBlock){
 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)})},
 messageSends: ["continue:value:", "at:", "value", "current"]}),
 smalltalk.ASTInterpreter);
@@ -684,9 +695,10 @@ smalltalk.method({
 selector: "interpretDynamicDictionaryNode:continue:",
 fn: function (aNode,aBlock){
 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){
 var hashedCollection;
-return smalltalk.withContext(function($ctx2) {
hashedCollection=_st((smalltalk.HashedCollection || HashedCollection))._new();
+return smalltalk.withContext(function($ctx2) {
hashedCollection=_st($HashedCollection())._new();
 hashedCollection;
 _st(array)._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
@@ -816,8 +828,9 @@ smalltalk.method({
 selector: "messageFromSendNode:arguments:do:",
 fn: function (aSendNode,aCollection,aBlock){
 var self=this;
+function $Message(){return smalltalk.Message||(typeof Message=="undefined"?nil:Message)}
 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)._arguments_(aCollection);
 $2=_st($1)._yourself();

+ 26 - 13
js/Compiler-Interpreter.js

@@ -72,10 +72,11 @@ selector: "locals",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@locals"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
+self["@locals"]=_st($Dictionary())._new();
 $1=self["@locals"];
 } else {
 $1=$2;
@@ -287,9 +288,11 @@ category: 'initialization',
 fn: function (){
 var self=this;
 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;
-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;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast},smalltalk.ASTDebugger)})},
@@ -325,7 +328,8 @@ selector: "context:",
 category: 'accessing',
 fn: function (aContext){
 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)})},
 args: ["aContext"],
 source: "context: aContext\x0a\x09context := AIContext new.",
@@ -341,8 +345,9 @@ selector: "defaultInterpreterClass",
 category: 'defaults',
 fn: function (){
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
+$1=$ASTSteppingInterpreter();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{},smalltalk.ASTDebugger)})},
 args: [],
@@ -375,7 +380,8 @@ selector: "initializeWithContext:",
 category: 'initialization',
 fn: function (aMethodContext){
 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();
 return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext},smalltalk.ASTDebugger)})},
 args: ["aMethodContext"],
@@ -587,10 +593,11 @@ selector: "context",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@context"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
+self["@context"]=_st($AIContext())._new();
 $1=self["@context"];
 } else {
 $1=$2;
@@ -663,8 +670,10 @@ category: 'private',
 fn: function (aString){
 var self=this;
 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;
-source=_st((smalltalk.String || String))._streamContents_((function(str){
+source=_st($String())._streamContents_((function(str){
 return smalltalk.withContext(function($ctx2) {
_st(str)._nextPutAll_("(function(");
 _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(str)._nextPutAll_(each);
@@ -677,7 +686,7 @@ _st($1)._nextPutAll_(aString);
 $2=_st($1)._nextPutAll_("})() })");
 return $2;
 }, 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());
 return $3;
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},smalltalk.ASTInterpreter)})},
@@ -763,7 +772,8 @@ selector: "interpretAll:continue:",
 category: 'private',
 fn: function (aCollection,aBlock){
 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)})},
 args: ["aCollection", "aBlock"],
 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',
 fn: function (aNode,aBlock){
 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)})},
 args: ["aNode", "aBlock"],
 source: "interpretClassReferenceNode: aNode continue: aBlock\x0a\x09self continue: aBlock value: (Smalltalk current at: aNode value)",
@@ -918,9 +929,10 @@ selector: "interpretDynamicDictionaryNode:continue:",
 category: 'interpreting',
 fn: function (aNode,aBlock){
 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){
 var hashedCollection;
-return smalltalk.withContext(function($ctx2) {
hashedCollection=_st((smalltalk.HashedCollection || HashedCollection))._new();
+return smalltalk.withContext(function($ctx2) {
hashedCollection=_st($HashedCollection())._new();
 hashedCollection;
 _st(array)._do_((function(each){
 return smalltalk.withContext(function($ctx3) {
return _st(hashedCollection)._add_(each);
@@ -1095,8 +1107,9 @@ selector: "messageFromSendNode:arguments:do:",
 category: 'private',
 fn: function (aSendNode,aCollection,aBlock){
 var self=this;
+function $Message(){return smalltalk.Message||(typeof Message=="undefined"?nil:Message)}
 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)._arguments_(aCollection);
 $2=_st($1)._yourself();

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

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

+ 56 - 32
js/Compiler-Semantic.js

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

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

@@ -6,8 +6,9 @@ smalltalk.method({
 selector: "analyze:forClass:",
 fn: function (aNode,aClass){
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
@@ -20,8 +21,9 @@ smalltalk.method({
 selector: "interpret:",
 fn: function (aString){
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["interpret:withArguments:", "new"]}),
@@ -34,8 +36,9 @@ selector: "interpret:receiver:withArguments:",
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-ctx=_st((smalltalk.AIContext || AIContext))._new();
+ctx=_st($AIContext())._new();
 _st(ctx)._receiver_(anObject);
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
@@ -56,8 +59,9 @@ smalltalk.method({
 selector: "interpret:withArguments:",
 fn: function (aString,aDictionary){
 var self=this;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["interpret:receiver:withArguments:", "new"]}),
@@ -82,8 +86,9 @@ smalltalk.method({
 selector: "parse:",
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 messageSends: ["parse:", "current"]}),
@@ -111,8 +116,9 @@ smalltalk.method({
 selector: "interpreter",
 fn: function (){
 var self=this;
+function $ASTInterpreter(){return smalltalk.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
+$1=_st($ASTInterpreter())._new();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 messageSends: ["new"]}),
@@ -148,7 +154,8 @@ smalltalk.method({
 selector: "testCascade",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st((smalltalk.OrderedCollection || OrderedCollection))._with_with_((2),(3)));
+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)})},
 messageSends: ["assert:equals:", "interpret:", "with:with:"]}),
 smalltalk.ASTInterpreterTest);
@@ -204,7 +211,8 @@ smalltalk.method({
 selector: "testInstVarAssignment",
 fn: function (){
 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)})},
 messageSends: ["assert:equals:", "interpret:receiver:withArguments:", "new", "->"]}),
 smalltalk.ASTInterpreterTest);
@@ -251,10 +259,11 @@ smalltalk.method({
 selector: "interpreter",
 fn: function (){
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@interpreter"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@interpreter"]=_st((smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter))._new();
+self["@interpreter"]=_st($ASTSteppingInterpreter())._new();
 $1=self["@interpreter"];
 } else {
 $1=$2;
@@ -327,8 +336,9 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 fn: function (){
 var self=this;
+function $CodeGenerator(){return smalltalk.CodeGenerator||(typeof CodeGenerator=="undefined"?nil:CodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.CodeGenerator || CodeGenerator);
+$1=$CodeGenerator();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
@@ -340,8 +350,9 @@ smalltalk.method({
 selector: "compiler",
 fn: function (){
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -382,8 +393,9 @@ smalltalk.method({
 selector: "targetClass",
 fn: function (){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.DoIt || DoIt);
+$1=$DoIt();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 messageSends: []}),
@@ -464,7 +476,8 @@ smalltalk.method({
 selector: "testInnerTemporalDependentElementsOrdered",
 fn: function (){
 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^ { '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))]));
@@ -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 ^ false",false);
 _st(self)._should_return_("foo ^ #{1->2. 3->4}",smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((2)),_st((3)).__minus_gt((4))]));
-_st(self)._should_return_("foo ^ #hello",smalltalk.symbolFor("hello"));
+_st(self)._should_return_("foo ^ #hello","hello");
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
 return self}, function($ctx1) {$ctx1.fill(self,"testLiterals",{},smalltalk.CodeGeneratorTest)})},
 messageSends: ["should:return:", "->"]}),
@@ -578,8 +591,9 @@ smalltalk.method({
 selector: "testSendReceiverAndArgumentsOrdered",
 fn: function (){
 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)]);
-_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)})},
 messageSends: ["should:return:"]}),
 smalltalk.CodeGeneratorTest);
@@ -691,8 +705,9 @@ smalltalk.method({
 selector: "codeGeneratorClass",
 fn: function (){
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 messageSends: []}),
@@ -708,12 +723,14 @@ selector: "testClassRefVar",
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.ClassReferenceNode || ClassReferenceNode))._new();
+$1=_st($ClassReferenceNode())._new();
 _st($1)._value_("Object");
 $2=_st($1)._yourself();
 node=$2;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
+_st(_st($SemanticAnalyzer())._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar",{node:node},smalltalk.ScopeVarTest)})},
 messageSends: ["value:", "new", "yourself", "visit:", "assert:", "isClassRefVar", "binding"]}),
@@ -726,12 +743,14 @@ selector: "testInstanceVar",
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($MethodLexicalScope())._new();
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar",{node:node,scope:scope},smalltalk.ScopeVarTest)})},
@@ -745,15 +764,17 @@ selector: "testPseudoVar",
 fn: function (){
 var self=this;
 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;
 pseudoVars=["self", "super", "true", "false", "nil"];
 _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);
 $2=_st($1)._yourself();
 node=$2;
 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)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars},smalltalk.ScopeVarTest)})},
 messageSends: ["do:", "value:", "new", "yourself", "assert:", "isPseudoVar", "bindingFor:"]}),
@@ -766,12 +787,14 @@ selector: "testTempVar",
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($MethodLexicalScope())._new();
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testTempVar",{node:node,scope:scope},smalltalk.ScopeVarTest)})},
@@ -785,12 +808,14 @@ selector: "testUnknownVar",
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 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)})},
 messageSends: ["value:", "new", "yourself", "assert:", "isNil", "bindingFor:"]}),
 smalltalk.ScopeVarTest);
@@ -804,7 +829,9 @@ smalltalk.method({
 selector: "setUp",
 fn: function (){
 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)})},
 messageSends: ["on:"]}),
 smalltalk.SemanticAnalyzerTest);
@@ -816,11 +843,12 @@ selector: "testAssignment",
 fn: function (){
 var self=this;
 var src,ast;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$InvalidAssignmentError());
 return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
@@ -908,11 +936,12 @@ selector: "testUnknownVariables",
 fn: function (){
 var self=this;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$UnknownVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
@@ -924,11 +953,12 @@ selector: "testUnknownVariablesWithScope",
 fn: function (){
 var self=this;
 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 ]]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$UnknownVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
@@ -954,11 +984,12 @@ selector: "testVariableShadowing2",
 fn: function (){
 var self=this;
 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 ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$ShadowingVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);
@@ -998,11 +1029,12 @@ selector: "testVariableShadowing5",
 fn: function (){
 var self=this;
 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 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$ShadowingVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 messageSends: ["parse:", "should:raise:", "visit:"]}),
 smalltalk.SemanticAnalyzerTest);

+ 64 - 32
js/Compiler-Tests.js

@@ -7,8 +7,9 @@ selector: "analyze:forClass:",
 category: 'interpreting',
 fn: function (aNode,aClass){
 var self=this;
+function $SemanticAnalyzer(){return smalltalk.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 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;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},smalltalk.AbstractASTInterpreterTest)})},
@@ -26,8 +27,9 @@ selector: "interpret:",
 category: 'interpreting',
 fn: function (aString){
 var self=this;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString"],
@@ -45,8 +47,9 @@ category: 'interpreting',
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx;
+function $AIContext(){return smalltalk.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-ctx=_st((smalltalk.AIContext || AIContext))._new();
+ctx=_st($AIContext())._new();
 _st(ctx)._receiver_(anObject);
 _st(aDictionary)._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
return _st(ctx)._localAt_put_(key,value);
@@ -72,8 +75,9 @@ selector: "interpret:withArguments:",
 category: 'interpreting',
 fn: function (aString,aDictionary){
 var self=this;
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString", "aDictionary"],
@@ -108,8 +112,9 @@ selector: "parse:",
 category: 'parsing',
 fn: function (aString){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},smalltalk.AbstractASTInterpreterTest)})},
 args: ["aString"],
@@ -147,8 +152,9 @@ selector: "interpreter",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $ASTInterpreter(){return smalltalk.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
+$1=_st($ASTInterpreter())._new();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"interpreter",{},smalltalk.ASTInterpreterTest)})},
 args: [],
@@ -199,7 +205,8 @@ selector: "testCascade",
 category: 'tests',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_equals_(_st(self)._interpret_("foo ^ OrderedCollection new add: 2; add: 3; yourself"),_st((smalltalk.OrderedCollection || OrderedCollection))._with_with_((2),(3)));
+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)})},
 args: [],
 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',
 fn: function (){
 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)})},
 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",
@@ -347,10 +355,11 @@ selector: "interpreter",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $ASTSteppingInterpreter(){return smalltalk.ASTSteppingInterpreter||(typeof ASTSteppingInterpreter=="undefined"?nil:ASTSteppingInterpreter)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$1;
 $2=self["@interpreter"];
 if(($receiver = $2) == nil || $receiver == undefined){
-self["@interpreter"]=_st((smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter))._new();
+self["@interpreter"]=_st($ASTSteppingInterpreter())._new();
 $1=self["@interpreter"];
 } else {
 $1=$2;
@@ -443,8 +452,9 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $CodeGenerator(){return smalltalk.CodeGenerator||(typeof CodeGenerator=="undefined"?nil:CodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.CodeGenerator || CodeGenerator);
+$1=$CodeGenerator();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
@@ -461,8 +471,9 @@ selector: "compiler",
 category: 'factory',
 fn: function (){
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -518,8 +529,9 @@ selector: "targetClass",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $DoIt(){return smalltalk.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.DoIt || DoIt);
+$1=$DoIt();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"targetClass",{},smalltalk.CodeGeneratorTest)})},
 args: [],
@@ -635,7 +647,8 @@ selector: "testInnerTemporalDependentElementsOrdered",
 category: 'tests',
 fn: function (){
 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^ { '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))]));
@@ -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 ^ false",false);
 _st(self)._should_return_("foo ^ #{1->2. 3->4}",smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((2)),_st((3)).__minus_gt((4))]));
-_st(self)._should_return_("foo ^ #hello",smalltalk.symbolFor("hello"));
+_st(self)._should_return_("foo ^ #hello","hello");
 _st(self)._should_return_("foo ^ -123.456",(-123.456));
 return self}, function($ctx1) {$ctx1.fill(self,"testLiterals",{},smalltalk.CodeGeneratorTest)})},
 args: [],
@@ -789,8 +802,9 @@ selector: "testSendReceiverAndArgumentsOrdered",
 category: 'tests',
 fn: function (){
 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)]);
-_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)})},
 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}.",
@@ -942,8 +956,9 @@ selector: "codeGeneratorClass",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $InliningCodeGenerator(){return smalltalk.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
+$1=$InliningCodeGenerator();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{},smalltalk.InliningCodeGeneratorTest)})},
 args: [],
@@ -964,12 +979,14 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.ClassReferenceNode || ClassReferenceNode))._new();
+$1=_st($ClassReferenceNode())._new();
 _st($1)._value_("Object");
 $2=_st($1)._yourself();
 node=$2;
-_st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
+_st(_st($SemanticAnalyzer())._new())._visit_(node);
 _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar",{node:node},smalltalk.ScopeVarTest)})},
 args: [],
@@ -987,12 +1004,14 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($MethodLexicalScope())._new();
 _st(scope)._addIVar_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar",{node:node,scope:scope},smalltalk.ScopeVarTest)})},
@@ -1011,15 +1030,17 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
 pseudoVars=["self", "super", "true", "false", "nil"];
 _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);
 $2=_st($1)._yourself();
 node=$2;
 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)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars},smalltalk.ScopeVarTest)})},
 args: [],
@@ -1037,12 +1058,14 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 node=$2;
-scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
+scope=_st($MethodLexicalScope())._new();
 _st(scope)._addTemp_("bzzz");
 _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
 return self}, function($ctx1) {$ctx1.fill(self,"testTempVar",{node:node,scope:scope},smalltalk.ScopeVarTest)})},
@@ -1061,12 +1084,14 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
-$1=_st((smalltalk.VariableNode || VariableNode))._new();
+$1=_st($VariableNode())._new();
 _st($1)._value_("bzzz");
 $2=_st($1)._yourself();
 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)})},
 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",
@@ -1085,7 +1110,9 @@ selector: "setUp",
 category: 'running',
 fn: function (){
 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)})},
 args: [],
 source: "setUp\x0a\x09analyzer := SemanticAnalyzer on: Object",
@@ -1102,11 +1129,12 @@ category: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
+function $InvalidAssignmentError(){return smalltalk.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo self := 1";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$InvalidAssignmentError());
 return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testAssignment\x0a\x09| src ast |\x0a\x0a\x09src := 'foo self := 1'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: InvalidAssignmentError",
@@ -1224,11 +1252,12 @@ category: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
+function $UnknownVariableError(){return smalltalk.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 return smalltalk.withContext(function($ctx1) { 
src="foo | a | b + a";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$UnknownVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testUnknownVariables\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a | b + a'.\x0a\x09ast := smalltalk parse: src.\x0a\x0a\x09self should: [ analyzer visit: ast ] raise: UnknownVariableError",
@@ -1245,11 +1274,12 @@ category: 'tests',
 fn: function (){
 var self=this;
 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 ]]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$UnknownVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testUnknownVariablesWithScope\x0a\x09| src ast |\x0a\x0a\x09src := 'foo | a b | [ c + 1. [ a + 1. d + 1 ]]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09\x0a\x09self should: [ analyzer visit: ast ] raise: UnknownVariableError",
@@ -1285,11 +1315,12 @@ category: 'tests',
 fn: function (){
 var self=this;
 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 ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$ShadowingVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing2\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ | a | a := 2 ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: ShadowingVariableError",
@@ -1344,11 +1375,12 @@ category: 'tests',
 fn: function (){
 var self=this;
 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 ] ] ]";
 ast=_st(smalltalk)._parse_(src);
 _st(self)._should_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self["@analyzer"])._visit_(ast);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),$ShadowingVariableError());
 return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast},smalltalk.SemanticAnalyzerTest)})},
 args: [],
 source: "testVariableShadowing5\x0a\x09| src ast |\x0a\x09src := 'foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]'.\x0a\x09ast := smalltalk parse: src.\x0a\x09self should: [analyzer visit: ast] raise: ShadowingVariableError",

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


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


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

@@ -91,9 +91,11 @@ smalltalk.method({
 selector: "exportAll",
 fn: function (){
 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;
-$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()));
 }, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
@@ -108,8 +110,9 @@ smalltalk.method({
 selector: "exportClass:",
 fn: function (aClass){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
@@ -162,6 +165,7 @@ smalltalk.method({
 selector: "exportMetaDefinitionOf:on:",
 fn: function (aClass,aStream){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 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(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
 }, 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)})},
 messageSends: ["ifFalse:", "nextPutAll:", ",", "classNameFor:", "class", "do:separatedBy:", "instanceVariableNames", "lf", "isEmpty"]}),
@@ -246,9 +250,11 @@ selector: "exportPackage:",
 fn: function (packageName){
 var self=this;
 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;
-$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_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
@@ -283,9 +289,11 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 var self=this;
 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;
 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($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());
@@ -453,8 +461,9 @@ selector: "exportMethodsOf:on:",
 fn: function (aClass,aStream){
 var self=this;
 var map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+map=_st($Dictionary())._new();
 _st(aClass)._protocolsDo_((function(category,methods){
 return smalltalk.withContext(function($ctx2) {
$1=_st(category)._match_("^\x5c*");
 if(! smalltalk.assert($1)){
@@ -494,11 +503,14 @@ selector: "exportPackageExtensionsOf:on:",
 fn: function (package_,aStream){
 var self=this;
 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;
 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($ctx3) {
map=_st((smalltalk.Dictionary || Dictionary))._new();
+return smalltalk.withContext(function($ctx3) {
map=_st($Dictionary())._new();
 map;
 _st(aClass)._protocolsDo_((function(category,methods){
 return smalltalk.withContext(function($ctx4) {
$1=_st(category)._match_(_st("^\x5c*").__comma(name));
@@ -588,8 +600,10 @@ selector: "import:",
 fn: function (aStream){
 var self=this;
 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;
-parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
+parser=_st($ChunkParser())._on_(aStream);
 lastEmpty=false;
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
@@ -601,7 +615,7 @@ if(smalltalk.assert($1)){
 lastEmpty=true;
 return lastEmpty;
 } else {
-result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
+result=_st(_st($Compiler())._new())._evaluateExpression_(chunk);
 result;
 $2=lastEmpty;
 if(smalltalk.assert($2)){
@@ -624,8 +638,9 @@ smalltalk.method({
 selector: "initializePackageNamed:prefix:",
 fn: function (packageName,aString){
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $2=_st($1)._commitPathSt_(_st(_st("/").__comma(aString)).__comma("/st"));

+ 28 - 13
js/Importer-Exporter.js

@@ -112,9 +112,11 @@ selector: "exportAll",
 category: 'fileOut',
 fn: function (){
 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;
-$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()));
 }, function($ctx3) {$ctx3.fillBlock({pkg:pkg},$ctx1)})}));
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
@@ -134,8 +136,9 @@ selector: "exportClass:",
 category: 'fileOut',
 fn: function (aClass){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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);
 _st(self)._exportMethodsOf_on_(aClass,stream);
 _st(self)._exportMetaDefinitionOf_on_(aClass,stream);
@@ -198,6 +201,7 @@ selector: "exportMetaDefinitionOf:on:",
 category: 'private',
 fn: function (aClass,aStream){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 $1=_st(_st(_st(aClass)._class())._instanceVariableNames())._isEmpty();
 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(){
 return smalltalk.withContext(function($ctx2) {
return _st(aStream)._nextPutAll_(",");
 }, 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)})},
 args: ["aClass", "aStream"],
@@ -297,9 +301,11 @@ category: 'fileOut',
 fn: function (packageName){
 var self=this;
 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;
-$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_;
 _st(self)._exportPackageDefinitionOf_on_(package_,stream);
 _st(_st(_st(package_)._sortedClasses())._asSet())._do_((function(each){
@@ -344,9 +350,11 @@ category: 'private',
 fn: function (package_,aStream){
 var self=this;
 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;
 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($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());
@@ -549,8 +557,9 @@ category: 'not yet classified',
 fn: function (aClass,aStream){
 var self=this;
 var map;
+function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-map=_st((smalltalk.Dictionary || Dictionary))._new();
+map=_st($Dictionary())._new();
 _st(aClass)._protocolsDo_((function(category,methods){
 return smalltalk.withContext(function($ctx2) {
$1=_st(category)._match_("^\x5c*");
 if(! smalltalk.assert($1)){
@@ -600,11 +609,14 @@ category: 'not yet classified',
 fn: function (package_,aStream){
 var self=this;
 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;
 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($ctx3) {
map=_st((smalltalk.Dictionary || Dictionary))._new();
+return smalltalk.withContext(function($ctx3) {
map=_st($Dictionary())._new();
 map;
 _st(aClass)._protocolsDo_((function(category,methods){
 return smalltalk.withContext(function($ctx4) {
$1=_st(category)._match_(_st("^\x5c*").__comma(name));
@@ -709,8 +721,10 @@ category: 'fileIn',
 fn: function (aStream){
 var self=this;
 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;
-parser=_st((smalltalk.ChunkParser || ChunkParser))._on_(aStream);
+parser=_st($ChunkParser())._on_(aStream);
 lastEmpty=false;
 _st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(parser)._nextChunk();
@@ -722,7 +736,7 @@ if(smalltalk.assert($1)){
 lastEmpty=true;
 return lastEmpty;
 } else {
-result=_st(_st((smalltalk.Compiler || Compiler))._new())._evaluateExpression_(chunk);
+result=_st(_st($Compiler())._new())._evaluateExpression_(chunk);
 result;
 $2=lastEmpty;
 if(smalltalk.assert($2)){
@@ -750,8 +764,9 @@ selector: "initializePackageNamed:prefix:",
 category: 'laoding',
 fn: function (packageName,aString){
 var self=this;
+function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
 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)._commitPathJs_(_st(_st("/").__comma(aString)).__comma("/js"));
 $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",
 fn: function (){
 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), []);
-self["@subscriptions"]=_st((smalltalk.Array || Array))._new();
+self["@subscriptions"]=_st($Array())._new();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.Announcer)})},
 messageSends: ["initialize", "new"]}),
 smalltalk.Announcer);
@@ -110,8 +111,9 @@ smalltalk.method({
 selector: "on:do:",
 fn: function (aClass,aBlock){
 var self=this;
+function $AnnouncementSubscription(){return smalltalk.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.AnnouncementSubscription || AnnouncementSubscription))._new();
+$1=_st($AnnouncementSubscription())._new();
 _st($1)._block_(aBlock);
 _st($1)._announcementClass_(aClass);
 $2=_st($1)._yourself();

+ 4 - 2
js/Kernel-Announcements.js

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

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

@@ -7,6 +7,9 @@ selector: "addCompiledMethod:",
 fn: function (aMethod){
 var self=this;
 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;
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
@@ -18,18 +21,18 @@ _st(_st(self)._organization())._addElement_(_st(aMethod)._protocol());
 _st(self)._basicAddCompiledMethod_(aMethod);
 $2=oldMethod;
 if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st((smalltalk.MethodAdded || MethodAdded))._new();
+$3=_st($MethodAdded())._new();
 _st($3)._method_(aMethod);
 $4=_st($3)._yourself();
 announcement=$4;
 } else {
-$5=_st((smalltalk.MethodModified || MethodModified))._new();
+$5=_st($MethodModified())._new();
 _st($5)._oldMethod_(oldMethod);
 _st($5)._method_(aMethod);
 $6=_st($5)._yourself();
 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)})},
 messageSends: ["at:ifAbsent:", "selector", "methodDictionary", "ifFalse:", "addElement:", "protocol", "organization", "includes:", "protocols", "basicAddCompiledMethod:", "ifNil:ifNotNil:", "method:", "new", "yourself", "oldMethod:", "announce:", "current"]}),
 smalltalk.Behavior);
@@ -97,18 +100,20 @@ smalltalk.method({
 selector: "allSuperclasses",
 fn: function (){
 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();
 if(($receiver = $1) == nil || $receiver == undefined){
-return [];
+$2=[];
+return $2;
 } else {
 $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)})},
 messageSends: ["ifNil:", "superclass", "addAll:", "allSuperclasses", "with:", "yourself"]}),
 smalltalk.Behavior);
@@ -190,12 +195,14 @@ smalltalk.method({
 selector: "comment:",
 fn: function (aString){
 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;
 _st(self)._basicAt_put_("comment",aString);
-$1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
+$1=_st($ClassCommentChanged())._new();
 _st($1)._theClass_(self);
 $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)})},
 messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.Behavior);
@@ -206,8 +213,9 @@ smalltalk.method({
 selector: "commentStamp",
 fn: function (){
 var self=this;
+function $ClassCommentReader(){return smalltalk.ClassCommentReader||(typeof ClassCommentReader=="undefined"?nil:ClassCommentReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCommentReader || ClassCommentReader))._new();
+$2=_st($ClassCommentReader())._new();
 _st($2)._class_(self);
 $3=_st($2)._yourself();
 $1=$3;
@@ -246,7 +254,8 @@ smalltalk.method({
 selector: "compile:category:",
 fn: function (aString,anotherString){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
+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)})},
 messageSends: ["install:forClass:category:", "new"]}),
 smalltalk.Behavior);
@@ -378,8 +387,9 @@ smalltalk.method({
 selector: "methodsFor:",
 fn: function (aString){
 var self=this;
+function $ClassCategoryReader(){return smalltalk.ClassCategoryReader||(typeof ClassCategoryReader=="undefined"?nil:ClassCategoryReader)}
 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);
 $3=_st($2)._yourself();
 $1=$3;
@@ -473,10 +483,12 @@ selector: "protocolsDo:",
 fn: function (aBlock){
 var self=this;
 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){
 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($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
@@ -503,6 +515,8 @@ smalltalk.method({
 selector: "removeCompiledMethod:",
 fn: function (aMethod){
 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;
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _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(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-$1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
+$1=_st($MethodRemoved())._new();
 _st($1)._method_(aMethod);
 $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)})},
 messageSends: ["basicRemoveCompiledMethod:", "detect:ifNone:", "=", "protocol", "removeElement:", "organization", "methods", "announce:", "method:", "new", "yourself", "current"]}),
 smalltalk.Behavior);
@@ -585,8 +599,9 @@ smalltalk.method({
 selector: "withAllSubclasses",
 fn: function (){
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -635,13 +650,14 @@ smalltalk.method({
 selector: "definition",
 fn: function (){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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;
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(" subclass: #");
 _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(_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_(" ");
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
-_st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
+_st($4)._nextPutAll_(_st(_st("'").__comma(_st($String())._lf())).__comma(_st($String())._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
@@ -711,7 +727,8 @@ smalltalk.method({
 selector: "rename:",
 fn: function (aString){
 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)})},
 messageSends: ["renameClass:to:", "new"]}),
 smalltalk.Class);
@@ -762,8 +779,9 @@ smalltalk.method({
 selector: "subclass:instanceVariableNames:package:",
 fn: function (aString,aString2,aString3){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 messageSends: ["superclass:subclass:instanceVariableNames:package:", "asString", "new"]}),
@@ -791,8 +809,9 @@ smalltalk.method({
 selector: "definition",
 fn: function (){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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;
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(" class ");
@@ -827,7 +846,8 @@ smalltalk.method({
 selector: "instanceVariableNames:",
 fn: function (aCollection){
 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)})},
 messageSends: ["class:instanceVariableNames:", "new"]}),
 smalltalk.Metaclass);
@@ -893,8 +913,9 @@ selector: "addSubclassOf:named:instanceVariableNames:package:",
 fn: function (aClass,aString,aCollection,packageName){
 var self=this;
 var theClass;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 if(($receiver = $1) == nil || $receiver == undefined){
 $1;
@@ -999,13 +1020,15 @@ smalltalk.method({
 selector: "class:instanceVariableNames:",
 fn: function (aClass,aString){
 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;
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._setupClass_(aClass);
-$1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
+$1=_st($ClassDefinitionChanged())._new();
 _st($1)._theClass_(aClass);
 $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)})},
 messageSends: ["basicClass:instanceVariableNames:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.ClassBuilder);
@@ -1032,13 +1055,14 @@ smalltalk.method({
 selector: "copyClass:to:",
 fn: function (aClass,anotherClass){
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 _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)})}));
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _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)})}));
 _st(self)._setupClass_(anotherClass);
 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){
 var self=this;
 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;
 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);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st((function(){
 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;
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
@@ -1141,12 +1167,14 @@ smalltalk.method({
 selector: "renameClass:to:",
 fn: function (aClass,aString){
 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;
 _st(self)._basicRenameClass_to_(aClass,aString);
-$1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
+$1=_st($ClassRenamed())._new();
 _st($1)._theClass_(aClass);
 $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)})},
 messageSends: ["basicRenameClass:to:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.ClassBuilder);
@@ -1182,6 +1210,8 @@ selector: "superclass:subclass:instanceVariableNames:package:",
 fn: function (aClass,aString,aString2,aString3){
 var self=this;
 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;
 $1=self;
 $2=aClass;
@@ -1195,10 +1225,10 @@ $5=$6;
 };
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 _st(self)._setupClass_(newClass);
-$7=_st((smalltalk.ClassAdded || ClassAdded))._new();
+$7=_st($ClassAdded())._new();
 _st($7)._theClass_(newClass);
 $8=_st($7)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
+_st(_st($SystemAnnouncer())._current())._announce_($8);
 $9=newClass;
 return $9;
 }, 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:",
 fn: function (aString){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
+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)})},
 messageSends: ["install:forClass:category:", "new"]}),
 smalltalk.ClassCategoryReader);
@@ -1249,6 +1280,7 @@ selector: "scanFrom:",
 fn: function (aChunkParser){
 var self=this;
 var chunk;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
@@ -1256,7 +1288,7 @@ return _st(chunk)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 }, 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)})},
 messageSends: ["whileFalse:", "compileMethod:", "nextChunk", "isEmpty", "setupClass:", "new"]}),
 smalltalk.ClassCategoryReader);
@@ -1324,6 +1356,7 @@ selector: "getNodesFrom:",
 fn: function (aCollection){
 var self=this;
 var children,others;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 children=[];
 others=[];
@@ -1336,7 +1369,7 @@ return _st(others)._add_(each);
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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)})}));
 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"]}),

+ 74 - 41
js/Kernel-Classes.js

@@ -9,6 +9,9 @@ category: 'compiling',
 fn: function (aMethod){
 var self=this;
 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;
 oldMethod=_st(_st(self)._methodDictionary())._at_ifAbsent_(_st(aMethod)._selector(),(function(){
 return smalltalk.withContext(function($ctx2) {
return nil;
@@ -20,18 +23,18 @@ _st(_st(self)._organization())._addElement_(_st(aMethod)._protocol());
 _st(self)._basicAddCompiledMethod_(aMethod);
 $2=oldMethod;
 if(($receiver = $2) == nil || $receiver == undefined){
-$3=_st((smalltalk.MethodAdded || MethodAdded))._new();
+$3=_st($MethodAdded())._new();
 _st($3)._method_(aMethod);
 $4=_st($3)._yourself();
 announcement=$4;
 } else {
-$5=_st((smalltalk.MethodModified || MethodModified))._new();
+$5=_st($MethodModified())._new();
 _st($5)._oldMethod_(oldMethod);
 _st($5)._method_(aMethod);
 $6=_st($5)._yourself();
 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)})},
 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",
@@ -119,18 +122,20 @@ selector: "allSuperclasses",
 category: 'accessing',
 fn: function (){
 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();
 if(($receiver = $1) == nil || $receiver == undefined){
-return [];
+$2=[];
+return $2;
 } else {
 $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)})},
 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",
@@ -242,12 +247,14 @@ selector: "comment:",
 category: 'accessing',
 fn: function (aString){
 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;
 _st(self)._basicAt_put_("comment",aString);
-$1=_st((smalltalk.ClassCommentChanged || ClassCommentChanged))._new();
+$1=_st($ClassCommentChanged())._new();
 _st($1)._theClass_(self);
 $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)})},
 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)",
@@ -263,8 +270,9 @@ selector: "commentStamp",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $ClassCommentReader(){return smalltalk.ClassCommentReader||(typeof ClassCommentReader=="undefined"?nil:ClassCommentReader)}
 return smalltalk.withContext(function($ctx1) { 
var $2,$3,$1;
-$2=_st((smalltalk.ClassCommentReader || ClassCommentReader))._new();
+$2=_st($ClassCommentReader())._new();
 _st($2)._class_(self);
 $3=_st($2)._yourself();
 $1=$3;
@@ -318,7 +326,8 @@ selector: "compile:category:",
 category: 'compiling',
 fn: function (aString,anotherString){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self,anotherString);
+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)})},
 args: ["aString", "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',
 fn: function (aString){
 var self=this;
+function $ClassCategoryReader(){return smalltalk.ClassCategoryReader||(typeof ClassCategoryReader=="undefined"?nil:ClassCategoryReader)}
 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);
 $3=_st($2)._yourself();
 $1=$3;
@@ -625,10 +635,12 @@ category: 'accessing',
 fn: function (aBlock){
 var self=this;
 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){
 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($ctx2) {$ctx2.fillBlock({m:m},$ctx1)})}));
 _st(_st(self)._protocols())._do_((function(category){
@@ -665,6 +677,8 @@ selector: "removeCompiledMethod:",
 category: 'compiling',
 fn: function (aMethod){
 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;
 _st(self)._basicRemoveCompiledMethod_(aMethod);
 _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(){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._organization())._removeElement_(_st(aMethod)._protocol());
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
-$1=_st((smalltalk.MethodRemoved || MethodRemoved))._new();
+$1=_st($MethodRemoved())._new();
 _st($1)._method_(aMethod);
 $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)})},
 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)",
@@ -777,8 +791,9 @@ selector: "withAllSubclasses",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 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());
 $3=_st($2)._yourself();
 $1=$3;
@@ -843,13 +858,14 @@ selector: "definition",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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;
 _st($2)._nextPutAll_(_st(_st(self)._superclass())._asString());
 _st($2)._nextPutAll_(" subclass: #");
 _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(_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_(" ");
 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
 $4=stream;
-_st($4)._nextPutAll_(_st(_st("'").__comma(_st((smalltalk.String || String))._lf())).__comma(_st((smalltalk.String || String))._tab()));
+_st($4)._nextPutAll_(_st(_st("'").__comma(_st($String())._lf())).__comma(_st($String())._tab()));
 _st($4)._nextPutAll_("package: '");
 _st($4)._nextPutAll_(_st(self)._category());
 $5=_st($4)._nextPutAll_("'");
@@ -944,7 +960,8 @@ selector: "rename:",
 category: 'accessing',
 fn: function (aString){
 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)})},
 args: ["aString"],
 source: "rename: aString\x0a\x09ClassBuilder new renameClass: self to: aString",
@@ -1015,8 +1032,9 @@ selector: "subclass:instanceVariableNames:package:",
 category: 'class creation',
 fn: function (aString,aString2,aString3){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.Class)})},
 args: ["aString", "aString2", "aString3"],
@@ -1055,8 +1073,9 @@ selector: "definition",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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;
 _st($2)._nextPutAll_(_st(self)._asString());
 _st($2)._nextPutAll_(" class ");
@@ -1101,7 +1120,8 @@ selector: "instanceVariableNames:",
 category: 'accessing',
 fn: function (aCollection){
 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)})},
 args: ["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){
 var self=this;
 var theClass;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 if(($receiver = $1) == nil || $receiver == undefined){
 $1;
@@ -1334,13 +1355,15 @@ selector: "class:instanceVariableNames:",
 category: 'class definition',
 fn: function (aClass,aString){
 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;
 _st(self)._basicClass_instanceVariableNames_(aClass,aString);
 _st(self)._setupClass_(aClass);
-$1=_st((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged))._new();
+$1=_st($ClassDefinitionChanged())._new();
 _st($1)._theClass_(aClass);
 $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)})},
 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)",
@@ -1377,13 +1400,14 @@ selector: "copyClass:to:",
 category: 'copying',
 fn: function (aClass,anotherClass){
 var self=this;
+function $Compiler(){return smalltalk.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 return smalltalk.withContext(function($ctx1) { 
_st(anotherClass)._comment_(_st(aClass)._comment());
 _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)})}));
 _st(self)._basicClass_instanceVariables_(_st(anotherClass)._class(),_st(_st(aClass)._class())._instanceVariableNames());
 _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)})}));
 _st(self)._setupClass_(anotherClass);
 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){
 var self=this;
 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;
 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);
 _st(self)._basicSwapClassNames_with_(oldClass,newClass);
 _st((function(){
 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;
 _st($1)._basicSwapClassNames_with_(oldClass,newClass);
 $2=_st($1)._basicRemoveClass_(newClass);
@@ -1516,12 +1542,14 @@ selector: "renameClass:to:",
 category: 'class migration',
 fn: function (aClass,aString){
 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;
 _st(self)._basicRenameClass_to_(aClass,aString);
-$1=_st((smalltalk.ClassRenamed || ClassRenamed))._new();
+$1=_st($ClassRenamed())._new();
 _st($1)._theClass_(aClass);
 $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)})},
 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)",
@@ -1572,6 +1600,8 @@ category: 'class definition',
 fn: function (aClass,aString,aString2,aString3){
 var self=this;
 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;
 $1=self;
 $2=aClass;
@@ -1585,10 +1615,10 @@ $5=$6;
 };
 newClass=_st($1)._addSubclassOf_named_instanceVariableNames_package_($2,$3,$4,$5);
 _st(self)._setupClass_(newClass);
-$7=_st((smalltalk.ClassAdded || ClassAdded))._new();
+$7=_st($ClassAdded())._new();
 _st($7)._theClass_(newClass);
 $8=_st($7)._yourself();
-_st(_st((smalltalk.SystemAnnouncer || SystemAnnouncer))._current())._announce_($8);
+_st(_st($SystemAnnouncer())._current())._announce_($8);
 $9=newClass;
 return $9;
 }, 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',
 fn: function (aString){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
_st(_st((smalltalk.Compiler || Compiler))._new())._install_forClass_category_(aString,self["@class"],self["@category"]);
+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)})},
 args: ["aString"],
 source: "compileMethod: aString\x0a\x09Compiler new install: aString forClass: class category: category",
@@ -1660,6 +1691,7 @@ category: 'fileIn',
 fn: function (aChunkParser){
 var self=this;
 var chunk;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
_st((function(){
 return smalltalk.withContext(function($ctx2) {
chunk=_st(aChunkParser)._nextChunk();
 chunk;
@@ -1667,7 +1699,7 @@ return _st(chunk)._isEmpty();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._compileMethod_(chunk);
 }, 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)})},
 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",
@@ -1761,6 +1793,7 @@ category: 'accessing',
 fn: function (aCollection){
 var self=this;
 var children,others;
+function $ClassSorterNode(){return smalltalk.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 children=[];
 others=[];
@@ -1773,7 +1806,7 @@ return _st(others)._add_(each);
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"getNodesFrom:",{aCollection:aCollection,children:children,others:others},smalltalk.ClassSorterNode)})},
 args: ["aCollection"],

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

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

+ 48 - 26
js/Kernel-Collections.js

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

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

@@ -411,7 +411,8 @@ smalltalk.method({
 selector: "register",
 fn: function (){
 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)})},
 messageSends: ["setCurrent:", "new"]}),
 smalltalk.ErrorHandler.klass);

+ 2 - 1
js/Kernel-Exceptions.js

@@ -567,7 +567,8 @@ selector: "register",
 category: 'initialization',
 fn: function (){
 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)})},
 args: [],
 source: "register\x0a\x09ErrorHandler setCurrent: self new",

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

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

+ 13 - 6
js/Kernel-Methods.js

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

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

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

+ 72 - 36
js/Kernel-Objects.js

@@ -8,8 +8,9 @@ selector: "->",
 category: 'converting',
 fn: function (anObject){
 var self=this;
+function $Association(){return smalltalk.Association||(typeof Association=="undefined"?nil:Association)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},smalltalk.Object)})},
 args: ["anObject"],
@@ -63,8 +64,9 @@ category: 'converting',
 fn: function (){
 var self=this;
 var variables;
+function $HashedCollection(){return smalltalk.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 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){
 return smalltalk.withContext(function($ctx2) {
return _st(variables)._at_put_(each,_st(_st(self)._instVarAt_(each))._asJSON());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
@@ -85,8 +87,9 @@ selector: "asJSONString",
 category: 'converting',
 fn: function (){
 var self=this;
+function $JSON(){return smalltalk.JSON||(typeof JSON=="undefined"?nil:JSON)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},smalltalk.Object)})},
 args: [],
@@ -295,8 +298,9 @@ selector: "doesNotUnderstand:",
 category: 'error handling',
 fn: function (aMessage){
 var self=this;
+function $MessageNotUnderstood(){return smalltalk.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.MessageNotUnderstood || MessageNotUnderstood))._new();
+$1=_st($MessageNotUnderstood())._new();
 _st($1)._receiver_(self);
 _st($1)._message_(aMessage);
 $2=_st($1)._signal();
@@ -315,7 +319,8 @@ selector: "error:",
 category: 'error handling',
 fn: function (aString){
 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)})},
 args: ["aString"],
 source: "error: aString\x0a\x09Error signal: aString",
@@ -765,8 +770,9 @@ selector: "printString",
 category: 'printing',
 fn: function (){
 var self=this;
+function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
 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);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1)})}));
 return $1;
@@ -1966,10 +1972,11 @@ category: 'instance creation',
 fn: function (aBlock){
 var self=this;
 var t;
+function $Date(){return smalltalk.Date||(typeof Date=="undefined"?nil:Date)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-t=_st((smalltalk.Date || Date))._now();
+t=_st($Date())._now();
 _st(aBlock)._value();
-$1=_st(_st((smalltalk.Date || Date))._now()).__minus(t);
+$1=_st(_st($Date())._now()).__minus(t);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},smalltalk.Date.klass)})},
 args: ["aBlock"],
@@ -2216,7 +2223,8 @@ category: 'proxy',
 fn: function (anInspector){
 var self=this;
 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(anInspector)._setLabel_(_st(self)._printString());
 _st(self)._addObjectVariablesTo_(variables);
@@ -2517,8 +2525,9 @@ selector: "@",
 category: 'converting',
 fn: function (aNumber){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},smalltalk.Number)})},
 args: ["aNumber"],
@@ -2636,8 +2645,9 @@ selector: "asPoint",
 category: 'converting',
 fn: function (){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},smalltalk.Number)})},
 args: [],
@@ -2670,8 +2680,9 @@ selector: "atRandom",
 category: 'converting',
 fn: function (){
 var self=this;
+function $Random(){return smalltalk.Random||(typeof Random=="undefined"?nil:Random)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},smalltalk.Number)})},
 args: [],
@@ -3005,11 +3016,12 @@ category: 'converting',
 fn: function (aNumber){
 var self=this;
 var array,first,last,count;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
 first=_st(self)._truncated();
 last=_st(_st(aNumber)._truncated()).__plus((1));
 count=(1);
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 _st(_st(last).__minus(first))._timesRepeat_((function(){
 return smalltalk.withContext(function($ctx2) {
_st(array)._at_put_(count,first);
 count=_st(count).__plus((1));
@@ -3035,9 +3047,10 @@ category: 'converting',
 fn: function (stop,step){
 var self=this;
 var array,value,pos;
+function $Array(){return smalltalk.Array||(typeof Array=="undefined"?nil:Array)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2,$3;
 value=self;
-array=_st((smalltalk.Array || Array))._new();
+array=_st($Array())._new();
 pos=(1);
 $1=_st(step).__eq((0));
 if(smalltalk.assert($1)){
@@ -3256,13 +3269,15 @@ selector: "addElement:",
 category: 'accessing',
 fn: function (aString){
 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;
 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)._theClass_(_st(self)._theClass());
 $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)})},
 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)",
@@ -3278,13 +3293,15 @@ selector: "removeElement:",
 category: 'accessing',
 fn: function (aString){
 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;
 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)._theClass_(_st(self)._theClass());
 $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)})},
 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)",
@@ -3560,8 +3577,9 @@ selector: "properties",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"properties",{},smalltalk.Package)})},
 args: [],
@@ -3649,10 +3667,11 @@ selector: "setupClasses",
 category: 'classes',
 fn: function (){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
 $1=_st(self)._classes();
 _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)})}));
 $2=_st($1)._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(each)._initialize();
@@ -3809,8 +3828,9 @@ selector: "fetch:prefix:",
 category: 'loading-storing',
 fn: function (aPackageName,aPrefix){
 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($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)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"fetch:prefix:",{aPackageName:aPackageName,aPrefix:aPrefix},smalltalk.Package.klass)})},
 args: ["aPackageName", "aPrefix"],
@@ -3844,8 +3864,9 @@ selector: "named:",
 category: 'accessing',
 fn: function (aPackageName){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"named:",{aPackageName:aPackageName},smalltalk.Package.klass)})},
 args: ["aPackageName"],
@@ -3862,8 +3883,9 @@ selector: "named:ifAbsent:",
 category: 'accessing',
 fn: function (aPackageName,aBlock){
 var self=this;
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},smalltalk.Package.klass)})},
 args: ["aPackageName", "aBlock"],
@@ -3898,6 +3920,8 @@ category: 'sorting',
 fn: function (classes){
 var self=this;
 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;
 children=[];
 others=[];
@@ -3910,12 +3934,12 @@ return _st(children)._add_(each);
 };
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 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)})}));
 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());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
-expandedClasses=_st((smalltalk.Array || Array))._new();
+expandedClasses=_st($Array())._new();
 _st(nodes)._do_((function(aNode){
 return smalltalk.withContext(function($ctx2) {
return _st(aNode)._traverseClassesWith_(expandedClasses);
 }, function($ctx2) {$ctx2.fillBlock({aNode:aNode},$ctx1)})}));
@@ -3939,8 +3963,9 @@ selector: "*",
 category: 'arithmetic',
 fn: function (aPoint){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
@@ -3957,8 +3982,9 @@ selector: "+",
 category: 'arithmetic',
 fn: function (aPoint){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
@@ -3975,8 +4001,9 @@ selector: "-",
 category: 'arithmetic',
 fn: function (aPoint){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
@@ -3993,8 +4020,9 @@ selector: "/",
 category: 'arithmetic',
 fn: function (aPoint){
 var self=this;
+function $Point(){return smalltalk.Point||(typeof Point=="undefined"?nil:Point)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},smalltalk.Point)})},
 args: ["aPoint"],
@@ -4226,14 +4254,16 @@ selector: "asSmalltalkException:",
 category: 'error handling',
 fn: function (anObject){
 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;
 $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)})}));
 if(smalltalk.assert($2)){
 $1=anObject;
 } else {
-$1=_st((smalltalk.JavaScriptException || JavaScriptException))._on_(anObject);
+$1=_st($JavaScriptException())._on_(anObject);
 };
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},smalltalk.Smalltalk)})},
@@ -4462,8 +4492,9 @@ selector: "parseError:parsing:",
 category: 'error handling',
 fn: function (anException,aString){
 var self=this;
+function $ParseError(){return smalltalk.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"parseError:parsing:",{anException:anException,aString:aString},smalltalk.Smalltalk)})},
 args: ["anException", "aString"],
@@ -4480,7 +4511,9 @@ selector: "pseudoVariableNames",
 category: 'packages',
 fn: function (){
 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)})},
 args: [],
 source: "pseudoVariableNames\x0a\x09^ #('self' 'super' 'nil' 'true' 'false' 'thisContext')",
@@ -4512,16 +4545,18 @@ selector: "removeClass:",
 category: 'classes',
 fn: function (aClass){
 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;
 $1=_st(aClass)._isMetaclass();
 if(smalltalk.assert($1)){
 _st(self)._error_(_st(_st(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 };
 _st(self)._deleteClass_(aClass);
-$2=_st((smalltalk.ClassRemoved || ClassRemoved))._new();
+$2=_st($ClassRemoved())._new();
 _st($2)._theClass_(aClass);
 $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)})},
 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)",
@@ -4950,8 +4985,9 @@ selector: "subclass:instanceVariableNames:package:",
 category: 'class creation',
 fn: function (aString,aString2,aString3){
 var self=this;
+function $ClassBuilder(){return smalltalk.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 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;
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},smalltalk.UndefinedObject)})},
 args: ["aString", "aString2", "aString3"],

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


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


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

@@ -48,7 +48,8 @@ smalltalk.method({
 selector: "initialize",
 fn: function (){
 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)})},
 messageSends: ["register:", "new"]}),
 smalltalk.ConsoleTranscript.klass);
@@ -74,7 +75,8 @@ smalltalk.method({
 selector: "cr",
 fn: function (){
 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)})},
 messageSends: ["show:", "cr", "current"]}),
 smalltalk.Transcript.klass);

+ 4 - 2
js/Kernel-Transcript.js

@@ -69,7 +69,8 @@ selector: "initialize",
 category: 'initialization',
 fn: function (){
 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)})},
 args: [],
 source: "initialize\x0a\x09Transcript register: self new",
@@ -105,7 +106,8 @@ selector: "cr",
 category: 'printing',
 fn: function (){
 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)})},
 args: [],
 source: "cr\x0a\x09self current show: String cr",

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

@@ -6,8 +6,9 @@ smalltalk.method({
 selector: "setUp",
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
-self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
+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)})},
 messageSends: ["new", "with:with:"]}),
 smalltalk.ExampleSetTest);
@@ -42,12 +43,13 @@ smalltalk.method({
 selector: "testIllegal",
 fn: function (){
 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($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(){
-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)})},
 messageSends: ["should:raise:", "at:", "at:put:"]}),
 smalltalk.ExampleSetTest);
@@ -59,7 +61,7 @@ selector: "testIncludes",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
-_st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
+_st(self)._assert_(_st(self["@full"])._includes_("abc"));
 return self}, function($ctx1) {$ctx1.fill(self,"testIncludes",{},smalltalk.ExampleSetTest)})},
 messageSends: ["assert:", "includes:"]}),
 smalltalk.ExampleSetTest);
@@ -85,7 +87,7 @@ selector: "testRemove",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
-_st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
+_st(self)._assert_(_st(self["@full"])._includes_("abc"));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
 return self}, function($ctx1) {$ctx1.fill(self,"testRemove",{},smalltalk.ExampleSetTest)})},
 messageSends: ["remove:", "assert:", "includes:", "deny:"]}),
@@ -235,11 +237,13 @@ selector: "testAsyncErrorsAndFailures",
 fn: function (){
 var self=this;
 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;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 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());
 return _st(self)._finished();
 }, 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);
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
@@ -265,15 +269,16 @@ smalltalk.method({
 selector: "testAsyncNeedsTimeout",
 fn: function (){
 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($ctx2) {
return _st(self)._async_((function(){
 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)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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();
 return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 messageSends: ["should:raise:", "async:", "timeout:", "shouldnt:raise:", "finished"]}),
@@ -285,13 +290,14 @@ smalltalk.method({
 selector: "testFinishedNeedsTimeout",
 fn: function (){
 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($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)._shouldnt_raise_((function(){
 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)})},
 messageSends: ["should:raise:", "finished", "timeout:", "shouldnt:raise:"]}),
 smalltalk.SUnitAsyncTest);
@@ -336,19 +342,22 @@ selector: "testTimeouts",
 fn: function (){
 var self=this;
 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;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 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());
 return _st(self)._finished();
 }, 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);
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());

+ 25 - 16
js/SUnit-Tests.js

@@ -8,8 +8,9 @@ selector: "setUp",
 category: 'running',
 fn: function (){
 var self=this;
-return smalltalk.withContext(function($ctx1) { 
self["@empty"]=_st((smalltalk.Set || Set))._new();
-self["@full"]=_st((smalltalk.Set || Set))._with_with_((5),smalltalk.symbolFor("abc"));
+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)})},
 args: [],
 source: "setUp\x0a\x09empty := Set new.\x0a\x09full := Set with: 5 with: #abc",
@@ -59,12 +60,13 @@ selector: "testIllegal",
 category: 'tests',
 fn: function (){
 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($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(){
-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)})},
 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",
@@ -81,7 +83,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self)._assert_(_st(self["@full"])._includes_((5)));
-_st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
+_st(self)._assert_(_st(self["@full"])._includes_("abc"));
 return self}, function($ctx1) {$ctx1.fill(self,"testIncludes",{},smalltalk.ExampleSetTest)})},
 args: [],
 source: "testIncludes\x0a\x09self assert: (full includes: 5).\x0a\x09self assert: (full includes: #abc)",
@@ -117,7 +119,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
_st(self["@full"])._remove_((5));
-_st(self)._assert_(_st(self["@full"])._includes_(smalltalk.symbolFor("abc")));
+_st(self)._assert_(_st(self["@full"])._includes_("abc"));
 _st(self)._deny_(_st(self["@full"])._includes_((5)));
 return self}, function($ctx1) {$ctx1.fill(self,"testRemove",{},smalltalk.ExampleSetTest)})},
 args: [],
@@ -317,11 +319,13 @@ category: 'tests',
 fn: function (){
 var self=this;
 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;
 suite=_st(["fakeError", "fakeErrorFailingInTearDown", "fakeFailure", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 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());
 return _st(self)._finished();
 }, 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);
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());
@@ -352,15 +356,16 @@ selector: "testAsyncNeedsTimeout",
 category: 'tests',
 fn: function (){
 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($ctx2) {
return _st(self)._async_((function(){
 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)._shouldnt_raise_((function(){
 return smalltalk.withContext(function($ctx2) {
return _st(self)._async_((function(){
 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();
 return self}, function($ctx1) {$ctx1.fill(self,"testAsyncNeedsTimeout",{},smalltalk.SUnitAsyncTest)})},
 args: [],
@@ -377,13 +382,14 @@ selector: "testFinishedNeedsTimeout",
 category: 'tests',
 fn: function (){
 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($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)._shouldnt_raise_((function(){
 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)})},
 args: [],
 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 (){
 var self=this;
 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;
 suite=_st(["fakeTimeout", "fakeMultipleTimeoutFailing", "fakeMultipleTimeoutPassing", "testPass"])._collect_((function(each){
 return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
-runner=_st((smalltalk.TestSuiteRunner || TestSuiteRunner))._on_(suite);
+runner=_st($TestSuiteRunner())._on_(suite);
 _st(self)._timeout_((200));
 result=_st(runner)._result();
 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());
 return _st(self)._finished();
 }, 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);
 if(smalltalk.assert($1)){
 $2=_st(_st(result)._runs()).__eq(_st(result)._total());

+ 27 - 14
js/SUnit.deploy.js

@@ -167,7 +167,8 @@ smalltalk.method({
 selector: "runCase",
 fn: function (){
 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)})},
 messageSends: ["start", "testCase:"]}),
 smalltalk.TestCase);
@@ -255,8 +256,9 @@ smalltalk.method({
 selector: "signalFailure:",
 fn: function (aString){
 var self=this;
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.TestFailure || TestFailure))._new();
+$1=_st($TestFailure())._new();
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
 return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString},smalltalk.TestCase)})},
@@ -348,8 +350,9 @@ smalltalk.method({
 selector: "lookupHierarchyRoot",
 fn: function (){
 var self=this;
+function $TestCase(){return smalltalk.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.TestCase || TestCase);
+$1=$TestCase();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{},smalltalk.TestCase.klass)})},
 messageSends: []}),
@@ -527,11 +530,13 @@ smalltalk.method({
 selector: "withErrorReporting:",
 fn: function (aBlock){
 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($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"]);
 }, 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"]);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
@@ -626,11 +631,13 @@ smalltalk.method({
 selector: "initialize",
 fn: function (){
 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), []);
-self["@timestamp"]=_st((smalltalk.Date || Date))._now();
+self["@timestamp"]=_st($Date())._now();
 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);
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestResult)})},
 messageSends: ["initialize", "now", "new"]}),
@@ -658,14 +665,16 @@ smalltalk.method({
 selector: "runCase:",
 fn: function (aTestCase){
 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($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 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);
 }, 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);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase},smalltalk.TestResult)})},
@@ -767,8 +776,9 @@ smalltalk.method({
 selector: "contextOf:",
 fn: function (anInteger){
 var self=this;
+function $ReportingTestContext(){return smalltalk.ReportingTestContext||(typeof ReportingTestContext=="undefined"?nil:ReportingTestContext)}
 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();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
@@ -782,10 +792,12 @@ smalltalk.method({
 selector: "initialize",
 fn: function (){
 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;
 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(){
 var runs;
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
@@ -818,8 +830,9 @@ smalltalk.method({
 selector: "resume",
 fn: function (){
 var self=this;
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 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)})},
 messageSends: ["fork", "announce:", "result:", "new"]}),
 smalltalk.TestSuiteRunner);

+ 27 - 14
js/SUnit.js

@@ -229,7 +229,8 @@ selector: "runCase",
 category: 'running',
 fn: function (){
 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)})},
 args: [],
 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',
 fn: function (aString){
 var self=this;
+function $TestFailure(){return smalltalk.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 return smalltalk.withContext(function($ctx1) { 
var $1,$2;
-$1=_st((smalltalk.TestFailure || TestFailure))._new();
+$1=_st($TestFailure())._new();
 _st($1)._messageText_(aString);
 $2=_st($1)._signal();
 return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString},smalltalk.TestCase)})},
@@ -475,8 +477,9 @@ selector: "lookupHierarchyRoot",
 category: 'accessing',
 fn: function (){
 var self=this;
+function $TestCase(){return smalltalk.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
 return smalltalk.withContext(function($ctx1) { 
var $1;
-$1=(smalltalk.TestCase || TestCase);
+$1=$TestCase();
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{},smalltalk.TestCase.klass)})},
 args: [],
@@ -711,11 +714,13 @@ selector: "withErrorReporting:",
 category: 'private',
 fn: function (aBlock){
 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($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"]);
 }, 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"]);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock},smalltalk.ReportingTestContext)})},
@@ -847,11 +852,13 @@ selector: "initialize",
 category: 'initialization',
 fn: function (){
 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), []);
-self["@timestamp"]=_st((smalltalk.Date || Date))._now();
+self["@timestamp"]=_st($Date())._now();
 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);
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.TestResult)})},
 args: [],
@@ -889,14 +896,16 @@ selector: "runCase:",
 category: 'running',
 fn: function (aTestCase){
 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($ctx2) {
return _st((function(){
 return smalltalk.withContext(function($ctx3) {
_st(self)._increaseRuns();
 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);
 }, 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);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase},smalltalk.TestResult)})},
@@ -1033,8 +1042,9 @@ selector: "contextOf:",
 category: 'private',
 fn: function (anInteger){
 var self=this;
+function $ReportingTestContext(){return smalltalk.ReportingTestContext||(typeof ReportingTestContext=="undefined"?nil:ReportingTestContext)}
 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();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
 return $1;
@@ -1053,10 +1063,12 @@ selector: "initialize",
 category: 'initialization',
 fn: function (){
 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;
 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(){
 var runs;
 return smalltalk.withContext(function($ctx2) {
runs=_st(self["@result"])._runs();
@@ -1099,8 +1111,9 @@ selector: "resume",
 category: 'actions',
 fn: function (){
 var self=this;
+function $ResultAnnouncement(){return smalltalk.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 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)})},
 args: [],
 source: "resume\x0a\x09runNextTest fork.\x0a\x09announcer announce: (ResultAnnouncement new result: result)",

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