Browse Source

IRMethod manages some of aliasing logistics.

Side-effect: alias var renumbering.

Future ready for making aliasings
at different visitors as well, not just
in IRASTTranslator, as now.
Herby Vojčík 4 years ago
parent
commit
ebf2869dd3

+ 19 - 19
cli/src/AmberCli.js

@@ -1268,7 +1268,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2;
+var $1,$2,$3,$4,$5;
 $1=$recv([$recv(aUrl)._pathname()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["pathname"]=1
@@ -1281,19 +1281,19 @@ $self._respondFileNamed_to_([$recv(aDirname).__comma("index.html")
 //>>excludeEnd("ctx");
 ][0],aResponse);
 } else {
-$3=$recv($recv(aUrl)._pathname()).__comma("/");
-$5=$recv(aUrl)._search();
-if($5 == null || $5.a$nil){
+$2=$recv($recv(aUrl)._pathname()).__comma("/");
+$3=$recv(aUrl)._search();
+if($3 == null || $3.a$nil){
 $4="";
 } else {
-$4=$5;
+$4=$3;
 }
-$2=[$recv($3).__comma($4)
+$5=[$recv($2).__comma($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
 ][0];
-$self._respondRedirect_to_($2,aResponse);
+$self._respondRedirect_to_($5,aResponse);
 }
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2228,7 +2228,7 @@ var child,sanitizedTemplatePath;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 sanitizedTemplatePath=[$recv($recv($recv($self.path)._join_with_($self.nmPath,"@ambers/grunt-init-amber-project"))._replace_with_("\x5c\x5c","\x5c\x5c"))._replace_with_(":","\x5c:")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["replace:with:"]=1
@@ -2245,13 +2245,13 @@ $recv($1)._on_do_("close",(function(code){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(code).__eq((0));
-if($core.assert($3)){
-$2=nil;
+$2=$recv(code).__eq((0));
+if($core.assert($2)){
+$3=nil;
 } else {
-$2=code;
+$3=code;
 }
-return $recv(aBlock)._value_($2);
+return $recv(aBlock)._value_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({code:code},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -2491,7 +2491,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$1;
+var $1,$2,$3;
 return $self._parseAssignment_do_(buffer,(function(name,expr){
 var varName,value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2507,18 +2507,18 @@ $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$2=$recv(varName).__comma(" := ");
+$1=$recv(varName).__comma(" := ");
 if(expr == null || expr.a$nil){
-$3=buffer;
+$2=buffer;
 } else {
-$3=expr;
+$2=expr;
 }
-$1=[$recv($2).__comma($3)
+$3=[$recv($1).__comma($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx3.sendIdx[","]=1
 //>>excludeEnd("ctx");
 ][0];
-value=$self._eval_on_($1,$self.session);
+value=$self._eval_on_($3,$self.session);
 return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});

+ 1 - 0
lang/API-CHANGES.txt

@@ -27,6 +27,7 @@
   + asReceiver
 + IRMethod >>
   + aliasFactory
+  + newAliasingOf:
 + IRValue >>
   + asReceiver
 + IRVariable >>

+ 5 - 5
lang/src/Compiler-AST.js

@@ -2542,7 +2542,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $recv($recv([$recv([$self._methodNode()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["methodNode"]=1
@@ -2561,10 +2561,10 @@ return $recv($globals.CompilerError)._signal_("There must be no other code or co
 //>>excludeEnd("ctx");
 }));
 $1=$recv($self._methodNode())._sequenceNode();
-$3=$recv($globals.JSStatementNode)._new();
-$recv($3)._source_(aString);
-$2=$recv($3)._yourself();
-$recv($1)._addDagChild_($2);
+$2=$recv($globals.JSStatementNode)._new();
+$recv($2)._source_(aString);
+$3=$recv($2)._yourself();
+$recv($1)._addDagChild_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"inlineJS:",{aString:aString})});

+ 7 - 7
lang/src/Compiler-Core.js

@@ -1144,19 +1144,19 @@ var package_;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 package_=$recv(aClass)._packageOfProtocol_(anotherString);
 [$self._currentPackage_(package_)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["currentPackage:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$2=$recv($self._codeGeneratorClass())._new();
-$recv($2)._source_(aString);
-$recv($2)._currentClass_(aClass);
-$recv($2)._currentPackage_(package_);
-$1=$recv($2)._yourself();
-$self._codeGenerator_($1);
+$1=$recv($self._codeGeneratorClass())._new();
+$recv($1)._source_(aString);
+$recv($1)._currentClass_(aClass);
+$recv($1)._currentPackage_(package_);
+$2=$recv($1)._yourself();
+$self._codeGenerator_($2);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"start:forClass:protocol:",{aString:aString,aClass:aClass,anotherString:anotherString,package_:package_})});

+ 113 - 92
lang/src/Compiler-IR.js

@@ -46,18 +46,18 @@ selector: "alias:",
 protocol: "visiting",
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anExpressionNode"],
-source: "alias: anExpressionNode\x0a\x09| variable |\x0a\x0a\x09anExpressionNode isIdempotent ifTrue: [ ^ self visit: anExpressionNode ].\x0a\x0a\x09variable := IRVariable new\x0a\x09\x09variable: self method aliasFactory next;\x0a\x09\x09yourself.\x0a\x0a\x09self addToSequence: (IRAssignment new\x0a\x09\x09add: variable;\x0a\x09\x09add: (self visit: anExpressionNode);\x0a\x09\x09yourself).\x0a\x0a\x09self method internalVariables add: variable.\x0a\x0a\x09^ variable",
-referencedClasses: ["IRVariable", "IRAssignment"],
+source: "alias: anExpressionNode\x0a\x09| assignment |\x0a\x0a\x09anExpressionNode isIdempotent ifTrue: [ ^ self visit: anExpressionNode ].\x0a\x0a\x09assignment := self method newAliasingOf: (self visit: anExpressionNode).\x0a\x09self addToSequence: assignment.\x0a\x0a\x09^ assignment left",
+referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
-messageSends: ["ifTrue:", "isIdempotent", "visit:", "variable:", "new", "next", "aliasFactory", "method", "yourself", "addToSequence:", "add:", "internalVariables"]
+messageSends: ["ifTrue:", "isIdempotent", "visit:", "newAliasingOf:", "method", "addToSequence:", "left"]
 }, function ($methodClass){ return function (anExpressionNode){
 var self=this,$self=this;
-var variable;
+var assignment;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1;
 $1=$recv(anExpressionNode)._isIdempotent();
 if($core.assert($1)){
 return [$self._visit_(anExpressionNode)
@@ -66,38 +66,11 @@ return [$self._visit_(anExpressionNode)
 //>>excludeEnd("ctx");
 ][0];
 }
-$2=[$recv($globals.IRVariable)._new()
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-,$ctx1.sendIdx["new"]=1
-//>>excludeEnd("ctx");
-][0];
-$recv($2)._variable_($recv($recv([$self._method()
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-,$ctx1.sendIdx["method"]=1
-//>>excludeEnd("ctx");
-][0])._aliasFactory())._next());
-variable=[$recv($2)._yourself()
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-,$ctx1.sendIdx["yourself"]=1
-//>>excludeEnd("ctx");
-][0];
-$4=$recv($globals.IRAssignment)._new();
-[$recv($4)._add_(variable)
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-,$ctx1.sendIdx["add:"]=1
-//>>excludeEnd("ctx");
-][0];
-[$recv($4)._add_($self._visit_(anExpressionNode))
+assignment=$recv($self._method())._newAliasingOf_($self._visit_(anExpressionNode));
+$self._addToSequence_(assignment);
+return $recv(assignment)._left();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-,$ctx1.sendIdx["add:"]=2
-//>>excludeEnd("ctx");
-][0];
-$3=$recv($4)._yourself();
-$self._addToSequence_($3);
-$recv($recv($self._method())._internalVariables())._add_(variable);
-return variable;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"alias:",{anExpressionNode:anExpressionNode,variable:variable})});
+}, function($ctx1) {$ctx1.fill(self,"alias:",{anExpressionNode:anExpressionNode,assignment:assignment})});
 //>>excludeEnd("ctx");
 }; }),
 $globals.IRASTTranslator);
@@ -329,22 +302,22 @@ var left,right,assignment;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 right=[$self._visit_($recv(aNode)._right())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
 ][0];
 left=$self._visit_($recv(aNode)._left());
-$2=$recv($globals.IRAssignment)._new();
-[$recv($2)._add_(left)
+$1=$recv($globals.IRAssignment)._new();
+[$recv($1)._add_(left)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($2)._add_(right);
-$1=$recv($2)._yourself();
-$self._addToSequence_($1);
+$recv($1)._add_(right);
+$2=$recv($1)._yourself();
+$self._addToSequence_($2);
 return left;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode,left:left,right:right,assignment:assignment})});
@@ -369,7 +342,7 @@ var closure;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$2,$3,$4;
 $1=[$recv($globals.IRClosure)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
@@ -400,11 +373,11 @@ $recv($recv([$recv(aNode)._scope()
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $2=closure;
-$4=$recv($globals.IRTempDeclaration)._new();
-$recv($4)._name_($recv(each)._name());
-$recv($4)._scope_($recv(aNode)._scope());
-$3=$recv($4)._yourself();
-return [$recv($2)._add_($3)
+$3=$recv($globals.IRTempDeclaration)._new();
+$recv($3)._name_($recv(each)._name());
+$recv($3)._scope_($recv(aNode)._scope());
+$4=$recv($3)._yourself();
+return [$recv($2)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
@@ -437,7 +410,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 return $self._withSequence_do_([$recv($globals.IRBlockSequence)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
@@ -487,8 +460,8 @@ $1=$recv([$recv([$recv(aNode)._dagChildren()
 if($core.assert($1)){
 return $self._addToSequence_($self._visit_($recv($recv(aNode)._dagChildren())._last()));
 } else {
-$3=$recv($globals.IRBlockReturn)._new();
-$recv($3)._add_($self._visitOrAlias_([$recv([$recv(aNode)._dagChildren()
+$2=$recv($globals.IRBlockReturn)._new();
+$recv($2)._add_($self._visitOrAlias_([$recv([$recv(aNode)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx3.sendIdx["dagChildren"]=4
 //>>excludeEnd("ctx");
@@ -497,8 +470,8 @@ $recv($3)._add_($self._visitOrAlias_([$recv([$recv(aNode)._dagChildren()
 ,$ctx3.sendIdx["last"]=2
 //>>excludeEnd("ctx");
 ][0]));
-$2=$recv($3)._yourself();
-return [$self._addToSequence_($2)
+$3=$recv($2)._yourself();
+return [$self._addToSequence_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx3.sendIdx["addToSequence:"]=2
 //>>excludeEnd("ctx");
@@ -691,13 +664,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$1,$4,$6,$5,$7,$8,$10,$12,$11,$9,$14,$13;
-$2=[$recv($globals.IRMethod)._new()
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14;
+$1=[$recv($globals.IRMethod)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($2)._source_([$recv($self._source())._crlfSanitized()
+[$recv($1)._source_([$recv($self._source())._crlfSanitized()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["crlfSanitized"]=1
 //>>excludeEnd("ctx");
@@ -706,7 +679,7 @@ $2=[$recv($globals.IRMethod)._new()
 ,$ctx1.sendIdx["source:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($2)._pragmas_([$recv($recv(aNode)._pragmas())._collect_((function(each){
+$recv($1)._pragmas_([$recv($recv(aNode)._pragmas())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -722,8 +695,8 @@ return $recv($globals.Message)._selector_arguments_([$recv(each)._selector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$3=$recv(eachArg)._isString();
-if($core.assert($3)){
+$2=$recv(eachArg)._isString();
+if($core.assert($2)){
 return $recv(eachArg)._crlfSanitized();
 } else {
 return eachArg;
@@ -740,13 +713,13 @@ return eachArg;
 ,$ctx1.sendIdx["collect:"]=1
 //>>excludeEnd("ctx");
 ][0]);
-$recv($2)._theClass_($self._theClass());
-$recv($2)._arguments_($recv(aNode)._arguments());
-$recv($2)._selector_($recv(aNode)._selector());
-$recv($2)._sendIndexes_($recv(aNode)._sendIndexes());
-$recv($2)._requiresSmalltalkContext_($recv(aNode)._requiresSmalltalkContext());
-$recv($2)._classReferences_($recv(aNode)._classReferences());
-[$recv($2)._scope_([$recv(aNode)._scope()
+$recv($1)._theClass_($self._theClass());
+$recv($1)._arguments_($recv(aNode)._arguments());
+$recv($1)._selector_($recv(aNode)._selector());
+$recv($1)._sendIndexes_($recv(aNode)._sendIndexes());
+$recv($1)._requiresSmalltalkContext_($recv(aNode)._requiresSmalltalkContext());
+$recv($1)._classReferences_($recv(aNode)._classReferences());
+[$recv($1)._scope_([$recv(aNode)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["scope"]=1
 //>>excludeEnd("ctx");
@@ -755,12 +728,12 @@ $recv($2)._classReferences_($recv(aNode)._classReferences());
 ,$ctx1.sendIdx["scope:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$1=[$recv($2)._yourself()
+$3=[$recv($1)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-$self._method_($1);
+$self._method_($3);
 $recv($recv([$recv(aNode)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["scope"]=2
@@ -774,23 +747,23 @@ $4=[$self._method()
 ,$ctx2.sendIdx["method"]=1
 //>>excludeEnd("ctx");
 ][0];
-$6=[$recv($globals.IRTempDeclaration)._new()
+$5=[$recv($globals.IRTempDeclaration)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-$recv($6)._name_($recv(each)._name());
-$recv($6)._scope_([$recv(aNode)._scope()
+$recv($5)._name_($recv(each)._name());
+$recv($5)._scope_([$recv(aNode)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["scope"]=3
 //>>excludeEnd("ctx");
 ][0]);
-$5=[$recv($6)._yourself()
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-return [$recv($4)._add_($5)
+return [$recv($4)._add_($6)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
@@ -819,41 +792,41 @@ $8=[$self._method()
 ,$ctx1.sendIdx["method"]=3
 //>>excludeEnd("ctx");
 ][0];
-$10=[$recv($globals.IRReturn)._new()
+$9=[$recv($globals.IRReturn)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=3
 //>>excludeEnd("ctx");
 ][0];
-$12=[$recv($globals.IRVariable)._new()
+$10=[$recv($globals.IRVariable)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=4
 //>>excludeEnd("ctx");
 ][0];
-$recv($12)._variable_($recv($recv($recv(aNode)._scope())._pseudoVars())._at_("self"));
-$11=[$recv($12)._yourself()
+$recv($10)._variable_($recv($recv($recv(aNode)._scope())._pseudoVars())._at_("self"));
+$11=[$recv($10)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=3
 //>>excludeEnd("ctx");
 ][0];
-[$recv($10)._add_($11)
+[$recv($9)._add_($11)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["add:"]=4
 //>>excludeEnd("ctx");
 ][0];
-$9=[$recv($10)._yourself()
+$12=[$recv($9)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=4
 //>>excludeEnd("ctx");
 ][0];
-[$recv($8)._add_($9)
+[$recv($8)._add_($12)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["add:"]=3
 //>>excludeEnd("ctx");
 ][0];
-$14=$recv($globals.IRVerbatim)._new();
-$recv($14)._source_(";".__comma($recv($globals.String)._lf()));
-$13=$recv($14)._yourself();
-$recv($8)._add_($13);
+$13=$recv($globals.IRVerbatim)._new();
+$recv($13)._source_(";".__comma($recv($globals.String)._lf()));
+$14=$recv($13)._yourself();
+$recv($8)._add_($14);
 }
 return $self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -907,20 +880,20 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
-$2=$recv(aNode)._nonLocalReturn();
-if($core.assert($2)){
-$1=[$recv($globals.IRNonLocalReturn)._new()
+var $1,$2;
+$1=$recv(aNode)._nonLocalReturn();
+if($core.assert($1)){
+$2=[$recv($globals.IRNonLocalReturn)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
 } else {
-$1=$recv($globals.IRReturn)._new();
+$2=$recv($globals.IRReturn)._new();
 }
-$recv($1)._scope_($recv(aNode)._scope());
-$recv($1)._add_($self._visitOrAlias_($recv(aNode)._expression()));
-return $recv($1)._yourself();
+$recv($2)._scope_($recv(aNode)._scope());
+$recv($2)._add_($self._visitOrAlias_($recv(aNode)._expression()));
+return $recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode})});
 //>>excludeEnd("ctx");
@@ -2255,6 +2228,54 @@ return self;
 }; }),
 $globals.IRMethod);
 
+$core.addMethod(
+$core.method({
+selector: "newAliasingOf:",
+protocol: "accessing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["anIRInstruction"],
+source: "newAliasingOf: anIRInstruction\x0a\x09| variable |\x0a\x0a\x09variable := IRVariable new\x0a\x09\x09variable: self aliasFactory next;\x0a\x09\x09yourself.\x0a\x0a\x09self internalVariables add: variable.\x0a\x0a\x09^ IRAssignment new\x0a\x09\x09add: variable;\x0a\x09\x09add: anIRInstruction;\x0a\x09\x09yourself",
+referencedClasses: ["IRVariable", "IRAssignment"],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: ["variable:", "new", "next", "aliasFactory", "yourself", "add:", "internalVariables"]
+}, function ($methodClass){ return function (anIRInstruction){
+var self=this,$self=this;
+var variable;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1,$2;
+$1=[$recv($globals.IRVariable)._new()
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+,$ctx1.sendIdx["new"]=1
+//>>excludeEnd("ctx");
+][0];
+$recv($1)._variable_($recv($self._aliasFactory())._next());
+variable=[$recv($1)._yourself()
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+,$ctx1.sendIdx["yourself"]=1
+//>>excludeEnd("ctx");
+][0];
+[$recv($self._internalVariables())._add_(variable)
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+,$ctx1.sendIdx["add:"]=1
+//>>excludeEnd("ctx");
+][0];
+$2=$recv($globals.IRAssignment)._new();
+[$recv($2)._add_(variable)
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+,$ctx1.sendIdx["add:"]=2
+//>>excludeEnd("ctx");
+][0];
+$recv($2)._add_(anIRInstruction);
+return $recv($2)._yourself();
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"newAliasingOf:",{anIRInstruction:anIRInstruction,variable:variable})});
+//>>excludeEnd("ctx");
+}; }),
+$globals.IRMethod);
+
 $core.addMethod(
 $core.method({
 selector: "pragmas",

+ 19 - 12
lang/src/Compiler-IR.st

@@ -58,22 +58,14 @@ addToSequence: anInstruction
 !
 
 alias: anExpressionNode
-	| variable |
+	| assignment |
 
 	anExpressionNode isIdempotent ifTrue: [ ^ self visit: anExpressionNode ].
 
-	variable := IRVariable new
-		variable: self method aliasFactory next;
-		yourself.
-
-	self addToSequence: (IRAssignment new
-		add: variable;
-		add: (self visit: anExpressionNode);
-		yourself).
-
-	self method internalVariables add: variable.
+	assignment := self method newAliasingOf: (self visit: anExpressionNode).
+	self addToSequence: assignment.
 
-	^ variable
+	^ assignment left
 !
 
 aliasTemporally: aCollection
@@ -534,6 +526,21 @@ method
 	^ self
 !
 
+newAliasingOf: anIRInstruction
+	| variable |
+
+	variable := IRVariable new
+		variable: self aliasFactory next;
+		yourself.
+
+	self internalVariables add: variable.
+
+	^ IRAssignment new
+		add: variable;
+		add: anIRInstruction;
+		yourself
+!
+
 pragmas
 	^ pragmas
 !

+ 39 - 39
lang/src/Compiler-Inlining.js

@@ -1169,32 +1169,32 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2;
+var $1,$2,$3,$4,$5;
 $1=[$recv($globals.IRInlinedIfNilIfNotNil)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($globals.IRClosure)._new()
+$2=[$recv($globals.IRClosure)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-$recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$5=$recv($globals.IRBlockSequence)._new();
-$recv($5)._add_($recv($self._send())._receiver());
-$4=[$recv($5)._yourself()
+$recv($2)._scope_($recv($recv(anIRInstruction)._scope())._copy());
+$3=$recv($globals.IRBlockSequence)._new();
+$recv($3)._add_($recv($self._send())._receiver());
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($3)._add_($4)
+[$recv($2)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$2=$recv($3)._yourself();
-return $self._inlinedSend_withBlock_withBlock_($1,anIRInstruction,$2);
+$5=$recv($2)._yourself();
+return $self._inlinedSend_withBlock_withBlock_($1,anIRInstruction,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction})});
 //>>excludeEnd("ctx");
@@ -1240,32 +1240,32 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2;
+var $1,$2,$3,$4,$5;
 $1=[$recv($globals.IRInlinedIfNilIfNotNil)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($globals.IRClosure)._new()
+$2=[$recv($globals.IRClosure)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-$recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$5=$recv($globals.IRBlockSequence)._new();
-$recv($5)._add_($recv($self._send())._receiver());
-$4=[$recv($5)._yourself()
+$recv($2)._scope_($recv($recv(anIRInstruction)._scope())._copy());
+$3=$recv($globals.IRBlockSequence)._new();
+$recv($3)._add_($recv($self._send())._receiver());
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($3)._add_($4)
+[$recv($2)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$2=$recv($3)._yourself();
-return $self._inlinedSend_withBlock_withBlock_($1,$2,anIRInstruction);
+$5=$recv($2)._yourself();
+return $self._inlinedSend_withBlock_withBlock_($1,$5,anIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction})});
 //>>excludeEnd("ctx");
@@ -1358,7 +1358,7 @@ var inlinedClosure,sequence,statements;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3,$5,$7,$9,$11,$10,$8,$6;
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11;
 inlinedClosure=$self._inlinedClosure();
 $1=inlinedClosure;
 [$recv($1)._scope_([$recv(anIRClosure)._scope()
@@ -1394,58 +1394,58 @@ sequence=$self._inlinedSequence();
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $2=inlinedClosure;
-$4=[$recv($globals.IRTempDeclaration)._new()
+$3=[$recv($globals.IRTempDeclaration)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($4)._name_(each)
+[$recv($3)._name_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["name:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($4)._yourself()
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($2)._add_($3)
+[$recv($2)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=2
 //>>excludeEnd("ctx");
 ][0];
 $5=sequence;
-$7=[$recv($globals.IRAssignment)._new()
+$6=[$recv($globals.IRAssignment)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-$9=[$recv($globals.IRVariable)._new()
+$7=[$recv($globals.IRVariable)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["new"]=3
 //>>excludeEnd("ctx");
 ][0];
-$11=$recv($globals.ArgVar)._new();
-$recv($11)._scope_($recv(inlinedClosure)._scope());
-$recv($11)._name_(each);
-$10=[$recv($11)._yourself()
+$8=$recv($globals.ArgVar)._new();
+$recv($8)._scope_($recv(inlinedClosure)._scope());
+$recv($8)._name_(each);
+$9=[$recv($8)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-$8=$recv($9)._variable_($10);
-[$recv($7)._add_($8)
+$10=$recv($7)._variable_($9);
+[$recv($6)._add_($10)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=4
 //>>excludeEnd("ctx");
 ][0];
-[$recv($7)._add_($recv($self._send())._receiver())
+[$recv($6)._add_($recv($self._send())._receiver())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=5
 //>>excludeEnd("ctx");
 ][0];
-$6=$recv($7)._yourself();
-return [$recv($5)._add_($6)
+$11=$recv($6)._yourself();
+return [$recv($5)._add_($11)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["add:"]=3
 //>>excludeEnd("ctx");
@@ -1585,7 +1585,7 @@ var sequence,statements,final;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2,$4;
+var $1,$2,$3,$4;
 sequence=$recv(closure)._sequence();
 statements=[$recv(sequence)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1597,10 +1597,10 @@ $recv($recv(sequence)._dagChildren())._ifEmpty_((function(){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $1=sequence;
-$3=$recv($globals.IRVariable)._new();
-$recv($3)._variable_($recv($recv($recv(closure)._scope())._pseudoVars())._at_("nil"));
-$2=$recv($3)._yourself();
-return $recv($1)._add_($2);
+$2=$recv($globals.IRVariable)._new();
+$recv($2)._variable_($recv($recv($recv(closure)._scope())._pseudoVars())._at_("nil"));
+$3=$recv($2)._yourself();
+return $recv($1)._add_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");

+ 7 - 7
lang/src/Compiler-Interpreter.js

@@ -2556,16 +2556,16 @@ var nd,parent;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 nd=$self._node();
 parent=$recv(nd)._parent();
-$2=parent;
-if($2 == null || $2.a$nil){
-$1=$2;
+$1=parent;
+if($1 == null || $1.a$nil){
+$2=$1;
 } else {
-$1=$recv(parent)._nextSiblingNode_(nd);
+$2=$recv(parent)._nextSiblingNode_(nd);
 }
-if($1 == null || $1.a$nil){
+if($2 == null || $2.a$nil){
 [$self._node_(parent)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["node:"]=1
@@ -2573,7 +2573,7 @@ if($1 == null || $1.a$nil){
 ][0];
 } else {
 var sibling;
-sibling=$1;
+sibling=$2;
 $self._node_(sibling);
 $self._enterNode();
 }

+ 11 - 11
lang/src/Compiler-Semantic.js

@@ -986,7 +986,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$2,$3,$4;
 $1=$self.pseudoVars;
 if($1 == null || $1.a$nil){
 $self.pseudoVars=$recv($globals.Dictionary)._new();
@@ -995,10 +995,10 @@ $recv($recv($globals.PseudoVar)._dictionary())._keysAndValuesDo_((function(each,
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $2=$self.pseudoVars;
-$4=$recv(impl)._on_(each);
-$recv($4)._scope_($self._methodScope());
-$3=$recv($4)._yourself();
-return $recv($2)._at_put_(each,$3);
+$3=$recv(impl)._on_(each);
+$recv($3)._scope_($self._methodScope());
+$4=$recv($3)._yourself();
+return $recv($2)._at_put_(each,$4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each,impl:impl},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -2477,18 +2477,18 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
-$2=$recv($self.currentScope)._lookupVariable_([$recv(aNode)._identifier()
+var $1,$2;
+$1=$recv($self.currentScope)._lookupVariable_([$recv(aNode)._identifier()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["identifier"]=1
 //>>excludeEnd("ctx");
 ][0]);
-if($2 == null || $2.a$nil){
-$1=$self._bindUnscopedVariable_($recv(aNode)._identifier());
+if($1 == null || $1.a$nil){
+$2=$self._bindUnscopedVariable_($recv(aNode)._identifier());
 } else {
-$1=$2;
+$2=$1;
 }
-$recv(aNode)._binding_($1);
+$recv(aNode)._binding_($2);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode})});

+ 41 - 41
lang/src/Compiler-Tests.js

@@ -1943,7 +1943,7 @@ var ast,result;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$4,$3,$2;
+var $1,$2,$3,$4;
 ast=$self._parse_forClass_("foo <inlineJS: 'consolee.log(1)'>",$globals.Object);
 $1=$self._astPCNodeVisitor();
 [$recv($1)._visit_(ast)
@@ -1952,11 +1952,11 @@ $1=$self._astPCNodeVisitor();
 //>>excludeEnd("ctx");
 ][0];
 result=$recv($1)._currentNode();
-$4=$self._newTeachableVisitor();
-$recv($4)._whenSend_return_("visitJSStatementNode:","JS");
-$3=$recv($4)._yourself();
-$2=$recv($3)._visit_(result);
-$self._assert_equals_($2,"JS");
+$2=$self._newTeachableVisitor();
+$recv($2)._whenSend_return_("visitJSStatementNode:","JS");
+$3=$recv($2)._yourself();
+$4=$recv($3)._visit_(result);
+$self._assert_equals_($4,"JS");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testJSStatementNode",{ast:ast,result:result})});
@@ -1981,13 +1981,13 @@ var ast;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
+var $1,$2,$3;
 ast=$self._parse_forClass_("foo self asString yourself. ^ self asBoolean",$globals.Object);
-$3=$self._astPCNodeVisitorForSelector_("yourself");
-$recv($3)._visit_(ast);
-$2=$recv($3)._currentNode();
-$1=$recv($2)._selector();
-$self._assert_equals_($1,"yourself");
+$1=$self._astPCNodeVisitorForSelector_("yourself");
+$recv($1)._visit_(ast);
+$2=$recv($1)._currentNode();
+$3=$recv($2)._selector();
+$self._assert_equals_($3,"yourself");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testMessageSend",{ast:ast})});
@@ -2012,13 +2012,13 @@ var ast;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
+var $1,$2,$3;
 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();
-$1=$recv($2)._selector();
-$self._assert_equals_($1,"yourself");
+$1=$self._astPCNodeVisitorForSelector_("yourself");
+$recv($1)._visit_(ast);
+$2=$recv($1)._currentNode();
+$3=$recv($2)._selector();
+$self._assert_equals_($3,"yourself");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testMessageSendWithBlocks",{ast:ast})});
@@ -2043,43 +2043,43 @@ var ast;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1,$6,$5,$4;
+var $1,$2,$3,$4,$5,$6;
 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");
 ][0];
-$3=[$self._astPCNodeVisitorForSelector_("yourself")
+$1=[$self._astPCNodeVisitorForSelector_("yourself")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["astPCNodeVisitorForSelector:"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($3)._visit_(ast)
+[$recv($1)._visit_(ast)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$2=[$recv($3)._currentNode()
+$2=[$recv($1)._currentNode()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["currentNode"]=1
 //>>excludeEnd("ctx");
 ][0];
-$1=[$recv($2)._selector()
+$3=[$recv($2)._selector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["selector"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($1,"yourself")
+[$self._assert_equals_($3,"yourself")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
 ast=$self._parse_forClass_("foo true ifTrue: [ self asString yourself ]. ^ self asBoolean",$globals.Object);
-$6=$self._astPCNodeVisitorForSelector_("asBoolean");
-$recv($6)._visit_(ast);
-$5=$recv($6)._currentNode();
-$4=$recv($5)._selector();
-$self._assert_equals_($4,"asBoolean");
+$4=$self._astPCNodeVisitorForSelector_("asBoolean");
+$recv($4)._visit_(ast);
+$5=$recv($4)._currentNode();
+$6=$recv($5)._selector();
+$self._assert_equals_($6,"asBoolean");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testMessageSendWithInlining",{ast:ast})});
@@ -2104,13 +2104,13 @@ var ast;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
+var $1,$2,$3;
 ast=$self._parse_forClass_("foo ^ self",$globals.Object);
-$3=$self._astPCNodeVisitor();
-$recv($3)._visit_(ast);
-$2=$recv($3)._currentNode();
-$1=$recv($2)._isNil();
-$self._assert_($1);
+$1=$self._astPCNodeVisitor();
+$recv($1)._visit_(ast);
+$2=$recv($1)._currentNode();
+$3=$recv($2)._isNil();
+$self._assert_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testNoMessageSend",{ast:ast})});
@@ -3499,17 +3499,17 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $1=$recv($globals.AISemanticAnalyzer)._on_($globals.Object);
-$3=$recv($globals.AIContext)._new();
-$recv($3)._defineLocal_("local");
-$recv($3)._localAt_put_("local",(3));
-$2=[$recv($3)._yourself()
+$2=$recv($globals.AIContext)._new();
+$recv($2)._defineLocal_("local");
+$recv($2)._localAt_put_("local",(3));
+$3=[$recv($2)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($1)._context_($2);
+$recv($1)._context_($3);
 $self.analyzer=$recv($1)._yourself();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 20 - 20
lang/src/Kernel-Announcements.js

@@ -398,29 +398,29 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2;
+var $1,$2,$3,$4,$5;
 $1=$self.subscriptions;
-$3=[$recv($globals.AnnouncementSubscription)._new()
+$2=[$recv($globals.AnnouncementSubscription)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-$5=$recv($globals.AnnouncementValuable)._new();
-$recv($5)._valuable_(aBlock);
-$recv($5)._receiver_(aReceiver);
-$4=[$recv($5)._yourself()
+$3=$recv($globals.AnnouncementValuable)._new();
+$recv($3)._valuable_(aBlock);
+$recv($3)._receiver_(aReceiver);
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($3)._valuable_($4)
+[$recv($2)._valuable_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["valuable:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($3)._announcementClass_(aClass);
-$2=$recv($3)._yourself();
-$recv($1)._add_($2);
+$recv($2)._announcementClass_(aClass);
+$5=$recv($2)._yourself();
+$recv($1)._add_($5);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"on:do:for:",{aClass:aClass,aBlock:aBlock,aReceiver:aReceiver})});
@@ -483,25 +483,25 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2;
+var $1,$2,$3,$4,$5;
 $1=$self.subscriptions;
-$3=[$recv($globals.AnnouncementSubscription)._new()
+$2=[$recv($globals.AnnouncementSubscription)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
 ][0];
-$5=$recv($globals.MessageSend)._new();
-$recv($5)._receiver_(anObject);
-$recv($5)._selector_(aSelector);
-$4=[$recv($5)._yourself()
+$3=$recv($globals.MessageSend)._new();
+$recv($3)._receiver_(anObject);
+$recv($3)._selector_(aSelector);
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($3)._valuable_($4);
-$recv($3)._announcementClass_(aClass);
-$2=$recv($3)._yourself();
-$recv($1)._add_($2);
+$recv($2)._valuable_($4);
+$recv($2)._announcementClass_(aClass);
+$5=$recv($2)._yourself();
+$recv($1)._add_($5);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"on:send:to:",{aClass:aClass,aSelector:aSelector,anObject:anObject})});

+ 49 - 49
lang/src/Kernel-Classes.js

@@ -1651,13 +1651,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self._basicClass_instanceVariables_(aClass,aCollection);
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ClassDefinitionChanged)._new();
-$recv($3)._theClass_(aClass);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ClassDefinitionChanged)._new();
+$recv($2)._theClass_(aClass);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"class:slots:",{aClass:aClass,aCollection:aCollection})});
@@ -1682,14 +1682,14 @@ var newClass;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 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($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ClassAdded)._new();
-$recv($3)._theClass_(newClass);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ClassAdded)._new();
+$recv($2)._theClass_(newClass);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return newClass;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"copyClass:named:",{aClass:aClass,className:className,newClass:newClass})});
@@ -1857,7 +1857,7 @@ var oldClass,newClass,tmp;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 tmp="new*".__comma(className);
 oldClass=$recv($recv($globals.Smalltalk)._globals())._at_(className);
 newClass=$self._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
@@ -1906,11 +1906,11 @@ return $self._migrateClass_superclass_(each,newClass);
 }));
 $self._basicRemoveClass_(oldClass);
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ClassMigrated)._new();
-$recv($3)._theClass_(newClass);
-$recv($3)._oldClass_(oldClass);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ClassMigrated)._new();
+$recv($2)._theClass_(newClass);
+$recv($2)._oldClass_(oldClass);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return newClass;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"migrateClassNamed:superclass:instanceVariableNames:package:",{className:className,aClass:aClass,aCollection:aCollection,packageName:packageName,oldClass:oldClass,newClass:newClass,tmp:tmp})});
@@ -1960,14 +1960,14 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self._basicRenameClass_to_(aClass,className);
 $recv(aClass)._recompile();
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ClassRenamed)._new();
-$recv($3)._theClass_(aClass);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ClassRenamed)._new();
+$recv($2)._theClass_(aClass);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"renameClass:to:",{aClass:aClass,className:className})});
@@ -2015,7 +2015,7 @@ var newClass;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$2,$3,$4;
 if(packageName == null || packageName.a$nil){
 $1="unclassified";
 } else {
@@ -2023,10 +2023,10 @@ $1=packageName;
 }
 newClass=$self._addSubclassOf_named_instanceVariableNames_package_(aClass,className,aCollection,$1);
 $2=$recv($globals.SystemAnnouncer)._current();
-$4=$recv($globals.ClassAdded)._new();
-$recv($4)._theClass_(newClass);
-$3=$recv($4)._yourself();
-$recv($2)._announce_($3);
+$3=$recv($globals.ClassAdded)._new();
+$recv($3)._theClass_(newClass);
+$4=$recv($3)._yourself();
+$recv($2)._announce_($4);
 return newClass;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"superclass:subclass:slots:package:",{aClass:aClass,className:className,aCollection:aCollection,packageName:packageName,newClass:newClass})});
@@ -2052,7 +2052,7 @@ var root,members;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 root=[nil,[]];
 members=$recv($globals.HashedCollection)._new();
 [$recv(aCollection)._do_((function(each){
@@ -2094,19 +2094,19 @@ var target;
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $1=members;
-$3=$recv(each)._superclass();
-if($3 == null || $3.a$nil){
-$2=$3;
+$2=$recv(each)._superclass();
+if($2 == null || $2.a$nil){
+$3=$2;
 } else {
 var superklass;
-superklass=$3;
-$2=[$recv(superklass)._name()
+superklass=$2;
+$3=[$recv(superklass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx["name"]=4
 //>>excludeEnd("ctx");
 ][0];
 }
-target=$recv($1)._at_ifAbsent_($2,(function(){
+target=$recv($1)._at_ifAbsent_($3,(function(){
 return root;
 
 }));
@@ -2963,13 +2963,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self._basicRemoveCompiledMethod_(aMethod);
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.MethodRemoved)._new();
-$recv($3)._method_(aMethod);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.MethodRemoved)._new();
+$recv($2)._method_(aMethod);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeCompiledMethod:",{aMethod:aMethod})});
@@ -3325,13 +3325,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self._basicAt_put_("comment",aString);
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ClassCommentChanged)._new();
-$recv($3)._theClass_(self);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ClassCommentChanged)._new();
+$recv($2)._theClass_(self);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"comment:",{aString:aString})});
@@ -3490,7 +3490,7 @@ var oldPackage;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$2,$3,$4;
 $1=$recv([$self._package()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["package"]=1
@@ -3504,11 +3504,11 @@ $self._leaveOrganization();
 $self._basicAt_put_("category",$recv(aPackage)._name());
 $self._enterOrganization();
 $2=$recv($globals.SystemAnnouncer)._current();
-$4=$recv($globals.ClassMoved)._new();
-$recv($4)._theClass_(self);
-$recv($4)._oldPackage_(oldPackage);
-$3=$recv($4)._yourself();
-$recv($2)._announce_($3);
+$3=$recv($globals.ClassMoved)._new();
+$recv($3)._theClass_(self);
+$recv($3)._oldPackage_(oldPackage);
+$4=$recv($3)._yourself();
+$recv($2)._announce_($4);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage,oldPackage:oldPackage})});

+ 4 - 4
lang/src/Kernel-Collections.js

@@ -6337,7 +6337,7 @@ var lineCount;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 var $early={};
 try {
 lineCount=(0);
@@ -6346,9 +6346,9 @@ $self._lineIndicesDo_((function(start,endWithoutDelimiters,end){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 lineCount=$recv(lineCount).__plus((1));
-$2=lineCount;
-$1=$recv($2).__eq(anIndex);
-if($core.assert($1)){
+$1=lineCount;
+$2=$recv($1).__eq(anIndex);
+if($core.assert($2)){
 throw $early=[$self._copyFrom_to_(start,endWithoutDelimiters)];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 27 - 27
lang/src/Kernel-Infrastructure.js

@@ -948,7 +948,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
@@ -959,11 +959,11 @@ $ctx1.supercall = true,
 //>>excludeEnd("ctx");
 ][0];
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ProtocolAdded)._new();
-$recv($3)._protocol_(aString);
-$recv($3)._theClass_($self._theClass());
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ProtocolAdded)._new();
+$recv($2)._protocol_(aString);
+$recv($2)._theClass_($self._theClass());
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"addElement:",{aString:aString})});
@@ -987,7 +987,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
@@ -998,11 +998,11 @@ $ctx1.supercall = true,
 //>>excludeEnd("ctx");
 ][0];
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.ProtocolRemoved)._new();
-$recv($3)._protocol_(aString);
-$recv($3)._theClass_($self._theClass());
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.ProtocolRemoved)._new();
+$recv($2)._protocol_(aString);
+$recv($2)._theClass_($self._theClass());
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeElement:",{aString:aString})});
@@ -1119,13 +1119,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self.dirty=false;
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.PackageClean)._new();
-$recv($3)._package_(self);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.PackageClean)._new();
+$recv($2)._package_(self);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"beClean",{})});
@@ -1149,13 +1149,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2;
+var $1,$2,$3;
 $self.dirty=true;
 $1=$recv($globals.SystemAnnouncer)._current();
-$3=$recv($globals.PackageDirty)._new();
-$recv($3)._package_(self);
-$2=$recv($3)._yourself();
-$recv($1)._announce_($2);
+$2=$recv($globals.PackageDirty)._new();
+$recv($2)._package_(self);
+$3=$recv($2)._yourself();
+$recv($1)._announce_($3);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"beDirty",{})});
@@ -3674,7 +3674,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$2,$3,$4;
 $1=$recv(aClass)._isMetaclass();
 if($core.assert($1)){
 [$self._error_([$recv($recv(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!")
@@ -3736,10 +3736,10 @@ return $recv(each)._setTraitComposition_([]);
 //>>excludeEnd("ctx");
 }));
 $2=$recv($globals.SystemAnnouncer)._current();
-$4=$recv($globals.ClassRemoved)._new();
-$recv($4)._theClass_(aClass);
-$3=$recv($4)._yourself();
-$recv($2)._announce_($3);
+$3=$recv($globals.ClassRemoved)._new();
+$recv($3)._theClass_(aClass);
+$4=$recv($3)._yourself();
+$recv($2)._announce_($4);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"removeClass:",{aClass:aClass})});

+ 17 - 17
lang/src/Kernel-Methods.js

@@ -896,7 +896,7 @@ var result;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$5,$4,$2,$6,$8,$10,$9,$7;
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10;
 result=[$recv(aClass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["name"]=1
@@ -912,17 +912,17 @@ $1=[$recv([$self._methodClass()
 //>>excludeEnd("ctx");
 ][0];
 if(!$core.assert($1)){
-$3=[$recv(result).__comma(" (")
+$2=[$recv(result).__comma(" (")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=3
 //>>excludeEnd("ctx");
 ][0];
-$5=[$self._methodClass()
+$3=[$self._methodClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["methodClass"]=2
 //>>excludeEnd("ctx");
 ][0];
-if($5 == null || $5.a$nil){
+if($3 == null || $3.a$nil){
 $4="nil";
 } else {
 $4=[$recv([$self._methodClass()
@@ -935,12 +935,12 @@ $4=[$recv([$self._methodClass()
 //>>excludeEnd("ctx");
 ][0];
 }
-$2=[$recv($3).__comma($4)
+$5=[$recv($2).__comma($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
 ][0];
-result=[$recv($2).__comma(")")
+result=[$recv($5).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
@@ -961,27 +961,27 @@ $6=$recv([$recv([$self._origin()
 //>>excludeEnd("ctx");
 ][0]).__eq($self._methodClass()));
 if(!$core.assert($6)){
-$8=[$recv(result).__comma(" /")
+$7=[$recv(result).__comma(" /")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=6
 //>>excludeEnd("ctx");
 ][0];
-$10=[$self._origin()
+$8=[$self._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["origin"]=3
 //>>excludeEnd("ctx");
 ][0];
-if($10 == null || $10.a$nil){
+if($8 == null || $8.a$nil){
 $9="nil";
 } else {
 $9=$recv($self._origin())._name();
 }
-$7=[$recv($8).__comma($9)
+$10=[$recv($7).__comma($9)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=5
 //>>excludeEnd("ctx");
 ][0];
-result=[$recv($7).__comma("/")
+result=[$recv($10).__comma("/")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=4
 //>>excludeEnd("ctx");
@@ -1440,7 +1440,7 @@ var oldProtocol;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3,$5;
+var $1,$2,$3,$4,$5;
 oldProtocol=$self._protocol();
 $self.protocol=aString;
 $1=oldProtocol;
@@ -1448,11 +1448,11 @@ if($1 == null || $1.a$nil){
 $1;
 } else {
 $2=$recv($globals.SystemAnnouncer)._current();
-$4=$recv($globals.MethodMoved)._new();
-$recv($4)._method_(self);
-$recv($4)._oldProtocol_(oldProtocol);
-$3=$recv($4)._yourself();
-$recv($2)._announce_($3);
+$3=$recv($globals.MethodMoved)._new();
+$recv($3)._method_(self);
+$recv($3)._oldProtocol_(oldProtocol);
+$4=$recv($3)._yourself();
+$recv($2)._announce_($4);
 }
 $5=$self._origin();
 if($5 == null || $5.a$nil){

+ 10 - 10
lang/src/Kernel-Objects.js

@@ -507,8 +507,8 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
-$2=$recv($recv([$recv([$self._class()
+var $1,$2;
+$1=$recv($recv([$recv([$self._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
@@ -517,12 +517,12 @@ $2=$recv($recv([$recv([$self._class()
 ,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
 ][0])._first())._isVowel();
-if($core.assert($2)){
-$1="an ";
+if($core.assert($1)){
+$2="an ";
 } else {
-$1="a ";
+$2="a ";
 }
-[$recv(aStream)._nextPutAll_($1)
+[$recv(aStream)._nextPutAll_($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
@@ -5432,7 +5432,7 @@ var n,d;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 n=[$recv($recv($self.y)._negated()).__at($self.x)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["@"]=1
@@ -5451,9 +5451,9 @@ d=$recv([$recv([$recv(n)._x()
 ,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
 ][0]).__star($recv(n)._y()));
-$2=d;
-$1=$recv($2).__eq((0));
-if($core.assert($1)){
+$1=d;
+$2=$recv($1).__eq((0));
+if($core.assert($2)){
 return (-1).__at((0));
 }
 return $recv(n).__slash($recv(d)._sqrt());

+ 157 - 157
lang/src/Kernel-Tests.js

@@ -1445,111 +1445,111 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1,$4,$3,$6,$5,$8,$7,$10,$9,$12,$11,$14,$13,$16,$15;
-$2=[true._yourself()
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16;
+$1=[true._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-if($core.assert($2)){
-$1="alternative block";
+if($core.assert($1)){
+$2="alternative block";
 }
-[$self._assert_equals_($1,"alternative block")
+[$self._assert_equals_($2,"alternative block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$4=[true._yourself()
+$3=[true._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-if(!$core.assert($4)){
-$3="alternative block";
+if(!$core.assert($3)){
+$4="alternative block";
 }
-[$self._assert_equals_($3,nil)
+[$self._assert_equals_($4,nil)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$6=[false._yourself()
+$5=[false._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=3
 //>>excludeEnd("ctx");
 ][0];
-if($core.assert($6)){
-$5="alternative block";
+if($core.assert($5)){
+$6="alternative block";
 }
-[$self._assert_equals_($5,nil)
+[$self._assert_equals_($6,nil)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=3
 //>>excludeEnd("ctx");
 ][0];
-$8=[false._yourself()
+$7=[false._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=4
 //>>excludeEnd("ctx");
 ][0];
-if(!$core.assert($8)){
-$7="alternative block";
+if(!$core.assert($7)){
+$8="alternative block";
 }
-[$self._assert_equals_($7,"alternative block")
+[$self._assert_equals_($8,"alternative block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=4
 //>>excludeEnd("ctx");
 ][0];
-$10=[false._yourself()
+$9=[false._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=5
 //>>excludeEnd("ctx");
 ][0];
-if($core.assert($10)){
-$9="alternative block";
+if($core.assert($9)){
+$10="alternative block";
 } else {
-$9="alternative block2";
+$10="alternative block2";
 }
-[$self._assert_equals_($9,"alternative block2")
+[$self._assert_equals_($10,"alternative block2")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=5
 //>>excludeEnd("ctx");
 ][0];
-$12=[false._yourself()
+$11=[false._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=6
 //>>excludeEnd("ctx");
 ][0];
-if($core.assert($12)){
-$11="alternative block2";
+if($core.assert($11)){
+$12="alternative block2";
 } else {
-$11="alternative block";
+$12="alternative block";
 }
-[$self._assert_equals_($11,"alternative block")
+[$self._assert_equals_($12,"alternative block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=6
 //>>excludeEnd("ctx");
 ][0];
-$14=[true._yourself()
+$13=[true._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=7
 //>>excludeEnd("ctx");
 ][0];
-if($core.assert($14)){
-$13="alternative block";
+if($core.assert($13)){
+$14="alternative block";
 } else {
-$13="alternative block2";
+$14="alternative block2";
 }
-[$self._assert_equals_($13,"alternative block")
+[$self._assert_equals_($14,"alternative block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=7
 //>>excludeEnd("ctx");
 ][0];
-$16=true._yourself();
-if($core.assert($16)){
-$15="alternative block2";
+$15=true._yourself();
+if($core.assert($15)){
+$16="alternative block2";
 } else {
-$15="alternative block";
+$16="alternative block";
 }
-$self._assert_equals_($15,"alternative block2");
+$self._assert_equals_($16,"alternative block2");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testIfTrueIfFalseWithBoxing",{})});
@@ -3332,13 +3332,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1,$4,$3,$6,$5,$8,$7,$10,$9;
-$2=[$self._collection()
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10;
+$1=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($2)._addAll_([$recv([$self._collectionClass()
+[$recv($1)._addAll_([$recv([$self._collectionClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionClass"]=1
 //>>excludeEnd("ctx");
@@ -3351,12 +3351,12 @@ $2=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$1=[$recv($2)._yourself()
+$2=[$recv($1)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($1,[$self._collection()
+[$self._assert_equals_($2,[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=2
 //>>excludeEnd("ctx");
@@ -3365,7 +3365,7 @@ $1=[$recv($2)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$4=[$recv([$self._collectionClass()
+$3=[$recv([$self._collectionClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionClass"]=2
 //>>excludeEnd("ctx");
@@ -3374,7 +3374,7 @@ $4=[$recv([$self._collectionClass()
 ,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-[$recv($4)._addAll_([$self._collection()
+[$recv($3)._addAll_([$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=3
 //>>excludeEnd("ctx");
@@ -3383,12 +3383,12 @@ $4=[$recv([$self._collectionClass()
 ,$ctx1.sendIdx["addAll:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($4)._yourself()
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($3,[$self._collection()
+[$self._assert_equals_($4,[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=4
 //>>excludeEnd("ctx");
@@ -3397,7 +3397,7 @@ $3=[$recv($4)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$6=[$recv([$self._collectionClass()
+$5=[$recv([$self._collectionClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionClass"]=3
 //>>excludeEnd("ctx");
@@ -3406,7 +3406,7 @@ $6=[$recv([$self._collectionClass()
 ,$ctx1.sendIdx["new"]=3
 //>>excludeEnd("ctx");
 ][0];
-[$recv($6)._addAll_([$recv([$self._collectionClass()
+[$recv($5)._addAll_([$recv([$self._collectionClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionClass"]=4
 //>>excludeEnd("ctx");
@@ -3419,22 +3419,22 @@ $6=[$recv([$self._collectionClass()
 ,$ctx1.sendIdx["addAll:"]=3
 //>>excludeEnd("ctx");
 ][0];
-$5=[$recv($6)._yourself()
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=3
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($5,$recv($self._collectionClass())._new())
+[$self._assert_equals_($6,$recv($self._collectionClass())._new())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=3
 //>>excludeEnd("ctx");
 ][0];
-$8=[$self._collection()
+$7=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=5
 //>>excludeEnd("ctx");
 ][0];
-[$recv($8)._addAll_([$self._sampleNewValueAsCollection()
+[$recv($7)._addAll_([$self._sampleNewValueAsCollection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["sampleNewValueAsCollection"]=1
 //>>excludeEnd("ctx");
@@ -3443,20 +3443,20 @@ $8=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=4
 //>>excludeEnd("ctx");
 ][0];
-$7=[$recv($8)._yourself()
+$8=[$recv($7)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=4
 //>>excludeEnd("ctx");
 ][0];
-$self._assert_equals_($7,[$self._collectionWithNewValue()
+$self._assert_equals_($8,[$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=1
 //>>excludeEnd("ctx");
 ][0]);
-$10=$self._sampleNewValueAsCollection();
-$recv($10)._addAll_($self._collection());
-$9=$recv($10)._yourself();
-$self._assertSameContents_as_($9,$self._collectionWithNewValue());
+$9=$self._sampleNewValueAsCollection();
+$recv($9)._addAll_($self._collection());
+$10=$recv($9)._yourself();
+$self._assertSameContents_as_($10,$self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{})});
@@ -4845,14 +4845,14 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
-$3=$recv($self._collectionClass())._new();
-$recv($3)._remove_ifAbsent_($self._sampleNewValue(),(function(){
+var $1,$2,$3;
+$1=$recv($self._collectionClass())._new();
+$recv($1)._remove_ifAbsent_($self._sampleNewValue(),(function(){
 
 }));
-$2=$recv($3)._yourself();
-$1=$recv($2)._size();
-$self._assert_equals_($1,(0));
+$2=$recv($1)._yourself();
+$3=$recv($2)._size();
+$self._assert_equals_($3,(0));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testRegression1224",{})});
@@ -4876,11 +4876,11 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
-$2=$self._collection();
-$recv($2)._removeAll();
-$1=$recv($2)._yourself();
-$self._assert_equals_($1,$recv($self._collectionClass())._new());
+var $1,$2;
+$1=$self._collection();
+$recv($1)._removeAll();
+$2=$recv($1)._yourself();
+$self._assert_equals_($2,$recv($self._collectionClass())._new());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testRemoveAll",{})});
@@ -5441,7 +5441,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1,$4,$3,$6,$5;
+var $1,$2,$3,$4,$5,$6;
 [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
@@ -5451,12 +5451,12 @@ $ctx1.supercall = true,
 ,$ctx1.supercall = false
 //>>excludeEnd("ctx");
 ][0];
-$2=[$self._collection()
+$1=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($2)._addAll_([$self._collection()
+[$recv($1)._addAll_([$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=2
 //>>excludeEnd("ctx");
@@ -5465,12 +5465,12 @@ $2=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$1=[$recv($2)._yourself()
+$2=[$recv($1)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($1,[$self._collection()
+[$self._assert_equals_($2,[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=3
 //>>excludeEnd("ctx");
@@ -5479,12 +5479,12 @@ $1=[$recv($2)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$4=[$self._collection()
+$3=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=4
 //>>excludeEnd("ctx");
 ][0];
-[$recv($4)._addAll_([$self._collectionWithNewValue()
+[$recv($3)._addAll_([$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=1
 //>>excludeEnd("ctx");
@@ -5493,12 +5493,12 @@ $4=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($4)._yourself()
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($3,[$self._collectionWithNewValue()
+[$self._assert_equals_($4,[$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=2
 //>>excludeEnd("ctx");
@@ -5507,14 +5507,14 @@ $3=[$recv($4)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$6=[$self._collectionWithNewValue()
+$5=[$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=3
 //>>excludeEnd("ctx");
 ][0];
-$recv($6)._addAll_($self._collection());
-$5=$recv($6)._yourself();
-$self._assert_equals_($5,$self._collectionWithNewValue());
+$recv($5)._addAll_($self._collection());
+$6=$recv($5)._yourself();
+$self._assert_equals_($6,$self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{})});
@@ -5763,20 +5763,20 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
-$2=$recv([$self._collectionClass()
+var $1,$2;
+$1=$recv([$self._collectionClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionClass"]=1
 //>>excludeEnd("ctx");
 ][0])._new();
-[$recv($2)._at_put_("firstname","James")
+[$recv($1)._at_put_("firstname","James")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$recv($2)._at_put_("lastname","Bond");
-$1=$recv($2)._printString();
-$self._assert_equals_($1,[$recv("a ".__comma($recv($self._collectionClass())._name())).__comma(" ('firstname' -> 'James' , 'lastname' -> 'Bond')")
+$recv($1)._at_put_("lastname","Bond");
+$2=$recv($1)._printString();
+$self._assert_equals_($2,[$recv("a ".__comma($recv($self._collectionClass())._name())).__comma(" ('firstname' -> 'James' , 'lastname' -> 'Bond')")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
@@ -5804,7 +5804,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 $self._nonIndexesDo_((function(each){
 var collection;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5869,10 +5869,10 @@ return $self._deny_($recv(collection).__eq([$self._collection()
 }, function($ctx2) {$ctx2.fillBlock({index:index,value:value,collection:collection},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$2=$self._collectionWithNewValue();
-$recv($2)._removeKey_($self._sampleNewIndex());
-$1=$recv($2)._yourself();
-$self._assert_equals_($1,$self._collection());
+$1=$self._collectionWithNewValue();
+$recv($1)._removeKey_($self._sampleNewIndex());
+$2=$recv($1)._yourself();
+$self._assert_equals_($2,$self._collection());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testRemoveKey",{})});
@@ -5896,7 +5896,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 $self._nonIndexesDo_((function(each){
 var collection;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5981,8 +5981,8 @@ return $self._deny_($recv(collection).__eq([$self._collection()
 }, function($ctx2) {$ctx2.fillBlock({index:index,value:value,collection:collection},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$2=$self._collectionWithNewValue();
-$recv($2)._removeKey_ifAbsent_($self._sampleNewIndex(),(function(){
+$1=$self._collectionWithNewValue();
+$recv($1)._removeKey_ifAbsent_($self._sampleNewIndex(),(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -5991,8 +5991,8 @@ return $self._assert_(false);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,5)});
 //>>excludeEnd("ctx");
 }));
-$1=$recv($2)._yourself();
-$self._assert_equals_($1,$self._collection());
+$2=$recv($1)._yourself();
+$self._assert_equals_($2,$self._collection());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testRemoveKeyIfAbsent",{})});
@@ -7655,12 +7655,12 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
-$3=$self._collection();
-$recv($3)._addFirst_((0));
-$2=$recv($3)._yourself();
-$1=$recv($2)._first();
-$self._assert_equals_($1,(0));
+var $1,$2,$3;
+$1=$self._collection();
+$recv($1)._addFirst_((0));
+$2=$recv($1)._yourself();
+$3=$recv($2)._first();
+$self._assert_equals_($3,(0));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddFirst",{})});
@@ -8971,17 +8971,17 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 $self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$recv($self._collectionClass())._new();
-$recv($2)._remove_ifAbsent_($self._sampleNewValue(),(function(){
+$1=$recv($self._collectionClass())._new();
+$recv($1)._remove_ifAbsent_($self._sampleNewValue(),(function(){
 
 }));
-$1=$recv($2)._yourself();
-return $recv($1)._size();
+$2=$recv($1)._yourself();
+return $recv($2)._size();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -9393,7 +9393,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1,$4,$3,$6,$5;
+var $1,$2,$3,$4,$5,$6;
 [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
@@ -9403,12 +9403,12 @@ $ctx1.supercall = true,
 ,$ctx1.supercall = false
 //>>excludeEnd("ctx");
 ][0];
-$2=[$self._collection()
+$1=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$recv($2)._addAll_([$self._collection()
+[$recv($1)._addAll_([$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=2
 //>>excludeEnd("ctx");
@@ -9417,12 +9417,12 @@ $2=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$1=[$recv($2)._yourself()
+$2=[$recv($1)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($1,[$self._collection()
+[$self._assert_equals_($2,[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=3
 //>>excludeEnd("ctx");
@@ -9431,12 +9431,12 @@ $1=[$recv($2)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$4=[$self._collection()
+$3=[$self._collection()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collection"]=4
 //>>excludeEnd("ctx");
 ][0];
-[$recv($4)._addAll_([$self._collectionWithNewValue()
+[$recv($3)._addAll_([$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=1
 //>>excludeEnd("ctx");
@@ -9445,12 +9445,12 @@ $4=[$self._collection()
 ,$ctx1.sendIdx["addAll:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($4)._yourself()
+$4=[$recv($3)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
 ][0];
-[$self._assert_equals_($3,[$self._collectionWithNewValue()
+[$self._assert_equals_($4,[$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=2
 //>>excludeEnd("ctx");
@@ -9459,14 +9459,14 @@ $3=[$recv($4)._yourself()
 ,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$6=[$self._collectionWithNewValue()
+$5=[$self._collectionWithNewValue()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["collectionWithNewValue"]=3
 //>>excludeEnd("ctx");
 ][0];
-$recv($6)._addAll_($self._collection());
-$5=$recv($6)._yourself();
-$self._assert_equals_($5,$self._collectionWithNewValue());
+$recv($5)._addAll_($self._collection());
+$6=$recv($5)._yourself();
+$self._assert_equals_($6,$self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{})});
@@ -14651,7 +14651,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1,$5,$4,$7,$6,$9,$8;
+var $1,$2,$3,$4,$5,$6,$7,$8,$9;
 [$self._deny_($recv([$recv($globals.Object)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=1
@@ -14661,55 +14661,55 @@ var $3,$2,$1,$5,$4,$7,$6,$9,$8;
 ,$ctx1.sendIdx["deny:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$3=[$recv($globals.Object)._new()
+$1=[$recv($globals.Object)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
 ][0];
-if($3 == null || $3.a$nil){
+if($1 == null || $1.a$nil){
 $2=true;
 } else {
-$2=$3;
+$2=$1;
 }
-$1=$recv($2).__eq(true);
-$self._deny_($1);
-$5=[$recv($globals.Object)._new()
+$3=$recv($2).__eq(true);
+$self._deny_($3);
+$4=[$recv($globals.Object)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=3
 //>>excludeEnd("ctx");
 ][0];
-if($5 == null || $5.a$nil){
-$4=$5;
+if($4 == null || $4.a$nil){
+$5=$4;
 } else {
-$4=true;
+$5=true;
 }
-[$self._assert_equals_($4,true)
+[$self._assert_equals_($5,true)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
 ][0];
-$7=[$recv($globals.Object)._new()
+$6=[$recv($globals.Object)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["new"]=4
 //>>excludeEnd("ctx");
 ][0];
-if($7 == null || $7.a$nil){
-$6=false;
+if($6 == null || $6.a$nil){
+$7=false;
 } else {
-$6=true;
+$7=true;
 }
-[$self._assert_equals_($6,true)
+[$self._assert_equals_($7,true)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
 ][0];
-$9=$recv($globals.Object)._new();
-if($9 == null || $9.a$nil){
-$8=false;
+$8=$recv($globals.Object)._new();
+if($8 == null || $8.a$nil){
+$9=false;
 } else {
-$8=true;
+$9=true;
 }
-$self._assert_equals_($8,true);
+$self._assert_equals_($9,true);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testIfNil",{})});
@@ -17266,16 +17266,16 @@ var jsNull;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$1;
+var $1,$2;
 jsNull=$recv($globals.JSON)._parse_("null");
 $self._samplesDo_((function(index,value){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._collection();
-$recv($2)._at_put_(index,jsNull);
-$1=$recv($2)._indexOf_(jsNull);
-return $self._assert_equals_($1,index);
+$1=$self._collection();
+$recv($1)._at_put_(index,jsNull);
+$2=$recv($1)._indexOf_(jsNull);
+return $self._assert_equals_($2,index);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({index:index,value:value},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -17391,7 +17391,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2,$4,$6,$5;
+var $1,$2,$3,$4,$5,$6;
 if(nil == null || nil.a$nil){
 $1=true;
 } else {
@@ -17403,16 +17403,16 @@ $1=nil;
 //>>excludeEnd("ctx");
 ][0];
 if(nil == null || nil.a$nil){
-$3=nil;
+$2=nil;
 } else {
-$3=true;
+$2=true;
 }
-$2=[$recv($3).__eq(true)
+$3=[$recv($2).__eq(true)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
 ][0];
-[$self._deny_($2)
+[$self._deny_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["deny:"]=1
 //>>excludeEnd("ctx");
@@ -17424,12 +17424,12 @@ $4=false;
 }
 $self._assert_equals_($4,true);
 if(nil == null || nil.a$nil){
-$6=false;
+$5=false;
 } else {
-$6=true;
+$5=true;
 }
-$5=$recv($6).__eq(true);
-$self._deny_($5);
+$6=$recv($5).__eq(true);
+$self._deny_($6);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testIfNil",{})});

+ 7 - 7
lang/src/Platform-ImportExport.js

@@ -1131,30 +1131,30 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$4,$3,$1;
+var $1,$2,$3,$4;
 [$recv(aStream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
 ][0];
-$2=[$recv($recv(aClass)._name())._asJavaScriptSource()
+$1=[$recv($recv(aClass)._name())._asJavaScriptSource()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["asJavaScriptSource"]=1
 //>>excludeEnd("ctx");
 ][0];
-$4=$recv(aClass)._superclass();
-if($4 == null || $4.a$nil){
+$2=$recv(aClass)._superclass();
+if($2 == null || $2.a$nil){
 $3="null";
 } else {
 var superclass;
-superclass=$4;
+superclass=$2;
 $3=[$recv(superclass)._asJavaScriptSource()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["asJavaScriptSource"]=2
 //>>excludeEnd("ctx");
 ][0];
 }
-$1=["$core.addClass(",$2,", ",$3,", ",[$recv($recv(aClass)._instanceVariableNames())._asJavaScriptSource()
+$4=["$core.addClass(",$1,", ",$3,", ",[$recv($recv(aClass)._instanceVariableNames())._asJavaScriptSource()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["asJavaScriptSource"]=3
 //>>excludeEnd("ctx");
@@ -1163,7 +1163,7 @@ $1=["$core.addClass(",$2,", ",$3,", ",[$recv($recv(aClass)._instanceVariableName
 ,$ctx1.sendIdx["asJavaScriptSource"]=4
 //>>excludeEnd("ctx");
 ][0],");"];
-[$recv(aStream)._write_($1)
+[$recv(aStream)._write_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx1.sendIdx["write:"]=1
 //>>excludeEnd("ctx");