Browse Source

More precise #isReferenced.

Herby Vojčík 5 years ago
parent
commit
8e4ed37fbf

+ 5 - 5
cli/src/AmberCli.js

@@ -2423,7 +2423,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$receiver;
+var $1,$2,$receiver;
 $self._gruntInitThenDo_((function(error){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2437,12 +2437,12 @@ if(($receiver = error2) == null || $receiver.a$nil){
 $self._finishMessage();
 return $recv(process)._exit();
 } else {
-$3=console;
-$recv($3)._log_("npm run init exec error:");
+$2=console;
+$recv($2)._log_("npm run init exec error:");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["log:"]=3;
 //>>excludeEnd("ctx");
-$recv($3)._log_(error2);
+$recv($2)._log_(error2);
 return $recv(process)._exit_((105));
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2455,7 +2455,7 @@ $recv($1)._log_("grunt-init exec error:");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["log:"]=1;
 //>>excludeEnd("ctx");
-$2=$recv($1)._log_(error);
+$recv($1)._log_(error);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["log:"]=2;
 //>>excludeEnd("ctx");

+ 129 - 123
lang/src/Compiler-IR.js

@@ -51,7 +51,7 @@ var variable;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$5,$4,$6,$8,$7;
+var $1,$2,$3,$5,$4,$7,$6;
 $1=$recv(aNode)._isImmutable();
 if($core.assert($1)){
 $2=$self._visit_(aNode);
@@ -70,22 +70,21 @@ $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
 $4=$recv($5)._name_("$".__comma($self._nextAlias()));
 $recv($3)._variable_($4);
-$6=$recv($3)._yourself();
+variable=$recv($3)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-variable=$6;
-$8=$recv($globals.IRAssignment)._new();
-$recv($8)._add_(variable);
+$7=$recv($globals.IRAssignment)._new();
+$recv($7)._add_(variable);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
-$recv($8)._add_($self._visit_(aNode));
+$recv($7)._add_($self._visit_(aNode));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
-$7=$recv($8)._yourself();
-$self._addToSequence_($7);
+$6=$recv($7)._yourself();
+$self._addToSequence_($6);
 $recv($recv($self._method())._internalVariables())._add_(variable);
 return variable;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -400,7 +399,7 @@ var closure;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$5,$4,$6,$8,$7;
+var $1,$2,$4,$3,$5,$7,$6;
 $1=$recv($globals.IRClosure)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
@@ -415,26 +414,25 @@ $recv($1)._scope_($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope:"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($1)._yourself();
+closure=$recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-closure=$3;
-$5=$recv(aNode)._scope();
+$4=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$4=$recv($5)._temps();
-$recv($4)._do_((function(each){
+$3=$recv($4)._temps();
+$recv($3)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$6=closure;
-$8=$recv($globals.IRTempDeclaration)._new();
-$recv($8)._name_($recv(each)._name());
-$recv($8)._scope_($recv(aNode)._scope());
-$7=$recv($8)._yourself();
-return $recv($6)._add_($7);
+$5=closure;
+$7=$recv($globals.IRTempDeclaration)._new();
+$recv($7)._name_($recv(each)._name());
+$recv($7)._scope_($recv(aNode)._scope());
+$6=$recv($7)._yourself();
+return $recv($5)._add_($6);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -4583,7 +4581,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$4,$3,$2,$5,$6,$7,$8;
+var $1,$4,$3,$2,$5,$6,$7;
 $1=$self._stream();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["stream"]=1;
@@ -4652,34 +4650,34 @@ $recv($1)._nextPutAll_($6);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
-$7=$recv($1)._nextPutAll_("$self, ");
+$recv($1)._nextPutAll_("$self, ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=8;
 //>>excludeEnd("ctx");
 $self._visitInstructionList_enclosedBetween_and_($recv(anIRSend)._arguments(),"[","]");
-$8=$self._stream();
-$recv($8)._nextPutAll_("));");
+$7=$self._stream();
+$recv($7)._nextPutAll_("));");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=9;
 //>>excludeEnd("ctx");
-$recv($8)._lf();
+$recv($7)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=5;
 //>>excludeEnd("ctx");
-$recv($8)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
+$recv($7)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=10;
 //>>excludeEnd("ctx");
-$recv($8)._lf();
+$recv($7)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=6;
 //>>excludeEnd("ctx");
-$recv($8)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
+$recv($7)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=11;
 //>>excludeEnd("ctx");
-$recv($8)._lf();
-$recv($8)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
+$recv($7)._lf();
+$recv($7)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend})});
@@ -4869,7 +4867,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$6,$5,$4,$3,$7,$11,$10,$9,$8,$15,$14,$13,$12,$16,$17,$23,$22,$21,$20,$19,$18;
+var $1,$2,$6,$5,$4,$3,$10,$9,$8,$7,$13,$12,$11,$14,$20,$19,$18,$17,$16,$15;
 $1=$recv(anIRClosure)._requiresSmalltalkContext();
 if(!$core.assert($1)){
 $2=$recv(aBlock)._value();
@@ -4914,7 +4912,7 @@ $self._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$7=$self._lf();
+$self._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -4927,39 +4925,39 @@ $self._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
-$11=$recv(anIRClosure)._scope();
+$10=$recv(anIRClosure)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$10=$recv($11)._alias();
+$9=$recv($10)._alias();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["alias"]=2;
 //>>excludeEnd("ctx");
-$9="}, function(".__comma($10);
+$8="}, function(".__comma($9);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=4;
 //>>excludeEnd("ctx");
-$8=$recv($9).__comma(") {");
+$7=$recv($8).__comma(") {");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=3;
 //>>excludeEnd("ctx");
-$self._nextPutAll_($8);
+$self._nextPutAll_($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=5;
 //>>excludeEnd("ctx");
-$15=$recv(anIRClosure)._scope();
+$13=$recv(anIRClosure)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=3;
 //>>excludeEnd("ctx");
-$14=$recv($15)._alias();
+$12=$recv($13)._alias();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["alias"]=3;
 //>>excludeEnd("ctx");
-$13=$recv($14).__comma(".fillBlock({");
+$11=$recv($12).__comma(".fillBlock({");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=5;
 //>>excludeEnd("ctx");
-$12=$self._nextPutAll_($13);
+$self._nextPutAll_($11);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
@@ -4967,11 +4965,11 @@ $recv($recv(anIRClosure)._locals())._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$16=$recv(each)._asVariableName();
+$14=$recv(each)._asVariableName();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["asVariableName"]=1;
 //>>excludeEnd("ctx");
-$self._nextPutAll_($16);
+$self._nextPutAll_($14);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
@@ -4979,11 +4977,10 @@ $self._nextPutAll_(":");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=8;
 //>>excludeEnd("ctx");
-$17=$self._nextPutAll_($recv(each)._asVariableName());
+return $self._nextPutAll_($recv(each)._asVariableName());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=9;
 //>>excludeEnd("ctx");
-return $17;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -5003,22 +5000,22 @@ $self._nextPutAll_("},");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=11;
 //>>excludeEnd("ctx");
-$23=$recv(anIRClosure)._scope();
+$20=$recv(anIRClosure)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=4;
 //>>excludeEnd("ctx");
-$22=$recv($23)._outerScope();
-$21=$recv($22)._alias();
-$20=$recv($21).__comma(",");
-$19=$recv($20).__comma($recv($recv($recv(anIRClosure)._scope())._blockIndex())._asString());
+$19=$recv($20)._outerScope();
+$18=$recv($19)._alias();
+$17=$recv($18).__comma(",");
+$16=$recv($17).__comma($recv($recv($recv(anIRClosure)._scope())._blockIndex())._asString());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=7;
 //>>excludeEnd("ctx");
-$18=$recv($19).__comma(")});");
+$15=$recv($16).__comma(")});");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=6;
 //>>excludeEnd("ctx");
-$self._nextPutAll_($18);
+$self._nextPutAll_($15);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=12;
 //>>excludeEnd("ctx");
@@ -5048,7 +5045,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $recv($self.stream)._nextPutAll_("(function(");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -5078,14 +5075,14 @@ $recv($1)._nextPutAll_("){");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$2=$recv($1)._lf();
+$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
 $recv(aBlock)._value();
-$3=$self.stream;
-$recv($3)._lf();
-$recv($3)._nextPutAll_("})");
+$2=$self.stream;
+$recv($2)._lf();
+$recv($2)._nextPutAll_("})");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nextPutClosureWith:arguments:",{aBlock:aBlock,anArray:anArray})});
@@ -5110,7 +5107,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$6,$5,$4,$3,$7,$12,$11,$10,$9,$8,$14,$13,$15,$16;
+var $1,$2,$6,$5,$4,$3,$11,$10,$9,$8,$7,$12,$13;
 $1=$recv(aMethod)._requiresSmalltalkContext();
 if(!$core.assert($1)){
 $2=$recv(aBlock)._value();
@@ -5155,7 +5152,7 @@ $self._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$7=$self._lf();
+$self._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -5168,35 +5165,35 @@ $self._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
-$12=$recv(aMethod)._scope();
+$11=$recv(aMethod)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$11=$recv($12)._alias();
+$10=$recv($11)._alias();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["alias"]=2;
 //>>excludeEnd("ctx");
-$10="}, function(".__comma($11);
+$9="}, function(".__comma($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=5;
 //>>excludeEnd("ctx");
-$9=$recv($10).__comma(") {");
+$8=$recv($9).__comma(") {");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=4;
 //>>excludeEnd("ctx");
-$8=$recv($9).__comma($recv($recv(aMethod)._scope())._alias());
+$7=$recv($8).__comma($recv($recv(aMethod)._scope())._alias());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=3;
 //>>excludeEnd("ctx");
-$self._nextPutAll_($8);
+$self._nextPutAll_($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=5;
 //>>excludeEnd("ctx");
-$14=$recv(".fill(self,".__comma($recv($recv(aMethod)._selector())._asJavaScriptSource())).__comma(",{");
+$12=$recv(".fill(self,".__comma($recv($recv(aMethod)._selector())._asJavaScriptSource())).__comma(",{");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=6;
 //>>excludeEnd("ctx");
-$13=$self._nextPutAll_($14);
+$self._nextPutAll_($12);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
@@ -5204,11 +5201,11 @@ $recv($recv(aMethod)._locals())._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$15=$recv(each)._asVariableName();
+$13=$recv(each)._asVariableName();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["asVariableName"]=1;
 //>>excludeEnd("ctx");
-$self._nextPutAll_($15);
+$self._nextPutAll_($13);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
@@ -5216,11 +5213,10 @@ $self._nextPutAll_(":");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=8;
 //>>excludeEnd("ctx");
-$16=$self._nextPutAll_($recv(each)._asVariableName());
+return $self._nextPutAll_($recv(each)._asVariableName());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=9;
 //>>excludeEnd("ctx");
-return $16;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -5266,7 +5262,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$5;
+var $1,$2,$3;
 $recv($self.stream)._nextPutAll_("(function (");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -5296,23 +5292,23 @@ $recv($1)._nextPutAll_("){");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$2=$recv($1)._lf();
+$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$self.stream;
-$recv($3)._nextPutAll_("var self=this,$self=this;");
+$2=$self.stream;
+$recv($2)._nextPutAll_("var self=this,$self=this;");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=4;
 //>>excludeEnd("ctx");
-$4=$recv($3)._lf();
+$recv($2)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
 $recv(aBlock)._value();
-$5=$self.stream;
-$recv($5)._lf();
-$recv($5)._nextPutAll_("})");
+$3=$self.stream;
+$recv($3)._lf();
+$recv($3)._nextPutAll_("})");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nextPutFunctionWith:arguments:",{aBlock:aBlock,anArray:anArray})});
@@ -5379,7 +5375,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $recv($self.stream)._nextPutAll_("if(");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -5393,7 +5389,7 @@ $recv($1)._nextPutAll_("){");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=2;
 //>>excludeEnd("ctx");
-$2=$recv($1)._lf();
+$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
@@ -5401,12 +5397,12 @@ $recv(ifBlock)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=2;
 //>>excludeEnd("ctx");
-$3=$self.stream;
-$recv($3)._nextPutAll_("} else {");
+$2=$self.stream;
+$recv($2)._nextPutAll_("} else {");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$recv($3)._lf();
+$recv($2)._lf();
 $recv(elseBlock)._value();
 $recv($self.stream)._nextPutAll_("}");
 $self._omitSemicolon_(true);
@@ -5434,7 +5430,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$4,$3,$2,$7,$6,$5,$8,$9,$12,$11,$10,$15,$14,$13,$18,$17,$16,$19,$20;
+var $1,$4,$3,$2,$7,$6,$5,$8,$11,$10,$9,$14,$13,$12,$17,$16,$15,$18;
 $1=$self.stream;
 $recv($1)._nextPutAll_("$core.method({");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5480,7 +5476,7 @@ $recv($1)._nextPutAll_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$8=$recv($1)._lf();
+$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -5488,44 +5484,44 @@ $recv(aBlock)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=1;
 //>>excludeEnd("ctx");
-$9=$self.stream;
-$12=$recv($globals.String)._lf();
+$8=$self.stream;
+$11=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
-$11=",".__comma($12);
+$10=",".__comma($11);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=6;
 //>>excludeEnd("ctx");
-$10=$recv($11).__comma("messageSends: ");
+$9=$recv($10).__comma("messageSends: ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=5;
 //>>excludeEnd("ctx");
-$recv($9)._nextPutAll_($10);
+$recv($8)._nextPutAll_($9);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=4;
 //>>excludeEnd("ctx");
-$15=$recv($recv(aMethod)._messageSends())._asArray();
+$14=$recv($recv(aMethod)._messageSends())._asArray();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asArray"]=1;
 //>>excludeEnd("ctx");
-$14=$recv($15)._asJavaScriptSource();
+$13=$recv($14)._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=3;
 //>>excludeEnd("ctx");
-$13=$recv($14).__comma(",");
+$12=$recv($13).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=7;
 //>>excludeEnd("ctx");
-$recv($9)._nextPutAll_($13);
+$recv($8)._nextPutAll_($12);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=5;
 //>>excludeEnd("ctx");
-$recv($9)._lf();
+$recv($8)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=5;
 //>>excludeEnd("ctx");
-$18=$recv($recv($recv($recv(aMethod)._arguments())._collect_((function(each){
+$17=$recv($recv($recv($recv(aMethod)._arguments())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -5537,17 +5533,17 @@ return $recv(each)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=4;
 //>>excludeEnd("ctx");
-$17="args: ".__comma($18);
-$16=$recv($17).__comma(",");
+$16="args: ".__comma($17);
+$15=$recv($16).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=8;
 //>>excludeEnd("ctx");
-$recv($9)._nextPutAll_($16);
+$recv($8)._nextPutAll_($15);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
-$recv($9)._lf();
-$19=$recv($9)._nextPutAll_("referencedClasses: [");
+$recv($8)._lf();
+$recv($8)._nextPutAll_("referencedClasses: [");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
@@ -5574,12 +5570,12 @@ $ctx2.sendIdx["nextPutAll:"]=9;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$20=$self.stream;
-$recv($20)._nextPutAll_("]");
+$18=$self.stream;
+$recv($18)._nextPutAll_("]");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=10;
 //>>excludeEnd("ctx");
-$recv($20)._nextPutAll_("})");
+$recv($18)._nextPutAll_("})");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nextPutMethodDeclaration:with:",{aMethod:aMethod,aBlock:aBlock})});
@@ -5604,7 +5600,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $1=$self.stream;
 $recv($1)._nextPutAll_("var $early={};");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5618,22 +5614,22 @@ $recv($1)._nextPutAll_("try {");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=2;
 //>>excludeEnd("ctx");
-$2=$recv($1)._lf();
+$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
 $recv(aBlock)._value();
-$3=$self.stream;
-$recv($3)._nextPutAll_("}");
+$2=$self.stream;
+$recv($2)._nextPutAll_("}");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$recv($3)._lf();
+$recv($2)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
-$recv($3)._nextPutAll_("catch(e) {if(e===$early)return e[0]; throw e}");
-$recv($3)._lf();
+$recv($2)._nextPutAll_("catch(e) {if(e===$early)return e[0]; throw e}");
+$recv($2)._lf();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nextPutNonLocalReturnHandlingWith:",{aBlock:aBlock})});
@@ -5919,33 +5915,43 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$2,$1;
-$3=$self._parent();
+var $2,$1,$4,$3,$6,$5;
+$2=$self._parent();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["parent"]=1;
 //>>excludeEnd("ctx");
-$2=$recv($3)._isSequenceNode();
-$1=$recv($2)._or_((function(){
+$1=$recv($2)._isSequenceNode();
+if($core.assert($1)){
+return false;
+}
+$4=$self._parent();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
+$ctx1.sendIdx["parent"]=2;
 //>>excludeEnd("ctx");
-return $recv($self._parent())._isAssignmentNode();
+$3=$recv($4)._isAssignmentNode();
+if($core.assert($3)){
+return false;
+}
+$6=$self._parent();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
+$ctx1.sendIdx["parent"]=3;
 //>>excludeEnd("ctx");
-}));
-return $recv($1)._not();
+$5=$recv($6)._isCascadeNode();
+if($core.assert($5)){
+return $recv($self._parent())._isReferenced();
+}
+return true;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"isReferenced",{})});
 //>>excludeEnd("ctx");
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: [],
-source: "isReferenced\x0a\x09\x22Answer true if the receiver is referenced by other nodes.\x0a\x09Do not take sequences or assignments into account\x22\x0a\x09\x0a\x09^ (self parent isSequenceNode or: [\x0a\x09\x09self parent isAssignmentNode ]) not",
+source: "isReferenced\x0a\x09\x22Answer true if the receiver is referenced by other nodes.\x0a\x09Do not take sequences or assignments into account\x22\x0a\x09\x0a\x09self parent isSequenceNode ifTrue: [ ^ false ].\x0a\x09self parent isAssignmentNode ifTrue: [ ^ false ].\x0a\x09self parent isCascadeNode ifTrue: [ ^ self parent isReferenced ].\x0a\x09\x0a\x09^ true",
 referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
-messageSends: ["not", "or:", "isSequenceNode", "parent", "isAssignmentNode"]
+messageSends: ["ifTrue:", "isSequenceNode", "parent", "isAssignmentNode", "isCascadeNode", "isReferenced"]
 }),
 $globals.ASTNode);
 

+ 5 - 2
lang/src/Compiler-IR.st

@@ -1306,8 +1306,11 @@ isReferenced
 	"Answer true if the receiver is referenced by other nodes.
 	Do not take sequences or assignments into account"
 	
-	^ (self parent isSequenceNode or: [
-		self parent isAssignmentNode ]) not
+	self parent isSequenceNode ifTrue: [ ^ false ].
+	self parent isAssignmentNode ifTrue: [ ^ false ].
+	self parent isCascadeNode ifTrue: [ ^ self parent isReferenced ].
+	
+	^ true
 !
 
 subtreeNeedsAliasing

+ 8 - 9
lang/src/Compiler-Semantic.js

@@ -2630,7 +2630,7 @@ var binding;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2,$4,$5,$6,$7,$8,$9,$receiver;
+var $1,$3,$2,$4,$5,$6,$7,$8,$receiver;
 binding=$recv($self.currentScope)._lookupVariable_(aNode);
 $1=binding;
 if(($receiver = $1) == null || $receiver.a$nil){
@@ -2652,22 +2652,21 @@ $recv($4)._name_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["name:"]=1;
 //>>excludeEnd("ctx");
-$6=$recv($4)._yourself();
+binding=$recv($4)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-binding=$6;
-$7=$self._classReferences();
-$8=$recv(aNode)._value();
+$6=$self._classReferences();
+$7=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=3;
 //>>excludeEnd("ctx");
-$recv($7)._add_($8);
+$recv($6)._add_($7);
 } else {
 $self._errorUnknownVariable_(aNode);
-$9=$recv($globals.UnknownVar)._new();
-$recv($9)._name_($recv(aNode)._value());
-binding=$recv($9)._yourself();
+$8=$recv($globals.UnknownVar)._new();
+$recv($8)._name_($recv(aNode)._value());
+binding=$recv($8)._yourself();
 binding;
 }
 } else {

+ 14 - 15
lang/src/Kernel-Classes.js

@@ -1782,7 +1782,7 @@ var oldClass,newClass,tmp;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3;
+var $1,$3,$2;
 tmp="new*".__comma(className);
 oldClass=$recv($recv($globals.Smalltalk)._globals())._at_(className);
 newClass=$self._addSubclassOf_named_instanceVariableNames_package_(aClass,tmp,aCollection,packageName);
@@ -1803,7 +1803,7 @@ return $self._copyClass_to_(oldClass,newClass);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $self._basicSwapClassNames_with_(oldClass,newClass);
-$1=$self._basicRemoveClass_(newClass);
+$self._basicRemoveClass_(newClass);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["basicRemoveClass:"]=1;
 //>>excludeEnd("ctx");
@@ -1827,12 +1827,12 @@ return $self._migrateClass_superclass_(each,newClass);
 //>>excludeEnd("ctx");
 }));
 $self._basicRemoveClass_(oldClass);
-$2=$recv($globals.SystemAnnouncer)._current();
-$4=$recv($globals.ClassMigrated)._new();
-$recv($4)._theClass_(newClass);
-$recv($4)._oldClass_(oldClass);
-$3=$recv($4)._yourself();
-$recv($2)._announce_($3);
+$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);
 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})});
@@ -2261,7 +2261,7 @@ var oldMethod,announcement;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$receiver;
+var $1,$2,$3,$receiver;
 oldMethod=$recv($self._methodDictionary())._at_ifAbsent_($recv(aMethod)._selector(),(function(){
 return nil;
 
@@ -2277,16 +2277,15 @@ $recv($2)._method_(aMethod);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["method:"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($2)._yourself();
+announcement=$recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-announcement=$3;
 } else {
-$4=$recv($globals.MethodModified)._new();
-$recv($4)._oldMethod_(oldMethod);
-$recv($4)._method_(aMethod);
-announcement=$recv($4)._yourself();
+$3=$recv($globals.MethodModified)._new();
+$recv($3)._oldMethod_(oldMethod);
+$recv($3)._method_(aMethod);
+announcement=$recv($3)._yourself();
 }
 $recv($recv($globals.SystemAnnouncer)._current())._announce_(announcement);
 return self;

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

@@ -1544,7 +1544,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$5,$4,$6,$7,$8,$10,$9,$12,$11,$14,$13,$16,$17,$15,$19,$18,$21,$20,$23,$22;
+var $1,$2,$3,$4,$5,$6,$7,$8,$10,$9,$12,$11,$14,$15,$13,$17,$16,$19,$18,$21,$20;
 $1=true.__and(true);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["&"]=1;
@@ -1569,110 +1569,110 @@ $self._deny_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=2;
 //>>excludeEnd("ctx");
-$5=false.__and(false);
+$4=false.__and(false);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["&"]=4;
 //>>excludeEnd("ctx");
-$4=$self._deny_($5);
+$self._deny_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=3;
 //>>excludeEnd("ctx");
-$6=true.__or(true);
+$5=true.__or(true);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=1;
 //>>excludeEnd("ctx");
-$self._assert_($6);
+$self._assert_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=2;
 //>>excludeEnd("ctx");
-$7=true.__or(false);
+$6=true.__or(false);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=2;
 //>>excludeEnd("ctx");
-$self._assert_($7);
+$self._assert_($6);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=3;
 //>>excludeEnd("ctx");
-$8=false.__or(true);
+$7=false.__or(true);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=3;
 //>>excludeEnd("ctx");
-$self._assert_($8);
+$self._assert_($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=4;
 //>>excludeEnd("ctx");
-$10=false.__or(false);
+$8=false.__or(false);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=4;
 //>>excludeEnd("ctx");
-$9=$self._deny_($10);
+$self._deny_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=4;
 //>>excludeEnd("ctx");
-$12=(1).__gt((0));
+$10=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=1;
 //>>excludeEnd("ctx");
-$11=true.__and($12);
+$9=true.__and($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["&"]=5;
 //>>excludeEnd("ctx");
-$self._assert_($11);
+$self._assert_($9);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=5;
 //>>excludeEnd("ctx");
-$14=(1).__gt((0));
+$12=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=2;
 //>>excludeEnd("ctx");
-$13=$recv($14).__and(false);
+$11=$recv($12).__and(false);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["&"]=6;
 //>>excludeEnd("ctx");
-$self._deny_($13);
+$self._deny_($11);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=5;
 //>>excludeEnd("ctx");
-$16=(1).__gt((0));
+$14=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=3;
 //>>excludeEnd("ctx");
-$17=(1).__gt((2));
+$15=(1).__gt((2));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=4;
 //>>excludeEnd("ctx");
-$15=$recv($16).__and($17);
-$self._deny_($15);
-$19=(1).__gt((0));
+$13=$recv($14).__and($15);
+$self._deny_($13);
+$17=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=5;
 //>>excludeEnd("ctx");
-$18=false.__or($19);
+$16=false.__or($17);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=5;
 //>>excludeEnd("ctx");
-$self._assert_($18);
+$self._assert_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=6;
 //>>excludeEnd("ctx");
-$21=(1).__gt((0));
+$19=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=6;
 //>>excludeEnd("ctx");
-$20=$recv($21).__or(false);
+$18=$recv($19).__or(false);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["|"]=6;
 //>>excludeEnd("ctx");
-$self._assert_($20);
+$self._assert_($18);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=7;
 //>>excludeEnd("ctx");
-$23=(1).__gt((0));
+$21=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=7;
 //>>excludeEnd("ctx");
-$22=$recv($23).__or((1).__gt((2)));
-$self._assert_($22);
+$20=$recv($21).__or((1).__gt((2)));
+$self._assert_($20);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testLogic",{})});
@@ -1697,7 +1697,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$5,$4,$6,$7,$8,$10,$9,$11,$13,$12,$15,$14,$16,$18,$17,$20,$19;
+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$11,$10,$13,$12,$14,$16,$15,$18,$17;
 $1=true._and_((function(){
 return true;
 
@@ -1731,62 +1731,62 @@ $self._deny_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=2;
 //>>excludeEnd("ctx");
-$5=false._and_((function(){
+$4=false._and_((function(){
 return false;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["and:"]=4;
 //>>excludeEnd("ctx");
-$4=$self._deny_($5);
+$self._deny_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=3;
 //>>excludeEnd("ctx");
-$6=true._or_((function(){
+$5=true._or_((function(){
 return true;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=1;
 //>>excludeEnd("ctx");
-$self._assert_($6);
+$self._assert_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=2;
 //>>excludeEnd("ctx");
-$7=true._or_((function(){
+$6=true._or_((function(){
 return false;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=2;
 //>>excludeEnd("ctx");
-$self._assert_($7);
+$self._assert_($6);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=3;
 //>>excludeEnd("ctx");
-$8=false._or_((function(){
+$7=false._or_((function(){
 return true;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=3;
 //>>excludeEnd("ctx");
-$self._assert_($8);
+$self._assert_($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=4;
 //>>excludeEnd("ctx");
-$10=false._or_((function(){
+$8=false._or_((function(){
 return false;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=4;
 //>>excludeEnd("ctx");
-$9=$self._deny_($10);
+$self._deny_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=4;
 //>>excludeEnd("ctx");
-$11=true._and_((function(){
+$9=true._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1801,30 +1801,30 @@ $ctx2.sendIdx[">"]=1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["and:"]=5;
 //>>excludeEnd("ctx");
-$self._assert_($11);
+$self._assert_($9);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=5;
 //>>excludeEnd("ctx");
-$13=(1).__gt((0));
+$11=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=2;
 //>>excludeEnd("ctx");
-$12=$recv($13)._and_((function(){
+$10=$recv($11)._and_((function(){
 return false;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["and:"]=6;
 //>>excludeEnd("ctx");
-$self._deny_($12);
+$self._deny_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["deny:"]=5;
 //>>excludeEnd("ctx");
-$15=(1).__gt((0));
+$13=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=3;
 //>>excludeEnd("ctx");
-$14=$recv($15)._and_((function(){
+$12=$recv($13)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1836,8 +1836,8 @@ $ctx2.sendIdx[">"]=4;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,11)});
 //>>excludeEnd("ctx");
 }));
-$self._deny_($14);
-$16=false._or_((function(){
+$self._deny_($12);
+$14=false._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1852,30 +1852,30 @@ $ctx2.sendIdx[">"]=5;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=5;
 //>>excludeEnd("ctx");
-$self._assert_($16);
+$self._assert_($14);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=6;
 //>>excludeEnd("ctx");
-$18=(1).__gt((0));
+$16=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=6;
 //>>excludeEnd("ctx");
-$17=$recv($18)._or_((function(){
+$15=$recv($16)._or_((function(){
 return false;
 
 }));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["or:"]=6;
 //>>excludeEnd("ctx");
-$self._assert_($17);
+$self._assert_($15);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:"]=7;
 //>>excludeEnd("ctx");
-$20=(1).__gt((0));
+$18=(1).__gt((0));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[">"]=7;
 //>>excludeEnd("ctx");
-$19=$recv($20)._or_((function(){
+$17=$recv($18)._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1884,7 +1884,7 @@ return (1).__gt((2));
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,14)});
 //>>excludeEnd("ctx");
 }));
-$self._assert_($19);
+$self._assert_($17);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testLogicKeywords",{})});
@@ -8138,7 +8138,7 @@ var array;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$5,$6,$7,$8;
+var $1,$2,$3,$4,$5,$6,$7;
 array=$recv($globals.Array)._new();
 $1=$recv(array)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -8153,38 +8153,38 @@ $recv($2)._add_((1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($2)._add_((3));
+$recv($2)._add_((3));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
-$4=$recv(array)._printString();
+$3=$recv(array)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=2;
 //>>excludeEnd("ctx");
-$self._assert_equals_($4,"an Array (1 3)");
+$self._assert_equals_($3,"an Array (1 3)");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=2;
 //>>excludeEnd("ctx");
 $recv(array)._add_("foo");
-$5=$recv(array)._printString();
+$4=$recv(array)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=3;
 //>>excludeEnd("ctx");
-$self._assert_equals_($5,"an Array (1 3 'foo')");
+$self._assert_equals_($4,"an Array (1 3 'foo')");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=3;
 //>>excludeEnd("ctx");
-$6=array;
-$recv($6)._remove_((1));
+$5=array;
+$recv($5)._remove_((1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["remove:"]=1;
 //>>excludeEnd("ctx");
-$recv($6)._remove_((3));
-$7=$recv(array)._printString();
+$recv($5)._remove_((3));
+$6=$recv(array)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=4;
 //>>excludeEnd("ctx");
-$self._assert_equals_($7,"an Array ('foo')");
+$self._assert_equals_($6,"an Array ('foo')");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=4;
 //>>excludeEnd("ctx");
@@ -8192,11 +8192,11 @@ $recv(array)._addLast_((3));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addLast:"]=1;
 //>>excludeEnd("ctx");
-$8=$recv(array)._printString();
+$7=$recv(array)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=5;
 //>>excludeEnd("ctx");
-$self._assert_equals_($8,"an Array ('foo' 3)");
+$self._assert_equals_($7,"an Array ('foo' 3)");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=5;
 //>>excludeEnd("ctx");
@@ -10230,7 +10230,7 @@ var set;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$5,$6,$7,$8;
+var $1,$2,$3,$4,$5,$6,$7;
 set=$recv($globals.Set)._new();
 $1=$recv(set)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -10245,15 +10245,15 @@ $recv($2)._add_((1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($2)._add_((3));
+$recv($2)._add_((3));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
-$4=$recv(set)._printString();
+$3=$recv(set)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=2;
 //>>excludeEnd("ctx");
-$self._assert_equals_($4,"a Set (1 3)");
+$self._assert_equals_($3,"a Set (1 3)");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=2;
 //>>excludeEnd("ctx");
@@ -10261,25 +10261,25 @@ $recv(set)._add_("foo");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
-$5=$recv(set)._printString();
+$4=$recv(set)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=3;
 //>>excludeEnd("ctx");
-$self._assert_equals_($5,"a Set (1 3 'foo')");
+$self._assert_equals_($4,"a Set (1 3 'foo')");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=3;
 //>>excludeEnd("ctx");
-$6=set;
-$recv($6)._remove_((1));
+$5=set;
+$recv($5)._remove_((1));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["remove:"]=1;
 //>>excludeEnd("ctx");
-$recv($6)._remove_((3));
-$7=$recv(set)._printString();
+$recv($5)._remove_((3));
+$6=$recv(set)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=4;
 //>>excludeEnd("ctx");
-$self._assert_equals_($7,"a Set ('foo')");
+$self._assert_equals_($6,"a Set ('foo')");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=4;
 //>>excludeEnd("ctx");
@@ -10287,11 +10287,11 @@ $recv(set)._add_((3));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=4;
 //>>excludeEnd("ctx");
-$8=$recv(set)._printString();
+$7=$recv(set)._printString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["printString"]=5;
 //>>excludeEnd("ctx");
-$self._assert_equals_($8,"a Set (3 'foo')");
+$self._assert_equals_($7,"a Set (3 'foo')");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=5;
 //>>excludeEnd("ctx");

+ 50 - 53
lang/src/Platform-ImportExport.js

@@ -265,7 +265,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4;
+var $1;
 $recv(aStream)._print_($recv(aClass)._superclass());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["print:"]=1;
@@ -275,7 +275,7 @@ $recv(aStream)._write_(" subclass: ");
 $ctx1.sendIdx["write:"]=1;
 //>>excludeEnd("ctx");
 $recv(aStream)._printSymbol_($recv(aClass)._name());
-$1=$recv(aStream)._lf();
+$recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
@@ -304,15 +304,15 @@ $recv(aStream)._write_("!");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["write:"]=4;
 //>>excludeEnd("ctx");
-$2=$recv(aStream)._lf();
+$recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
-$3=$recv(aClass)._comment();
+$1=$recv(aClass)._comment();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["comment"]=1;
 //>>excludeEnd("ctx");
-$recv($3)._ifNotEmpty_((function(){
+$recv($1)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -330,11 +330,10 @@ $recv(aStream)._lf();
 $ctx2.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
 $recv(aStream)._write_([$self._chunkEscape_($recv(aClass)._comment()),"!"]);
-$4=$recv(aStream)._lf();
+return $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=5;
 //>>excludeEnd("ctx");
-return $4;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -799,13 +798,13 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4;
+var $1;
 $recv(aStream)._write_("Trait named: ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["write:"]=1;
 //>>excludeEnd("ctx");
 $recv(aStream)._printSymbol_($recv(aClass)._name());
-$1=$recv(aStream)._lf();
+$recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
@@ -822,15 +821,15 @@ $recv(aStream)._write_("!");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["write:"]=3;
 //>>excludeEnd("ctx");
-$2=$recv(aStream)._lf();
+$recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
-$3=$recv(aClass)._comment();
+$1=$recv(aClass)._comment();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["comment"]=1;
 //>>excludeEnd("ctx");
-$recv($3)._ifNotEmpty_((function(){
+$recv($1)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -848,11 +847,10 @@ $recv(aStream)._lf();
 $ctx2.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
 $recv(aStream)._write_([$self._chunkEscape_($recv(aClass)._comment()),"!"]);
-$4=$recv(aStream)._lf();
+return $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
-return $4;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -1110,44 +1108,44 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$5,$4,$6,$7,$2,$1,$8,$10,$9,$receiver;
+var $2,$4,$3,$5,$6,$1,$7,$9,$8,$receiver;
 $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($recv(aClass)._name())._asJavaScriptSource();
+$2=$recv($recv(aClass)._name())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=1;
 //>>excludeEnd("ctx");
-$5=$recv(aClass)._superclass();
-if(($receiver = $5) == null || $receiver.a$nil){
-$4="null";
+$4=$recv(aClass)._superclass();
+if(($receiver = $4) == null || $receiver.a$nil){
+$3="null";
 } else {
 var superclass;
 superclass=$receiver;
-$4=$recv(superclass)._asJavaScriptSource();
+$3=$recv(superclass)._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=2;
 //>>excludeEnd("ctx");
 }
-$6=$recv($recv(aClass)._instanceVariableNames())._asJavaScriptSource();
+$5=$recv($recv(aClass)._instanceVariableNames())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=3;
 //>>excludeEnd("ctx");
-$7=$recv($recv(aClass)._category())._asJavaScriptSource();
+$6=$recv($recv(aClass)._category())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=4;
 //>>excludeEnd("ctx");
-$2=["$core.addClass(",$3,", ",$4,", ",$6,", ",$7,");"];
-$1=$recv(aStream)._write_($2);
+$1=["$core.addClass(",$2,", ",$3,", ",$5,", ",$6,");"];
+$recv(aStream)._write_($1);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["write:"]=1;
 //>>excludeEnd("ctx");
-$8=$recv(aClass)._comment();
+$7=$recv(aClass)._comment();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["comment"]=1;
 //>>excludeEnd("ctx");
-$recv($8)._ifNotEmpty_((function(){
+$recv($7)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1163,12 +1161,12 @@ $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
-$10=$recv(aClass)._asJavaScriptSource();
+$9=$recv(aClass)._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["asJavaScriptSource"]=5;
 //>>excludeEnd("ctx");
-$9=[$10,".comment=",$recv($recv($recv(aClass)._comment())._crlfSanitized())._asJavaScriptSource(),";"];
-$recv(aStream)._write_($9);
+$8=[$9,".comment=",$recv($recv($recv(aClass)._comment())._crlfSanitized())._asJavaScriptSource(),";"];
+$recv(aStream)._write_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["write:"]=3;
 //>>excludeEnd("ctx");
@@ -1747,29 +1745,29 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $3,$4,$2,$1,$5,$7,$6;
+var $2,$3,$1,$4,$6,$5;
 $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($recv(aClass)._name())._asJavaScriptSource();
+$2=$recv($recv(aClass)._name())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=1;
 //>>excludeEnd("ctx");
-$4=$recv($recv(aClass)._category())._asJavaScriptSource();
+$3=$recv($recv(aClass)._category())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavaScriptSource"]=2;
 //>>excludeEnd("ctx");
-$2=["$core.addTrait(",$3,", ",$4,");"];
-$1=$recv(aStream)._write_($2);
+$1=["$core.addTrait(",$2,", ",$3,");"];
+$recv(aStream)._write_($1);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["write:"]=1;
 //>>excludeEnd("ctx");
-$5=$recv(aClass)._comment();
+$4=$recv(aClass)._comment();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["comment"]=1;
 //>>excludeEnd("ctx");
-$recv($5)._ifNotEmpty_((function(){
+$recv($4)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1785,12 +1783,12 @@ $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
-$7=$recv(aClass)._asJavaScriptSource();
+$6=$recv(aClass)._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["asJavaScriptSource"]=3;
 //>>excludeEnd("ctx");
-$6=[$7,".comment=",$recv($recv($recv(aClass)._comment())._crlfSanitized())._asJavaScriptSource(),";"];
-$recv(aStream)._write_($6);
+$5=[$6,".comment=",$recv($recv($recv(aClass)._comment())._crlfSanitized())._asJavaScriptSource(),";"];
+$recv(aStream)._write_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["write:"]=3;
 //>>excludeEnd("ctx");
@@ -2013,7 +2011,7 @@ var importsForOutput,pragmaStart,pragmaEnd;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3,$5,$7,$11,$10,$12,$9,$8,$13,$6;
+var $1,$2,$4,$3,$6,$10,$9,$11,$8,$7,$12,$5;
 $1=$recv($globals.String)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
@@ -2062,33 +2060,32 @@ $recv(aStream)._write_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["write:"]=2;
 //>>excludeEnd("ctx");
-$5=$recv(aStream)._lf();
+return $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
-return $5;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
 }));
-$7=$recv(imports)._asJavaScriptSource();
-$11=$recv(vars)._size();
+$6=$recv(imports)._asJavaScriptSource();
+$10=$recv(vars)._size();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["size"]=1;
 //>>excludeEnd("ctx");
-$10=(1)._to_($11);
+$9=(1)._to_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["to:"]=1;
 //>>excludeEnd("ctx");
-$9=$recv($10)._collect_((function(each){
+$8=$recv($9)._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$12=$recv(each)._asString();
+$11=$recv(each)._asString();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["asString"]=1;
 //>>excludeEnd("ctx");
-return "$".__comma($12);
+return "$".__comma($11);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx[","]=3;
 //>>excludeEnd("ctx");
@@ -2099,16 +2096,16 @@ $ctx3.sendIdx[","]=3;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["collect:"]=1;
 //>>excludeEnd("ctx");
-$8=","._join_($9);
-$6=["$pkg.isReady = new Promise(function (resolve, reject) { requirejs(",$7,", function (",$8,") {",$recv((1)._to_($recv(vars)._size()))._collect_((function(each){
+$7=","._join_($8);
+$5=["$pkg.isReady = new Promise(function (resolve, reject) { requirejs(",$6,", function (",$7,") {",$recv((1)._to_($recv(vars)._size()))._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$13=$recv($recv($recv(vars)._at_(each)).__comma("=$")).__comma($recv(each)._asString());
+$12=$recv($recv($recv(vars)._at_(each)).__comma("=$")).__comma($recv(each)._asString());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx[","]=5;
 //>>excludeEnd("ctx");
-return $recv($13).__comma("; ");
+return $recv($12).__comma("; ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx[","]=4;
 //>>excludeEnd("ctx");
@@ -2116,7 +2113,7 @@ $ctx3.sendIdx[","]=4;
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2,4)});
 //>>excludeEnd("ctx");
 })),"resolve();}, reject); });"];
-$recv(aStream)._write_($6);
+$recv(aStream)._write_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["write:"]=3;
 //>>excludeEnd("ctx");