Browse Source

Recompile with new direct globals.

Herbert Vojčík 8 years ago
parent
commit
c02147f03b

+ 27 - 51
external/amber-cli/src/AmberCli.js

@@ -69,11 +69,10 @@ selector: "config:",
 protocol: 'commands',
 fn: function (args){
 var self=this;
-function $Configurator(){return $globals.Configurator||(typeof Configurator=="undefined"?nil:Configurator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($Configurator())._new())._start();
+$recv($recv($globals.Configurator)._new())._start();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"config:",{args:args},$globals.AmberCli.klass)});
@@ -95,7 +94,6 @@ protocol: 'commandline',
 fn: function (args){
 var self=this;
 var selector;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -106,7 +104,7 @@ $ctx1.sendIdx["first"]=1;
 //>>excludeEnd("ctx");
 selector=self._selectorForCommandLineSwitch_($1);
 $recv(args)._remove_($recv(args)._first());
-self._perform_withArguments_(selector,$recv($Array())._with_(args));
+self._perform_withArguments_(selector,$recv($globals.Array)._with_(args));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"handleArguments:",{args:args,selector:selector},$globals.AmberCli.klass)});
@@ -127,11 +125,10 @@ selector: "help:",
 protocol: 'commands',
 fn: function (args){
 var self=this;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Transcript())._show_("Available commands");
+$recv($globals.Transcript)._show_("Available commands");
 $recv(self._commandLineSwitches())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -161,11 +158,10 @@ selector: "init:",
 protocol: 'commands',
 fn: function (args){
 var self=this;
-function $Initer(){return $globals.Initer||(typeof Initer=="undefined"?nil:Initer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($Initer())._new())._start();
+$recv($recv($globals.Initer)._new())._start();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"init:",{args:args},$globals.AmberCli.klass)});
@@ -187,13 +183,11 @@ protocol: 'startup',
 fn: function (){
 var self=this;
 var args;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1,$4;
-$3=$recv("Welcome to Amber version ".__comma($recv($Smalltalk())._version())).__comma(" (NodeJS ");
+$3=$recv("Welcome to Amber version ".__comma($recv($globals.Smalltalk)._version())).__comma(" (NodeJS ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=3;
 //>>excludeEnd("ctx");
@@ -205,7 +199,7 @@ $1=$recv($2).__comma(").");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($Transcript())._show_($1);
+$recv($globals.Transcript)._show_($1);
 args=$recv(process)._argv();
 $recv(args)._removeFrom_to_((1),(2));
 $4=$recv(args)._isEmpty();
@@ -234,11 +228,10 @@ selector: "repl:",
 protocol: 'commands',
 fn: function (args){
 var self=this;
-function $Repl(){return $globals.Repl||(typeof Repl=="undefined"?nil:Repl)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Repl())._new())._createInterface();
+return $recv($recv($globals.Repl)._new())._createInterface();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"repl:",{args:args},$globals.AmberCli.klass)});
 //>>excludeEnd("ctx");
@@ -299,11 +292,10 @@ selector: "serve:",
 protocol: 'commands',
 fn: function (args){
 var self=this;
-function $FileServer(){return $globals.FileServer||(typeof FileServer=="undefined"?nil:FileServer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($FileServer())._createServerWithArguments_(args))._start();
+return $recv($recv($globals.FileServer)._createServerWithArguments_(args))._start();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"serve:",{args:args},$globals.AmberCli.klass)});
 //>>excludeEnd("ctx");
@@ -1777,7 +1769,6 @@ protocol: 'initialization',
 fn: function (options){
 var self=this;
 var server,popFront,front,optionName,optionValue,switches;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1851,7 +1842,7 @@ $6=$recv(switches)._includes_(optionName);
 if($core.assert($6)){
 optionName=self._selectorForCommandLineSwitch_(optionName);
 optionName;
-return $recv(server)._perform_withArguments_(optionName,$recv($Array())._with_(optionValue));
+return $recv(server)._perform_withArguments_(optionName,$recv($globals.Array)._with_(optionValue));
 } else {
 $7=console;
 $8=$recv(optionName).__comma(" is not a valid commandline option");
@@ -1963,7 +1954,6 @@ protocol: 'initialization',
 fn: function (){
 var self=this;
 var fileServer,args;
-function $FileServer(){return $globals.FileServer||(typeof FileServer=="undefined"?nil:FileServer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1978,7 +1968,7 @@ return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $1=$recv(each).__eq("--help");
 if($core.assert($1)){
-return $recv($FileServer())._printHelp();
+return $recv($globals.FileServer)._printHelp();
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
@@ -1987,7 +1977,7 @@ return $recv($FileServer())._printHelp();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-fileServer=$recv($FileServer())._createServerWithArguments_(args);
+fileServer=$recv($globals.FileServer)._createServerWithArguments_(args);
 fileServer;
 throw $early=[$recv(fileServer)._start()];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2196,11 +2186,10 @@ selector: "finishMessage",
 protocol: 'action',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv(console)._log_([" ", "The project should now be set up.", " ", " "]._join_($recv($String())._lf()));
+$recv(console)._log_([" ", "The project should now be set up.", " ", " "]._join_($recv($globals.String)._lf()));
 $recv((function(){
 
 }))._valueWithTimeout_((600));
@@ -2385,21 +2374,19 @@ protocol: 'npm',
 fn: function (aString,anotherString){
 var self=this;
 var modulePath,packageJson,binSection,scriptPath;
-function $JSObjectProxy(){return $globals.JSObjectProxy||(typeof JSObjectProxy=="undefined"?nil:JSObjectProxy)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$4,$2,$5;
 $1=self["@path"];
-$3=$recv($JSObjectProxy())._on_(require);
+$3=$recv($globals.JSObjectProxy)._on_(require);
 $4=$recv(aString).__comma("/package.json");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
 $2=$recv($3)._resolve_($4);
 modulePath=$recv($1)._dirname_($2);
-packageJson=$recv($Smalltalk())._readJSObject_($recv(require)._value_($recv(aString).__comma("/package.json")));
+packageJson=$recv($globals.Smalltalk)._readJSObject_($recv(require)._value_($recv(aString).__comma("/package.json")));
 binSection=$recv(packageJson)._at_("bin");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:"]=1;
@@ -2583,8 +2570,6 @@ selector: "assignNewVariable:do:",
 protocol: 'private',
 fn: function (buffer,aBlock){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
-function $ConsoleErrorHandler(){return $globals.ConsoleErrorHandler||(typeof ConsoleErrorHandler=="undefined"?nil:ConsoleErrorHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2621,11 +2606,11 @@ return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(e){
+}))._on_do_($globals.Error,(function(e){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$recv($recv($ConsoleErrorHandler())._new())._logError_(e);
+$recv($recv($globals.ConsoleErrorHandler)._new())._logError_(e);
 value=nil;
 return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2657,12 +2642,11 @@ protocol: 'actions',
 fn: function (){
 var self=this;
 var esc,cls;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-esc=$recv($String())._fromCharCode_((27));
+esc=$recv($globals.String)._fromCharCode_((27));
 $1=$recv($recv(esc).__comma("[2J")).__comma(esc);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=2;
@@ -2785,12 +2769,11 @@ protocol: 'private',
 fn: function (aString,anObject,aClass){
 var self=this;
 var compiler;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$4,$3,$2,$5,$6;
-compiler=$recv($Compiler())._new();
+compiler=$recv($globals.Compiler)._new();
 $1=compiler;
 $4=$recv(aString).__comma(": anObject ^ ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2834,11 +2817,10 @@ selector: "eval:",
 protocol: 'actions',
 fn: function (buffer){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._eval_on_(buffer,$recv($DoIt())._new());
+return self._eval_on_(buffer,$recv($globals.DoIt)._new());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"eval:",{buffer:buffer},$globals.Repl)});
 //>>excludeEnd("ctx");
@@ -2859,7 +2841,6 @@ protocol: 'actions',
 fn: function (buffer,anObject){
 var self=this;
 var result;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2870,7 +2851,7 @@ $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-result=$recv($recv($Compiler())._new())._evaluateExpression_on_(buffer,anObject);
+result=$recv($recv($globals.Compiler)._new())._evaluateExpression_on_(buffer,anObject);
 return result;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
@@ -2951,7 +2932,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2963,7 +2943,7 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@session"]=$recv($DoIt())._new();
+self["@session"]=$recv($globals.DoIt)._new();
 self["@readline"]=$recv(require)._value_("readline");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value:"]=1;
@@ -3192,7 +3172,6 @@ selector: "presentResultNamed:withValue:",
 protocol: 'private',
 fn: function (varName,value){
 var self=this;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3209,8 +3188,8 @@ $1=$recv($2).__comma($recv(value)._asString());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($Transcript())._show_($1);
-$recv($Transcript())._cr();
+$recv($globals.Transcript)._show_($1);
+$recv($globals.Transcript)._cr();
 $recv(self["@interface"])._prompt();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3232,12 +3211,11 @@ selector: "printWelcome",
 protocol: 'actions',
 fn: function (){
 var self=this;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Transcript())._show_("Type :q to exit.");
-$recv($Transcript())._cr();
+$recv($globals.Transcript)._show_("Type :q to exit.");
+$recv($globals.Transcript)._cr();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"printWelcome",{},$globals.Repl)});
@@ -3375,7 +3353,6 @@ selector: "setupCommands",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3401,7 +3378,7 @@ return $recv(self["@interface"])._prompt();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
 }))];
-self["@commands"]=$recv($Dictionary())._from_($1);
+self["@commands"]=$recv($globals.Dictionary)._from_($1);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"setupCommands",{},$globals.Repl)});
@@ -3459,11 +3436,10 @@ selector: "subclass:withVariable:",
 protocol: 'private',
 fn: function (aClass,varName){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($ClassBuilder())._new())._addSubclassOf_named_instanceVariableNames_package_(aClass,$recv(self._subclassNameFor_(aClass))._asSymbol(),[varName],"Compiler-Core");
+return $recv($recv($globals.ClassBuilder)._new())._addSubclassOf_named_instanceVariableNames_package_(aClass,$recv(self._subclassNameFor_(aClass))._asSymbol(),[varName],"Compiler-Core");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"subclass:withVariable:",{aClass:aClass,varName:varName},$globals.Repl)});
 //>>excludeEnd("ctx");

+ 10 - 20
src/Compiler-AST.js

@@ -560,14 +560,13 @@ selector: "nodes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@nodes"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@nodes"]=$recv($Array())._new();
+self["@nodes"]=$recv($globals.Array)._new();
 return self["@nodes"];
 } else {
 return $1;
@@ -1164,11 +1163,10 @@ selector: "nodes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Array())._with_with_(self._left(),self._right());
+return $recv($globals.Array)._with_with_(self._left(),self._right());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nodes",{},$globals.AssignmentNode)});
 //>>excludeEnd("ctx");
@@ -1318,14 +1316,13 @@ selector: "parameters",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@parameters"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@parameters"]=$recv($Array())._new();
+self["@parameters"]=$recv($globals.Array)._new();
 return self["@parameters"];
 } else {
 return $1;
@@ -2209,14 +2206,11 @@ protocol: 'accessing',
 fn: function (aCollection){
 var self=this;
 var first;
-function $SendNode(){return $globals.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
-function $CascadeNode(){return $globals.CascadeNode||(typeof CascadeNode=="undefined"?nil:CascadeNode)}
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3;
-$1=$recv($SendNode())._new();
+$1=$recv($globals.SendNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -2227,9 +2221,9 @@ $2=$recv($1)._yourself();
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
 first=$2;
-$3=$recv($CascadeNode())._new();
+$3=$recv($globals.CascadeNode)._new();
 $recv($3)._receiver_(self._receiver());
-$recv($3)._nodes_($recv($recv($Array())._with_(first)).__comma(aCollection));
+$recv($3)._nodes_($recv($recv($globals.Array)._with_(first)).__comma(aCollection));
 return $recv($3)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first},$globals.SendNode)});
@@ -2369,7 +2363,6 @@ selector: "nodes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2387,7 +2380,7 @@ return $recv($2)._copy();
 } else {
 $1;
 };
-$3=$recv($Array())._with_(self._receiver());
+$3=$recv($globals.Array)._with_(self._receiver());
 $recv($3)._addAll_(self._arguments());
 return $recv($3)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2607,12 +2600,11 @@ selector: "valueForReceiver:",
 protocol: 'building',
 fn: function (anObject){
 var self=this;
-function $SendNode(){return $globals.SendNode||(typeof SendNode=="undefined"?nil:SendNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$receiver;
-$1=$recv($SendNode())._new();
+$1=$recv($globals.SendNode)._new();
 $recv($1)._position_(self._position());
 $recv($1)._source_(self._source());
 $3=self._receiver();
@@ -2676,12 +2668,11 @@ selector: "asBlockSequenceNode",
 protocol: 'building',
 fn: function (){
 var self=this;
-function $BlockSequenceNode(){return $globals.BlockSequenceNode||(typeof BlockSequenceNode=="undefined"?nil:BlockSequenceNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($BlockSequenceNode())._new();
+$1=$recv($globals.BlockSequenceNode)._new();
 $recv($1)._position_(self._position());
 $recv($1)._source_(self._source());
 $recv($1)._nodes_(self._nodes());
@@ -3613,7 +3604,6 @@ selector: "ast",
 protocol: '*Compiler-AST',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3631,7 +3621,7 @@ return self._error_("Method source is empty");
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-return $recv($Smalltalk())._parse_(self._source());
+return $recv($globals.Smalltalk)._parse_(self._source());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ast",{},$globals.CompiledMethod)});
 //>>excludeEnd("ctx");

+ 16 - 32
src/Compiler-Core.js

@@ -151,11 +151,10 @@ selector: "pseudoVariables",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._pseudoVariableNames();
+return $recv($globals.Smalltalk)._pseudoVariableNames();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"pseudoVariables",{},$globals.AbstractCodeGenerator)});
 //>>excludeEnd("ctx");
@@ -265,11 +264,10 @@ selector: "irTranslator",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $IRJSTranslator(){return $globals.IRJSTranslator||(typeof IRJSTranslator=="undefined"?nil:IRJSTranslator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRJSTranslator())._new();
+return $recv($globals.IRJSTranslator)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},$globals.CodeGenerator)});
 //>>excludeEnd("ctx");
@@ -289,12 +287,11 @@ selector: "semanticAnalyzer",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($SemanticAnalyzer())._on_(self._currentClass());
+$1=$recv($globals.SemanticAnalyzer)._on_(self._currentClass());
 $recv($1)._thePackage_(self._currentPackage());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -316,12 +313,11 @@ selector: "translator",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $IRASTTranslator(){return $globals.IRASTTranslator||(typeof IRASTTranslator=="undefined"?nil:IRASTTranslator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRASTTranslator())._new();
+$1=$recv($globals.IRASTTranslator)._new();
 $recv($1)._source_(self._source());
 $recv($1)._theClass_(self._currentClass());
 return $recv($1)._yourself();
@@ -350,14 +346,13 @@ selector: "codeGeneratorClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $InliningCodeGenerator(){return $globals.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@codeGeneratorClass"];
 if(($receiver = $1) == null || $receiver.isNil){
-return $InliningCodeGenerator();
+return $globals.InliningCodeGenerator;
 } else {
 return $1;
 };
@@ -632,11 +627,10 @@ selector: "evaluateExpression:",
 protocol: 'compiling',
 fn: function (aString){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._evaluateExpression_on_(aString,$recv($DoIt())._new());
+return self._evaluateExpression_on_(aString,$recv($globals.DoIt)._new());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"evaluateExpression:",{aString:aString},$globals.Compiler)});
 //>>excludeEnd("ctx");
@@ -691,12 +685,11 @@ protocol: 'compiling',
 fn: function (aString,aBehavior,anotherString){
 var self=this;
 var compiledMethod;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 compiledMethod=self._eval_forPackage_(self._compile_forClass_protocol_(aString,aBehavior,anotherString),$recv(aBehavior)._packageOfProtocol_(anotherString));
-return $recv($recv($ClassBuilder())._new())._installMethod_forClass_protocol_(compiledMethod,aBehavior,anotherString);
+return $recv($recv($globals.ClassBuilder)._new())._installMethod_forClass_protocol_(compiledMethod,aBehavior,anotherString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"install:forClass:protocol:",{aString:aString,aBehavior:aBehavior,anotherString:anotherString,compiledMethod:compiledMethod},$globals.Compiler)});
 //>>excludeEnd("ctx");
@@ -716,11 +709,10 @@ selector: "parse:",
 protocol: 'compiling',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._parse_(aString);
+return $recv($globals.Smalltalk)._parse_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},$globals.Compiler)});
 //>>excludeEnd("ctx");
@@ -805,11 +797,10 @@ selector: "recompileAll",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($Smalltalk())._classes())._do_displayingProgress_((function(each){
+$recv($recv($globals.Smalltalk)._classes())._do_displayingProgress_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -948,11 +939,10 @@ selector: "recompileAll",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($Smalltalk())._classes())._do_((function(each){
+$recv($recv($globals.Smalltalk)._classes())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -999,16 +989,13 @@ protocol: 'evaluating',
 fn: function (aString,aContext){
 var self=this;
 var compiler,ast;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
-function $AISemanticAnalyzer(){return $globals.AISemanticAnalyzer||(typeof AISemanticAnalyzer=="undefined"?nil:AISemanticAnalyzer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 var $early={};
 try {
-compiler=$recv($Compiler())._new();
+compiler=$recv($globals.Compiler)._new();
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1018,7 +1005,7 @@ return ast;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(ex){
+}))._on_do_($globals.Error,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1027,7 +1014,7 @@ throw $early=[self._alert_($recv(ex)._messageText())];
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$1=$recv($AISemanticAnalyzer())._on_($recv($recv(aContext)._receiver())._class());
+$1=$recv($globals.AISemanticAnalyzer)._on_($recv($recv(aContext)._receiver())._class());
 $recv($1)._context_(aContext);
 $recv($1)._visit_(ast);
 return $recv(aContext)._evaluateNode_(ast);
@@ -1076,14 +1063,12 @@ protocol: 'evaluating',
 fn: function (aString,anObject){
 var self=this;
 var compiler;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $early={};
 try {
-compiler=$recv($Compiler())._new();
+compiler=$recv($globals.Compiler)._new();
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1092,7 +1077,7 @@ return $recv(compiler)._parseExpression_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(ex){
+}))._on_do_($globals.Error,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1147,12 +1132,11 @@ selector: "asVariableName",
 protocol: '*Compiler-Core',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($recv($Smalltalk())._reservedWords())._includes_(self);
+$1=$recv($recv($globals.Smalltalk)._reservedWords())._includes_(self);
 if($core.assert($1)){
 return self.__comma("_");
 } else {

+ 28 - 56
src/Compiler-IR.js

@@ -15,9 +15,6 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var variable;
-function $IRVariable(){return $globals.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
-function $AliasVar(){return $globals.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)}
-function $IRAssignment(){return $globals.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -30,11 +27,11 @@ $ctx1.sendIdx["visit:"]=1;
 //>>excludeEnd("ctx");
 return $2;
 };
-$3=$recv($IRVariable())._new();
+$3=$recv($globals.IRVariable)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($AliasVar())._new();
+$5=$recv($globals.AliasVar)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
@@ -46,7 +43,7 @@ $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
 variable=$6;
 $7=self._sequence();
-$9=$recv($IRAssignment())._new();
+$9=$recv($globals.IRAssignment)._new();
 $recv($9)._add_(variable);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
@@ -82,7 +79,6 @@ protocol: 'visiting',
 fn: function (aCollection){
 var self=this;
 var threshold,result;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -104,7 +100,7 @@ return threshold;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["withIndexDo:"]=1;
 //>>excludeEnd("ctx");
-result=$recv($OrderedCollection())._new();
+result=$recv($globals.OrderedCollection)._new();
 $recv(aCollection)._withIndexDo_((function(each,i){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -322,7 +318,6 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var left,right,assignment;
-function $IRAssignment(){return $globals.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -333,7 +328,7 @@ $ctx1.sendIdx["visit:"]=1;
 //>>excludeEnd("ctx");
 left=self._visit_($recv(aNode)._left());
 $1=self._sequence();
-$3=$recv($IRAssignment())._new();
+$3=$recv($globals.IRAssignment)._new();
 $recv($3)._add_(left);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
@@ -365,13 +360,11 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var closure;
-function $IRClosure(){return $globals.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
-function $IRTempDeclaration(){return $globals.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$5,$4,$6,$8,$7;
-$1=$recv($IRClosure())._new();
+$1=$recv($globals.IRClosure)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -400,7 +393,7 @@ $recv($4)._do_((function(each){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $6=closure;
-$8=$recv($IRTempDeclaration())._new();
+$8=$recv($globals.IRTempDeclaration)._new();
 $recv($8)._name_($recv(each)._name());
 $recv($8)._scope_($recv(aNode)._scope());
 $7=$recv($8)._yourself();
@@ -444,13 +437,11 @@ selector: "visitBlockSequenceNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRBlockSequence(){return $globals.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
-function $IRBlockReturn(){return $globals.IRBlockReturn||(typeof IRBlockReturn=="undefined"?nil:IRBlockReturn)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3,$5,$6,$9,$8,$7,$10,$12,$15,$14,$13,$11;
-$1=$recv($IRBlockSequence())._new();
+$1=$recv($globals.IRBlockSequence)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -507,7 +498,7 @@ $10=self._sequence();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["sequence"]=2;
 //>>excludeEnd("ctx");
-$12=$recv($IRBlockReturn())._new();
+$12=$recv($globals.IRBlockReturn)._new();
 $15=$recv(aNode)._nodes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["nodes"]=4;
@@ -557,7 +548,6 @@ selector: "visitCascadeNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -578,7 +568,7 @@ receiver=previous;
 var alias;
 alias=self._alias_(previous);
 alias;
-receiver=$recv($recv($VariableNode())._new())._binding_($recv(alias)._variable());
+receiver=$recv($recv($globals.VariableNode)._new())._binding_($recv(alias)._variable());
 };
 receiver;
 $recv(each)._receiver_(receiver);
@@ -622,11 +612,10 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var array;
-function $IRDynamicArray(){return $globals.IRDynamicArray||(typeof IRDynamicArray=="undefined"?nil:IRDynamicArray)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-array=$recv($IRDynamicArray())._new();
+array=$recv($globals.IRDynamicArray)._new();
 $recv(self._aliasTemporally_($recv(aNode)._nodes()))._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -657,11 +646,10 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var dictionary;
-function $IRDynamicDictionary(){return $globals.IRDynamicDictionary||(typeof IRDynamicDictionary=="undefined"?nil:IRDynamicDictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-dictionary=$recv($IRDynamicDictionary())._new();
+dictionary=$recv($globals.IRDynamicDictionary)._new();
 $recv(self._aliasTemporally_($recv(aNode)._nodes()))._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -691,12 +679,11 @@ selector: "visitJSStatementNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRVerbatim(){return $globals.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRVerbatim())._new();
+$1=$recv($globals.IRVerbatim)._new();
 $recv($1)._source_($recv($recv(aNode)._source())._crlfSanitized());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -718,16 +705,11 @@ selector: "visitMethodNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRMethod(){return $globals.IRMethod||(typeof IRMethod=="undefined"?nil:IRMethod)}
-function $IRTempDeclaration(){return $globals.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
-function $IRReturn(){return $globals.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
-function $IRVariable(){return $globals.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
-function $IRVerbatim(){return $globals.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$4,$1,$6,$5,$7,$9,$10,$11,$8,$12,$14,$13,$15,$17,$19,$20,$18,$21,$16,$23,$22;
-$2=$recv($IRMethod())._new();
+$2=$recv($globals.IRMethod)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -768,7 +750,7 @@ $7=self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["method"]=1;
 //>>excludeEnd("ctx");
-$9=$recv($IRTempDeclaration())._new();
+$9=$recv($globals.IRTempDeclaration)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
@@ -820,11 +802,11 @@ $15=self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["method"]=3;
 //>>excludeEnd("ctx");
-$17=$recv($IRReturn())._new();
+$17=$recv($globals.IRReturn)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=3;
 //>>excludeEnd("ctx");
-$19=$recv($IRVariable())._new();
+$19=$recv($globals.IRVariable)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=4;
 //>>excludeEnd("ctx");
@@ -847,7 +829,7 @@ $recv($15)._add_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
-$23=$recv($IRVerbatim())._new();
+$23=$recv($globals.IRVerbatim)._new();
 $recv($23)._source_("");
 $22=$recv($23)._yourself();
 $recv($15)._add_($22);
@@ -902,20 +884,18 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var return_;
-function $IRNonLocalReturn(){return $globals.IRNonLocalReturn||(typeof IRNonLocalReturn=="undefined"?nil:IRNonLocalReturn)}
-function $IRReturn(){return $globals.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=$recv(aNode)._nonLocalReturn();
 if($core.assert($1)){
-return_=$recv($IRNonLocalReturn())._new();
+return_=$recv($globals.IRNonLocalReturn)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 } else {
-return_=$recv($IRReturn())._new();
+return_=$recv($globals.IRReturn)._new();
 };
 $recv(return_)._scope_($recv(aNode)._scope());
 $recv($recv(aNode)._nodes())._do_((function(each){
@@ -948,12 +928,11 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var send;
-function $IRSend(){return $globals.IRSend||(typeof IRSend=="undefined"?nil:IRSend)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-send=$recv($IRSend())._new();
+send=$recv($globals.IRSend)._new();
 $1=send;
 $recv($1)._selector_($recv(aNode)._selector());
 $recv($1)._index_($recv(aNode)._index());
@@ -986,12 +965,11 @@ selector: "visitSequenceNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRSequence(){return $globals.IRSequence||(typeof IRSequence=="undefined"?nil:IRSequence)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-return self._withSequence_do_($recv($IRSequence())._new(),(function(){
+return self._withSequence_do_($recv($globals.IRSequence)._new(),(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1033,12 +1011,11 @@ selector: "visitValueNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRValue(){return $globals.IRValue||(typeof IRValue=="undefined"?nil:IRValue)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRValue())._new();
+$1=$recv($globals.IRValue)._new();
 $recv($1)._value_($recv(aNode)._value());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1060,12 +1037,11 @@ selector: "visitVariableNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRVariable(){return $globals.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRVariable())._new();
+$1=$recv($globals.IRVariable)._new();
 $recv($1)._variable_($recv(aNode)._binding());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1189,14 +1165,13 @@ selector: "instructions",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@instructions"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@instructions"]=$recv($OrderedCollection())._new();
+self["@instructions"]=$recv($globals.OrderedCollection)._new();
 return self["@instructions"];
 } else {
 return $1;
@@ -2066,14 +2041,13 @@ selector: "internalVariables",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@internalVariables"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@internalVariables"]=$recv($Set())._new();
+self["@internalVariables"]=$recv($globals.Set)._new();
 return self["@internalVariables"];
 } else {
 return $1;
@@ -3645,7 +3619,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $JSStream(){return $globals.JSStream||(typeof JSStream=="undefined"?nil:JSStream)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3657,7 +3630,7 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@stream"]=$recv($JSStream())._new();
+self["@stream"]=$recv($globals.JSStream)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.IRJSTranslator)});
@@ -5272,7 +5245,6 @@ selector: "nextPutMethodDeclaration:with:",
 protocol: 'streaming',
 fn: function (aMethod,aBlock){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -5331,7 +5303,7 @@ $recv(aBlock)._value();
 $ctx1.sendIdx["value"]=1;
 //>>excludeEnd("ctx");
 $9=self["@stream"];
-$12=$recv($String())._lf();
+$12=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");

+ 34 - 66
src/Compiler-Inlining.js

@@ -276,11 +276,10 @@ selector: "internalVariables",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Array())._with_(self._receiverInternalVariable());
+return $recv($globals.Array)._with_(self._receiverInternalVariable());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"internalVariables",{},$globals.IRInlinedIfNilIfNotNil)});
 //>>excludeEnd("ctx");
@@ -300,17 +299,15 @@ selector: "receiverInternalVariable",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $IRVariable(){return $globals.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
-function $AliasVar(){return $globals.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRVariable())._new();
+$1=$recv($globals.IRVariable)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$recv($1)._variable_($recv($recv($AliasVar())._new())._name_(self._receiverInternalVariableName()));
+$recv($1)._variable_($recv($recv($globals.AliasVar)._new())._name_(self._receiverInternalVariableName()));
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"receiverInternalVariable",{},$globals.IRInlinedIfNilIfNotNil)});
@@ -463,12 +460,11 @@ selector: "assignmentInliner",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRAssignmentInliner(){return $globals.IRAssignmentInliner||(typeof IRAssignmentInliner=="undefined"?nil:IRAssignmentInliner)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRAssignmentInliner())._new();
+$1=$recv($globals.IRAssignmentInliner)._new();
 $recv($1)._translator_(self);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -490,12 +486,11 @@ selector: "returnInliner",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRReturnInliner(){return $globals.IRReturnInliner||(typeof IRReturnInliner=="undefined"?nil:IRReturnInliner)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRReturnInliner())._new();
+$1=$recv($globals.IRReturnInliner)._new();
 $recv($1)._translator_(self);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -517,12 +512,11 @@ selector: "sendInliner",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRSendInliner(){return $globals.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($IRSendInliner())._new();
+$1=$recv($globals.IRSendInliner)._new();
 $recv($1)._translator_(self);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -650,7 +644,6 @@ selector: "shouldInlineSend:",
 protocol: 'testing',
 fn: function (anIRSend){
 var self=this;
-function $IRSendInliner(){return $globals.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -658,7 +651,7 @@ return $recv($recv($recv(anIRSend)._isInlined())._not())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($IRSendInliner())._shouldInline_(anIRSend);
+return $recv($globals.IRSendInliner)._shouldInline_(anIRSend);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -683,7 +676,6 @@ protocol: 'visiting',
 fn: function (anIRNonLocalReturn){
 var self=this;
 var localReturn;
-function $IRReturn(){return $globals.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -704,7 +696,7 @@ $5=$recv(anIRNonLocalReturn)._scope();
 $ctx1.sendIdx["scope"]=3;
 //>>excludeEnd("ctx");
 $recv($3)._removeNonLocalReturn_($5);
-$6=$recv($IRReturn())._new();
+$6=$recv($globals.IRReturn)._new();
 $recv($6)._scope_($recv(anIRNonLocalReturn)._scope());
 localReturn=$recv($6)._yourself();
 localReturn;
@@ -1356,11 +1348,10 @@ selector: "ifFalse:",
 protocol: 'inlining',
 fn: function (anIRInstruction){
 var self=this;
-function $IRInlinedIfFalse(){return $globals.IRInlinedIfFalse||(typeof IRInlinedIfFalse=="undefined"?nil:IRInlinedIfFalse)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._inlinedSend_withBlock_($recv($IRInlinedIfFalse())._new(),anIRInstruction);
+return self._inlinedSend_withBlock_($recv($globals.IRInlinedIfFalse)._new(),anIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1403,23 +1394,20 @@ selector: "ifNil:",
 protocol: 'inlining',
 fn: function (anIRInstruction){
 var self=this;
-function $IRInlinedIfNilIfNotNil(){return $globals.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
-function $IRClosure(){return $globals.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
-function $IRBlockSequence(){return $globals.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
-$1=$recv($IRInlinedIfNilIfNotNil())._new();
+$1=$recv($globals.IRInlinedIfNilIfNotNil)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($IRClosure())._new();
+$3=$recv($globals.IRClosure)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$5=$recv($IRBlockSequence())._new();
+$5=$recv($globals.IRBlockSequence)._new();
 $recv($5)._add_($recv($recv(self._send())._instructions())._first());
 $6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1451,11 +1439,10 @@ selector: "ifNil:ifNotNil:",
 protocol: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
-function $IRInlinedIfNilIfNotNil(){return $globals.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._inlinedSend_withBlock_withBlock_($recv($IRInlinedIfNilIfNotNil())._new(),anIRInstruction,anotherIRInstruction);
+return self._inlinedSend_withBlock_withBlock_($recv($globals.IRInlinedIfNilIfNotNil)._new(),anIRInstruction,anotherIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1475,23 +1462,20 @@ selector: "ifNotNil:",
 protocol: 'inlining',
 fn: function (anIRInstruction){
 var self=this;
-function $IRInlinedIfNilIfNotNil(){return $globals.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
-function $IRClosure(){return $globals.IRClosure||(typeof IRClosure=="undefined"?nil:IRClosure)}
-function $IRBlockSequence(){return $globals.IRBlockSequence||(typeof IRBlockSequence=="undefined"?nil:IRBlockSequence)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
-$1=$recv($IRInlinedIfNilIfNotNil())._new();
+$1=$recv($globals.IRInlinedIfNilIfNotNil)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($IRClosure())._new();
+$3=$recv($globals.IRClosure)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$5=$recv($IRBlockSequence())._new();
+$5=$recv($globals.IRBlockSequence)._new();
 $recv($5)._add_($recv($recv(self._send())._instructions())._first());
 $6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1523,11 +1507,10 @@ selector: "ifNotNil:ifNil:",
 protocol: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
-function $IRInlinedIfNilIfNotNil(){return $globals.IRInlinedIfNilIfNotNil||(typeof IRInlinedIfNilIfNotNil=="undefined"?nil:IRInlinedIfNilIfNotNil)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._inlinedSend_withBlock_withBlock_($recv($IRInlinedIfNilIfNotNil())._new(),anotherIRInstruction,anIRInstruction);
+return self._inlinedSend_withBlock_withBlock_($recv($globals.IRInlinedIfNilIfNotNil)._new(),anotherIRInstruction,anIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1547,11 +1530,10 @@ selector: "ifTrue:",
 protocol: 'inlining',
 fn: function (anIRInstruction){
 var self=this;
-function $IRInlinedIfTrue(){return $globals.IRInlinedIfTrue||(typeof IRInlinedIfTrue=="undefined"?nil:IRInlinedIfTrue)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._inlinedSend_withBlock_($recv($IRInlinedIfTrue())._new(),anIRInstruction);
+return self._inlinedSend_withBlock_($recv($globals.IRInlinedIfTrue)._new(),anIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1571,11 +1553,10 @@ selector: "ifTrue:ifFalse:",
 protocol: 'inlining',
 fn: function (anIRInstruction,anotherIRInstruction){
 var self=this;
-function $IRInlinedIfTrueIfFalse(){return $globals.IRInlinedIfTrueIfFalse||(typeof IRInlinedIfTrueIfFalse=="undefined"?nil:IRInlinedIfTrueIfFalse)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._inlinedSend_withBlock_withBlock_($recv($IRInlinedIfTrueIfFalse())._new(),anIRInstruction,anotherIRInstruction);
+return self._inlinedSend_withBlock_withBlock_($recv($globals.IRInlinedIfTrueIfFalse)._new(),anIRInstruction,anotherIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1596,10 +1577,6 @@ protocol: 'inlining',
 fn: function (anIRClosure){
 var self=this;
 var inlinedClosure,sequence,statements;
-function $IRTempDeclaration(){return $globals.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
-function $IRAssignment(){return $globals.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
-function $IRVariable(){return $globals.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
-function $AliasVar(){return $globals.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1636,7 +1613,7 @@ $recv($recv(anIRClosure)._arguments())._do_((function(each){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $3=inlinedClosure;
-$5=$recv($IRTempDeclaration())._new();
+$5=$recv($globals.IRTempDeclaration)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -1654,15 +1631,15 @@ $recv($3)._add_($4);
 $ctx2.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
 $7=sequence;
-$9=$recv($IRAssignment())._new();
+$9=$recv($globals.IRAssignment)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$11=$recv($IRVariable())._new();
+$11=$recv($globals.IRVariable)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=3;
 //>>excludeEnd("ctx");
-$13=$recv($AliasVar())._new();
+$13=$recv($globals.AliasVar)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=4;
 //>>excludeEnd("ctx");
@@ -1691,11 +1668,11 @@ $recv($9)._add_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=4;
 //>>excludeEnd("ctx");
-$17=$recv($IRVariable())._new();
+$17=$recv($globals.IRVariable)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=5;
 //>>excludeEnd("ctx");
-$19=$recv($AliasVar())._new();
+$19=$recv($globals.AliasVar)._new();
 $recv($19)._scope_($recv(inlinedClosure)._scope());
 $recv($19)._name_("$receiver");
 $20=$recv($19)._yourself();
@@ -1839,11 +1816,10 @@ selector: "inlinedClosure",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRInlinedClosure(){return $globals.IRInlinedClosure||(typeof IRInlinedClosure=="undefined"?nil:IRInlinedClosure)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRInlinedClosure())._new();
+return $recv($globals.IRInlinedClosure)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -1990,11 +1966,10 @@ selector: "inlinedSequence",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRInlinedSequence(){return $globals.IRInlinedSequence||(typeof IRInlinedSequence=="undefined"?nil:IRInlinedSequence)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRInlinedSequence())._new();
+return $recv($globals.IRInlinedSequence)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{},$globals.IRSendInliner)});
 //>>excludeEnd("ctx");
@@ -2014,11 +1989,10 @@ selector: "inliningError:",
 protocol: 'error handling',
 fn: function (aString){
 var self=this;
-function $InliningError(){return $globals.InliningError||(typeof InliningError=="undefined"?nil:InliningError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($InliningError())._signal_(aString);
+$recv($globals.InliningError)._signal_(aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString},$globals.IRSendInliner)});
@@ -2211,13 +2185,12 @@ protocol: 'inlining',
 fn: function (anIRAssignment){
 var self=this;
 var inlinedAssignment;
-function $IRInlinedAssignment(){return $globals.IRInlinedAssignment||(typeof IRInlinedAssignment=="undefined"?nil:IRInlinedAssignment)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 self._assignment_(anIRAssignment);
-inlinedAssignment=$recv($IRInlinedAssignment())._new();
+inlinedAssignment=$recv($globals.IRInlinedAssignment)._new();
 $1=$recv(anIRAssignment)._instructions();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["instructions"]=1;
@@ -2254,7 +2227,6 @@ protocol: 'inlining',
 fn: function (anIRClosure){
 var self=this;
 var inlinedClosure,statements;
-function $IRAssignment(){return $globals.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2293,7 +2265,7 @@ $5=$recv(statements)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["last"]=3;
 //>>excludeEnd("ctx");
-$7=$recv($IRAssignment())._new();
+$7=$recv($globals.IRAssignment)._new();
 $recv($7)._add_($recv($recv(self._assignment())._instructions())._first());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=1;
@@ -2333,7 +2305,6 @@ protocol: 'inlining',
 fn: function (anIRClosure){
 var self=this;
 var closure,statements;
-function $IRReturn(){return $globals.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2368,7 +2339,7 @@ $4=$recv(statements)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["last"]=3;
 //>>excludeEnd("ctx");
-$6=$recv($IRReturn())._new();
+$6=$recv($globals.IRReturn)._new();
 $recv($6)._add_($recv($recv(statements)._last())._copy());
 $5=$recv($6)._yourself();
 return $recv($4)._replaceWith_($5);
@@ -2438,11 +2409,10 @@ selector: "inlinedReturn",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $IRInlinedReturn(){return $globals.IRInlinedReturn||(typeof IRInlinedReturn=="undefined"?nil:IRInlinedReturn)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRInlinedReturn())._new();
+return $recv($globals.IRInlinedReturn)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},$globals.IRReturnInliner)});
 //>>excludeEnd("ctx");
@@ -2508,11 +2478,10 @@ selector: "inliner",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $IRInliner(){return $globals.IRInliner||(typeof IRInliner=="undefined"?nil:IRInliner)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRInliner())._new();
+return $recv($globals.IRInliner)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inliner",{},$globals.InliningCodeGenerator)});
 //>>excludeEnd("ctx");
@@ -2532,11 +2501,10 @@ selector: "irTranslator",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $IRInliningJSTranslator(){return $globals.IRInliningJSTranslator||(typeof IRInliningJSTranslator=="undefined"?nil:IRInliningJSTranslator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($IRInliningJSTranslator())._new();
+return $recv($globals.IRInliningJSTranslator)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"irTranslator",{},$globals.InliningCodeGenerator)});
 //>>excludeEnd("ctx");

+ 21 - 41
src/Compiler-Interpreter.js

@@ -100,11 +100,10 @@ selector: "interpreterError",
 protocol: 'error handling',
 fn: function (){
 var self=this;
-function $ASTInterpreterError(){return $globals.ASTInterpreterError||(typeof ASTInterpreterError=="undefined"?nil:ASTInterpreterError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ASTInterpreterError())._signal_("Method cannot be interpreted by the interpreter.");
+$recv($globals.ASTInterpreterError)._signal_("Method cannot be interpreted by the interpreter.");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"interpreterError",{},$globals.AIBlockClosure)});
@@ -537,12 +536,11 @@ selector: "evaluateNode:",
 protocol: 'evaluating',
 fn: function (aNode){
 var self=this;
-function $ASTInterpreter(){return $globals.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($ASTInterpreter())._new();
+$1=$recv($globals.ASTInterpreter)._new();
 $recv($1)._context_(self);
 $recv($1)._node_(aNode);
 $recv($1)._enterNode();
@@ -652,7 +650,6 @@ selector: "initializeAST",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -662,7 +659,7 @@ $1=self._method();
 $ctx1.sendIdx["method"]=1;
 //>>excludeEnd("ctx");
 self["@ast"]=$recv($1)._ast();
-$recv($recv($SemanticAnalyzer())._on_($recv(self._method())._methodClass()))._visit_(self["@ast"]);
+$recv($recv($globals.SemanticAnalyzer)._on_($recv(self._method())._methodClass()))._visit_(self["@ast"]);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initializeAST",{},$globals.AIContext)});
@@ -742,12 +739,11 @@ selector: "initializeInterpreter",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $ASTInterpreter(){return $globals.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$recv($ASTInterpreter())._new();
+$1=$recv($globals.ASTInterpreter)._new();
 $recv($1)._context_(self);
 self["@interpreter"]=$recv($1)._yourself();
 $2=self._innerContext();
@@ -776,11 +772,10 @@ selector: "initializeLocals",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self["@locals"]=$recv($Dictionary())._new();
+self["@locals"]=$recv($globals.Dictionary)._new();
 $recv(self["@locals"])._at_put_("thisContext",self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1268,14 +1263,13 @@ selector: "sendIndexes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@sendIndexes"];
 if(($receiver = $1) == null || $receiver.isNil){
-return $recv($Dictionary())._new();
+return $recv($globals.Dictionary)._new();
 } else {
 return $1;
 };
@@ -1318,12 +1312,11 @@ protocol: 'interpreting',
 fn: function (anInterpreter){
 var self=this;
 var currentNode;
-function $ASTPCNodeVisitor(){return $globals.ASTPCNodeVisitor||(typeof ASTPCNodeVisitor=="undefined"?nil:ASTPCNodeVisitor)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$6,$5,$4,$receiver;
-$1=$recv($ASTPCNodeVisitor())._new();
+$1=$recv($globals.ASTPCNodeVisitor)._new();
 $recv($1)._selector_(self._evaluatedSelector());
 $recv($1)._context_(self);
 $2=self._ast();
@@ -1532,7 +1525,6 @@ selector: "visitVariableNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $ASTContextVar(){return $globals.ASTContextVar||(typeof ASTContextVar=="undefined"?nil:ASTContextVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1556,7 +1548,7 @@ throw $early=[$1];
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-$recv(aNode)._binding_($recv($ASTContextVar())._new());
+$recv(aNode)._binding_($recv($globals.ASTContextVar)._new());
 return self;
 }
 catch(e) {if(e===$early)return e[0]; throw e}
@@ -2330,11 +2322,10 @@ selector: "enterNode",
 protocol: 'interpreting',
 fn: function (){
 var self=this;
-function $ASTEnterNode(){return $globals.ASTEnterNode||(typeof ASTEnterNode=="undefined"?nil:ASTEnterNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self._node_($recv($recv($ASTEnterNode())._on_(self))._visit_(self._node()));
+self._node_($recv($recv($globals.ASTEnterNode)._on_(self))._visit_(self._node()));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"enterNode",{},$globals.ASTInterpreter)});
@@ -2356,13 +2347,11 @@ protocol: 'private',
 fn: function (aString){
 var self=this;
 var source,function_;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-source=$recv($String())._streamContents_((function(str){
+source=$recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2415,7 +2404,7 @@ return $recv(str)._nextPutAll_("})()})");
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-function_=$recv($recv($Compiler())._new())._eval_(source);
+function_=$recv($recv($globals.Compiler)._new())._eval_(source);
 return $recv(function_)._valueWithPossibleArguments_($recv($recv(self._context())._locals())._values());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_},$globals.ASTInterpreter)});
@@ -2521,12 +2510,11 @@ selector: "messageFromSendNode:arguments:",
 protocol: 'private',
 fn: function (aSendNode,aCollection){
 var self=this;
-function $Message(){return $globals.Message||(typeof Message=="undefined"?nil:Message)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($Message())._new();
+$1=$recv($globals.Message)._new();
 $recv($1)._selector_($recv(aSendNode)._selector());
 $recv($1)._arguments_(aCollection);
 return $recv($1)._yourself();
@@ -2549,12 +2537,11 @@ selector: "messageNotUnderstood:receiver:",
 protocol: 'private',
 fn: function (aMessage,anObject){
 var self=this;
-function $MessageNotUnderstood(){return $globals.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($MessageNotUnderstood())._new();
+$1=$recv($globals.MessageNotUnderstood)._new();
 $recv($1)._message_(aMessage);
 $recv($1)._receiver_(anObject);
 $recv($1)._signal();
@@ -2579,7 +2566,6 @@ protocol: 'interpreting',
 fn: function (){
 var self=this;
 var nd,nextNode;
-function $ASTEnterNode(){return $globals.ASTEnterNode||(typeof ASTEnterNode=="undefined"?nil:ASTEnterNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2597,7 +2583,7 @@ nextNode=parent;
 } else {
 var sibling;
 sibling=$receiver;
-nextNode=$recv($recv($ASTEnterNode())._on_(self))._visit_(sibling);
+nextNode=$recv($recv($globals.ASTEnterNode)._on_(self))._visit_(sibling);
 };
 };
 self._node_(nextNode);
@@ -2990,14 +2976,13 @@ selector: "stack",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@stack"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@stack"]=$recv($OrderedCollection())._new();
+self["@stack"]=$recv($globals.OrderedCollection)._new();
 return self["@stack"];
 } else {
 return $1;
@@ -3171,11 +3156,10 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var block;
-function $AIBlockClosure(){return $globals.AIBlockClosure||(typeof AIBlockClosure=="undefined"?nil:AIBlockClosure)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-block=$recv($AIBlockClosure())._forContext_node_(self._context(),aNode);
+block=$recv($globals.AIBlockClosure)._forContext_node_(self._context(),aNode);
 self._push_(block);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3265,12 +3249,10 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var keyValueList;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-keyValueList=$recv($OrderedCollection())._new();
+keyValueList=$recv($globals.OrderedCollection)._new();
 $recv($recv(aNode)._nodes())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -3280,7 +3262,7 @@ return $recv(keyValueList)._add_(self._pop());
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-self._push_($recv($HashedCollection())._newFromPairs_($recv(keyValueList)._reversed()));
+self._push_($recv($globals.HashedCollection)._newFromPairs_($recv(keyValueList)._reversed()));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode,keyValueList:keyValueList},$globals.ASTInterpreter)});
@@ -3446,8 +3428,6 @@ selector: "visitVariableNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3458,7 +3438,7 @@ $ctx1.sendIdx["binding"]=1;
 //>>excludeEnd("ctx");
 $1=$recv($2)._isUnknownVar();
 if($core.assert($1)){
-$5=$recv($Platform())._globals();
+$5=$recv($globals.Platform)._globals();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["globals"]=1;
 //>>excludeEnd("ctx");
@@ -3512,7 +3492,7 @@ $ctx2.sendIdx["value"]=4;
 //>>excludeEnd("ctx");
 $14=$recv($15)._isCapitalized();
 if($core.assert($14)){
-$16=$recv($Smalltalk())._globals();
+$16=$recv($globals.Smalltalk)._globals();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["globals"]=2;
 //>>excludeEnd("ctx");
@@ -3524,7 +3504,7 @@ return $recv($16)._at_ifAbsent_($17,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv($recv($Platform())._globals())._at_($recv(aNode)._value());
+return $recv($recv($globals.Platform)._globals())._at_($recv(aNode)._value());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,7)});
 //>>excludeEnd("ctx");

+ 24 - 48
src/Compiler-Semantic.js

@@ -14,7 +14,6 @@ selector: "addArg:",
 protocol: 'adding',
 fn: function (aString){
 var self=this;
-function $ArgVar(){return $globals.ArgVar||(typeof ArgVar=="undefined"?nil:ArgVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -23,7 +22,7 @@ $1=self._args();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["args"]=1;
 //>>excludeEnd("ctx");
-$recv($1)._at_put_(aString,$recv($ArgVar())._on_(aString));
+$recv($1)._at_put_(aString,$recv($globals.ArgVar)._on_(aString));
 $recv($recv(self._args())._at_(aString))._scope_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -45,7 +44,6 @@ selector: "addTemp:",
 protocol: 'adding',
 fn: function (aString){
 var self=this;
-function $TempVar(){return $globals.TempVar||(typeof TempVar=="undefined"?nil:TempVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -54,7 +52,7 @@ $1=self._temps();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["temps"]=1;
 //>>excludeEnd("ctx");
-$recv($1)._at_put_(aString,$recv($TempVar())._on_(aString));
+$recv($1)._at_put_(aString,$recv($globals.TempVar)._on_(aString));
 $recv($recv(self._temps())._at_(aString))._scope_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -127,14 +125,13 @@ selector: "args",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@args"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@args"]=$recv($Dictionary())._new();
+self["@args"]=$recv($globals.Dictionary)._new();
 return self["@args"];
 } else {
 return $1;
@@ -627,14 +624,13 @@ selector: "temps",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@temps"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@temps"]=$recv($Dictionary())._new();
+self["@temps"]=$recv($globals.Dictionary)._new();
 return self["@temps"];
 } else {
 return $1;
@@ -664,7 +660,6 @@ selector: "addIVar:",
 protocol: 'adding',
 fn: function (aString){
 var self=this;
-function $InstanceVar(){return $globals.InstanceVar||(typeof InstanceVar=="undefined"?nil:InstanceVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -673,7 +668,7 @@ $1=self._iVars();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["iVars"]=1;
 //>>excludeEnd("ctx");
-$recv($1)._at_put_(aString,$recv($InstanceVar())._on_(aString));
+$recv($1)._at_put_(aString,$recv($globals.InstanceVar)._on_(aString));
 $recv($recv(self._iVars())._at_(aString))._scope_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -854,14 +849,13 @@ selector: "iVars",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@iVars"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@iVars"]=$recv($Dictionary())._new();
+self["@iVars"]=$recv($globals.Dictionary)._new();
 return self["@iVars"];
 } else {
 return $1;
@@ -969,14 +963,13 @@ selector: "nonLocalReturns",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@nonLocalReturns"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@nonLocalReturns"]=$recv($OrderedCollection())._new();
+self["@nonLocalReturns"]=$recv($globals.OrderedCollection)._new();
 return self["@nonLocalReturns"];
 } else {
 return $1;
@@ -1000,23 +993,20 @@ selector: "pseudoVars",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $PseudoVar(){return $globals.PseudoVar||(typeof PseudoVar=="undefined"?nil:PseudoVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3,$receiver;
 $1=self["@pseudoVars"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@pseudoVars"]=$recv($Dictionary())._new();
+self["@pseudoVars"]=$recv($globals.Dictionary)._new();
 self["@pseudoVars"];
-$recv($recv($Smalltalk())._pseudoVariableNames())._do_((function(each){
+$recv($recv($globals.Smalltalk)._pseudoVariableNames())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $2=self["@pseudoVars"];
-$4=$recv($PseudoVar())._on_(each);
+$4=$recv($globals.PseudoVar)._on_(each);
 $recv($4)._scope_(self._methodScope());
 $3=$recv($4)._yourself();
 return $recv($2)._at_put_(each,$3);
@@ -1073,14 +1063,13 @@ selector: "unknownVariables",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@unknownVariables"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@unknownVariables"]=$recv($OrderedCollection())._new();
+self["@unknownVariables"]=$recv($globals.OrderedCollection)._new();
 return self["@unknownVariables"];
 } else {
 return $1;
@@ -1333,7 +1322,6 @@ selector: "validateAssignment",
 protocol: 'testing',
 fn: function (){
 var self=this;
-function $InvalidAssignmentError(){return $globals.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1348,7 +1336,7 @@ return self._isPseudoVar();
 //>>excludeEnd("ctx");
 }));
 if($core.assert($1)){
-$2=$recv($InvalidAssignmentError())._new();
+$2=$recv($globals.InvalidAssignmentError)._new();
 $recv($2)._variableName_(self._name());
 $recv($2)._signal();
 };
@@ -1737,14 +1725,13 @@ selector: "classReferences",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@classReferences"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@classReferences"]=$recv($Set())._new();
+self["@classReferences"]=$recv($globals.Set)._new();
 return self["@classReferences"];
 } else {
 return $1;
@@ -1768,12 +1755,11 @@ selector: "errorShadowingVariable:",
 protocol: 'error handling',
 fn: function (aString){
 var self=this;
-function $ShadowingVariableError(){return $globals.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($ShadowingVariableError())._new();
+$1=$recv($globals.ShadowingVariableError)._new();
 $recv($1)._variableName_(aString);
 $recv($1)._signal();
 return self;
@@ -1797,8 +1783,6 @@ protocol: 'error handling',
 fn: function (aNode){
 var self=this;
 var identifier;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $UnknownVariableError(){return $globals.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1807,7 +1791,7 @@ identifier=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=1;
 //>>excludeEnd("ctx");
-$1=$recv($recv($recv($recv($Smalltalk())._globalJsVariables())._includes_(identifier))._not())._and_((function(){
+$1=$recv($recv($recv($recv($globals.Smalltalk)._globalJsVariables())._includes_(identifier))._not())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1817,7 +1801,7 @@ return self._isVariableUndefined_inPackage_(identifier,self._thePackage());
 //>>excludeEnd("ctx");
 }));
 if($core.assert($1)){
-$2=$recv($UnknownVariableError())._new();
+$2=$recv($globals.UnknownVariableError)._new();
 $3=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=2;
@@ -1847,7 +1831,6 @@ selector: "isVariableUndefined:inPackage:",
 protocol: 'testing',
 fn: function (aString,aPackage){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1863,7 +1846,7 @@ if($core.assert($1)){
 return false;
 };
 };
-$2=$recv($Compiler())._new();
+$2=$recv($globals.Compiler)._new();
 $3=$recv("typeof ".__comma(aString)).__comma(" == \x22undefined\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
@@ -1888,14 +1871,13 @@ selector: "messageSends",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 $1=self["@messageSends"];
 if(($receiver = $1) == null || $receiver.isNil){
-self["@messageSends"]=$recv($Dictionary())._new();
+self["@messageSends"]=$recv($globals.Dictionary)._new();
 return self["@messageSends"];
 } else {
 return $1;
@@ -1919,11 +1901,10 @@ selector: "newBlockScope",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $LexicalScope(){return $globals.LexicalScope||(typeof LexicalScope=="undefined"?nil:LexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._newScopeOfClass_($LexicalScope());
+return self._newScopeOfClass_($globals.LexicalScope);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"newBlockScope",{},$globals.SemanticAnalyzer)});
 //>>excludeEnd("ctx");
@@ -1943,11 +1924,10 @@ selector: "newMethodScope",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._newScopeOfClass_($MethodLexicalScope());
+return self._newScopeOfClass_($globals.MethodLexicalScope);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"newMethodScope",{},$globals.SemanticAnalyzer)});
 //>>excludeEnd("ctx");
@@ -2393,8 +2373,6 @@ selector: "visitSendNode:",
 protocol: 'visiting',
 fn: function (aNode){
 var self=this;
-function $IRSendInliner(){return $globals.IRSendInliner||(typeof IRSendInliner=="undefined"?nil:IRSendInliner)}
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2406,7 +2384,7 @@ $ctx1.sendIdx["receiver"]=1;
 $2=$recv($3)._value();
 $1=$recv($2).__eq("super");
 if(!$core.assert($1)){
-$5=$recv($IRSendInliner())._inlinedSelectors();
+$5=$recv($globals.IRSendInliner)._inlinedSelectors();
 $6=$recv(aNode)._selector();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["selector"]=1;
@@ -2436,7 +2414,7 @@ $recv($8)._at_ifAbsentPut_($9,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($Set())._new();
+return $recv($globals.Set)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,4)});
 //>>excludeEnd("ctx");
@@ -2525,8 +2503,6 @@ protocol: 'visiting',
 fn: function (aNode){
 var self=this;
 var binding;
-function $ClassRefVar(){return $globals.ClassRefVar||(typeof ClassRefVar=="undefined"?nil:ClassRefVar)}
-function $UnknownVar(){return $globals.UnknownVar||(typeof UnknownVar=="undefined"?nil:UnknownVar)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2540,7 +2516,7 @@ $ctx1.sendIdx["value"]=1;
 //>>excludeEnd("ctx");
 $2=$recv($3)._isCapitalized();
 if($core.assert($2)){
-$4=$recv($ClassRefVar())._new();
+$4=$recv($globals.ClassRefVar)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -2566,7 +2542,7 @@ $ctx1.sendIdx["value"]=3;
 $recv($7)._add_($8);
 } else {
 self._errorUnknownVariable_(aNode);
-$9=$recv($UnknownVar())._new();
+$9=$recv($globals.UnknownVar)._new();
 $recv($9)._name_($recv(aNode)._value());
 binding=$recv($9)._yourself();
 binding;

+ 67 - 135
src/Compiler-Tests.js

@@ -11,11 +11,10 @@ selector: "analyze:forClass:",
 protocol: 'convenience',
 fn: function (aNode,aClass){
 var self=this;
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($SemanticAnalyzer())._on_(aClass))._visit_(aNode);
+$recv($recv($globals.SemanticAnalyzer)._on_(aClass))._visit_(aNode);
 return aNode;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},$globals.ASTParsingTest)});
@@ -36,11 +35,10 @@ selector: "parse:",
 protocol: 'parsing',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._parse_(aString);
+return $recv($globals.Smalltalk)._parse_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},$globals.ASTParsingTest)});
 //>>excludeEnd("ctx");
@@ -86,17 +84,15 @@ selector: "astPCNodeVisitor",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $ASTPCNodeVisitor(){return $globals.ASTPCNodeVisitor||(typeof ASTPCNodeVisitor=="undefined"?nil:ASTPCNodeVisitor)}
-function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$recv($ASTPCNodeVisitor())._new();
+$1=$recv($globals.ASTPCNodeVisitor)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$2=$recv($recv($AIContext())._new())._yourself();
+$2=$recv($recv($globals.AIContext)._new())._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
@@ -121,18 +117,16 @@ selector: "astPCNodeVisitorForSelector:",
 protocol: 'factory',
 fn: function (aString){
 var self=this;
-function $ASTPCNodeVisitor(){return $globals.ASTPCNodeVisitor||(typeof ASTPCNodeVisitor=="undefined"?nil:ASTPCNodeVisitor)}
-function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$recv($ASTPCNodeVisitor())._new();
+$1=$recv($globals.ASTPCNodeVisitor)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._selector_(aString);
-$2=$recv($recv($AIContext())._new())._yourself();
+$2=$recv($recv($globals.AIContext)._new())._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
@@ -158,12 +152,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast,visitor;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-ast=self._parse_forClass_("foo <consolee.log(1)>",$Object());
+ast=self._parse_forClass_("foo <consolee.log(1)>",$globals.Object);
 $3=self._astPCNodeVisitor();
 $recv($3)._visit_(ast);
 $2=$recv($3)._currentNode();
@@ -190,12 +183,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-ast=self._parse_forClass_("foo self asString yourself. ^ self asBoolean",$Object());
+ast=self._parse_forClass_("foo self asString yourself. ^ self asBoolean",$globals.Object);
 $3=self._astPCNodeVisitorForSelector_("yourself");
 $recv($3)._visit_(ast);
 $2=$recv($3)._currentNode();
@@ -222,12 +214,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-ast=self._parse_forClass_("foo true ifTrue: [ [ self asString yourself ] value.  ]. ^ self asBoolean",$Object());
+ast=self._parse_forClass_("foo true ifTrue: [ [ self asString yourself ] value.  ]. ^ self asBoolean",$globals.Object);
 $3=self._astPCNodeVisitorForSelector_("yourself");
 $recv($3)._visit_(ast);
 $2=$recv($3)._currentNode();
@@ -254,12 +245,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$4,$2,$1,$7,$6,$5;
-ast=self._parse_forClass_("foo true ifTrue: [ self asString yourself ]. ^ self asBoolean",$Object());
+ast=self._parse_forClass_("foo true ifTrue: [ self asString yourself ]. ^ self asBoolean",$globals.Object);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["parse:forClass:"]=1;
 //>>excludeEnd("ctx");
@@ -284,7 +274,7 @@ self._assert_equals_($1,"yourself");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=1;
 //>>excludeEnd("ctx");
-ast=self._parse_forClass_("foo true ifTrue: [ self asString yourself ]. ^ self asBoolean",$Object());
+ast=self._parse_forClass_("foo true ifTrue: [ self asString yourself ]. ^ self asBoolean",$globals.Object);
 $7=self._astPCNodeVisitorForSelector_("asBoolean");
 $recv($7)._visit_(ast);
 $6=$recv($7)._currentNode();
@@ -311,12 +301,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-ast=self._parse_forClass_("foo ^ self",$Object());
+ast=self._parse_forClass_("foo ^ self",$globals.Object);
 $3=self._astPCNodeVisitor();
 $recv($3)._visit_(ast);
 $2=$recv($3)._currentNode();
@@ -343,12 +332,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var ast,visitor;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-ast=self._parse_forClass_("foo <console.log(1)>",$Object());
+ast=self._parse_forClass_("foo <console.log(1)>",$globals.Object);
 $3=self._astPCNodeVisitor();
 $recv($3)._visit_(ast);
 $2=$recv($3)._currentNode();
@@ -455,8 +443,7 @@ selector: "codeGeneratorClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $CodeGenerator(){return $globals.CodeGenerator||(typeof CodeGenerator=="undefined"?nil:CodeGenerator)}
-return $CodeGenerator();
+return $globals.CodeGenerator;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -474,12 +461,11 @@ selector: "compiler",
 protocol: 'factory',
 fn: function (){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($Compiler())._new();
+$1=$recv($globals.Compiler)._new();
 $recv($1)._codeGeneratorClass_(self._codeGeneratorClass());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -501,11 +487,10 @@ selector: "setUp",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self["@receiver"]=$recv($DoIt())._new();
+self["@receiver"]=$recv($globals.DoIt)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.CodeGeneratorTest)});
@@ -933,7 +918,6 @@ selector: "testDynamicDictionaryWithMoreArrows",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -942,7 +926,7 @@ $2=$recv((1).__minus_gt((2))).__minus_gt((3));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["->"]=1;
 //>>excludeEnd("ctx");
-$1=$recv($HashedCollection())._with_($2);
+$1=$recv($globals.HashedCollection)._with_($2);
 self._should_return_("foo ^ #{1->2->3}",$1);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -964,11 +948,10 @@ selector: "testGlobalVar",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $BlockClosure(){return $globals.BlockClosure||(typeof BlockClosure=="undefined"?nil:BlockClosure)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self._should_return_("foo ^ eval class",$BlockClosure());
+self._should_return_("foo ^ eval class",$globals.BlockClosure);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["should:return:"]=1;
 //>>excludeEnd("ctx");
@@ -997,12 +980,11 @@ selector: "testInnerTemporalDependentElementsOrdered",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$5,$6,$4,$8,$9,$7,$11,$10;
-$2="foo".__minus_gt($Array());
+$2="foo".__minus_gt($globals.Array);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["->"]=1;
 //>>excludeEnd("ctx");
@@ -1015,7 +997,7 @@ self._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: 'foo'
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["should:return:"]=1;
 //>>excludeEnd("ctx");
-$5="foo".__minus_gt($Array());
+$5="foo".__minus_gt($globals.Array);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["->"]=3;
 //>>excludeEnd("ctx");
@@ -1347,11 +1329,10 @@ selector: "testNestedSends",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self._should_return_("foo ^ (Point x: (Point x: 2 y: 3) y: 4) asString",$recv($recv($Point())._x_y_((2).__at((3)),(4)))._asString());
+self._should_return_("foo ^ (Point x: (Point x: 2 y: 3) y: 4) asString",$recv($recv($globals.Point)._x_y_((2).__at((3)),(4)))._asString());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testNestedSends",{},$globals.CodeGeneratorTest)});
@@ -1408,11 +1389,10 @@ selector: "testPascalCaseGlobal",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self._should_return_("foo ^Object",$recv($recv($Smalltalk())._globals())._at_("Object"));
+self._should_return_("foo ^Object",$recv($recv($globals.Smalltalk)._globals())._at_("Object"));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["should:return:"]=1;
 //>>excludeEnd("ctx");
@@ -1437,12 +1417,10 @@ selector: "testRootSuperSend",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $ProtoObject(){return $globals.ProtoObject||(typeof ProtoObject=="undefined"?nil:ProtoObject)}
-function $MessageNotUnderstood(){return $globals.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self._should_receiver_raise_("foo ^ super class",$recv($ProtoObject())._new(),$MessageNotUnderstood());
+self._should_receiver_raise_("foo ^ super class",$recv($globals.ProtoObject)._new(),$globals.MessageNotUnderstood);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testRootSuperSend",{},$globals.CodeGeneratorTest)});
@@ -1463,7 +1441,6 @@ selector: "testSendReceiverAndArgumentsOrdered",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1471,7 +1448,7 @@ self._should_return_("foo\x0a\x09| x |\x0a\x09x := 1.\x0a\x09^ Array with: x wit
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["should:return:"]=1;
 //>>excludeEnd("ctx");
-self._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[$Array(),(2)]);
+self._should_return_("foo\x0a\x09| x |\x0a\x09x := Array.\x0a\x09^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[$globals.Array,(2)]);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{},$globals.CodeGeneratorTest)});
@@ -1883,11 +1860,10 @@ selector: "analyze:forClass:",
 protocol: 'parsing',
 fn: function (aNode,aClass){
 var self=this;
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($SemanticAnalyzer())._on_(aClass))._visit_(aNode);
+$recv($recv($globals.SemanticAnalyzer)._on_(aClass))._visit_(aNode);
 return aNode;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass},$globals.ASTInterpreterTest)});
@@ -1909,18 +1885,16 @@ protocol: 'private',
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx,ast,interpreter;
-function $ASTInterpreter(){return $globals.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
-function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$receiver;
-interpreter=$recv($ASTInterpreter())._new();
+interpreter=$recv($globals.ASTInterpreter)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 ast=self._parse_forClass_(aString,$recv(anObject)._class());
-$1=$recv($AIContext())._new();
+$1=$recv($globals.AIContext)._new();
 $recv($1)._receiver_(anObject);
 $recv($1)._interpreter_(interpreter);
 ctx=$recv($1)._yourself();
@@ -1974,11 +1948,10 @@ selector: "parse:",
 protocol: 'parsing',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._parse_(aString);
+return $recv($globals.Smalltalk)._parse_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString},$globals.ASTInterpreterTest)});
 //>>excludeEnd("ctx");
@@ -2049,19 +2022,16 @@ protocol: 'private',
 fn: function (aString,anObject,aDictionary){
 var self=this;
 var ctx,ast,debugger_;
-function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
-function $ASTInterpreter(){return $globals.ASTInterpreter||(typeof ASTInterpreter=="undefined"?nil:ASTInterpreter)}
-function $ASTDebugger(){return $globals.ASTDebugger||(typeof ASTDebugger=="undefined"?nil:ASTDebugger)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$4,$5,$receiver;
-$1=$recv($AIContext())._new();
+$1=$recv($globals.AIContext)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._receiver_(anObject);
-$recv($1)._interpreter_($recv($ASTInterpreter())._new());
+$recv($1)._interpreter_($recv($globals.ASTInterpreter)._new());
 ctx=$recv($1)._yourself();
 ast=self._parse_forClass_(aString,$recv(anObject)._class());
 $2=$recv(ast)._sequenceNode();
@@ -2100,7 +2070,7 @@ $ctx1.sendIdx["context:"]=1;
 $4=$recv(ctx)._interpreter();
 $recv($4)._node_(ast);
 $recv($4)._enterNode();
-debugger_=$recv($ASTDebugger())._context_(ctx);
+debugger_=$recv($globals.ASTDebugger)._context_(ctx);
 $5=debugger_;
 $recv($5)._proceed();
 return $recv($5)._result();
@@ -2126,8 +2096,7 @@ selector: "codeGeneratorClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $InliningCodeGenerator(){return $globals.InliningCodeGenerator||(typeof InliningCodeGenerator=="undefined"?nil:InliningCodeGenerator)}
-return $InliningCodeGenerator();
+return $globals.InliningCodeGenerator;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -2149,24 +2118,21 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var node;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$recv($VariableNode())._new();
+$1=$recv($globals.VariableNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._value_("Object");
 node=$recv($1)._yourself();
-$2=$recv($SemanticAnalyzer())._new();
+$2=$recv($globals.SemanticAnalyzer)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$recv($2)._pushScope_($recv($MethodLexicalScope())._new());
+$recv($2)._pushScope_($recv($globals.MethodLexicalScope)._new());
 $recv($2)._visit_(node);
 self._assert_($recv($recv(node)._binding())._isClassRefVar());
 return self;
@@ -2190,19 +2156,17 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var node,scope;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($VariableNode())._new();
+$1=$recv($globals.VariableNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._value_("bzzz");
 node=$recv($1)._yourself();
-scope=$recv($MethodLexicalScope())._new();
+scope=$recv($globals.MethodLexicalScope)._new();
 $recv(scope)._addIVar_("bzzz");
 self._assert_($recv($recv(scope)._bindingFor_(node))._isInstanceVar());
 return self;
@@ -2226,8 +2190,6 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var node,pseudoVars;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2237,14 +2199,14 @@ $recv(pseudoVars)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$recv($VariableNode())._new();
+$1=$recv($globals.VariableNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._value_(each);
 node=$recv($1)._yourself();
 node;
-return self._assert_($recv($recv($recv($MethodLexicalScope())._new())._bindingFor_(node))._isPseudoVar());
+return self._assert_($recv($recv($recv($globals.MethodLexicalScope)._new())._bindingFor_(node))._isPseudoVar());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -2270,19 +2232,17 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var node,scope;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($VariableNode())._new();
+$1=$recv($globals.VariableNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._value_("bzzz");
 node=$recv($1)._yourself();
-scope=$recv($MethodLexicalScope())._new();
+scope=$recv($globals.MethodLexicalScope)._new();
 $recv(scope)._addTemp_("bzzz");
 self._assert_($recv($recv(scope)._bindingFor_(node))._isTempVar());
 return self;
@@ -2306,19 +2266,17 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var node;
-function $VariableNode(){return $globals.VariableNode||(typeof VariableNode=="undefined"?nil:VariableNode)}
-function $MethodLexicalScope(){return $globals.MethodLexicalScope||(typeof MethodLexicalScope=="undefined"?nil:MethodLexicalScope)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($VariableNode())._new();
+$1=$recv($globals.VariableNode)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._value_("bzzz");
 node=$recv($1)._yourself();
-self._assert_($recv($recv($recv($MethodLexicalScope())._new())._bindingFor_(node))._isNil());
+self._assert_($recv($recv($recv($globals.MethodLexicalScope)._new())._bindingFor_(node))._isNil());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testUnknownVar",{node:node},$globals.ScopeVarTest)});
@@ -2342,12 +2300,10 @@ selector: "setUp",
 protocol: 'running',
 fn: function (){
 var self=this;
-function $SemanticAnalyzer(){return $globals.SemanticAnalyzer||(typeof SemanticAnalyzer=="undefined"?nil:SemanticAnalyzer)}
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self["@analyzer"]=$recv($SemanticAnalyzer())._on_($Object());
+self["@analyzer"]=$recv($globals.SemanticAnalyzer)._on_($globals.Object);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.SemanticAnalyzerTest)});
@@ -2369,13 +2325,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $InvalidAssignmentError(){return $globals.InvalidAssignmentError||(typeof InvalidAssignmentError=="undefined"?nil:InvalidAssignmentError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo self := 1";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2384,7 +2338,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$InvalidAssignmentError());
+}),$globals.InvalidAssignmentError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast},$globals.SemanticAnalyzerTest)});
@@ -2406,12 +2360,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. ^ a";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 self._deny_($recv($recv(ast)._scope())._hasNonLocalReturn());
 return self;
@@ -2435,12 +2388,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. [ [ ^ a] ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 self._assert_($recv($recv(ast)._scope())._hasNonLocalReturn());
 return self;
@@ -2464,13 +2416,12 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $4,$3,$2,$1;
 src="foo | a | a + 1. [ | b | b := a ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 $4=$recv($recv($recv(ast)._nodes())._first())._nodes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2504,13 +2455,12 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $8,$7,$6,$5,$4,$3,$2,$1;
 src="foo | a | a + 1. [ [ | b | b := a ] ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 $8=$recv($recv($recv(ast)._nodes())._first())._nodes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2560,13 +2510,12 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$10,$9,$8,$7,$6,$5,$4,$3;
 src="foo | a | a + 1. [ [ | b | b := a ] ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 $2=$recv(ast)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2625,13 +2574,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $UnknownVariableError(){return $globals.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | b + a";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2640,7 +2587,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$UnknownVariableError());
+}),$globals.UnknownVariableError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast},$globals.SemanticAnalyzerTest)});
@@ -2662,13 +2609,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $UnknownVariableError(){return $globals.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2677,7 +2622,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$UnknownVariableError());
+}),$globals.UnknownVariableError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast},$globals.SemanticAnalyzerTest)});
@@ -2699,12 +2644,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2727,13 +2671,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $ShadowingVariableError(){return $globals.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. [ | a | a := 2 ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2742,7 +2684,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$ShadowingVariableError());
+}),$globals.ShadowingVariableError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast},$globals.SemanticAnalyzerTest)});
@@ -2764,12 +2706,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. [ | b | b := 2 ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2792,12 +2733,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. [ [ [ | b | b := 2 ] ] ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2820,13 +2760,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $ShadowingVariableError(){return $globals.ShadowingVariableError||(typeof ShadowingVariableError=="undefined"?nil:ShadowingVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | a + 1. [ [ [ | a | a := 2 ] ] ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2835,7 +2773,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$ShadowingVariableError());
+}),$globals.ShadowingVariableError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast},$globals.SemanticAnalyzerTest)});
@@ -2857,13 +2795,12 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $7,$6,$5,$4,$3,$2,$1,$15,$14,$13,$12,$11,$10,$9,$16,$8,$27,$26,$25,$24,$23,$22,$21,$20,$19,$18,$17,$39,$38,$37,$36,$35,$34,$33,$32,$31,$30,$29,$42,$41,$40,$28;
 src="foo | a | a + 1. [ | b | b := a ]";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 $recv(self["@analyzer"])._visit_(ast);
 $7=$recv(ast)._nodes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3048,15 +2985,12 @@ selector: "setUp",
 protocol: 'running',
 fn: function (){
 var self=this;
-function $AISemanticAnalyzer(){return $globals.AISemanticAnalyzer||(typeof AISemanticAnalyzer=="undefined"?nil:AISemanticAnalyzer)}
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
-function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?nil:AIContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$4,$2;
-$1=$recv($AISemanticAnalyzer())._on_($Object());
-$3=$recv($AIContext())._new();
+$1=$recv($globals.AISemanticAnalyzer)._on_($globals.Object);
+$3=$recv($globals.AIContext)._new();
 $recv($3)._defineLocal_("local");
 $recv($3)._localAt_put_("local",(3));
 $4=$recv($3)._yourself();
@@ -3087,13 +3021,11 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var src,ast;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $UnknownVariableError(){return $globals.UnknownVariableError||(typeof UnknownVariableError=="undefined"?nil:UnknownVariableError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 src="foo | a | local + a";
-ast=$recv($Smalltalk())._parse_(src);
+ast=$recv($globals.Smalltalk)._parse_(src);
 self._shouldnt_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -3102,7 +3034,7 @@ return $recv(self["@analyzer"])._visit_(ast);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$UnknownVariableError());
+}),$globals.UnknownVariableError);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testContextVariables",{src:src,ast:ast},$globals.AISemanticAnalyzerTest)});

+ 8 - 15
src/Kernel-Announcements.js

@@ -79,12 +79,11 @@ selector: "handlesAnnouncement:",
 protocol: 'announcing',
 fn: function (anAnnouncement){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$receiver;
-$2=$recv($Smalltalk())._globals();
+$2=$recv($globals.Smalltalk)._globals();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["globals"]=1;
 //>>excludeEnd("ctx");
@@ -101,7 +100,7 @@ return false;
 } else {
 var class_;
 class_=$receiver;
-return $recv($recv($recv($Smalltalk())._globals())._at_($recv($recv($recv(anAnnouncement)._class())._theNonMetaClass())._name()))._includesBehavior_(class_);
+return $recv($recv($recv($globals.Smalltalk)._globals())._at_($recv($recv($recv(anAnnouncement)._class())._theNonMetaClass())._name()))._includesBehavior_(class_);
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"handlesAnnouncement:",{anAnnouncement:anAnnouncement},$globals.AnnouncementSubscription)});
@@ -346,7 +345,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -358,7 +356,7 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@subscriptions"]=$recv($OrderedCollection())._new();
+self["@subscriptions"]=$recv($globals.OrderedCollection)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Announcer)});
@@ -403,18 +401,16 @@ selector: "on:do:for:",
 protocol: 'subscribing',
 fn: function (aClass,aBlock,aReceiver){
 var self=this;
-function $AnnouncementSubscription(){return $globals.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
-function $AnnouncementValuable(){return $globals.AnnouncementValuable||(typeof AnnouncementValuable=="undefined"?nil:AnnouncementValuable)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
 $1=self["@subscriptions"];
-$3=$recv($AnnouncementSubscription())._new();
+$3=$recv($globals.AnnouncementSubscription)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($AnnouncementValuable())._new();
+$5=$recv($globals.AnnouncementValuable)._new();
 $recv($5)._valuable_(aBlock);
 $recv($5)._receiver_(aReceiver);
 $6=$recv($5)._yourself();
@@ -450,12 +446,11 @@ protocol: 'subscribing',
 fn: function (aClass,aBlock){
 var self=this;
 var subscription;
-function $AnnouncementSubscription(){return $globals.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($AnnouncementSubscription())._new();
+$1=$recv($globals.AnnouncementSubscription)._new();
 $recv($1)._announcementClass_(aClass);
 subscription=$recv($1)._yourself();
 $recv(subscription)._valuable_((function(ann){
@@ -489,18 +484,16 @@ selector: "on:send:to:",
 protocol: 'subscribing',
 fn: function (aClass,aSelector,anObject){
 var self=this;
-function $AnnouncementSubscription(){return $globals.AnnouncementSubscription||(typeof AnnouncementSubscription=="undefined"?nil:AnnouncementSubscription)}
-function $MessageSend(){return $globals.MessageSend||(typeof MessageSend=="undefined"?nil:MessageSend)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
 $1=self["@subscriptions"];
-$3=$recv($AnnouncementSubscription())._new();
+$3=$recv($globals.AnnouncementSubscription)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($MessageSend())._new();
+$5=$recv($globals.MessageSend)._new();
 $recv($5)._receiver_(anObject);
 $recv($5)._selector_(aSelector);
 $6=$recv($5)._yourself();

+ 50 - 90
src/Kernel-Classes.js

@@ -38,9 +38,6 @@ protocol: 'compiling',
 fn: function (aMethod){
 var self=this;
 var oldMethod,announcement;
-function $MethodAdded(){return $globals.MethodAdded||(typeof MethodAdded=="undefined"?nil:MethodAdded)}
-function $MethodModified(){return $globals.MethodModified||(typeof MethodModified=="undefined"?nil:MethodModified)}
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -72,7 +69,7 @@ self._removeProtocolIfEmpty_($recv(oldMethod)._protocol());
 };
 $7=oldMethod;
 if(($receiver = $7) == null || $receiver.isNil){
-$8=$recv($MethodAdded())._new();
+$8=$recv($globals.MethodAdded)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -86,12 +83,12 @@ $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
 announcement=$9;
 } else {
-$10=$recv($MethodModified())._new();
+$10=$recv($globals.MethodModified)._new();
 $recv($10)._oldMethod_(oldMethod);
 $recv($10)._method_(aMethod);
 announcement=$recv($10)._yourself();
 };
-$recv($recv($SystemAnnouncer())._current())._announce_(announcement);
+$recv($recv($globals.SystemAnnouncer)._current())._announce_(announcement);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"addCompiledMethod:",{aMethod:aMethod,oldMethod:oldMethod,announcement:announcement},$globals.Behavior)});
@@ -265,7 +262,6 @@ selector: "allSuperclasses",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -283,7 +279,7 @@ $3=self._superclass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["superclass"]=2;
 //>>excludeEnd("ctx");
-$2=$recv($OrderedCollection())._with_($3);
+$2=$recv($globals.OrderedCollection)._with_($3);
 $recv($2)._addAll_($recv(self._superclass())._allSuperclasses());
 return $recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -451,15 +447,13 @@ selector: "comment:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassCommentChanged(){return $globals.ClassCommentChanged||(typeof ClassCommentChanged=="undefined"?nil:ClassCommentChanged)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self._basicAt_put_("comment",aString);
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ClassCommentChanged())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ClassCommentChanged)._new();
 $recv($3)._theClass_(self);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -483,11 +477,10 @@ selector: "compile:protocol:",
 protocol: 'compiling',
 fn: function (aString,anotherString){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Compiler())._new())._install_forClass_protocol_(aString,self,anotherString);
+return $recv($recv($globals.Compiler)._new())._install_forClass_protocol_(aString,self,anotherString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"compile:protocol:",{aString:aString,anotherString:anotherString},$globals.Behavior)});
 //>>excludeEnd("ctx");
@@ -821,12 +814,11 @@ selector: "methodTemplate",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$6,$7,$5,$8,$4;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -834,11 +826,11 @@ $recv(stream)._nextPutAll_("messageSelectorAndArgumentNames");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=1;
 //>>excludeEnd("ctx");
-$2=$recv($String())._lf();
+$2=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($String())._tab();
+$3=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=1;
 //>>excludeEnd("ctx");
@@ -854,11 +846,11 @@ $recv(stream)._nextPutAll_("\x22comment stating purpose of message\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$6=$recv($String())._lf();
+$6=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
-$7=$recv($String())._lf();
+$7=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -866,7 +858,7 @@ $5=$recv($6).__comma($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=3;
 //>>excludeEnd("ctx");
-$8=$recv($String())._tab();
+$8=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=2;
 //>>excludeEnd("ctx");
@@ -882,7 +874,7 @@ $recv(stream)._nextPutAll_("| temporary variable names |");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=5;
 //>>excludeEnd("ctx");
-$recv(stream)._nextPutAll_($recv($recv($String())._lf()).__comma($recv($String())._tab()));
+$recv(stream)._nextPutAll_($recv($recv($globals.String)._lf()).__comma($recv($globals.String)._tab()));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
@@ -1034,12 +1026,11 @@ selector: "ownMethods",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-return $recv($recv(self._ownProtocols())._inject_into_($recv($OrderedCollection())._new(),(function(acc,each){
+return $recv($recv(self._ownProtocols())._inject_into_($recv($globals.OrderedCollection)._new(),(function(acc,each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1110,7 +1101,6 @@ selector: "packageOfProtocol:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $Package(){return $globals.Package||(typeof Package=="undefined"?nil:Package)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1119,7 +1109,7 @@ $1=$recv(aString)._beginsWith_("*");
 if(!$core.assert($1)){
 return self._package();
 };
-return $recv($Package())._named_ifAbsent_($recv(aString)._allButFirst(),(function(){
+return $recv($globals.Package)._named_ifAbsent_($recv(aString)._allButFirst(),(function(){
 return nil;
 
 }));
@@ -1166,12 +1156,10 @@ protocol: 'enumerating',
 fn: function (aBlock){
 var self=this;
 var methodsByProtocol;
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-methodsByProtocol=$recv($HashedCollection())._new();
+methodsByProtocol=$recv($globals.HashedCollection)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -1183,7 +1171,7 @@ return $recv($recv(methodsByProtocol)._at_ifAbsentPut_($recv(m)._protocol(),(fun
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv($Array())._new();
+return $recv($globals.Array)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
@@ -1245,11 +1233,10 @@ selector: "recompile",
 protocol: 'compiling',
 fn: function (){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Compiler())._new())._recompile_(self);
+return $recv($recv($globals.Compiler)._new())._recompile_(self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"recompile",{},$globals.Behavior)});
 //>>excludeEnd("ctx");
@@ -1269,16 +1256,14 @@ selector: "removeCompiledMethod:",
 protocol: 'compiling',
 fn: function (aMethod){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $MethodRemoved(){return $globals.MethodRemoved||(typeof MethodRemoved=="undefined"?nil:MethodRemoved)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self._basicRemoveCompiledMethod_(aMethod);
 self._removeProtocolIfEmpty_($recv(aMethod)._protocol());
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($MethodRemoved())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.MethodRemoved)._new();
 $recv($3)._method_(aMethod);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -1461,12 +1446,11 @@ selector: "withAllSubclasses",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($Array())._with_(self);
+$1=$recv($globals.Array)._with_(self);
 $recv($1)._addAll_(self._allSubclasses());
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1517,11 +1501,10 @@ selector: "browse",
 protocol: 'browsing',
 fn: function (){
 var self=this;
-function $Finder(){return $globals.Finder||(typeof Finder=="undefined"?nil:Finder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Finder())._findClass_(self);
+$recv($globals.Finder)._findClass_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"browse",{},$globals.Class)});
@@ -1592,12 +1575,11 @@ selector: "definition",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$4,$5;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1613,11 +1595,11 @@ $recv(stream)._nextPutAll_(self._name());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$2=$recv($String())._lf();
+$2=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($String())._tab();
+$3=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=1;
 //>>excludeEnd("ctx");
@@ -1657,7 +1639,7 @@ $ctx3.sendIdx["nextPutAll:"]=7;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 //>>excludeEnd("ctx");
 }));
-$5=$recv("'".__comma($recv($String())._lf())).__comma($recv($String())._tab());
+$5=$recv("'".__comma($recv($globals.String)._lf())).__comma($recv($globals.String)._tab());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=2;
 //>>excludeEnd("ctx");
@@ -1739,8 +1721,6 @@ protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
 var oldPackage;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassMoved(){return $globals.ClassMoved||(typeof ClassMoved=="undefined"?nil:ClassMoved)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1761,8 +1741,8 @@ $ctx1.sendIdx["organization"]=1;
 //>>excludeEnd("ctx");
 $recv($3)._removeElement_(self);
 $recv($recv(aPackage)._organization())._addElement_(self);
-$4=$recv($SystemAnnouncer())._current();
-$6=$recv($ClassMoved())._new();
+$4=$recv($globals.SystemAnnouncer)._current();
+$6=$recv($globals.ClassMoved)._new();
 $recv($6)._theClass_(self);
 $recv($6)._oldPackage_(oldPackage);
 $5=$recv($6)._yourself();
@@ -1811,11 +1791,10 @@ selector: "rename:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($ClassBuilder())._new())._renameClass_to_(self,aString);
+$recv($recv($globals.ClassBuilder)._new())._renameClass_to_(self,aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"rename:",{aString:aString},$globals.Class)});
@@ -1905,11 +1884,10 @@ selector: "subclass:instanceVariableNames:package:",
 protocol: 'class creation',
 fn: function (aString,aString2,aString3){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($ClassBuilder())._new())._superclass_subclass_instanceVariableNames_package_(self,$recv(aString)._asString(),aString2,aString3);
+return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_instanceVariableNames_package_(self,$recv(aString)._asString(),aString2,aString3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},$globals.Class)});
 //>>excludeEnd("ctx");
@@ -2028,12 +2006,11 @@ selector: "definition",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2117,11 +2094,10 @@ selector: "instanceVariableNames:",
 protocol: 'accessing',
 fn: function (aCollection){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($ClassBuilder())._new())._class_instanceVariableNames_(self,aCollection);
+$recv($recv($globals.ClassBuilder)._new())._class_instanceVariableNames_(self,aCollection);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"instanceVariableNames:",{aCollection:aCollection},$globals.Metaclass)});
@@ -2298,14 +2274,12 @@ protocol: 'class definition',
 fn: function (aClass,className,aCollection,packageName){
 var self=this;
 var theClass,thePackage;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $Package(){return $globals.Package||(typeof Package=="undefined"?nil:Package)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-theClass=$recv($recv($Smalltalk())._globals())._at_(className);
-thePackage=$recv($Package())._named_(packageName);
+theClass=$recv($recv($globals.Smalltalk)._globals())._at_(className);
+thePackage=$recv($globals.Package)._named_(packageName);
 $1=theClass;
 if(($receiver = $1) == null || $receiver.isNil){
 $1;
@@ -2496,16 +2470,14 @@ selector: "class:instanceVariableNames:",
 protocol: 'class definition',
 fn: function (aClass,ivarNames){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassDefinitionChanged(){return $globals.ClassDefinitionChanged||(typeof ClassDefinitionChanged=="undefined"?nil:ClassDefinitionChanged)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self._basicClass_instanceVariableNames_(aClass,ivarNames);
 self._setupClass_(aClass);
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ClassDefinitionChanged())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ClassDefinitionChanged)._new();
 $recv($3)._theClass_(aClass);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -2530,16 +2502,14 @@ protocol: 'copying',
 fn: function (aClass,className){
 var self=this;
 var newClass;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassAdded(){return $globals.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 newClass=self._addSubclassOf_named_instanceVariableNames_package_($recv(aClass)._superclass(),className,$recv(aClass)._instanceVariableNames(),$recv($recv(aClass)._package())._name());
 self._copyClass_to_(aClass,newClass);
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ClassAdded())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ClassAdded)._new();
 $recv($3)._theClass_(newClass);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -2563,7 +2533,6 @@ selector: "copyClass:to:",
 protocol: 'copying',
 fn: function (aClass,anotherClass){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2577,7 +2546,7 @@ $recv($1)._valuesDo_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$recv($Compiler())._new();
+$2=$recv($globals.Compiler)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
@@ -2619,7 +2588,7 @@ $recv($8)._valuesDo_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($recv($Compiler())._new())._install_forClass_protocol_($recv(each)._source(),$recv(anotherClass)._class(),$recv(each)._protocol());
+return $recv($recv($globals.Compiler)._new())._install_forClass_protocol_($recv(each)._source(),$recv(anotherClass)._class(),$recv(each)._protocol());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -2730,16 +2699,12 @@ protocol: 'class migration',
 fn: function (className,aClass,aCollection,packageName){
 var self=this;
 var oldClass,newClass,tmp;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassMigrated(){return $globals.ClassMigrated||(typeof ClassMigrated=="undefined"?nil:ClassMigrated)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3;
 tmp="new*".__comma(className);
-oldClass=$recv($recv($Smalltalk())._globals())._at_(className);
+oldClass=$recv($recv($globals.Smalltalk)._globals())._at_(className);
 newClass=self._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
 self._basicSwapClassNames_with_(oldClass,newClass);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2753,7 +2718,7 @@ return self._copyClass_to_(oldClass,newClass);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(exception){
+}))._on_do_($globals.Error,(function(exception){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2783,8 +2748,8 @@ return self._migrateClass_superclass_(each,newClass);
 //>>excludeEnd("ctx");
 }));
 self._basicRemoveClass_(oldClass);
-$2=$recv($SystemAnnouncer())._current();
-$4=$recv($ClassMigrated())._new();
+$2=$recv($globals.SystemAnnouncer)._current();
+$4=$recv($globals.ClassMigrated)._new();
 $recv($4)._theClass_(newClass);
 $recv($4)._oldClass_(oldClass);
 $3=$recv($4)._yourself();
@@ -2835,16 +2800,14 @@ selector: "renameClass:to:",
 protocol: 'class migration',
 fn: function (aClass,className){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassRenamed(){return $globals.ClassRenamed||(typeof ClassRenamed=="undefined"?nil:ClassRenamed)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self._basicRenameClass_to_(aClass,className);
 $recv(aClass)._recompile();
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ClassRenamed())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ClassRenamed)._new();
 $recv($3)._theClass_(aClass);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -2916,8 +2879,6 @@ protocol: 'class definition',
 fn: function (aClass,className,ivarNames,packageName){
 var self=this;
 var newClass;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassAdded(){return $globals.ClassAdded||(typeof ClassAdded=="undefined"?nil:ClassAdded)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2930,8 +2891,8 @@ $2=packageName;
 };
 newClass=self._addSubclassOf_named_instanceVariableNames_package_(aClass,className,$1,$2);
 self._setupClass_(newClass);
-$3=$recv($SystemAnnouncer())._current();
-$5=$recv($ClassAdded())._new();
+$3=$recv($globals.SystemAnnouncer)._current();
+$5=$recv($globals.ClassAdded)._new();
 $recv($5)._theClass_(newClass);
 $4=$recv($5)._yourself();
 $recv($3)._announce_($4);
@@ -2962,7 +2923,6 @@ protocol: 'accessing',
 fn: function (aCollection){
 var self=this;
 var children,others;
-function $ClassSorterNode(){return $globals.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2990,7 +2950,7 @@ self["@nodes"]=$recv(children)._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($ClassSorterNode())._on_classes_level_(each,others,$recv(self._level()).__plus((1)));
+return $recv($globals.ClassSorterNode)._on_classes_level_(each,others,$recv(self._level()).__plus((1)));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,4)});
 //>>excludeEnd("ctx");

+ 26 - 49
src/Kernel-Collections.js

@@ -630,11 +630,10 @@ selector: "asArray",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Array())._withAll_(self);
+return $recv($globals.Array)._withAll_(self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asArray",{},$globals.Collection)});
 //>>excludeEnd("ctx");
@@ -708,11 +707,10 @@ selector: "asSet",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Set())._withAll_(self);
+return $recv($globals.Set)._withAll_(self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asSet",{},$globals.Collection)});
 //>>excludeEnd("ctx");
@@ -1212,13 +1210,12 @@ protocol: 'enumerating',
 fn: function (aCollection){
 var self=this;
 var set,outputSet;
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
 set=self._asSet();
-outputSet=$recv($Set())._new();
+outputSet=$recv($globals.Set)._new();
 $recv(aCollection)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2204,11 +2201,10 @@ selector: "asDictionary",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Dictionary())._from_(self._associations());
+return $recv($globals.Dictionary)._from_(self._associations());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asDictionary",{},$globals.AssociativeCollection)});
 //>>excludeEnd("ctx");
@@ -2228,11 +2224,10 @@ selector: "asHashedCollection",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($HashedCollection())._from_(self._associations());
+return $recv($globals.HashedCollection)._from_(self._associations());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asHashedCollection",{},$globals.AssociativeCollection)});
 //>>excludeEnd("ctx");
@@ -2253,11 +2248,10 @@ protocol: 'converting',
 fn: function (){
 var self=this;
 var hash;
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-hash=$recv($HashedCollection())._new();
+hash=$recv($globals.HashedCollection)._new();
 self._keysAndValuesDo_((function(key,value){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2321,7 +2315,6 @@ selector: "associationsDo:",
 protocol: 'enumerating',
 fn: function (aBlock){
 var self=this;
-function $Association(){return $globals.Association||(typeof Association=="undefined"?nil:Association)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2329,7 +2322,7 @@ self._keysAndValuesDo_((function(key,value){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(aBlock)._value_($recv($Association())._key_value_(key,value));
+return $recv(aBlock)._value_($recv($globals.Association)._key_value_(key,value));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -4594,8 +4587,7 @@ selector: "streamClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Stream(){return $globals.Stream||(typeof Stream=="undefined"?nil:Stream)}
-return $Stream();
+return $globals.Stream;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -6115,11 +6107,10 @@ selector: "asRegexp",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $RegularExpression(){return $globals.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($RegularExpression())._fromString_(self);
+return $recv($globals.RegularExpression)._fromString_(self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asRegexp",{},$globals.String)});
 //>>excludeEnd("ctx");
@@ -6351,11 +6342,10 @@ selector: "crlfSanitized",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv(self._lines())._join_($recv($String())._lf());
+return $recv(self._lines())._join_($recv($globals.String)._lf());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"crlfSanitized",{},$globals.String)});
 //>>excludeEnd("ctx");
@@ -6542,11 +6532,10 @@ selector: "join:",
 protocol: 'split join',
 fn: function (aCollection){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -6594,7 +6583,6 @@ protocol: 'split join',
 fn: function (aBlock){
 var self=this;
 var cr,lf,start,sz,nextLF,nextCR;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -6603,12 +6591,12 @@ var $early={};
 try {
 start=(1);
 sz=self._size();
-cr=$recv($String())._cr();
+cr=$recv($globals.String)._cr();
 nextCR=self._indexOf_startingAt_(cr,(1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["indexOf:startingAt:"]=1;
 //>>excludeEnd("ctx");
-lf=$recv($String())._lf();
+lf=$recv($globals.String)._lf();
 nextLF=self._indexOf_startingAt_(lf,(1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["indexOf:startingAt:"]=2;
@@ -6984,11 +6972,10 @@ selector: "replace:with:",
 protocol: 'regular expressions',
 fn: function (aString,anotherString){
 var self=this;
-function $RegularExpression(){return $globals.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._replaceRegexp_with_($recv($RegularExpression())._fromString_flag_(aString,"g"),anotherString);
+return self._replaceRegexp_with_($recv($globals.RegularExpression)._fromString_flag_(aString,"g"),anotherString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"replace:with:",{aString:aString,anotherString:anotherString},$globals.String)});
 //>>excludeEnd("ctx");
@@ -7214,7 +7201,6 @@ selector: "trimLeft:",
 protocol: 'regular expressions',
 fn: function (separators){
 var self=this;
-function $RegularExpression(){return $globals.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -7223,7 +7209,7 @@ $2=$recv("^[".__comma(separators)).__comma("]+");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$1=$recv($RegularExpression())._fromString_flag_($2,"g");
+$1=$recv($globals.RegularExpression)._fromString_flag_($2,"g");
 return self._replaceRegexp_with_($1,"");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"trimLeft:",{separators:separators},$globals.String)});
@@ -7267,7 +7253,6 @@ selector: "trimRight:",
 protocol: 'regular expressions',
 fn: function (separators){
 var self=this;
-function $RegularExpression(){return $globals.RegularExpression||(typeof RegularExpression=="undefined"?nil:RegularExpression)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -7276,7 +7261,7 @@ $2=$recv("[".__comma(separators)).__comma("]+$");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$1=$recv($RegularExpression())._fromString_flag_($2,"g");
+$1=$recv($globals.RegularExpression)._fromString_flag_($2,"g");
 return self._replaceRegexp_with_($1,"");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"trimRight:",{separators:separators},$globals.String)});
@@ -7667,8 +7652,7 @@ selector: "streamClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $StringStream(){return $globals.StringStream||(typeof StringStream=="undefined"?nil:StringStream)}
-return $StringStream();
+return $globals.StringStream;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -8146,12 +8130,11 @@ selector: "initializeSlowBucketStores",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $ArrayBucketStore(){return $globals.ArrayBucketStore||(typeof ArrayBucketStore=="undefined"?nil:ArrayBucketStore)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($ArrayBucketStore())._hashBlock_((function(x){
+$1=$recv($globals.ArrayBucketStore)._hashBlock_((function(x){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -8163,7 +8146,7 @@ return self._classNameOf_(x);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["hashBlock:"]=1;
 //>>excludeEnd("ctx");
-self["@slowBucketStores"]=[$1,$recv($ArrayBucketStore())._hashBlock_((function(x){
+self["@slowBucketStores"]=[$1,$recv($globals.ArrayBucketStore)._hashBlock_((function(x){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -9469,11 +9452,10 @@ selector: "cr",
 protocol: 'writing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._nextPutAll_($recv($String())._cr());
+return self._nextPutAll_($recv($globals.String)._cr());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"cr",{},$globals.StringStream)});
 //>>excludeEnd("ctx");
@@ -9493,11 +9475,10 @@ selector: "crlf",
 protocol: 'writing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._nextPutAll_($recv($String())._crlf());
+return self._nextPutAll_($recv($globals.String)._crlf());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"crlf",{},$globals.StringStream)});
 //>>excludeEnd("ctx");
@@ -9517,11 +9498,10 @@ selector: "lf",
 protocol: 'writing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._nextPutAll_($recv($String())._lf());
+return self._nextPutAll_($recv($globals.String)._lf());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"lf",{},$globals.StringStream)});
 //>>excludeEnd("ctx");
@@ -9744,11 +9724,10 @@ selector: "tab",
 protocol: 'writing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return self._nextPutAll_($recv($String())._tab());
+return self._nextPutAll_($recv($globals.String)._tab());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"tab",{},$globals.StringStream)});
 //>>excludeEnd("ctx");
@@ -9774,7 +9753,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -9786,11 +9764,11 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@read"]=$recv($OrderedCollection())._new();
+self["@read"]=$recv($globals.OrderedCollection)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-self["@write"]=$recv($OrderedCollection())._new();
+self["@write"]=$recv($globals.OrderedCollection)._new();
 self["@readIndex"]=(1);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -9844,7 +9822,6 @@ protocol: 'accessing',
 fn: function (aBlock){
 var self=this;
 var result;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -9870,7 +9847,7 @@ self["@read"]=self["@write"];
 self["@read"];
 self["@readIndex"]=(1);
 self["@readIndex"];
-self["@write"]=$recv($OrderedCollection())._new();
+self["@write"]=$recv($globals.OrderedCollection)._new();
 self["@write"];
 return $recv(self["@read"])._first();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 49 - 88
src/Kernel-Infrastructure.js

@@ -14,7 +14,6 @@ selector: "=",
 protocol: 'comparing',
 fn: function (anObject){
 var self=this;
-function $JSObjectProxy(){return $globals.JSObjectProxy||(typeof JSObjectProxy=="undefined"?nil:JSObjectProxy)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -27,7 +26,7 @@ $1=$recv($2).__eq_eq(self._class());
 if(!$core.assert($1)){
 return false;
 };
-return $recv($JSObjectProxy())._compareJSObjectOfProxy_withProxy_(self,anObject);
+return $recv($globals.JSObjectProxy)._compareJSObjectOfProxy_withProxy_(self,anObject);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"=",{anObject:anObject},$globals.JSObjectProxy)});
 //>>excludeEnd("ctx");
@@ -194,12 +193,11 @@ selector: "doesNotUnderstand:",
 protocol: 'proxy',
 fn: function (aMessage){
 var self=this;
-function $JSObjectProxy(){return $globals.JSObjectProxy||(typeof JSObjectProxy=="undefined"?nil:JSObjectProxy)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$recv($JSObjectProxy())._lookupProperty_ofProxy_($recv($recv(aMessage)._selector())._asJavaScriptPropertyName(),self);
+$1=$recv($globals.JSObjectProxy)._lookupProperty_ofProxy_($recv($recv(aMessage)._selector())._asJavaScriptPropertyName(),self);
 if(($receiver = $1) == null || $receiver.isNil){
 return (
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -212,7 +210,7 @@ $ctx1.supercall = false;
 } else {
 var jsSelector;
 jsSelector=$receiver;
-return $recv($JSObjectProxy())._forwardMessage_withArguments_ofProxy_(jsSelector,$recv(aMessage)._arguments(),self);
+return $recv($globals.JSObjectProxy)._forwardMessage_withArguments_ofProxy_(jsSelector,$recv(aMessage)._arguments(),self);
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"doesNotUnderstand:",{aMessage:aMessage},$globals.JSObjectProxy)});
@@ -618,8 +616,6 @@ selector: "addElement:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ProtocolAdded(){return $globals.ProtocolAdded||(typeof ProtocolAdded=="undefined"?nil:ProtocolAdded)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -632,8 +628,8 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ProtocolAdded())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ProtocolAdded)._new();
 $recv($3)._protocol_(aString);
 $recv($3)._theClass_(self._theClass());
 $2=$recv($3)._yourself();
@@ -658,8 +654,6 @@ selector: "removeElement:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ProtocolRemoved(){return $globals.ProtocolRemoved||(typeof ProtocolRemoved=="undefined"?nil:ProtocolRemoved)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -672,8 +666,8 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($ProtocolRemoved())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.ProtocolRemoved)._new();
 $recv($3)._protocol_(aString);
 $recv($3)._theClass_(self._theClass());
 $2=$recv($3)._yourself();
@@ -806,15 +800,13 @@ selector: "beClean",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $PackageClean(){return $globals.PackageClean||(typeof PackageClean=="undefined"?nil:PackageClean)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self["@dirty"]=false;
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($PackageClean())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.PackageClean)._new();
 $recv($3)._package_(self);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -838,15 +830,13 @@ selector: "beDirty",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $PackageDirty(){return $globals.PackageDirty||(typeof PackageDirty=="undefined"?nil:PackageDirty)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
 self["@dirty"]=true;
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($PackageDirty())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.PackageDirty)._new();
 $recv($3)._package_(self);
 $2=$recv($3)._yourself();
 $recv($1)._announce_($2);
@@ -870,12 +860,11 @@ selector: "classTemplate",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$4,$5;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -887,11 +876,11 @@ $recv(stream)._nextPutAll_(" subclass: #NameOfSubclass");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=2;
 //>>excludeEnd("ctx");
-$2=$recv($String())._lf();
+$2=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($String())._tab();
+$3=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=1;
 //>>excludeEnd("ctx");
@@ -908,7 +897,7 @@ $4=$recv(stream)._nextPutAll_("instanceVariableNames: ''");
 $ctx2.sendIdx["nextPutAll:"]=4;
 //>>excludeEnd("ctx");
 $4;
-$5=$recv("'".__comma($recv($String())._lf())).__comma($recv($String())._tab());
+$5=$recv("'".__comma($recv($globals.String)._lf())).__comma($recv($globals.String)._tab());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=2;
 //>>excludeEnd("ctx");
@@ -971,12 +960,11 @@ selector: "definition",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$4,$2,$6,$5,$8,$9,$7,$10;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -988,11 +976,11 @@ $recv(stream)._nextPutAll_($1);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($String())._lf();
+$3=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$4=$recv($String())._tab();
+$4=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=1;
 //>>excludeEnd("ctx");
@@ -1020,11 +1008,11 @@ $recv(stream)._nextPutAll_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=4;
 //>>excludeEnd("ctx");
-$8=$recv($String())._lf();
+$8=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
-$9=$recv($String())._tab();
+$9=$recv($globals.String)._tab();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["tab"]=2;
 //>>excludeEnd("ctx");
@@ -1044,7 +1032,7 @@ $recv(stream)._nextPutAll_(self._importsDefinition());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
-$10=$recv($recv($String())._lf()).__comma($recv($String())._tab());
+$10=$recv($recv($globals.String)._lf()).__comma($recv($globals.String)._tab());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=5;
 //>>excludeEnd("ctx");
@@ -1178,11 +1166,10 @@ selector: "importsDefinition",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1366,7 +1353,6 @@ protocol: 'dependencies',
 fn: function (){
 var self=this;
 var starCategoryName;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1392,7 +1378,7 @@ $1=$recv($2)._asSet();
 $recv($1)._remove_ifAbsent_(nil,(function(){
 
 }));
-$recv($1)._addAll_($recv($recv($Smalltalk())._classes())._select_((function(each){
+$recv($1)._addAll_($recv($recv($globals.Smalltalk)._classes())._select_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1538,7 +1524,6 @@ selector: "setupClasses",
 protocol: 'classes',
 fn: function (){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1548,7 +1533,7 @@ $recv($1)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($recv($ClassBuilder())._new())._setupClass_(each);
+return $recv($recv($globals.ClassBuilder)._new())._setupClass_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -1675,14 +1660,13 @@ selector: "transport",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $PackageTransport(){return $globals.PackageTransport||(typeof PackageTransport=="undefined"?nil:PackageTransport)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
 $1=self["@transport"];
 if(($receiver = $1) == null || $receiver.isNil){
-$2=$recv($PackageTransport())._fromJson_(self._basicTransport());
+$2=$recv($globals.PackageTransport)._fromJson_(self._basicTransport());
 $recv($2)._package_(self);
 self["@transport"]=$recv($2)._yourself();
 return self["@transport"];
@@ -1799,15 +1783,14 @@ selector: "named:",
 protocol: 'accessing',
 fn: function (aPackageName){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._packageAt_ifAbsent_(aPackageName,(function(){
+return $recv($globals.Smalltalk)._packageAt_ifAbsent_(aPackageName,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._createPackage_(aPackageName);
+return $recv($globals.Smalltalk)._createPackage_(aPackageName);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -1831,11 +1814,10 @@ selector: "named:ifAbsent:",
 protocol: 'accessing',
 fn: function (aPackageName,aBlock){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._packageAt_ifAbsent_(aPackageName,aBlock);
+return $recv($globals.Smalltalk)._packageAt_ifAbsent_(aPackageName,aBlock);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"named:ifAbsent:",{aPackageName:aPackageName,aBlock:aBlock},$globals.Package.klass)});
 //>>excludeEnd("ctx");
@@ -1909,8 +1891,6 @@ protocol: 'sorting',
 fn: function (classes){
 var self=this;
 var children,others,nodes,expandedClasses;
-function $ClassSorterNode(){return $globals.ClassSorterNode||(typeof ClassSorterNode=="undefined"?nil:ClassSorterNode)}
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1941,7 +1921,7 @@ nodes=$recv(children)._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($ClassSorterNode())._on_classes_level_(each,others,(0));
+return $recv($globals.ClassSorterNode)._on_classes_level_(each,others,(0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,4)});
 //>>excludeEnd("ctx");
@@ -1963,7 +1943,7 @@ return $recv($2).__lt_eq($recv($recv(b)._theClass())._name());
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1,5)});
 //>>excludeEnd("ctx");
 }));
-expandedClasses=$recv($Array())._new();
+expandedClasses=$recv($globals.Array)._new();
 $recv(nodes)._do_((function(aNode){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1998,11 +1978,10 @@ selector: "announcer",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($SystemAnnouncer())._current();
+return $recv($globals.SystemAnnouncer)._current();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"announcer",{},$globals.PackageStateObserver)});
 //>>excludeEnd("ctx");
@@ -2022,28 +2001,24 @@ selector: "observeSystem",
 protocol: 'actions',
 fn: function (){
 var self=this;
-function $PackageAdded(){return $globals.PackageAdded||(typeof PackageAdded=="undefined"?nil:PackageAdded)}
-function $ClassAnnouncement(){return $globals.ClassAnnouncement||(typeof ClassAnnouncement=="undefined"?nil:ClassAnnouncement)}
-function $MethodAnnouncement(){return $globals.MethodAnnouncement||(typeof MethodAnnouncement=="undefined"?nil:MethodAnnouncement)}
-function $ProtocolAnnouncement(){return $globals.ProtocolAnnouncement||(typeof ProtocolAnnouncement=="undefined"?nil:ProtocolAnnouncement)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=self._announcer();
-$recv($1)._on_send_to_($PackageAdded(),"onPackageAdded:",self);
+$recv($1)._on_send_to_($globals.PackageAdded,"onPackageAdded:",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["on:send:to:"]=1;
 //>>excludeEnd("ctx");
-$recv($1)._on_send_to_($ClassAnnouncement(),"onClassModification:",self);
+$recv($1)._on_send_to_($globals.ClassAnnouncement,"onClassModification:",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["on:send:to:"]=2;
 //>>excludeEnd("ctx");
-$recv($1)._on_send_to_($MethodAnnouncement(),"onMethodModification:",self);
+$recv($1)._on_send_to_($globals.MethodAnnouncement,"onMethodModification:",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["on:send:to:"]=3;
 //>>excludeEnd("ctx");
-$recv($1)._on_send_to_($ProtocolAnnouncement(),"onProtocolModification:",self);
+$recv($1)._on_send_to_($globals.ProtocolAnnouncement,"onProtocolModification:",self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"observeSystem",{},$globals.PackageStateObserver)});
@@ -2379,11 +2354,10 @@ selector: "value",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Smalltalk())._settings())._at_ifAbsent_(self._key(),(function(){
+return $recv($recv($globals.Smalltalk)._settings())._at_ifAbsent_(self._key(),(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2411,11 +2385,10 @@ selector: "value:",
 protocol: 'accessing',
 fn: function (aStringifiableObject){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Smalltalk())._settings())._at_put_(self._key(),aStringifiableObject);
+return $recv($recv($globals.Smalltalk)._settings())._at_put_(self._key(),aStringifiableObject);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"value:",{aStringifiableObject:aStringifiableObject},$globals.Setting)});
 //>>excludeEnd("ctx");
@@ -2546,8 +2519,6 @@ selector: "asSmalltalkException:",
 protocol: 'error handling',
 fn: function (anObject){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
-function $JavaScriptException(){return $globals.JavaScriptException||(typeof JavaScriptException=="undefined"?nil:JavaScriptException)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2556,7 +2527,7 @@ $1=$recv(self._isSmalltalkObject_(anObject))._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(anObject)._isKindOf_($Error());
+return $recv(anObject)._isKindOf_($globals.Error);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -2564,7 +2535,7 @@ return $recv(anObject)._isKindOf_($Error());
 if($core.assert($1)){
 return anObject;
 } else {
-return $recv($JavaScriptException())._on_(anObject);
+return $recv($globals.JavaScriptException)._on_(anObject);
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asSmalltalkException:",{anObject:anObject},$globals.SmalltalkImage)});
@@ -2609,11 +2580,10 @@ selector: "basicParse:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
-function $SmalltalkParser(){return $globals.SmalltalkParser||(typeof SmalltalkParser=="undefined"?nil:SmalltalkParser)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($SmalltalkParser())._parse_(aString);
+return $recv($globals.SmalltalkParser)._parse_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"basicParse:",{aString:aString},$globals.SmalltalkImage)});
 //>>excludeEnd("ctx");
@@ -2730,17 +2700,15 @@ protocol: 'packages',
 fn: function (packageName){
 var self=this;
 var package_,announcement;
-function $PackageAdded(){return $globals.PackageAdded||(typeof PackageAdded=="undefined"?nil:PackageAdded)}
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 package_=self._basicCreatePackage_(packageName);
-$1=$recv($PackageAdded())._new();
+$1=$recv($globals.PackageAdded)._new();
 $recv($1)._package_(package_);
 announcement=$recv($1)._yourself();
-$recv($recv($SystemAnnouncer())._current())._announce_(announcement);
+$recv($recv($globals.SystemAnnouncer)._current())._announce_(announcement);
 return package_;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"createPackage:",{packageName:packageName,package_:package_,announcement:announcement},$globals.SmalltalkImage)});
@@ -2882,11 +2850,10 @@ selector: "existsJsGlobal:",
 protocol: 'testing',
 fn: function (aString){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Platform())._globals())._at_ifPresent_ifAbsent_(aString,(function(){
+return $recv($recv($globals.Platform)._globals())._at_ifPresent_ifAbsent_(aString,(function(){
 return true;
 
 }),(function(){
@@ -3154,12 +3121,11 @@ selector: "parseError:parsing:",
 protocol: 'error handling',
 fn: function (anException,aString){
 var self=this;
-function $ParseError(){return $globals.ParseError||(typeof ParseError=="undefined"?nil:ParseError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$7,$6,$5,$8,$4,$3,$2;
-$1=$recv($ParseError())._new();
+$1=$recv($globals.ParseError)._new();
 $7=$recv(anException)._basicAt_("line");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["basicAt:"]=1;
@@ -3247,8 +3213,6 @@ selector: "removeClass:",
 protocol: 'classes',
 fn: function (aClass){
 var self=this;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $ClassRemoved(){return $globals.ClassRemoved||(typeof ClassRemoved=="undefined"?nil:ClassRemoved)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3258,8 +3222,8 @@ if($core.assert($1)){
 self._error_($recv($recv(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!"));
 };
 self._deleteClass_(aClass);
-$2=$recv($SystemAnnouncer())._current();
-$4=$recv($ClassRemoved())._new();
+$2=$recv($globals.SystemAnnouncer)._current();
+$4=$recv($globals.ClassRemoved)._new();
 $recv($4)._theClass_(aClass);
 $3=$recv($4)._yourself();
 $recv($2)._announce_($3);
@@ -3400,8 +3364,7 @@ selector: "settings",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $SmalltalkSettings(){return $globals.SmalltalkSettings||(typeof SmalltalkSettings=="undefined"?nil:SmalltalkSettings)}
-return $SmalltalkSettings();
+return $globals.SmalltalkSettings;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -3584,11 +3547,10 @@ selector: "asSetting",
 protocol: '*Kernel-Infrastructure',
 fn: function (){
 var self=this;
-function $Setting(){return $globals.Setting||(typeof Setting=="undefined"?nil:Setting)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Setting())._at_ifAbsent_(self,nil);
+return $recv($globals.Setting)._at_ifAbsent_(self,nil);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asSetting",{},$globals.String)});
 //>>excludeEnd("ctx");
@@ -3608,11 +3570,10 @@ selector: "asSettingIfAbsent:",
 protocol: '*Kernel-Infrastructure',
 fn: function (aDefaultValue){
 var self=this;
-function $Setting(){return $globals.Setting||(typeof Setting=="undefined"?nil:Setting)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Setting())._at_ifAbsent_(self,aDefaultValue);
+return $recv($globals.Setting)._at_ifAbsent_(self,aDefaultValue);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asSettingIfAbsent:",{aDefaultValue:aDefaultValue},$globals.String)});
 //>>excludeEnd("ctx");

+ 10 - 20
src/Kernel-Methods.js

@@ -140,11 +140,10 @@ selector: "fork",
 protocol: 'timeout/interval',
 fn: function (){
 var self=this;
-function $ForkPool(){return $globals.ForkPool||(typeof ForkPool=="undefined"?nil:ForkPool)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($ForkPool())._default())._fork_(self);
+$recv($recv($globals.ForkPool)._default())._fork_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"fork",{},$globals.BlockClosure)});
@@ -310,7 +309,6 @@ selector: "on:do:",
 protocol: 'error handling',
 fn: function (anErrorClass,aBlock){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -320,7 +318,7 @@ var smalltalkError;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-smalltalkError=$recv($Smalltalk())._asSmalltalkException_(error);
+smalltalkError=$recv($globals.Smalltalk)._asSmalltalkException_(error);
 smalltalkError;
 $1=$recv(smalltalkError)._isKindOf_(anErrorClass);
 if($core.assert($1)){
@@ -369,11 +367,10 @@ selector: "timeToRun",
 protocol: 'evaluating',
 fn: function (){
 var self=this;
-function $Date(){return $globals.Date||(typeof Date=="undefined"?nil:Date)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Date())._millisecondsToRun_(self);
+return $recv($globals.Date)._millisecondsToRun_(self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"timeToRun",{},$globals.BlockClosure)});
 //>>excludeEnd("ctx");
@@ -729,11 +726,10 @@ selector: "browse",
 protocol: 'browsing',
 fn: function (){
 var self=this;
-function $Finder(){return $globals.Finder||(typeof Finder=="undefined"?nil:Finder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Finder())._findMethod_(self);
+$recv($globals.Finder)._findMethod_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"browse",{},$globals.CompiledMethod)});
@@ -1048,16 +1044,14 @@ protocol: 'accessing',
 fn: function (aString){
 var self=this;
 var oldProtocol;
-function $SystemAnnouncer(){return $globals.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
-function $MethodMoved(){return $globals.MethodMoved||(typeof MethodMoved=="undefined"?nil:MethodMoved)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$4,$receiver;
 oldProtocol=self._protocol();
 self._basicAt_put_("protocol",aString);
-$1=$recv($SystemAnnouncer())._current();
-$3=$recv($MethodMoved())._new();
+$1=$recv($globals.SystemAnnouncer)._current();
+$3=$recv($globals.MethodMoved)._new();
 $recv($3)._method_(self);
 $recv($3)._oldProtocol_(oldProtocol);
 $2=$recv($3)._yourself();
@@ -1320,7 +1314,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Queue(){return $globals.Queue||(typeof Queue=="undefined"?nil:Queue)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1333,7 +1326,7 @@ $ctx1.supercall = true,
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
 self["@poolSize"]=(0);
-self["@queue"]=$recv($Queue())._new();
+self["@queue"]=$recv($globals.Queue)._new();
 self["@worker"]=self._makeWorker();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1356,12 +1349,11 @@ protocol: 'initialization',
 fn: function (){
 var self=this;
 var sentinel;
-function $Object(){return $globals.Object||(typeof Object=="undefined"?nil:Object)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-sentinel=$recv($Object())._new();
+sentinel=$recv($globals.Object)._new();
 return (function(){
 var block;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1756,7 +1748,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Message(){return $globals.Message||(typeof Message=="undefined"?nil:Message)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1768,7 +1759,7 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@message"]=$recv($Message())._new();
+self["@message"]=$recv($globals.Message)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.MessageSend)});
@@ -2979,11 +2970,10 @@ selector: "exists:",
 protocol: 'testing',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._existsJsGlobal_(aString);
+return $recv($globals.Smalltalk)._existsJsGlobal_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"exists:",{aString:aString},$globals.NativeFunction.klass)});
 //>>excludeEnd("ctx");

+ 21 - 41
src/Kernel-Objects.js

@@ -108,12 +108,11 @@ selector: "doesNotUnderstand:",
 protocol: 'error handling',
 fn: function (aMessage){
 var self=this;
-function $MessageNotUnderstood(){return $globals.MessageNotUnderstood||(typeof MessageNotUnderstood=="undefined"?nil:MessageNotUnderstood)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($MessageNotUnderstood())._new();
+$1=$recv($globals.MessageNotUnderstood)._new();
 $recv($1)._receiver_(self);
 $recv($1)._message_(aMessage);
 $recv($1)._signal();
@@ -295,11 +294,10 @@ selector: "inspect",
 protocol: 'inspecting',
 fn: function (){
 var self=this;
-function $Inspector(){return $globals.Inspector||(typeof Inspector=="undefined"?nil:Inspector)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Inspector())._inspect_(self);
+$recv($globals.Inspector)._inspect_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inspect",{},$globals.ProtoObject)});
@@ -575,11 +573,10 @@ selector: "printString",
 protocol: 'printing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($String())._streamContents_((function(str){
+return $recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -700,11 +697,10 @@ selector: "->",
 protocol: 'converting',
 fn: function (anObject){
 var self=this;
-function $Association(){return $globals.Association||(typeof Association=="undefined"?nil:Association)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Association())._key_value_(self,anObject);
+return $recv($globals.Association)._key_value_(self,anObject);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"->",{anObject:anObject},$globals.Object)});
 //>>excludeEnd("ctx");
@@ -725,11 +721,10 @@ protocol: 'converting',
 fn: function (){
 var self=this;
 var variables;
-function $HashedCollection(){return $globals.HashedCollection||(typeof HashedCollection=="undefined"?nil:HashedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($HashedCollection())._new();
+variables=$recv($globals.HashedCollection)._new();
 $recv($recv(self._class())._allInstanceVariableNames())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -759,11 +754,10 @@ selector: "asJSONString",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $JSON(){return $globals.JSON||(typeof JSON=="undefined"?nil:JSON)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($JSON())._stringify_(self._asJSON());
+return $recv($globals.JSON)._stringify_(self._asJSON());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asJSONString",{},$globals.Object)});
 //>>excludeEnd("ctx");
@@ -925,11 +919,10 @@ selector: "browse",
 protocol: 'browsing',
 fn: function (){
 var self=this;
-function $Finder(){return $globals.Finder||(typeof Finder=="undefined"?nil:Finder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Finder())._findClass_(self._class());
+$recv($globals.Finder)._findClass_(self._class());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"browse",{},$globals.Object)});
@@ -1105,11 +1098,10 @@ selector: "error:",
 protocol: 'error handling',
 fn: function (aString){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Error())._signal_(aString);
+$recv($globals.Error)._signal_(aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"error:",{aString:aString},$globals.Object)});
@@ -1130,11 +1122,10 @@ selector: "halt",
 protocol: 'error handling',
 fn: function (){
 var self=this;
-function $Halt(){return $globals.Halt||(typeof Halt=="undefined"?nil:Halt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Halt())._signal();
+$recv($globals.Halt)._signal();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"halt",{},$globals.Object)});
@@ -3098,16 +3089,15 @@ protocol: 'instance creation',
 fn: function (aBlock){
 var self=this;
 var t;
-function $Date(){return $globals.Date||(typeof Date=="undefined"?nil:Date)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-t=$recv($Date())._now();
+t=$recv($globals.Date)._now();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["now"]=1;
 //>>excludeEnd("ctx");
 $recv(aBlock)._value();
-return $recv($recv($Date())._now()).__minus(t);
+return $recv($recv($globals.Date)._now()).__minus(t);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"millisecondsToRun:",{aBlock:aBlock,t:t},$globals.Date.klass)});
 //>>excludeEnd("ctx");
@@ -3491,11 +3481,10 @@ selector: "@",
 protocol: 'converting',
 fn: function (aNumber){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Point())._x_y_(self,aNumber);
+return $recv($globals.Point)._x_y_(self,aNumber);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"@",{aNumber:aNumber},$globals.Number)});
 //>>excludeEnd("ctx");
@@ -3699,11 +3688,10 @@ selector: "asPoint",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Point())._x_y_(self,self);
+return $recv($globals.Point)._x_y_(self,self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asPoint",{},$globals.Number)});
 //>>excludeEnd("ctx");
@@ -3747,11 +3735,10 @@ selector: "atRandom",
 protocol: 'converting',
 fn: function (){
 var self=this;
-function $Random(){return $globals.Random||(typeof Random=="undefined"?nil:Random)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($recv($recv($recv($Random())._new())._next()).__star(self))._truncated()).__plus((1));
+return $recv($recv($recv($recv($recv($globals.Random)._new())._next()).__star(self))._truncated()).__plus((1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"atRandom",{},$globals.Number)});
 //>>excludeEnd("ctx");
@@ -4448,7 +4435,6 @@ protocol: 'converting',
 fn: function (aNumber){
 var self=this;
 var array,first,last,count;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -4461,7 +4447,7 @@ last=$recv($recv(aNumber)._truncated()).__plus((1));
 $ctx1.sendIdx["+"]=1;
 //>>excludeEnd("ctx");
 count=(1);
-array=$recv($Array())._new();
+array=$recv($globals.Array)._new();
 $recv($recv(last).__minus(first))._timesRepeat_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -4499,13 +4485,12 @@ protocol: 'converting',
 fn: function (stop,step){
 var self=this;
 var array,value,pos;
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
 value=self;
-array=$recv($Array())._new();
+array=$recv($globals.Array)._new();
 pos=(1);
 $1=$recv(step).__eq((0));
 if($core.assert($1)){
@@ -4843,7 +4828,6 @@ selector: "*",
 protocol: 'arithmetic',
 fn: function (aPoint){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -4866,7 +4850,7 @@ $6=self._y();
 $ctx1.sendIdx["y"]=1;
 //>>excludeEnd("ctx");
 $5=$recv($6).__star($recv($recv(aPoint)._asPoint())._y());
-return $recv($Point())._x_y_($1,$5);
+return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"*",{aPoint:aPoint},$globals.Point)});
 //>>excludeEnd("ctx");
@@ -4886,7 +4870,6 @@ selector: "+",
 protocol: 'arithmetic',
 fn: function (aPoint){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -4909,7 +4892,7 @@ $6=self._y();
 $ctx1.sendIdx["y"]=1;
 //>>excludeEnd("ctx");
 $5=$recv($6).__plus($recv($recv(aPoint)._asPoint())._y());
-return $recv($Point())._x_y_($1,$5);
+return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"+",{aPoint:aPoint},$globals.Point)});
 //>>excludeEnd("ctx");
@@ -4929,7 +4912,6 @@ selector: "-",
 protocol: 'arithmetic',
 fn: function (aPoint){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -4952,7 +4934,7 @@ $6=self._y();
 $ctx1.sendIdx["y"]=1;
 //>>excludeEnd("ctx");
 $5=$recv($6).__minus($recv($recv(aPoint)._asPoint())._y());
-return $recv($Point())._x_y_($1,$5);
+return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"-",{aPoint:aPoint},$globals.Point)});
 //>>excludeEnd("ctx");
@@ -4972,7 +4954,6 @@ selector: "/",
 protocol: 'arithmetic',
 fn: function (aPoint){
 var self=this;
-function $Point(){return $globals.Point||(typeof Point=="undefined"?nil:Point)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -4995,7 +4976,7 @@ $6=self._y();
 $ctx1.sendIdx["y"]=1;
 //>>excludeEnd("ctx");
 $5=$recv($6).__slash($recv($recv(aPoint)._asPoint())._y());
-return $recv($Point())._x_y_($1,$5);
+return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"/",{aPoint:aPoint},$globals.Point)});
 //>>excludeEnd("ctx");
@@ -5843,11 +5824,10 @@ selector: "subclass:instanceVariableNames:package:",
 protocol: 'class creation',
 fn: function (aString,aString2,aString3){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($ClassBuilder())._new())._superclass_subclass_instanceVariableNames_package_(self,$recv(aString)._asString(),aString2,aString3);
+return $recv($recv($globals.ClassBuilder)._new())._superclass_subclass_instanceVariableNames_package_(self,$recv(aString)._asString(),aString2,aString3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"subclass:instanceVariableNames:package:",{aString:aString,aString2:aString2,aString3:aString3},$globals.UndefinedObject)});
 //>>excludeEnd("ctx");

File diff suppressed because it is too large
+ 97 - 152
src/Kernel-Tests.js


+ 4 - 8
src/Platform-Browser.js

@@ -32,16 +32,14 @@ selector: "newXhr",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $XMLHttpRequest(){return $globals.XMLHttpRequest||(typeof XMLHttpRequest=="undefined"?nil:XMLHttpRequest)}
-function $NativeFunction(){return $globals.NativeFunction||(typeof NativeFunction=="undefined"?nil:NativeFunction)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $receiver;
-if(($receiver = $XMLHttpRequest()) == null || $receiver.isNil){
+if(($receiver = $globals.XMLHttpRequest) == null || $receiver.isNil){
 self._error_("XMLHttpRequest not available.");
 } else {
-return $recv($NativeFunction())._constructorOf_($XMLHttpRequest());
+return $recv($globals.NativeFunction)._constructorOf_($globals.XMLHttpRequest);
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -64,14 +62,13 @@ selector: "initialize",
 protocol: 'testing',
 fn: function (){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=self._isFeasible();
 if($core.assert($1)){
-$recv($Platform())._registerIfNone_(self._new());
+$recv($globals.Platform)._registerIfNone_(self._new());
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -215,14 +212,13 @@ selector: "initialize",
 protocol: 'testing',
 fn: function (){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=self._isFeasible();
 if($core.assert($1)){
-$recv($Terminal())._registerIfNone_(self._new());
+$recv($globals.Terminal)._registerIfNone_(self._new());
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 41 - 80
src/Platform-ImportExport.js

@@ -78,11 +78,10 @@ protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
 var result;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-result=$recv($OrderedCollection())._new();
+result=$recv($globals.OrderedCollection)._new();
 $recv(self._extensionProtocolsOfPackage_(aPackage))._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -113,9 +112,6 @@ protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
 var extensionName,result;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $ExportMethodProtocol(){return $globals.ExportMethodProtocol||(typeof ExportMethodProtocol=="undefined"?nil:ExportMethodProtocol)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -125,8 +121,8 @@ $1=$recv(aPackage)._name();
 $ctx1.sendIdx["name"]=1;
 //>>excludeEnd("ctx");
 extensionName="*".__comma($1);
-result=$recv($OrderedCollection())._new();
-$recv($recv($recv($recv($Smalltalk())._classes())._asArray())._sorted_((function(a,b){
+result=$recv($globals.OrderedCollection)._new();
+$recv($recv($recv($recv($globals.Smalltalk)._classes())._asArray())._sorted_((function(a,b){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -148,7 +144,7 @@ return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
 $3=$recv($recv(behavior)._protocols())._includes_(extensionName);
 if($core.assert($3)){
-return $recv(result)._add_($recv($ExportMethodProtocol())._name_theClass_(extensionName,behavior));
+return $recv(result)._add_($recv($globals.ExportMethodProtocol)._name_theClass_(extensionName,behavior));
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({behavior:behavior},$ctx2,3)});
@@ -786,21 +782,16 @@ protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
 var name,map,result;
-function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
-function $Package(){return $globals.Package||(typeof Package=="undefined"?nil:Package)}
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
-function $MethodCategory(){return $globals.MethodCategory||(typeof MethodCategory=="undefined"?nil:MethodCategory)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 name=$recv(aPackage)._name();
-result=$recv($OrderedCollection())._new();
+result=$recv($globals.OrderedCollection)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$recv($recv($Package())._sortedClasses_($recv($Smalltalk())._classes()))._do_((function(each){
+$recv($recv($globals.Package)._sortedClasses_($recv($globals.Smalltalk)._classes()))._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -808,7 +799,7 @@ return $recv([each,$recv(each)._class()])._do_((function(aClass){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-map=$recv($Dictionary())._new();
+map=$recv($globals.Dictionary)._new();
 map;
 $recv(aClass)._protocolsDo_((function(category,methods){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -834,7 +825,7 @@ return $recv(a).__lt_eq(b);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-return $recv($MethodCategory())._name_theClass_methods_(category,aClass,$recv(map)._at_(category));
+return $recv($globals.MethodCategory)._name_theClass_methods_(category,aClass,$recv(map)._at_(category));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({category:category},$ctx3,6)});
 //>>excludeEnd("ctx");
@@ -871,13 +862,11 @@ protocol: 'accessing',
 fn: function (aClass){
 var self=this;
 var map;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
-function $MethodCategory(){return $globals.MethodCategory||(typeof MethodCategory=="undefined"?nil:MethodCategory)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-map=$recv($Dictionary())._new();
+map=$recv($globals.Dictionary)._new();
 $recv(aClass)._protocolsDo_((function(each,methods){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -902,7 +891,7 @@ return $recv(a).__lt_eq(b);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($MethodCategory())._name_theClass_methods_(each,aClass,$recv(map)._at_(each));
+return $recv($globals.MethodCategory)._name_theClass_methods_(each,aClass,$recv(map)._at_(each));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,4)});
 //>>excludeEnd("ctx");
@@ -949,7 +938,6 @@ selector: "ownMethodProtocolsOfClass:",
 protocol: 'accessing',
 fn: function (aClass){
 var self=this;
-function $ExportMethodProtocol(){return $globals.ExportMethodProtocol||(typeof ExportMethodProtocol=="undefined"?nil:ExportMethodProtocol)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -957,7 +945,7 @@ return $recv($recv(aClass)._ownProtocols())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($ExportMethodProtocol())._name_theClass_(each,aClass);
+return $recv($globals.ExportMethodProtocol)._name_theClass_(each,aClass);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -1127,7 +1115,6 @@ selector: "exportMetaDefinitionOf:on:",
 protocol: 'output',
 fn: function (aClass,aStream){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1191,7 +1178,7 @@ $ctx2.sendIdx["nextPutAll:"]=4;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$recv(aStream)._nextPutAll_("];".__comma($recv($String())._lf()));
+$recv(aStream)._nextPutAll_("];".__comma($recv($globals.String)._lf()));
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1927,7 +1914,6 @@ protocol: 'output',
 fn: function (aPackage,aStream){
 var self=this;
 var importsForOutput,loadDependencies,pragmaStart,pragmaEnd;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1944,7 +1930,7 @@ $recv($1)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv($String())._lf();
+$3=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
@@ -1952,7 +1938,7 @@ $2=$recv($3).__comma("//>>excludeStart(\x22imports\x22, pragmas.excludeImports);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=2;
 //>>excludeEnd("ctx");
-$4=$recv($String())._lf();
+$4=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
@@ -1961,7 +1947,7 @@ pragmaStart=$recv($2).__comma($4);
 $ctx2.sendIdx[","]=1;
 //>>excludeEnd("ctx");
 pragmaStart;
-$6=$recv($String())._lf();
+$6=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -1969,7 +1955,7 @@ $5=$recv($6).__comma("//>>excludeEnd(\x22imports\x22);");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=4;
 //>>excludeEnd("ctx");
-$7=$recv($String())._lf();
+$7=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
@@ -2394,11 +2380,10 @@ selector: "compileMethod:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($Compiler())._new())._install_forClass_protocol_(aString,self["@class"],self["@category"]);
+$recv($recv($globals.Compiler)._new())._install_forClass_protocol_(aString,self["@class"],self["@category"]);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"compileMethod:",{aString:aString},$globals.ClassProtocolReader)});
@@ -2451,7 +2436,6 @@ protocol: 'fileIn',
 fn: function (aChunkParser){
 var self=this;
 var chunk;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2474,7 +2458,7 @@ return self._compileMethod_(chunk);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$recv($recv($ClassBuilder())._new())._setupClass_(self["@class"]);
+$recv($recv($globals.ClassBuilder)._new())._setupClass_(self["@class"]);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"scanFrom:",{aChunkParser:aChunkParser,chunk:chunk},$globals.ClassProtocolReader)});
@@ -2645,14 +2629,11 @@ protocol: 'fileIn',
 fn: function (aStream){
 var self=this;
 var chunk,result,parser,lastEmpty;
-function $ChunkParser(){return $globals.ChunkParser||(typeof ChunkParser=="undefined"?nil:ChunkParser)}
-function $Compiler(){return $globals.Compiler||(typeof Compiler=="undefined"?nil:Compiler)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-parser=$recv($ChunkParser())._on_(aStream);
+parser=$recv($globals.ChunkParser)._on_(aStream);
 lastEmpty=false;
 self["@lastSection"]="n/a, not started";
 self["@lastChunk"]=nil;
@@ -2681,7 +2662,7 @@ return lastEmpty;
 } else {
 self["@lastSection"]=chunk;
 self["@lastSection"];
-result=$recv($recv($Compiler())._new())._evaluateExpression_(chunk);
+result=$recv($recv($globals.Compiler)._new())._evaluateExpression_(chunk);
 result;
 $2=lastEmpty;
 if($core.assert($2)){
@@ -2699,7 +2680,7 @@ return self["@lastSection"];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(e){
+}))._on_do_($globals.Error,(function(e){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2779,12 +2760,11 @@ protocol: 'private',
 fn: function (aURL,aString,aBlock,anotherBlock){
 var self=this;
 var xhr;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$4,$3,$2;
-xhr=$recv($Platform())._newXhr();
+xhr=$recv($globals.Platform)._newXhr();
 $recv(xhr)._open_url_async_("PUT",aURL,true);
 $recv(xhr)._onreadystatechange_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2833,11 +2813,10 @@ selector: "chunkContentsFor:",
 protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($String())._streamContents_((function(str){
+return $recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2888,8 +2867,7 @@ selector: "chunkExporterClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $ChunkExporter(){return $globals.ChunkExporter||(typeof ChunkExporter=="undefined"?nil:ChunkExporter)}
-return $ChunkExporter();
+return $globals.ChunkExporter;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -2907,7 +2885,6 @@ selector: "commit:",
 protocol: 'committing',
 fn: function (aPackage){
 var self=this;
-function $PackageCommitError(){return $globals.PackageCommitError||(typeof PackageCommitError=="undefined"?nil:PackageCommitError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -2918,7 +2895,7 @@ self._commit_onSuccess_onError_(aPackage,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$recv($PackageCommitError())._new();
+$1=$recv($globals.PackageCommitError)._new();
 $2=$recv("Commiting failed with reason: \x22".__comma($recv(error)._responseText())).__comma("\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=1;
@@ -3104,11 +3081,10 @@ selector: "contentsFor:",
 protocol: 'accessing',
 fn: function (aPackage){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($String())._streamContents_((function(str){
+return $recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -3207,12 +3183,11 @@ selector: "onCommitError:",
 protocol: 'error handling',
 fn: function (anError){
 var self=this;
-function $PackageCommitError(){return $globals.PackageCommitError||(typeof PackageCommitError=="undefined"?nil:PackageCommitError)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$recv($PackageCommitError())._new();
+$1=$recv($globals.PackageCommitError)._new();
 $2=$recv("Commiting failed with reason: \x22".__comma($recv(anError)._responseText())).__comma("\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
@@ -3304,8 +3279,7 @@ selector: "exporterClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $AmdExporter(){return $globals.AmdExporter||(typeof AmdExporter=="undefined"?nil:AmdExporter)}
-return $AmdExporter();
+return $globals.AmdExporter;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -3323,13 +3297,11 @@ selector: "load:",
 protocol: 'loading',
 fn: function (aPackage){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$receiver;
-$1=$recv($Smalltalk())._amdRequire();
+$1=$recv($globals.Smalltalk)._amdRequire();
 if(($receiver = $1) == null || $receiver.isNil){
 self._error_("AMD loader not present");
 } else {
@@ -3339,7 +3311,7 @@ $3=$recv($recv(self._namespaceFor_(aPackage)).__comma("/")).__comma($recv(aPacka
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$2=$recv($Array())._with_($3);
+$2=$recv($globals.Array)._with_($3);
 $recv(require)._value_($2);
 };
 return self;
@@ -3385,12 +3357,11 @@ selector: "toUrl:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$recv($Smalltalk())._amdRequire();
+$1=$recv($globals.Smalltalk)._amdRequire();
 if(($receiver = $1) == null || $receiver.isNil){
 return self._error_("AMD loader not present");
 } else {
@@ -3418,11 +3389,10 @@ selector: "defaultNamespace",
 protocol: 'commit paths',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._defaultAmdNamespace();
+return $recv($globals.Smalltalk)._defaultAmdNamespace();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"defaultNamespace",{},$globals.AmdPackageHandler.klass)});
 //>>excludeEnd("ctx");
@@ -3442,11 +3412,10 @@ selector: "defaultNamespace:",
 protocol: 'commit paths',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Smalltalk())._defaultAmdNamespace_(aString);
+$recv($globals.Smalltalk)._defaultAmdNamespace_(aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"defaultNamespace:",{aString:aString},$globals.AmdPackageHandler.klass)});
@@ -3735,11 +3704,10 @@ selector: "defaultType",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $AmdPackageTransport(){return $globals.AmdPackageTransport||(typeof AmdPackageTransport=="undefined"?nil:AmdPackageTransport)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($AmdPackageTransport())._type();
+return $recv($globals.AmdPackageTransport)._type();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"defaultType",{},$globals.PackageTransport.klass)});
 //>>excludeEnd("ctx");
@@ -3817,7 +3785,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $PackageTransport(){return $globals.PackageTransport||(typeof PackageTransport=="undefined"?nil:PackageTransport)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -3830,7 +3797,7 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-$1=self.__eq_eq($PackageTransport());
+$1=self.__eq_eq($globals.PackageTransport);
 if($core.assert($1)){
 self["@registry"]=$globals.HashedCollection._newFromPairs_([]);
 self["@registry"];
@@ -3857,11 +3824,10 @@ selector: "register",
 protocol: 'registration',
 fn: function (){
 var self=this;
-function $PackageTransport(){return $globals.PackageTransport||(typeof PackageTransport=="undefined"?nil:PackageTransport)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($PackageTransport())._register_(self);
+$recv($globals.PackageTransport)._register_(self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"register",{},$globals.PackageTransport.klass)});
@@ -3971,8 +3937,7 @@ selector: "commitHandlerClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $AmdPackageHandler(){return $globals.AmdPackageHandler||(typeof AmdPackageHandler=="undefined"?nil:AmdPackageHandler)}
-return $AmdPackageHandler();
+return $globals.AmdPackageHandler;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -3990,11 +3955,10 @@ selector: "defaultNamespace",
 protocol: 'defaults',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._defaultAmdNamespace();
+return $recv($globals.Smalltalk)._defaultAmdNamespace();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"defaultNamespace",{},$globals.AmdPackageTransport)});
 //>>excludeEnd("ctx");
@@ -4014,12 +3978,11 @@ selector: "definition",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-return $recv($String())._streamContents_((function(stream){
+return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -4240,12 +4203,11 @@ selector: "commentStamp",
 protocol: '*Platform-ImportExport',
 fn: function (){
 var self=this;
-function $ClassCommentReader(){return $globals.ClassCommentReader||(typeof ClassCommentReader=="undefined"?nil:ClassCommentReader)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($ClassCommentReader())._new();
+$1=$recv($globals.ClassCommentReader)._new();
 $recv($1)._class_(self);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4290,12 +4252,11 @@ selector: "methodsFor:",
 protocol: '*Platform-ImportExport',
 fn: function (aString){
 var self=this;
-function $ClassProtocolReader(){return $globals.ClassProtocolReader||(typeof ClassProtocolReader=="undefined"?nil:ClassProtocolReader)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($ClassProtocolReader())._new();
+$1=$recv($globals.ClassProtocolReader)._new();
 $recv($1)._class_category_(self,aString);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 3 - 5
src/Platform-Node.js

@@ -32,15 +32,14 @@ selector: "newXhr",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $XMLHttpRequest(){return $globals.XMLHttpRequest||(typeof XMLHttpRequest=="undefined"?nil:XMLHttpRequest)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $receiver;
-if(($receiver = $XMLHttpRequest()) == null || $receiver.isNil){
+if(($receiver = $globals.XMLHttpRequest) == null || $receiver.isNil){
 self._error_("XMLHttpRequest not available.");
 } else {
-return $recv($XMLHttpRequest())._new();
+return $recv($globals.XMLHttpRequest)._new();
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -63,14 +62,13 @@ selector: "initialize",
 protocol: 'testing',
 fn: function (){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=self._isFeasible();
 if($core.assert($1)){
-$recv($Platform())._registerIfNone_(self._new());
+$recv($globals.Platform)._registerIfNone_(self._new());
 };
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 53 - 104
src/Platform-Services.js

@@ -169,11 +169,10 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $ErrorHandler(){return $globals.ErrorHandler||(typeof ErrorHandler=="undefined"?nil:ErrorHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ErrorHandler())._registerIfNone_(self._new());
+$recv($globals.ErrorHandler)._registerIfNone_(self._new());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ConsoleErrorHandler.klass)});
@@ -278,11 +277,10 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Transcript())._registerIfNone_(self._new());
+$recv($globals.Transcript)._registerIfNone_(self._new());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ConsoleTranscript.klass)});
@@ -308,12 +306,11 @@ selector: "ajax:",
 protocol: 'actions',
 fn: function (anObject){
 var self=this;
-function $PlatformInterface(){return $globals.PlatformInterface||(typeof PlatformInterface=="undefined"?nil:PlatformInterface)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI();
-return $recv($PlatformInterface())._ajax_(anObject);
+return $recv($globals.PlatformInterface)._ajax_(anObject);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ajax:",{anObject:anObject},$globals.InterfacingObject)});
 //>>excludeEnd("ctx");
@@ -333,11 +330,10 @@ selector: "alert:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Terminal())._alert_(aString);
+return $recv($globals.Terminal)._alert_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"alert:",{aString:aString},$globals.InterfacingObject)});
 //>>excludeEnd("ctx");
@@ -357,11 +353,10 @@ selector: "confirm:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Terminal())._confirm_(aString);
+return $recv($globals.Terminal)._confirm_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"confirm:",{aString:aString},$globals.InterfacingObject)});
 //>>excludeEnd("ctx");
@@ -381,11 +376,10 @@ selector: "prompt:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Terminal())._prompt_(aString);
+return $recv($globals.Terminal)._prompt_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"prompt:",{aString:aString},$globals.InterfacingObject)});
 //>>excludeEnd("ctx");
@@ -405,11 +399,10 @@ selector: "prompt:default:",
 protocol: 'actions',
 fn: function (aString,defaultString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Terminal())._prompt_default_(aString,defaultString);
+return $recv($globals.Terminal)._prompt_default_(aString,defaultString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"prompt:default:",{aString:aString,defaultString:defaultString},$globals.InterfacingObject)});
 //>>excludeEnd("ctx");
@@ -469,11 +462,10 @@ selector: "allSelectors",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Smalltalk())._core())._allSelectors();
+return $recv($recv($globals.Smalltalk)._core())._allSelectors();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"allSelectors",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -493,11 +485,10 @@ selector: "availableClassNames",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Smalltalk())._classes())._collect_((function(each){
+return $recv($recv($globals.Smalltalk)._classes())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -525,11 +516,10 @@ selector: "availablePackageNames",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($Smalltalk())._packages())._collect_((function(each){
+return $recv($recv($globals.Smalltalk)._packages())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -592,11 +582,10 @@ selector: "classBuilder",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($ClassBuilder())._new();
+return $recv($globals.ClassBuilder)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"classBuilder",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -616,12 +605,11 @@ selector: "classNamed:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$recv($recv($Smalltalk())._globals())._at_($recv(aString)._asSymbol());
+$1=$recv($recv($globals.Smalltalk)._globals())._at_($recv(aString)._asSymbol());
 if(($receiver = $1) == null || $receiver.isNil){
 return self._error_("Invalid class name");
 } else {
@@ -646,11 +634,10 @@ selector: "classes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._classes();
+return $recv($globals.Smalltalk)._classes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"classes",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -718,8 +705,6 @@ selector: "compileClassDefinition:",
 protocol: 'compiling',
 fn: function (aString){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -727,11 +712,11 @@ $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return self._evaluate_for_(aString,$recv($DoIt())._new());
+return self._evaluate_for_(aString,$recv($globals.DoIt)._new());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(error){
+}))._on_do_($globals.Error,(function(error){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -783,13 +768,11 @@ selector: "copyClass:to:",
 protocol: 'actions',
 fn: function (aClass,aClassName){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$recv($recv($Smalltalk())._globals())._at_(aClassName);
+$1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
 if(($receiver = $1) == null || $receiver.isNil){
 $1;
 } else {
@@ -799,7 +782,7 @@ $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
 self._error_($2);
 };
-$recv($recv($ClassBuilder())._new())._copyClass_named_(aClass,aClassName);
+$recv($recv($globals.ClassBuilder)._new())._copyClass_named_(aClass,aClassName);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"copyClass:to:",{aClass:aClass,aClassName:aClassName},$globals.Environment)});
@@ -820,11 +803,10 @@ selector: "doItReceiver",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $DoIt(){return $globals.DoIt||(typeof DoIt=="undefined"?nil:DoIt)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($DoIt())._new();
+return $recv($globals.DoIt)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"doItReceiver",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -844,11 +826,10 @@ selector: "evaluate:for:",
 protocol: 'evaluating',
 fn: function (aString,anObject){
 var self=this;
-function $Evaluator(){return $globals.Evaluator||(typeof Evaluator=="undefined"?nil:Evaluator)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Evaluator())._evaluate_for_(aString,anObject);
+return $recv($globals.Evaluator)._evaluate_for_(aString,anObject);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"evaluate:for:",{aString:aString,anObject:anObject},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -906,11 +887,10 @@ selector: "inspect:",
 protocol: 'actions',
 fn: function (anObject){
 var self=this;
-function $Inspector(){return $globals.Inspector||(typeof Inspector=="undefined"?nil:Inspector)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Inspector())._inspect_(anObject);
+$recv($globals.Inspector)._inspect_(anObject);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inspect:",{anObject:anObject},$globals.Environment)});
@@ -932,12 +912,11 @@ protocol: 'actions',
 fn: function (aClass,aPackageName){
 var self=this;
 var package_;
-function $Package(){return $globals.Package||(typeof Package=="undefined"?nil:Package)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-package_=$recv($Package())._named_(aPackageName);
+package_=$recv($globals.Package)._named_(aPackageName);
 $1=package_;
 if(($receiver = $1) == null || $receiver.isNil){
 self._error_("Invalid package name");
@@ -1039,11 +1018,10 @@ selector: "packages",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($Smalltalk())._packages();
+return $recv($globals.Smalltalk)._packages();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"packages",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -1063,11 +1041,10 @@ selector: "registerErrorHandler:",
 protocol: 'services',
 fn: function (anErrorHandler){
 var self=this;
-function $ErrorHandler(){return $globals.ErrorHandler||(typeof ErrorHandler=="undefined"?nil:ErrorHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ErrorHandler())._register_(anErrorHandler);
+$recv($globals.ErrorHandler)._register_(anErrorHandler);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"registerErrorHandler:",{anErrorHandler:anErrorHandler},$globals.Environment)});
@@ -1088,11 +1065,10 @@ selector: "registerFinder:",
 protocol: 'services',
 fn: function (aFinder){
 var self=this;
-function $Finder(){return $globals.Finder||(typeof Finder=="undefined"?nil:Finder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Finder())._register_(aFinder);
+$recv($globals.Finder)._register_(aFinder);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"registerFinder:",{aFinder:aFinder},$globals.Environment)});
@@ -1113,11 +1089,10 @@ selector: "registerInspector:",
 protocol: 'services',
 fn: function (anInspector){
 var self=this;
-function $Inspector(){return $globals.Inspector||(typeof Inspector=="undefined"?nil:Inspector)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Inspector())._register_(anInspector);
+$recv($globals.Inspector)._register_(anInspector);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"registerInspector:",{anInspector:anInspector},$globals.Environment)});
@@ -1138,11 +1113,10 @@ selector: "registerProgressHandler:",
 protocol: 'services',
 fn: function (aProgressHandler){
 var self=this;
-function $ProgressHandler(){return $globals.ProgressHandler||(typeof ProgressHandler=="undefined"?nil:ProgressHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ProgressHandler())._register_(aProgressHandler);
+$recv($globals.ProgressHandler)._register_(aProgressHandler);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"registerProgressHandler:",{aProgressHandler:aProgressHandler},$globals.Environment)});
@@ -1163,11 +1137,10 @@ selector: "registerTranscript:",
 protocol: 'services',
 fn: function (aTranscript){
 var self=this;
-function $Transcript(){return $globals.Transcript||(typeof Transcript=="undefined"?nil:Transcript)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Transcript())._register_(aTranscript);
+$recv($globals.Transcript)._register_(aTranscript);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"registerTranscript:",{aTranscript:aTranscript},$globals.Environment)});
@@ -1188,11 +1161,10 @@ selector: "removeClass:",
 protocol: 'actions',
 fn: function (aClass){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($Smalltalk())._removeClass_(aClass);
+$recv($globals.Smalltalk)._removeClass_(aClass);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass},$globals.Environment)});
@@ -1269,13 +1241,11 @@ selector: "renameClass:to:",
 protocol: 'actions',
 fn: function (aClass,aClassName){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
-function $ClassBuilder(){return $globals.ClassBuilder||(typeof ClassBuilder=="undefined"?nil:ClassBuilder)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$recv($recv($Smalltalk())._globals())._at_(aClassName);
+$1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
 if(($receiver = $1) == null || $receiver.isNil){
 $1;
 } else {
@@ -1285,7 +1255,7 @@ $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
 self._error_($2);
 };
-$recv($recv($ClassBuilder())._new())._renameClass_to_(aClass,aClassName);
+$recv($recv($globals.ClassBuilder)._new())._renameClass_to_(aClass,aClassName);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,aClassName:aClassName},$globals.Environment)});
@@ -1306,12 +1276,11 @@ selector: "renamePackage:to:",
 protocol: 'actions',
 fn: function (aPackageName,aNewPackageName){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$recv($recv($Smalltalk())._globals())._at_(aNewPackageName);
+$1=$recv($recv($globals.Smalltalk)._globals())._at_(aNewPackageName);
 if(($receiver = $1) == null || $receiver.isNil){
 $1;
 } else {
@@ -1321,7 +1290,7 @@ $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
 self._error_($2);
 };
-$recv($Smalltalk())._renamePackage_to_(aPackageName,aNewPackageName);
+$recv($globals.Smalltalk)._renamePackage_to_(aPackageName,aNewPackageName);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"renamePackage:to:",{aPackageName:aPackageName,aNewPackageName:aNewPackageName},$globals.Environment)});
@@ -1398,11 +1367,10 @@ selector: "systemAnnouncer",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Smalltalk(){return $globals.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($recv($recv($Smalltalk())._globals())._at_("SystemAnnouncer"))._current();
+return $recv($recv($recv($globals.Smalltalk)._globals())._at_("SystemAnnouncer"))._current();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"systemAnnouncer",{},$globals.Environment)});
 //>>excludeEnd("ctx");
@@ -1454,11 +1422,10 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $ProgressHandler(){return $globals.ProgressHandler||(typeof ProgressHandler=="undefined"?nil:ProgressHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ProgressHandler())._registerIfNone_(self._new());
+$recv($globals.ProgressHandler)._registerIfNone_(self._new());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.NullProgressHandler.klass)});
@@ -1485,16 +1452,15 @@ selector: "ajax:",
 protocol: 'actions',
 fn: function (anObject){
 var self=this;
-function $JQuery(){return $globals.JQuery||(typeof JQuery=="undefined"?nil:JQuery)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $receiver;
 self._deprecatedAPI_("Use Platform newXhr or dedicated library.");
-if(($receiver = $JQuery()) == null || $receiver.isNil){
+if(($receiver = $globals.JQuery) == null || $receiver.isNil){
 return self._error_("JQuery wrapper not loaded, cannot do AJAX.");
 } else {
-return $recv($recv($JQuery())._current())._ajax_(anObject);
+return $recv($recv($globals.JQuery)._current())._ajax_(anObject);
 };
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ajax:",{anObject:anObject},$globals.PlatformInterface.klass)});
@@ -1515,12 +1481,11 @@ selector: "alert:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Terminal alert:");
-return $recv($Terminal())._alert_(aString);
+return $recv($globals.Terminal)._alert_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"alert:",{aString:aString},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -1540,12 +1505,11 @@ selector: "confirm:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Terminal confirm:");
-return $recv($Terminal())._confirm_(aString);
+return $recv($globals.Terminal)._confirm_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"confirm:",{aString:aString},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -1565,12 +1529,11 @@ selector: "existsGlobal:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $PlatformInterface(){return $globals.PlatformInterface||(typeof PlatformInterface=="undefined"?nil:PlatformInterface)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Smalltalk existsJsGlobal:");
-return $recv($recv($PlatformInterface())._globals())._at_ifPresent_ifAbsent_(aString,(function(){
+return $recv($recv($globals.PlatformInterface)._globals())._at_ifPresent_ifAbsent_(aString,(function(){
 return true;
 
 }),(function(){
@@ -1596,12 +1559,11 @@ selector: "globals",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Platform globals");
-return $recv($Platform())._globals();
+return $recv($globals.Platform)._globals();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"globals",{},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -1621,12 +1583,11 @@ selector: "newXhr",
 protocol: 'actions',
 fn: function (){
 var self=this;
-function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Platform newXhr");
-return $recv($Platform())._newXhr();
+return $recv($globals.Platform)._newXhr();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"newXhr",{},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -1646,12 +1607,11 @@ selector: "prompt:",
 protocol: 'actions',
 fn: function (aString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Terminal prompt:");
-return $recv($Terminal())._prompt_(aString);
+return $recv($globals.Terminal)._prompt_(aString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"prompt:",{aString:aString},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -1671,12 +1631,11 @@ selector: "prompt:default:",
 protocol: 'actions',
 fn: function (aString,defaultString){
 var self=this;
-function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 self._deprecatedAPI_("Use Terminal prompt:default:");
-return $recv($Terminal())._prompt_default_(aString,defaultString);
+return $recv($globals.Terminal)._prompt_default_(aString,defaultString);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"prompt:default:",{aString:aString,defaultString:defaultString},$globals.PlatformInterface.klass)});
 //>>excludeEnd("ctx");
@@ -2166,11 +2125,10 @@ selector: "cr",
 protocol: 'printing',
 fn: function (){
 var self=this;
-function $String(){return $globals.String||(typeof String=="undefined"?nil:String)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv(self._current())._show_($recv($String())._cr());
+$recv(self._current())._show_($recv($globals.String)._cr());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"cr",{},$globals.Transcript.klass)});
@@ -2264,11 +2222,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;
@@ -2309,11 +2266,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;
@@ -2350,11 +2306,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;
@@ -2407,15 +2362,13 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
-function $JSObjectProxy(){return $globals.JSObjectProxy||(typeof JSObjectProxy=="undefined"?nil:JSObjectProxy)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self._jsObject());
 $recv(anInspector)._setLabel_(self._printString());
-$recv($JSObjectProxy())._addObjectVariablesTo_ofProxy_(variables,self);
+$recv($globals.JSObjectProxy)._addObjectVariablesTo_ofProxy_(variables,self);
 $recv(anInspector)._setVariables_(variables);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2438,11 +2391,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;
@@ -2495,11 +2447,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;
@@ -2535,11 +2486,10 @@ selector: "do:displayingProgress:",
 protocol: '*Platform-Services',
 fn: function (aBlock,aString){
 var self=this;
-function $ProgressHandler(){return $globals.ProgressHandler||(typeof ProgressHandler=="undefined"?nil:ProgressHandler)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($ProgressHandler())._do_on_displaying_(aBlock,self,aString);
+$recv($globals.ProgressHandler)._do_on_displaying_(aBlock,self,aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"do:displayingProgress:",{aBlock:aBlock,aString:aString},$globals.SequenceableCollection)});
@@ -2561,11 +2511,10 @@ protocol: '*Platform-Services',
 fn: function (anInspector){
 var self=this;
 var variables,i;
-function $Dictionary(){return $globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-variables=$recv($Dictionary())._new();
+variables=$recv($globals.Dictionary)._new();
 $recv(variables)._at_put_("#self",self);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["at:put:"]=1;

+ 13 - 22
src/SUnit-Tests.js

@@ -14,12 +14,11 @@ selector: "setUp",
 protocol: 'running',
 fn: function (){
 var self=this;
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-self["@empty"]=$recv($Set())._new();
-self["@full"]=$recv($Set())._with_with_((5),"abc");
+self["@empty"]=$recv($globals.Set)._new();
+self["@full"]=$recv($globals.Set)._with_with_((5),"abc");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.ExampleSetTest)});
@@ -90,7 +89,6 @@ selector: "testIllegal",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -102,7 +100,7 @@ return $recv(self["@empty"])._at_((5));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["should:raise:"]=1;
 //>>excludeEnd("ctx");
@@ -114,7 +112,7 @@ return $recv(self["@empty"])._at_put_((5),"abc");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testIllegal",{},$globals.ExampleSetTest)});
@@ -564,8 +562,6 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var suite,runner,result,assertBlock;
-function $TestSuiteRunner(){return $globals.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
-function $ResultAnnouncement(){return $globals.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -579,7 +575,7 @@ return $recv(self._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-runner=$recv($TestSuiteRunner())._on_(suite);
+runner=$recv($globals.TestSuiteRunner)._on_(suite);
 self._timeout_((200));
 result=$recv(runner)._result();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -607,7 +603,7 @@ return self._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$recv($recv(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
+$recv($recv(runner)._announcer())._on_do_($globals.ResultAnnouncement,(function(ann){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -641,7 +637,6 @@ selector: "testAsyncNeedsTimeout",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -658,7 +653,7 @@ $ctx2.sendIdx["async:"]=1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 self._timeout_((0));
 self._shouldnt_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -670,7 +665,7 @@ return self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 self._finished();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -692,7 +687,6 @@ selector: "testFinishedNeedsTimeout",
 protocol: 'tests',
 fn: function (){
 var self=this;
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -707,7 +701,7 @@ $ctx2.sendIdx["finished"]=1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 self._timeout_((0));
 self._shouldnt_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -717,7 +711,7 @@ return self._finished();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
-}),$Error());
+}),$globals.Error);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testFinishedNeedsTimeout",{},$globals.SUnitAsyncTest)});
@@ -816,9 +810,6 @@ protocol: 'tests',
 fn: function (){
 var self=this;
 var suite,runner,result,assertBlock;
-function $TestSuiteRunner(){return $globals.TestSuiteRunner||(typeof TestSuiteRunner=="undefined"?nil:TestSuiteRunner)}
-function $Set(){return $globals.Set||(typeof Set=="undefined"?nil:Set)}
-function $ResultAnnouncement(){return $globals.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -832,7 +823,7 @@ return $recv(self._class())._selector_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-runner=$recv($TestSuiteRunner())._on_(suite);
+runner=$recv($globals.TestSuiteRunner)._on_(suite);
 self._timeout_((200));
 result=$recv(runner)._result();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -846,7 +837,7 @@ $1=self._selectorSetOf_($recv(result)._errors());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["selectorSetOf:"]=1;
 //>>excludeEnd("ctx");
-self._assert_equals_($1,$recv($Set())._new());
+self._assert_equals_($1,$recv($globals.Set)._new());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["assert:equals:"]=1;
 //>>excludeEnd("ctx");
@@ -856,7 +847,7 @@ return self._finished();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$recv($recv(runner)._announcer())._on_do_($ResultAnnouncement(),(function(ann){
+$recv($recv(runner)._announcer())._on_do_($globals.ResultAnnouncement,(function(ann){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");

+ 15 - 29
src/SUnit.js

@@ -327,11 +327,10 @@ selector: "runCase",
 protocol: 'running',
 fn: function (){
 var self=this;
-function $TestContext(){return $globals.TestContext||(typeof TestContext=="undefined"?nil:TestContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($TestContext())._testCase_(self))._start();
+$recv($recv($globals.TestContext)._testCase_(self))._start();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"runCase",{},$globals.TestCase)});
@@ -503,12 +502,11 @@ selector: "signalFailure:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
-function $TestFailure(){return $globals.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($TestFailure())._new();
+$1=$recv($globals.TestFailure)._new();
 $recv($1)._messageText_(aString);
 $recv($1)._signal();
 return self;
@@ -692,8 +690,7 @@ selector: "lookupHierarchyRoot",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-function $TestCase(){return $globals.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
-return $TestCase();
+return $globals.TestCase;
 
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
@@ -1047,8 +1044,6 @@ selector: "withErrorReporting:",
 protocol: 'private',
 fn: function (aBlock){
 var self=this;
-function $TestFailure(){return $globals.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1056,7 +1051,7 @@ $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(aBlock)._on_do_($TestFailure(),(function(ex){
+return $recv(aBlock)._on_do_($globals.TestFailure,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
@@ -1068,7 +1063,7 @@ return $recv(self["@result"])._addFailure_(self["@testCase"]);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(ex){
+}))._on_do_($globals.Error,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1254,8 +1249,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Date(){return $globals.Date||(typeof Date=="undefined"?nil:Date)}
-function $Array(){return $globals.Array||(typeof Array=="undefined"?nil:Array)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1267,13 +1260,13 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@timestamp"]=$recv($Date())._now();
+self["@timestamp"]=$recv($globals.Date)._now();
 self["@runs"]=(0);
-self["@errors"]=$recv($Array())._new();
+self["@errors"]=$recv($globals.Array)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-self["@failures"]=$recv($Array())._new();
+self["@failures"]=$recv($globals.Array)._new();
 self["@total"]=(0);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1326,8 +1319,6 @@ selector: "runCase:",
 protocol: 'running',
 fn: function (aTestCase){
 var self=this;
-function $TestFailure(){return $globals.TestFailure||(typeof TestFailure=="undefined"?nil:TestFailure)}
-function $Error(){return $globals.Error||(typeof Error=="undefined"?nil:Error)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1344,7 +1335,7 @@ return $recv(aTestCase)._runCase();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
-}))._on_do_($TestFailure(),(function(ex){
+}))._on_do_($globals.TestFailure,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
@@ -1356,7 +1347,7 @@ return self._addFailure_(aTestCase);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}))._on_do_($Error(),(function(ex){
+}))._on_do_($globals.Error,(function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1523,11 +1514,10 @@ selector: "contextOf:",
 protocol: 'private',
 fn: function (anInteger){
 var self=this;
-function $ReportingTestContext(){return $globals.ReportingTestContext||(typeof ReportingTestContext=="undefined"?nil:ReportingTestContext)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv($ReportingTestContext())._testCase_result_finished_($recv(self["@suite"])._at_(anInteger),self["@result"],(function(){
+return $recv($globals.ReportingTestContext)._testCase_result_finished_($recv(self["@suite"])._at_(anInteger),self["@result"],(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1555,8 +1545,6 @@ selector: "initialize",
 protocol: 'initialization',
 fn: function (){
 var self=this;
-function $Announcer(){return $globals.Announcer||(typeof Announcer=="undefined"?nil:Announcer)}
-function $TestResult(){return $globals.TestResult||(typeof TestResult=="undefined"?nil:TestResult)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
@@ -1569,11 +1557,11 @@ $ctx1.supercall = true,
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = false;
 //>>excludeEnd("ctx");;
-self["@announcer"]=$recv($Announcer())._new();
+self["@announcer"]=$recv($globals.Announcer)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-self["@result"]=$recv($TestResult())._new();
+self["@result"]=$recv($globals.TestResult)._new();
 self["@runNextTest"]=(function(){
 var runs;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1627,12 +1615,11 @@ selector: "resume",
 protocol: 'actions',
 fn: function (){
 var self=this;
-function $ResultAnnouncement(){return $globals.ResultAnnouncement||(typeof ResultAnnouncement=="undefined"?nil:ResultAnnouncement)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 $recv(self["@runNextTest"])._fork();
-$recv(self["@announcer"])._announce_($recv($recv($ResultAnnouncement())._new())._result_(self["@result"]));
+$recv(self["@announcer"])._announce_($recv($recv($globals.ResultAnnouncement)._new())._result_(self["@result"]));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"resume",{},$globals.TestSuiteRunner)});
@@ -1754,11 +1741,10 @@ selector: "isTestClass",
 protocol: '*SUnit',
 fn: function (){
 var self=this;
-function $TestCase(){return $globals.TestCase||(typeof TestCase=="undefined"?nil:TestCase)}
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-return $recv(self._includesBehavior_($TestCase()))._and_((function(){
+return $recv(self._includesBehavior_($globals.TestCase))._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");

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