Browse Source

Do not re-alias alias variable

by making AliasVar >> isImmutable return true.
It's ok, as 'isImmutable' means 'can I just use it as is,
will it keep its value and not do side-effects?', which
AliasVar does (it's just a once-initialized holder).
Herbert Vojčík 8 years ago
parent
commit
0f8b7c27ec

+ 6 - 7
src/Compiler-AST.js

@@ -2619,21 +2619,20 @@ function $SendNode(){return $globals.SendNode||(typeof SendNode=="undefined"?nil
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3,$receiver;
+var $1,$3,$2,$receiver;
 $1=$recv($SendNode())._new();
 $recv($1)._position_(self._position());
 $recv($1)._source_(self._source());
-$2=$1;
-$4=self._receiver();
+$3=self._receiver();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["receiver"]=1;
 //>>excludeEnd("ctx");
-if(($receiver = $4) == null || $receiver.isNil){
-$3=anObject;
+if(($receiver = $3) == null || $receiver.isNil){
+$2=anObject;
 } else {
-$3=$recv(self._receiver())._valueForReceiver_(anObject);
+$2=$recv(self._receiver())._valueForReceiver_(anObject);
 };
-$recv($2)._receiver_($3);
+$recv($1)._receiver_($2);
 $recv($1)._selector_(self._selector());
 $recv($1)._arguments_(self._arguments());
 return $recv($1)._yourself();

+ 115 - 129
src/Compiler-IR.js

@@ -21,7 +21,7 @@ function $IRAssignment(){return $globals.IRAssignment||(typeof IRAssignment=="un
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$6,$5,$7,$8,$10,$9;
+var $1,$2,$3,$5,$4,$6,$7,$9,$8;
 $1=$recv(aNode)._isImmutable();
 if($core.assert($1)){
 $2=self._visit_(aNode);
@@ -34,30 +34,29 @@ $3=$recv($IRVariable())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$4=$3;
-$6=$recv($AliasVar())._new();
+$5=$recv($AliasVar())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$5=$recv($6)._name_("$".__comma(self._nextAlias()));
-$recv($4)._variable_($5);
-$7=$recv($3)._yourself();
+$4=$recv($5)._name_("$".__comma(self._nextAlias()));
+$recv($3)._variable_($4);
+$6=$recv($3)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-variable=$7;
-$8=self._sequence();
-$10=$recv($IRAssignment())._new();
-$recv($10)._add_(variable);
+variable=$6;
+$7=self._sequence();
+$9=$recv($IRAssignment())._new();
+$recv($9)._add_(variable);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
-$recv($10)._add_(self._visit_(aNode));
+$recv($9)._add_(self._visit_(aNode));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
-$9=$recv($10)._yourself();
-$recv($8)._add_($9);
+$8=$recv($9)._yourself();
+$recv($7)._add_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -371,40 +370,39 @@ function $IRTempDeclaration(){return $globals.IRTempDeclaration||(typeof IRTempD
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$6,$5,$7;
+var $1,$2,$3,$5,$4,$6;
 $1=$recv($IRClosure())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._arguments_($recv(aNode)._parameters());
 $recv($1)._requiresSmalltalkContext_($recv(aNode)._requiresSmalltalkContext());
-$2=$1;
-$3=$recv(aNode)._scope();
+$2=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=1;
 //>>excludeEnd("ctx");
-$recv($2)._scope_($3);
+$recv($1)._scope_($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope:"]=1;
 //>>excludeEnd("ctx");
-$4=$recv($1)._yourself();
+$3=$recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-closure=$4;
-$6=$recv(aNode)._scope();
+closure=$3;
+$5=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$5=$recv($6)._temps();
-$recv($5)._do_((function(each){
+$4=$recv($5)._temps();
+$recv($4)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$7=$recv($IRTempDeclaration())._new();
-$recv($7)._name_($recv(each)._name());
-$recv($7)._scope_($recv(aNode)._scope());
-return $recv(closure)._add_($recv($7)._yourself());
+$6=$recv($IRTempDeclaration())._new();
+$recv($6)._name_($recv(each)._name());
+$recv($6)._scope_($recv(aNode)._scope());
+return $recv(closure)._add_($recv($6)._yourself());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -449,7 +447,7 @@ function $IRBlockReturn(){return $globals.IRBlockReturn||(typeof IRBlockReturn==
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$3,$5,$6,$9,$8,$7,$10,$12,$13,$16,$15,$14,$11;
+var $1,$2,$4,$3,$5,$6,$9,$8,$7,$10,$12,$15,$14,$13,$11;
 $1=$recv($IRBlockSequence())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
@@ -508,20 +506,19 @@ $10=self._sequence();
 $ctx3.sendIdx["sequence"]=2;
 //>>excludeEnd("ctx");
 $12=$recv($IRBlockReturn())._new();
-$13=$12;
-$16=$recv(aNode)._nodes();
+$15=$recv(aNode)._nodes();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["nodes"]=4;
 //>>excludeEnd("ctx");
-$15=$recv($16)._last();
+$14=$recv($15)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["last"]=2;
 //>>excludeEnd("ctx");
-$14=self._visitOrAlias_($15);
+$13=self._visitOrAlias_($14);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["visitOrAlias:"]=2;
 //>>excludeEnd("ctx");
-$recv($13)._add_($14);
+$recv($12)._add_($13);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
@@ -736,7 +733,7 @@ function $IRVerbatim(){return $globals.IRVerbatim||(typeof IRVerbatim=="undefine
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$4,$5,$1,$7,$6,$8,$10,$11,$12,$13,$9,$14,$16,$15,$17,$18,$20,$21,$23,$24,$22,$25,$19,$26;
+var $2,$3,$4,$1,$6,$5,$7,$9,$10,$11,$8,$12,$14,$13,$15,$17,$19,$20,$18,$21,$16,$22;
 $2=$recv($IRMethod())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
@@ -752,51 +749,49 @@ $recv($2)._sendIndexes_($recv(aNode)._sendIndexes());
 $recv($2)._superSends_($recv(aNode)._superSends());
 $recv($2)._requiresSmalltalkContext_($recv(aNode)._requiresSmalltalkContext());
 $recv($2)._classReferences_($recv(aNode)._classReferences());
-$3=$2;
-$4=$recv(aNode)._scope();
+$3=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=1;
 //>>excludeEnd("ctx");
-$recv($3)._scope_($4);
+$recv($2)._scope_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope:"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($2)._yourself();
+$4=$recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$1=$5;
+$1=$4;
 self._method_($1);
-$7=$recv(aNode)._scope();
+$6=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$6=$recv($7)._temps();
-$recv($6)._do_((function(each){
+$5=$recv($6)._temps();
+$recv($5)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$8=self._method();
+$7=self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["method"]=1;
 //>>excludeEnd("ctx");
-$10=$recv($IRTempDeclaration())._new();
+$9=$recv($IRTempDeclaration())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$recv($10)._name_($recv(each)._name());
-$11=$10;
-$12=$recv(aNode)._scope();
+$recv($9)._name_($recv(each)._name());
+$10=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["scope"]=3;
 //>>excludeEnd("ctx");
-$recv($11)._scope_($12);
-$13=$recv($10)._yourself();
+$recv($9)._scope_($10);
+$11=$recv($9)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["yourself"]=2;
 //>>excludeEnd("ctx");
-$9=$13;
-return $recv($8)._add_($9);
+$8=$11;
+return $recv($7)._add_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -811,11 +806,11 @@ $recv($recv(aNode)._nodes())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$14=self._method();
+$12=self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["method"]=2;
 //>>excludeEnd("ctx");
-return $recv($14)._add_(self._visit_(each));
+return $recv($12)._add_(self._visit_(each));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
@@ -823,48 +818,46 @@ $ctx2.sendIdx["add:"]=2;
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$16=$recv(aNode)._scope();
+$14=$recv(aNode)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=4;
 //>>excludeEnd("ctx");
-$15=$recv($16)._hasLocalReturn();
-if(!$core.assert($15)){
-$17=self._method();
+$13=$recv($14)._hasLocalReturn();
+if(!$core.assert($13)){
+$15=self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["method"]=3;
 //>>excludeEnd("ctx");
-$18=$17;
-$20=$recv($IRReturn())._new();
+$17=$recv($IRReturn())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=3;
 //>>excludeEnd("ctx");
-$21=$20;
-$23=$recv($IRVariable())._new();
+$19=$recv($IRVariable())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=4;
 //>>excludeEnd("ctx");
-$recv($23)._variable_($recv($recv($recv(aNode)._scope())._pseudoVars())._at_("self"));
-$24=$recv($23)._yourself();
+$recv($19)._variable_($recv($recv($recv(aNode)._scope())._pseudoVars())._at_("self"));
+$20=$recv($19)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=3;
 //>>excludeEnd("ctx");
-$22=$24;
-$recv($21)._add_($22);
+$18=$20;
+$recv($17)._add_($18);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=4;
 //>>excludeEnd("ctx");
-$25=$recv($20)._yourself();
+$21=$recv($17)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=4;
 //>>excludeEnd("ctx");
-$19=$25;
-$recv($18)._add_($19);
+$16=$21;
+$recv($15)._add_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
-$26=$recv($IRVerbatim())._new();
-$recv($26)._source_("");
-$recv($17)._add_($recv($26)._yourself());
+$22=$recv($IRVerbatim())._new();
+$recv($22)._source_("");
+$recv($15)._add_($recv($22)._yourself());
 };
 return self._method();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4535,7 +4528,7 @@ var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$5,$4,$3,$6,$7,$8,$10,$9,$11,$12,$13;
+var $1,$4,$3,$2,$5,$6,$8,$7,$9,$10,$11;
 $1=self._stream();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["stream"]=1;
@@ -4556,20 +4549,19 @@ $recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
-$2=$1;
-$5=$recv(anIRSend)._scope();
+$4=$recv(anIRSend)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=1;
 //>>excludeEnd("ctx");
-$4=$recv($5)._alias();
+$3=$recv($4)._alias();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["alias"]=1;
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma(".supercall = true, ");
+$2=$recv($3).__comma(".supercall = true, ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_($3);
+$recv($1)._nextPutAll_($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
@@ -4593,33 +4585,32 @@ $recv($1)._nextPutAll_(".superclass.fn.prototype.");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
-$6=$1;
-$7=$recv($recv($recv(anIRSend)._selector())._asJavaScriptMethodName()).__comma(".apply(");
+$5=$recv($recv($recv(anIRSend)._selector())._asJavaScriptMethodName()).__comma(".apply(");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=2;
 //>>excludeEnd("ctx");
-$recv($6)._nextPutAll_($7);
+$recv($1)._nextPutAll_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
-$8=$recv($1)._nextPutAll_("$recv(");
+$6=$recv($1)._nextPutAll_("$recv(");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=8;
 //>>excludeEnd("ctx");
-$10=$recv(anIRSend)._instructions();
+$8=$recv(anIRSend)._instructions();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["instructions"]=1;
 //>>excludeEnd("ctx");
-$9=$recv($10)._first();
-self._visit_($9);
+$7=$recv($8)._first();
+self._visit_($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["visit:"]=1;
 //>>excludeEnd("ctx");
-$11=self._stream();
+$9=self._stream();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["stream"]=2;
 //>>excludeEnd("ctx");
-$recv($11)._nextPutAll_("), [");
+$recv($9)._nextPutAll_("), [");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=9;
 //>>excludeEnd("ctx");
@@ -4635,11 +4626,11 @@ return self._visit_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$12=self._stream();
+$10=self._stream();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["stream"]=3;
 //>>excludeEnd("ctx");
-return $recv($12)._nextPutAll_(",");
+return $recv($10)._nextPutAll_(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["nextPutAll:"]=10;
 //>>excludeEnd("ctx");
@@ -4647,29 +4638,29 @@ $ctx2.sendIdx["nextPutAll:"]=10;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$13=self._stream();
-$recv($13)._nextPutAll_("]));");
+$11=self._stream();
+$recv($11)._nextPutAll_("]));");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=11;
 //>>excludeEnd("ctx");
-$recv($13)._lf();
+$recv($11)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=5;
 //>>excludeEnd("ctx");
-$recv($13)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
+$recv($11)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=12;
 //>>excludeEnd("ctx");
-$recv($13)._lf();
+$recv($11)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=6;
 //>>excludeEnd("ctx");
-$recv($13)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
+$recv($11)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=13;
 //>>excludeEnd("ctx");
-$recv($13)._lf();
-$recv($13)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
+$recv($11)._lf();
+$recv($11)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend},$globals.IRJSTranslator)});
@@ -5477,7 +5468,7 @@ function $String(){return $globals.String||(typeof String=="undefined"?nil:Strin
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$5,$4,$3,$6,$9,$8,$7,$10,$11,$12,$15,$14,$13,$16,$19,$18,$17,$20,$23,$22,$21,$24,$25;
+var $1,$4,$3,$2,$7,$6,$5,$8,$9,$12,$11,$10,$15,$14,$13,$18,$17,$16,$19,$20;
 $1=self["@stream"];
 $recv($1)._nextPutAll_("$core.method({");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5487,20 +5478,19 @@ $recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=1;
 //>>excludeEnd("ctx");
-$2=$1;
-$5=$recv($recv(aMethod)._selector())._asJavascript();
+$4=$recv($recv(aMethod)._selector())._asJavascript();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavascript"]=1;
 //>>excludeEnd("ctx");
-$4="selector: ".__comma($5);
+$3="selector: ".__comma($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=2;
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma(",");
+$2=$recv($3).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_($3);
+$recv($1)._nextPutAll_($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=2;
 //>>excludeEnd("ctx");
@@ -5508,24 +5498,23 @@ $recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=2;
 //>>excludeEnd("ctx");
-$6=$1;
-$9=$recv($recv(aMethod)._source())._asJavascript();
+$7=$recv($recv(aMethod)._source())._asJavascript();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavascript"]=2;
 //>>excludeEnd("ctx");
-$8="source: ".__comma($9);
+$6="source: ".__comma($7);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=4;
 //>>excludeEnd("ctx");
-$7=$recv($8).__comma(",");
+$5=$recv($6).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=3;
 //>>excludeEnd("ctx");
-$recv($6)._nextPutAll_($7);
+$recv($1)._nextPutAll_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=3;
 //>>excludeEnd("ctx");
-$10=$recv($1)._lf();
+$8=$recv($1)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=3;
 //>>excludeEnd("ctx");
@@ -5533,47 +5522,44 @@ $recv(aBlock)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=1;
 //>>excludeEnd("ctx");
-$11=self["@stream"];
-$12=$11;
-$15=$recv($String())._lf();
+$9=self["@stream"];
+$12=$recv($String())._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=4;
 //>>excludeEnd("ctx");
-$14=",".__comma($15);
+$11=",".__comma($12);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=6;
 //>>excludeEnd("ctx");
-$13=$recv($14).__comma("messageSends: ");
+$10=$recv($11).__comma("messageSends: ");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=5;
 //>>excludeEnd("ctx");
-$recv($12)._nextPutAll_($13);
+$recv($9)._nextPutAll_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=4;
 //>>excludeEnd("ctx");
-$16=$11;
-$19=$recv($recv(aMethod)._messageSends())._asArray();
+$15=$recv($recv(aMethod)._messageSends())._asArray();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asArray"]=1;
 //>>excludeEnd("ctx");
-$18=$recv($19)._asJavascript();
+$14=$recv($15)._asJavascript();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavascript"]=3;
 //>>excludeEnd("ctx");
-$17=$recv($18).__comma(",");
+$13=$recv($14).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=7;
 //>>excludeEnd("ctx");
-$recv($16)._nextPutAll_($17);
+$recv($9)._nextPutAll_($13);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=5;
 //>>excludeEnd("ctx");
-$recv($11)._lf();
+$recv($9)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["lf"]=5;
 //>>excludeEnd("ctx");
-$20=$11;
-$23=$recv($recv($recv($recv(aMethod)._arguments())._collect_((function(each){
+$18=$recv($recv($recv($recv(aMethod)._arguments())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -5585,17 +5571,17 @@ return $recv(each)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["asJavascript"]=4;
 //>>excludeEnd("ctx");
-$22="args: ".__comma($23);
-$21=$recv($22).__comma(",");
+$17="args: ".__comma($18);
+$16=$recv($17).__comma(",");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=8;
 //>>excludeEnd("ctx");
-$recv($20)._nextPutAll_($21);
+$recv($9)._nextPutAll_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=6;
 //>>excludeEnd("ctx");
-$recv($11)._lf();
-$24=$recv($11)._nextPutAll_("referencedClasses: [");
+$recv($9)._lf();
+$19=$recv($9)._nextPutAll_("referencedClasses: [");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=7;
 //>>excludeEnd("ctx");
@@ -5622,12 +5608,12 @@ $ctx2.sendIdx["nextPutAll:"]=9;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$25=self["@stream"];
-$recv($25)._nextPutAll_("]");
+$20=self["@stream"];
+$recv($20)._nextPutAll_("]");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["nextPutAll:"]=10;
 //>>excludeEnd("ctx");
-$recv($25)._nextPutAll_("})");
+$recv($20)._nextPutAll_("})");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"nextPutMethodDeclaration:with:",{aMethod:aMethod,aBlock:aBlock},$globals.JSStream)});

+ 56 - 62
src/Compiler-Inlining.js

@@ -1409,7 +1409,7 @@ function $IRBlockSequence(){return $globals.IRBlockSequence||(typeof IRBlockSequ
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$4,$6,$7,$5,$2;
+var $1,$3,$5,$6,$4,$2;
 $1=$recv($IRInlinedIfNilIfNotNil())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
@@ -1419,15 +1419,14 @@ $3=$recv($IRClosure())._new();
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$4=$3;
-$6=$recv($IRBlockSequence())._new();
-$recv($6)._add_($recv($recv(self._send())._instructions())._first());
-$7=$recv($6)._yourself();
+$5=$recv($IRBlockSequence())._new();
+$recv($5)._add_($recv($recv(self._send())._instructions())._first());
+$6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$5=$7;
-$recv($4)._add_($5);
+$4=$6;
+$recv($3)._add_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -1482,7 +1481,7 @@ function $IRBlockSequence(){return $globals.IRBlockSequence||(typeof IRBlockSequ
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$4,$6,$7,$5,$2;
+var $1,$3,$5,$6,$4,$2;
 $1=$recv($IRInlinedIfNilIfNotNil())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
@@ -1492,15 +1491,14 @@ $3=$recv($IRClosure())._new();
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
-$4=$3;
-$6=$recv($IRBlockSequence())._new();
-$recv($6)._add_($recv($recv(self._send())._instructions())._first());
-$7=$recv($6)._yourself();
+$5=$recv($IRBlockSequence())._new();
+$recv($5)._add_($recv($recv(self._send())._instructions())._first());
+$6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$5=$7;
-$recv($4)._add_($5);
+$4=$6;
+$recv($3)._add_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=1;
 //>>excludeEnd("ctx");
@@ -1605,15 +1603,14 @@ function $AliasVar(){return $globals.AliasVar||(typeof AliasVar=="undefined"?nil
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$6,$7,$5,$8,$10,$11,$13,$15,$16,$17,$18,$14,$12,$19,$21,$23,$24,$22,$20,$9,$26,$25,$29,$28,$30,$27,$31,$34,$33,$32;
+var $1,$2,$3,$5,$6,$4,$7,$9,$11,$13,$14,$15,$12,$10,$17,$19,$20,$18,$16,$8,$22,$21,$25,$24,$26,$23,$27,$30,$29,$28;
 inlinedClosure=self._inlinedClosure();
 $1=inlinedClosure;
-$2=$1;
-$3=$recv(anIRClosure)._scope();
+$2=$recv(anIRClosure)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope"]=1;
 //>>excludeEnd("ctx");
-$recv($2)._scope_($3);
+$recv($1)._scope_($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["scope:"]=1;
 //>>excludeEnd("ctx");
@@ -1638,84 +1635,81 @@ $recv($recv(anIRClosure)._arguments())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$4=inlinedClosure;
-$6=$recv($IRTempDeclaration())._new();
+$3=inlinedClosure;
+$5=$recv($IRTempDeclaration())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$recv($6)._name_(each);
+$recv($5)._name_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["name:"]=1;
 //>>excludeEnd("ctx");
-$7=$recv($6)._yourself();
+$6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$5=$7;
-$recv($4)._add_($5);
+$4=$6;
+$recv($3)._add_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=2;
 //>>excludeEnd("ctx");
-$8=sequence;
-$10=$recv($IRAssignment())._new();
+$7=sequence;
+$9=$recv($IRAssignment())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$11=$10;
-$13=$recv($IRVariable())._new();
+$11=$recv($IRVariable())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=3;
 //>>excludeEnd("ctx");
-$15=$recv($AliasVar())._new();
+$13=$recv($AliasVar())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=4;
 //>>excludeEnd("ctx");
-$16=$15;
-$17=$recv(inlinedClosure)._scope();
+$14=$recv(inlinedClosure)._scope();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["scope"]=2;
 //>>excludeEnd("ctx");
-$recv($16)._scope_($17);
+$recv($13)._scope_($14);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["scope:"]=2;
 //>>excludeEnd("ctx");
-$recv($15)._name_(each);
+$recv($13)._name_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["name:"]=2;
 //>>excludeEnd("ctx");
-$18=$recv($15)._yourself();
+$15=$recv($13)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["yourself"]=2;
 //>>excludeEnd("ctx");
-$14=$18;
-$12=$recv($13)._variable_($14);
+$12=$15;
+$10=$recv($11)._variable_($12);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["variable:"]=1;
 //>>excludeEnd("ctx");
-$recv($11)._add_($12);
+$recv($9)._add_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=4;
 //>>excludeEnd("ctx");
-$19=$10;
-$21=$recv($IRVariable())._new();
+$17=$recv($IRVariable())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["new"]=5;
 //>>excludeEnd("ctx");
-$23=$recv($AliasVar())._new();
-$recv($23)._scope_($recv(inlinedClosure)._scope());
-$recv($23)._name_("$receiver");
-$24=$recv($23)._yourself();
+$19=$recv($AliasVar())._new();
+$recv($19)._scope_($recv(inlinedClosure)._scope());
+$recv($19)._name_("$receiver");
+$20=$recv($19)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["yourself"]=3;
 //>>excludeEnd("ctx");
-$22=$24;
-$20=$recv($21)._variable_($22);
-$recv($19)._add_($20);
+$18=$20;
+$16=$recv($17)._variable_($18);
+$recv($9)._add_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=5;
 //>>excludeEnd("ctx");
-$9=$recv($10)._yourself();
-return $recv($8)._add_($9);
+$8=$recv($9)._yourself();
+return $recv($7)._add_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=3;
 //>>excludeEnd("ctx");
@@ -1730,15 +1724,15 @@ $recv(inlinedClosure)._add_(sequence);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["add:"]=6;
 //>>excludeEnd("ctx");
-$26=$recv(anIRClosure)._instructions();
+$22=$recv(anIRClosure)._instructions();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["instructions"]=2;
 //>>excludeEnd("ctx");
-$25=$recv($26)._last();
+$21=$recv($22)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["last"]=1;
 //>>excludeEnd("ctx");
-statements=$recv($25)._instructions();
+statements=$recv($21)._instructions();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["instructions"]=1;
 //>>excludeEnd("ctx");
@@ -1758,33 +1752,33 @@ $ctx3.sendIdx["add:"]=7;
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2,4)});
 //>>excludeEnd("ctx");
 }));
-$29=$recv(statements)._last();
+$25=$recv(statements)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["last"]=2;
 //>>excludeEnd("ctx");
-$28=$recv($29)._isReturn();
-$27=$recv($28)._and_((function(){
+$24=$recv($25)._isReturn();
+$23=$recv($24)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$30=$recv(statements)._last();
+$26=$recv(statements)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.sendIdx["last"]=3;
 //>>excludeEnd("ctx");
-return $recv($30)._isBlockReturn();
+return $recv($26)._isBlockReturn();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,5)});
 //>>excludeEnd("ctx");
 }));
-if($core.assert($27)){
-$31=sequence;
-$34=$recv(statements)._last();
+if($core.assert($23)){
+$27=sequence;
+$30=$recv(statements)._last();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["last"]=4;
 //>>excludeEnd("ctx");
-$33=$recv($34)._instructions();
-$32=$recv($33)._first();
-return $recv($31)._add_($32);
+$29=$recv($30)._instructions();
+$28=$recv($29)._first();
+return $recv($27)._add_($28);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["add:"]=8;
 //>>excludeEnd("ctx");

+ 10 - 11
src/Compiler-Interpreter.js

@@ -1320,20 +1320,19 @@ function $ASTPCNodeVisitor(){return $globals.ASTPCNodeVisitor||(typeof ASTPCNode
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4,$7,$6,$5,$receiver;
+var $1,$2,$3,$6,$5,$4,$receiver;
 $1=$recv($ASTPCNodeVisitor())._new();
 $recv($1)._selector_(self._evaluatedSelector());
 $recv($1)._context_(self);
-$2=$1;
-$3=self._ast();
+$2=self._ast();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["ast"]=1;
 //>>excludeEnd("ctx");
-$recv($2)._visit_($3);
+$recv($1)._visit_($2);
 currentNode=$recv($1)._currentNode();
-$4=$recv(self._ast())._sequenceNode();
-if(($receiver = $4) == null || $receiver.isNil){
-$4;
+$3=$recv(self._ast())._sequenceNode();
+if(($receiver = $3) == null || $receiver.isNil){
+$3;
 } else {
 var sequence;
 sequence=$receiver;
@@ -1351,13 +1350,13 @@ $ctx1.sendIdx["do:"]=1;
 //>>excludeEnd("ctx");
 };
 $recv(anInterpreter)._node_(currentNode);
-$7=self._innerContext();
+$6=self._innerContext();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["innerContext"]=1;
 //>>excludeEnd("ctx");
-$6=$recv($7)._arguments();
-$5=$recv($6)._reversed();
-$recv($5)._do_((function(each){
+$5=$recv($6)._arguments();
+$4=$recv($5)._reversed();
+$recv($4)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");

+ 32 - 16
src/Compiler-Semantic.js

@@ -1396,6 +1396,24 @@ $core.addClass('AliasVar', $globals.ScopeVar, ['node'], 'Compiler-Semantic');
 //>>excludeStart("ide", pragmas.excludeIdeData);
 $globals.AliasVar.comment="I am an internally defined variable by the compiler";
 //>>excludeEnd("ide");
+$core.addMethod(
+$core.method({
+selector: "isImmutable",
+protocol: 'testing',
+fn: function (){
+var self=this;
+return true;
+
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isImmutable\x0a\x09^ true",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: []
+}),
+$globals.AliasVar);
+
 $core.addMethod(
 $core.method({
 selector: "node",
@@ -1787,7 +1805,7 @@ function $UnknownVariableError(){return $globals.UnknownVariableError||(typeof U
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3,$4;
+var $1,$2,$3;
 identifier=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=1;
@@ -1803,12 +1821,11 @@ return self._isVariableUndefined_inPackage_(identifier,self._thePackage());
 }));
 if($core.assert($1)){
 $2=$recv($UnknownVariableError())._new();
-$3=$2;
-$4=$recv(aNode)._value();
+$3=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=2;
 //>>excludeEnd("ctx");
-$recv($3)._variableName_($4);
+$recv($2)._variableName_($3);
 $recv($2)._signal();
 } else {
 $recv($recv($recv(self["@currentScope"])._methodScope())._unknownVariables())._add_($recv(aNode)._value());
@@ -2608,7 +2625,7 @@ function $UnknownVar(){return $globals.UnknownVar||(typeof UnknownVar=="undefine
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$2,$4,$5,$6,$7,$8,$9,$10,$receiver;
+var $1,$3,$2,$4,$5,$6,$7,$8,$9,$receiver;
 binding=$recv(self["@currentScope"])._lookupVariable_(aNode);
 $1=binding;
 if(($receiver = $1) == null || $receiver.isNil){
@@ -2622,32 +2639,31 @@ $4=$recv($ClassRefVar())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$5=$4;
-$6=$recv(aNode)._value();
+$5=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=2;
 //>>excludeEnd("ctx");
-$recv($5)._name_($6);
+$recv($4)._name_($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["name:"]=1;
 //>>excludeEnd("ctx");
-$7=$recv($4)._yourself();
+$6=$recv($4)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-binding=$7;
+binding=$6;
 binding;
-$8=self._classReferences();
-$9=$recv(aNode)._value();
+$7=self._classReferences();
+$8=$recv(aNode)._value();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["value"]=3;
 //>>excludeEnd("ctx");
-$recv($8)._add_($9);
+$recv($7)._add_($8);
 } else {
 self._errorUnknownVariable_(aNode);
-$10=$recv($UnknownVar())._new();
-$recv($10)._name_($recv(aNode)._value());
-binding=$recv($10)._yourself();
+$9=$recv($UnknownVar())._new();
+$recv($9)._name_($recv(aNode)._value());
+binding=$recv($9)._yourself();
 binding;
 };
 } else {

+ 6 - 0
src/Compiler-Semantic.st

@@ -297,6 +297,12 @@ node: aNode
 	node := aNode
 ! !
 
+!AliasVar methodsFor: 'testing'!
+
+isImmutable
+	^ true
+! !
+
 ScopeVar subclass: #ArgVar
 	instanceVariableNames: ''
 	package: 'Compiler-Semantic'!

+ 13 - 16
src/Compiler-Tests.js

@@ -91,17 +91,16 @@ function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $1=$recv($ASTPCNodeVisitor())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$2=$1;
-$3=$recv($recv($AIContext())._new())._yourself();
+$2=$recv($recv($AIContext())._new())._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$recv($2)._context_($3);
+$recv($1)._context_($2);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"astPCNodeVisitor",{},$globals.ASTPCNodeVisitorTest)});
@@ -127,18 +126,17 @@ function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $1=$recv($ASTPCNodeVisitor())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
 $recv($1)._selector_(aString);
-$2=$1;
-$3=$recv($recv($AIContext())._new())._yourself();
+$2=$recv($recv($AIContext())._new())._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$recv($2)._context_($3);
+$recv($1)._context_($2);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"astPCNodeVisitorForSelector:",{aString:aString},$globals.ASTPCNodeVisitorTest)});
@@ -2903,18 +2901,17 @@ function $AIContext(){return $globals.AIContext||(typeof AIContext=="undefined"?
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$4,$5,$3;
+var $1,$3,$4,$2;
 $1=$recv($AISemanticAnalyzer())._on_($Object());
-$2=$1;
-$4=$recv($AIContext())._new();
-$recv($4)._defineLocal_("local");
-$recv($4)._localAt_put_("local",(3));
-$5=$recv($4)._yourself();
+$3=$recv($AIContext())._new();
+$recv($3)._defineLocal_("local");
+$recv($3)._localAt_put_("local",(3));
+$4=$recv($3)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$3=$5;
-$recv($2)._context_($3);
+$2=$4;
+$recv($1)._context_($2);
 self["@analyzer"]=$recv($1)._yourself();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 14 - 16
src/Kernel-Announcements.js

@@ -408,22 +408,21 @@ function $AnnouncementValuable(){return $globals.AnnouncementValuable||(typeof A
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$4,$6,$7,$5,$2;
+var $1,$3,$5,$6,$4,$2;
 $1=self["@subscriptions"];
 $3=$recv($AnnouncementSubscription())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$4=$3;
-$6=$recv($AnnouncementValuable())._new();
-$recv($6)._valuable_(aBlock);
-$recv($6)._receiver_(aReceiver);
-$7=$recv($6)._yourself();
+$5=$recv($AnnouncementValuable())._new();
+$recv($5)._valuable_(aBlock);
+$recv($5)._receiver_(aReceiver);
+$6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$5=$7;
-$recv($4)._valuable_($5);
+$4=$6;
+$recv($3)._valuable_($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["valuable:"]=1;
 //>>excludeEnd("ctx");
@@ -495,22 +494,21 @@ function $MessageSend(){return $globals.MessageSend||(typeof MessageSend=="undef
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$3,$4,$6,$7,$5,$2;
+var $1,$3,$5,$6,$4,$2;
 $1=self["@subscriptions"];
 $3=$recv($AnnouncementSubscription())._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$4=$3;
-$6=$recv($MessageSend())._new();
-$recv($6)._receiver_(anObject);
-$recv($6)._selector_(aSelector);
-$7=$recv($6)._yourself();
+$5=$recv($MessageSend())._new();
+$recv($5)._receiver_(anObject);
+$recv($5)._selector_(aSelector);
+$6=$recv($5)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$5=$7;
-$recv($4)._valuable_($5);
+$4=$6;
+$recv($3)._valuable_($4);
 $recv($3)._announcementClass_(aClass);
 $2=$recv($3)._yourself();
 $recv($1)._add_($2);

+ 70 - 78
src/Kernel-Tests.js

@@ -2721,123 +2721,119 @@ var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$5,$4,$6,$1,$7,$10,$9,$11,$12,$13,$8,$14,$17,$16,$18,$20,$19,$21,$15,$23,$24,$25,$26,$22,$27,$28;
+var $2,$4,$3,$5,$1,$6,$9,$8,$10,$11,$7,$12,$15,$14,$17,$16,$18,$13,$20,$21,$22,$19,$23,$24;
 $2=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=1;
 //>>excludeEnd("ctx");
-$3=$2;
-$5=self._collectionClass();
+$4=self._collectionClass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionClass"]=1;
 //>>excludeEnd("ctx");
-$4=$recv($5)._new();
+$3=$recv($4)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=1;
 //>>excludeEnd("ctx");
-$recv($3)._addAll_($4);
+$recv($2)._addAll_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=1;
 //>>excludeEnd("ctx");
-$6=$recv($2)._yourself();
+$5=$recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$1=$6;
-$7=self._collection();
+$1=$5;
+$6=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=2;
 //>>excludeEnd("ctx");
-self._assert_equals_($1,$7);
+self._assert_equals_($1,$6);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=1;
 //>>excludeEnd("ctx");
-$10=self._collectionClass();
+$9=self._collectionClass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionClass"]=2;
 //>>excludeEnd("ctx");
-$9=$recv($10)._new();
+$8=$recv($9)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=2;
 //>>excludeEnd("ctx");
-$11=$9;
-$12=self._collection();
+$10=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=3;
 //>>excludeEnd("ctx");
-$recv($11)._addAll_($12);
+$recv($8)._addAll_($10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=2;
 //>>excludeEnd("ctx");
-$13=$recv($9)._yourself();
+$11=$recv($8)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=2;
 //>>excludeEnd("ctx");
-$8=$13;
-$14=self._collection();
+$7=$11;
+$12=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=4;
 //>>excludeEnd("ctx");
-self._assert_equals_($8,$14);
+self._assert_equals_($7,$12);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=2;
 //>>excludeEnd("ctx");
-$17=self._collectionClass();
+$15=self._collectionClass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionClass"]=3;
 //>>excludeEnd("ctx");
-$16=$recv($17)._new();
+$14=$recv($15)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=3;
 //>>excludeEnd("ctx");
-$18=$16;
-$20=self._collectionClass();
+$17=self._collectionClass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionClass"]=4;
 //>>excludeEnd("ctx");
-$19=$recv($20)._new();
+$16=$recv($17)._new();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["new"]=4;
 //>>excludeEnd("ctx");
-$recv($18)._addAll_($19);
+$recv($14)._addAll_($16);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=3;
 //>>excludeEnd("ctx");
-$21=$recv($16)._yourself();
+$18=$recv($14)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=3;
 //>>excludeEnd("ctx");
-$15=$21;
-self._assert_equals_($15,$recv(self._collectionClass())._new());
+$13=$18;
+self._assert_equals_($13,$recv(self._collectionClass())._new());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=3;
 //>>excludeEnd("ctx");
-$23=self._collection();
+$20=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=5;
 //>>excludeEnd("ctx");
-$24=$23;
-$25=self._sampleNewValueAsCollection();
+$21=self._sampleNewValueAsCollection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["sampleNewValueAsCollection"]=1;
 //>>excludeEnd("ctx");
-$recv($24)._addAll_($25);
+$recv($20)._addAll_($21);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=4;
 //>>excludeEnd("ctx");
-$26=$recv($23)._yourself();
+$22=$recv($20)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=4;
 //>>excludeEnd("ctx");
-$22=$26;
-$27=self._collectionWithNewValue();
+$19=$22;
+$23=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=1;
 //>>excludeEnd("ctx");
-self._assert_equals_($22,$27);
-$28=self._sampleNewValueAsCollection();
-$recv($28)._addAll_(self._collection());
-self._assertSameContents_as_($recv($28)._yourself(),self._collectionWithNewValue());
+self._assert_equals_($19,$23);
+$24=self._sampleNewValueAsCollection();
+$recv($24)._addAll_(self._collection());
+self._assertSameContents_as_($recv($24)._yourself(),self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{},$globals.CollectionTest)});
@@ -5260,7 +5256,7 @@ var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$4,$5,$1,$6,$8,$9,$10,$11,$7,$12,$14,$13;
+var $2,$3,$4,$1,$5,$7,$8,$9,$6,$10,$12,$11;
 (
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true, 
@@ -5273,61 +5269,59 @@ $2=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=1;
 //>>excludeEnd("ctx");
-$3=$2;
-$4=self._collection();
+$3=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=2;
 //>>excludeEnd("ctx");
-$recv($3)._addAll_($4);
+$recv($2)._addAll_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($2)._yourself();
+$4=$recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$1=$5;
-$6=self._collection();
+$1=$4;
+$5=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=3;
 //>>excludeEnd("ctx");
-self._assert_equals_($1,$6);
+self._assert_equals_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=1;
 //>>excludeEnd("ctx");
-$8=self._collection();
+$7=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=4;
 //>>excludeEnd("ctx");
-$9=$8;
-$10=self._collectionWithNewValue();
+$8=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=1;
 //>>excludeEnd("ctx");
-$recv($9)._addAll_($10);
+$recv($7)._addAll_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=2;
 //>>excludeEnd("ctx");
-$11=$recv($8)._yourself();
+$9=$recv($7)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=2;
 //>>excludeEnd("ctx");
-$7=$11;
-$12=self._collectionWithNewValue();
+$6=$9;
+$10=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=2;
 //>>excludeEnd("ctx");
-self._assert_equals_($7,$12);
+self._assert_equals_($6,$10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=2;
 //>>excludeEnd("ctx");
-$14=self._collectionWithNewValue();
+$12=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=3;
 //>>excludeEnd("ctx");
-$recv($14)._addAll_(self._collection());
-$13=$recv($14)._yourself();
-self._assert_equals_($13,self._collectionWithNewValue());
+$recv($12)._addAll_(self._collection());
+$11=$recv($12)._yourself();
+self._assert_equals_($11,self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{},$globals.AssociativeCollectionTest)});
@@ -9097,7 +9091,7 @@ var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $2,$3,$4,$5,$1,$6,$8,$9,$10,$11,$7,$12,$14,$13;
+var $2,$3,$4,$1,$5,$7,$8,$9,$6,$10,$12,$11;
 (
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true, 
@@ -9110,61 +9104,59 @@ $2=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=1;
 //>>excludeEnd("ctx");
-$3=$2;
-$4=self._collection();
+$3=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=2;
 //>>excludeEnd("ctx");
-$recv($3)._addAll_($4);
+$recv($2)._addAll_($3);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=1;
 //>>excludeEnd("ctx");
-$5=$recv($2)._yourself();
+$4=$recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=1;
 //>>excludeEnd("ctx");
-$1=$5;
-$6=self._collection();
+$1=$4;
+$5=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=3;
 //>>excludeEnd("ctx");
-self._assert_equals_($1,$6);
+self._assert_equals_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=1;
 //>>excludeEnd("ctx");
-$8=self._collection();
+$7=self._collection();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collection"]=4;
 //>>excludeEnd("ctx");
-$9=$8;
-$10=self._collectionWithNewValue();
+$8=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=1;
 //>>excludeEnd("ctx");
-$recv($9)._addAll_($10);
+$recv($7)._addAll_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["addAll:"]=2;
 //>>excludeEnd("ctx");
-$11=$recv($8)._yourself();
+$9=$recv($7)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["yourself"]=2;
 //>>excludeEnd("ctx");
-$7=$11;
-$12=self._collectionWithNewValue();
+$6=$9;
+$10=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=2;
 //>>excludeEnd("ctx");
-self._assert_equals_($7,$12);
+self._assert_equals_($6,$10);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["assert:equals:"]=2;
 //>>excludeEnd("ctx");
-$14=self._collectionWithNewValue();
+$12=self._collectionWithNewValue();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx["collectionWithNewValue"]=3;
 //>>excludeEnd("ctx");
-$recv($14)._addAll_(self._collection());
-$13=$recv($14)._yourself();
-self._assert_equals_($13,self._collectionWithNewValue());
+$recv($12)._addAll_(self._collection());
+$11=$recv($12)._yourself();
+self._assert_equals_($11,self._collectionWithNewValue());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"testAddAll",{},$globals.SetTest)});

+ 6 - 8
src/Platform-ImportExport.js

@@ -2911,7 +2911,7 @@ function $PackageCommitError(){return $globals.PackageCommitError||(typeof Packa
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 self._commit_onSuccess_onError_(aPackage,(function(){
 
 }),(function(error){
@@ -2919,12 +2919,11 @@ self._commit_onSuccess_onError_(aPackage,(function(){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $1=$recv($PackageCommitError())._new();
-$2=$1;
-$3=$recv("Commiting failed with reason: \x22".__comma($recv(error)._responseText())).__comma("\x22");
+$2=$recv("Commiting failed with reason: \x22".__comma($recv(error)._responseText())).__comma("\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($2)._messageText_($3);
+$recv($1)._messageText_($2);
 return $recv($1)._signal();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1,2)});
@@ -3212,14 +3211,13 @@ function $PackageCommitError(){return $globals.PackageCommitError||(typeof Packa
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-var $1,$2,$3;
+var $1,$2;
 $1=$recv($PackageCommitError())._new();
-$2=$1;
-$3=$recv("Commiting failed with reason: \x22".__comma($recv(anError)._responseText())).__comma("\x22");
+$2=$recv("Commiting failed with reason: \x22".__comma($recv(anError)._responseText())).__comma("\x22");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.sendIdx[","]=1;
 //>>excludeEnd("ctx");
-$recv($2)._messageText_($3);
+$recv($1)._messageText_($2);
 $recv($1)._signal();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);