Parcourir la source

Compile debug augmentation differently.

Uses
  [(...befores, the_call()), ...afters][0]
as JavaScript instead of old
  (...befores, the_call()); ...afters;

Fixes edge case:
super- and/or send-index- augmented
block return turning non-local via inlining.

Failed by having semicolon
in expression context of
  throw $early=[...compiled send...].

Could be solved by finding it in ast preinliner
and set it to alias, but the case is hard
to search for precisely at the ast level,
it is only happening in few cases in IR level.
Herby Vojčík il y a 4 ans
Parent
commit
eba01a8328

Fichier diff supprimé car celui-ci est trop grand
+ 290 - 199
cli/src/AmberCli.js


+ 41 - 28
lang/src/Compiler-AST.js

@@ -272,10 +272,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-$3=$recv(aLocation)._start();
+$3=[$recv(aLocation)._start()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["start"]=1;
+,$ctx1.sendIdx["start"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._line();
 $1=$recv($2).__at($recv($recv(aLocation)._start())._column());
 $self._position_($1);
@@ -367,14 +368,16 @@ return $recv($recv($recv(children)._asArray())._sort_((function(a,b){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$recv(a)._positionStart();
+$2=[$recv(a)._positionStart()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["positionStart"]=1;
+,$ctx2.sendIdx["positionStart"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2)._dist_(aPoint);
+][0];
+$1=[$recv($2)._dist_(aPoint)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dist:"]=1;
+,$ctx2.sendIdx["dist:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__lt_eq($recv($recv(b)._positionStart())._dist_(aPoint));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1,4)});
@@ -498,22 +501,26 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$6,$5,$4,$3,$2;
 $1=$self._positionStart();
-$6=$self._source();
+$6=[$self._source()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["source"]=1;
+,$ctx1.sendIdx["source"]=1
 //>>excludeEnd("ctx");
-$5=$recv($6)._lines();
+][0];
+$5=[$recv($6)._lines()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["lines"]=1;
+,$ctx1.sendIdx["lines"]=1
 //>>excludeEnd("ctx");
-$4=$recv($5)._size();
+][0];
+$4=[$recv($5)._size()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["size"]=1;
+,$ctx1.sendIdx["size"]=1
 //>>excludeEnd("ctx");
-$3=$recv($4).__minus((1));
+][0];
+$3=[$recv($4).__minus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["-"]=1;
+,$ctx1.sendIdx["-"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3).__at($recv($recv($recv($recv($self._source())._lines())._last())._size()).__minus((1)));
 return $recv($1).__plus($2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1700,15 +1707,17 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$self._receiver();
+$1=[$self._receiver()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["receiver"]=1;
+,$ctx1.sendIdx["receiver"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
-$2=$self._arguments();
+$2=[$self._arguments()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["arguments"]=1;
+,$ctx1.sendIdx["arguments"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($2)._copy();
 } else {
 $1;
@@ -2500,14 +2509,16 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1,$4,$6,$5;
-$3=$self._methodNode();
+$3=[$self._methodNode()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodNode"]=1;
+,$ctx1.sendIdx["methodNode"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3)._sequenceNode();
+][0];
+$2=[$recv($3)._sequenceNode()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["sequenceNode"]=1;
+,$ctx1.sendIdx["sequenceNode"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._dagChildren();
 $recv($1)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2568,14 +2579,15 @@ return $recv(aNode)._parent_($recv(p)._last());
 }, function($ctx2) {$ctx2.fillBlock({p:p},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visit:",{aNode:aNode})});
@@ -2931,10 +2943,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._source();
+$1=[$self._source()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["source"]=1;
+,$ctx1.sendIdx["source"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._ifEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {

+ 63 - 42
lang/src/Compiler-Core.js

@@ -388,22 +388,26 @@ var $1,$2,$receiver;
 $1=$self.transformersDictionary;
 if(($receiver = $1) == null || $receiver.a$nil){
 $2=$recv($globals.Dictionary)._new();
-$recv($2)._at_put_("1000-earlyPragmas",$self._earlyAstPragmator());
+[$recv($2)._at_put_("1000-earlyPragmas",$self._earlyAstPragmator())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("2000-semantic",$self._semanticAnalyzer());
+][0];
+[$recv($2)._at_put_("2000-semantic",$self._semanticAnalyzer())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("5000-astToIr",$self._translator());
+][0];
+[$recv($2)._at_put_("5000-astToIr",$self._translator())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=3;
+,$ctx1.sendIdx["at:put:"]=3
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("8000-irToJs",$self._irTranslator());
+][0];
+[$recv($2)._at_put_("8000-irToJs",$self._irTranslator())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=4;
+,$ctx1.sendIdx["at:put:"]=4
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._at_put_("9000-latePragmas",$self._lateIRPragmator());
 $self.transformersDictionary=$recv($2)._yourself();
 return $self.transformersDictionary;
@@ -633,10 +637,11 @@ compilationResult=$self._compileNode_($self._parse_(aString));
 closureFactory=$self._eval_forPackage_($self._wrappedSourceOf_(compilationResult),$self._currentPackage());
 $1=$recv($globals.Smalltalk)._core();
 $3=$recv(compilationResult)._selector();
-$4=$recv($recv(compilationResult)._messageSends())._asArray();
+$4=[$recv($recv(compilationResult)._messageSends())._asArray()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asArray"]=1;
+,$ctx1.sendIdx["asArray"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$globals.HashedCollection._newFromPairs_(["selector",$3,"protocol",anotherString,"source",aString,"messageSends",$4,"args",$recv(compilationResult)._arguments(),"referencedClasses",$recv($recv(compilationResult)._classReferences())._asArray()]);
 result=$recv($1)._method_withFactory_($2,closureFactory);
 $recv(result)._pragmas_($recv(compilationResult)._pragmas());
@@ -776,10 +781,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $receiver;
 if(($receiver = aPackage) == null || $receiver.a$nil){
-return $self._eval_(aString);
+return [$self._eval_(aString)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["eval:"]=1;
+,$ctx1.sendIdx["eval:"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 return $recv(aPackage)._eval_(aString);
 }
@@ -831,10 +837,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
 $1=$self._sourceForExpression_(aString);
-$2=$recv(anObject)._class();
+$2=[$recv(anObject)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
+][0];
 method=$self._install_forClass_protocol_($1,$2,"**xxxDoIt");
 result=$recv(anObject)._xxxDoIt();
 $recv($recv(anObject)._class())._removeCompiledMethod_(method);
@@ -930,38 +937,44 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$9,$8,$7,$6,$5,$4,$3,$receiver;
-$1=$recv(anException)._basicAt_("location");
+$1=[$recv(anException)._basicAt_("location")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicAt:"]=1;
+,$ctx1.sendIdx["basicAt:"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return $recv(anException)._pass();
 } else {
 var loc;
 loc=$receiver;
 $2=$recv($globals.ParseError)._new();
-$9=$recv(loc)._start();
+$9=[$recv(loc)._start()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["start"]=1;
+,$ctx1.sendIdx["start"]=1
 //>>excludeEnd("ctx");
+][0];
 $8=$recv($9)._line();
 $7="Parse error on line ".__comma($8);
-$6=$recv($7).__comma(" column ");
+$6=[$recv($7).__comma(" column ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=4;
+,$ctx1.sendIdx[","]=4
 //>>excludeEnd("ctx");
-$5=$recv($6).__comma($recv($recv(loc)._start())._column());
+][0];
+$5=[$recv($6).__comma($recv($recv(loc)._start())._column())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=3;
+,$ctx1.sendIdx[","]=3
 //>>excludeEnd("ctx");
-$4=$recv($5).__comma(" : Unexpected character ");
+][0];
+$4=[$recv($5).__comma(" : Unexpected character ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma($recv(anException)._basicAt_("found"));
+][0];
+$3=[$recv($4).__comma($recv(anException)._basicAt_("found"))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._messageText_($3);
 return $recv($2)._yourself();
 }
@@ -1088,10 +1101,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv("xxxDoIt ^ [ ".__comma(aString)).__comma(" ] value");
+$1=[$recv("xxxDoIt ^ [ ".__comma(aString)).__comma(" ] value")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"sourceForExpression:",{aString:aString})});
@@ -1118,10 +1132,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
 package_=$recv(aClass)._packageOfProtocol_(anotherString);
-$self._currentPackage_(package_);
+[$self._currentPackage_(package_)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["currentPackage:"]=1;
+,$ctx1.sendIdx["currentPackage:"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($self._codeGeneratorClass())._new();
 $recv($2)._source_(aString);
 $recv($2)._currentClass_(aClass);
@@ -1180,18 +1195,21 @@ return $recv($recv(anIRMethod)._attachments())._ifEmpty_ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$recv(anIRMethod)._compiledSource();
+$2=[$recv(anIRMethod)._compiledSource()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["compiledSource"]=1;
+,$ctx2.sendIdx["compiledSource"]=1
 //>>excludeEnd("ctx");
-$1="(function ($methodClass){ return ".__comma($2);
+][0];
+$1=["(function ($methodClass){ return ".__comma($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=2;
+,$ctx2.sendIdx[","]=2
 //>>excludeEnd("ctx");
-return $recv($1).__comma("; })");
+][0];
+return [$recv($1).__comma("; })")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=1;
+,$ctx2.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -1199,18 +1217,21 @@ $ctx2.sendIdx[","]=1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$4=$recv("(function ($methodClass){ return (function(method){Object.defineProperty(method,\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:".__comma($recv(attachments)._asJavaScriptSource())).__comma("});return method})(");
+$4=[$recv("(function ($methodClass){ return (function(method){Object.defineProperty(method,\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:".__comma($recv(attachments)._asJavaScriptSource())).__comma("});return method})(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=5;
+,$ctx2.sendIdx[","]=5
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma($recv(anIRMethod)._compiledSource());
+][0];
+$3=[$recv($4).__comma($recv(anIRMethod)._compiledSource())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=4;
+,$ctx2.sendIdx[","]=4
 //>>excludeEnd("ctx");
-return $recv($3).__comma("); })");
+][0];
+return [$recv($3).__comma("); })")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=3;
+,$ctx2.sendIdx[","]=3
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({attachments:attachments},$ctx1,2)});
 //>>excludeEnd("ctx");

Fichier diff supprimé car celui-ci est trop grand
+ 354 - 191
lang/src/Compiler-IR.js


+ 47 - 42
lang/src/Compiler-IR.st

@@ -1032,15 +1032,25 @@ visitIRReturn: anIRReturn
 !
 
 visitIRSend: anIRSend
-	| sends superclass |
-	sends := (anIRSend method sendIndexes at: anIRSend selector) size.
+	| prefixes suffixes workBlock |
+	prefixes := #().
+	suffixes := #().
+	workBlock := [ self visitSend: anIRSend ].
 	
-	anIRSend receiver isSuper
-		ifTrue: [ self visitSuperSend: anIRSend ]
-		ifFalse: [ self visitSend: anIRSend ].
-		
-	anIRSend index < sends
-		ifTrue: [ self stream nextPutSendIndexFor: anIRSend ]
+	anIRSend index < (anIRSend method sendIndexes at: anIRSend selector) size ifTrue: [
+		suffixes add:
+			anIRSend scope alias,
+			'.sendIdx[',
+			anIRSend selector asJavaScriptSource,
+			']=',
+			anIRSend index asString ].
+	
+	anIRSend receiver isSuper ifTrue: [
+		prefixes add: anIRSend scope alias, '.supercall = true'.
+		suffixes add: anIRSend scope alias, '.supercall = false'.
+		workBlock := [ self visitSuperSend: anIRSend ] ].
+
+	self stream nextPutBefore: prefixes after: suffixes with: workBlock
 !
 
 visitIRSequence: anIRSequence
@@ -1092,13 +1102,12 @@ visitSend: anIRSend
 !
 
 visitSuperSend: anIRSend
-	self stream nextPutSupercallFor: anIRSend with: [
-		self stream
-			nextPutAll: anIRSend receiver variable lookupAsJavaScriptSource, '.';
-			nextPutAll: anIRSend javaScriptSelector, '.call'.
-		self
-			visitInstructionList: {anIRSend receiver asReceiver}, anIRSend arguments
-			enclosedBetween: '(' and: ')' ]
+	self stream
+		nextPutAll: anIRSend receiver variable lookupAsJavaScriptSource, '.';
+		nextPutAll: anIRSend javaScriptSelector, '.call'.
+	self
+		visitInstructionList: {anIRSend receiver asReceiver}, anIRSend arguments
+		enclosedBetween: '(' and: ')'
 ! !
 
 Object subclass: #JSStream
@@ -1146,6 +1155,29 @@ nextPutAssignLhs: aBlock rhs: anotherBlock
 	anotherBlock value
 !
 
+nextPutBefore: prefixCollection after: suffixCollection with: aBlock
+	suffixCollection isEmpty
+		ifTrue: [ self nextPutBefore: prefixCollection with: aBlock ]
+		ifFalse: [
+			self
+				nextPutAll: '['; nextPutBefore: prefixCollection with: aBlock; lf;
+				nextPutAll: '//>>excludeStart("ctx", pragmas.excludeDebugContexts);'; lf.
+			suffixCollection do: [ :each | self nextPutAll: ','; nextPutAll: each ].
+			self
+				lf;
+				nextPutAll: '//>>excludeEnd("ctx");'; lf;
+				nextPutAll: '][0]' ]
+!
+
+nextPutBefore: aCollection with: aBlock
+	aCollection isEmpty ifTrue: [ aBlock value ] ifFalse: [
+		self nextPutAll: '('; lf; nextPutAll: '//>>excludeStart("ctx", pragmas.excludeDebugContexts);'; lf.
+		aCollection do: [ :each | self nextPutAll: each; nextPutAll: ',' ].
+		self lf; nextPutAll: '//>>excludeEnd("ctx");'; lf.
+		aBlock value.
+		self nextPutAll: ')' ]
+!
+
 nextPutBlockContextFor: anIRClosure during: aBlock
 	anIRClosure requiresSmalltalkContext ifFalse: [ ^ aBlock value ].
 	self
@@ -1274,19 +1306,6 @@ nextPutReturnWith: aBlock
 	aBlock value
 !
 
-nextPutSendIndexFor: anIRSend
-	self 
-		nextPutAll: ';'; lf;
-		nextPutAll: '//>>excludeStart("ctx", pragmas.excludeDebugContexts);'; lf;
-		nextPutAll: anIRSend scope alias;
-		nextPutAll: '.sendIdx[';
-		nextPutAll: anIRSend selector asJavaScriptSource;
-		nextPutAll: ']=';
-		nextPutAll: anIRSend index asString;
-		nextPutAll: ';'; lf;
-		nextPutAll: '//>>excludeEnd("ctx")'
-!
-
 nextPutStatementWith: aBlock
 	self omitSemicolon: false.
 	aBlock value.
@@ -1295,20 +1314,6 @@ nextPutStatementWith: aBlock
 	stream lf
 !
 
-nextPutSupercallFor: anIRSend with: aBlock
-	self
-		nextPutAll: '('; lf;
-		nextPutAll: '//>>excludeStart("ctx", pragmas.excludeDebugContexts);'; lf;
-		nextPutAll: anIRSend scope alias, '.supercall = true,'; lf;
-		nextPutAll: '//>>excludeEnd("ctx");'; lf.
-	aBlock value.
-	self
-		nextPutAll: ');'; lf;
-		nextPutAll: '//>>excludeStart("ctx", pragmas.excludeDebugContexts);'; lf;
-		nextPutAll: anIRSend scope alias, '.supercall = false;'; lf;
-		nextPutAll: '//>>excludeEnd("ctx");'
-!
-
 nextPutVars: aCollection
 	aCollection ifNotEmpty: [
 		stream nextPutAll: 'var '.

+ 301 - 208
lang/src/Compiler-Inlining.js

@@ -36,14 +36,15 @@ $recv(receiver)._shouldBeAliased_(true);
 }
 }
 }
-$4=(
+$4=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $4;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode})});
@@ -265,10 +266,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($globals.IRVariable)._new();
+$1=[$recv($globals.IRVariable)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._variable_($recv($recv($globals.AliasVar)._new())._name_($self._receiverInternalVariableName()));
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -567,14 +569,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-$1=$recv($recv($recv(anIRAssignment)._isInlined())._not())._and_((function(){
+$1=[$recv($recv($recv(anIRAssignment)._isInlined())._not())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(anIRAssignment)._right();
+$3=[$recv(anIRAssignment)._right()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["right"]=1;
+,$ctx2.sendIdx["right"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._isSend();
 return $recv($2)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -588,10 +591,11 @@ return $self._shouldInlineSend_($recv(anIRAssignment)._right());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["and:"]=1;
+,$ctx1.sendIdx["and:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment})});
@@ -616,14 +620,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
-$1=$recv($recv($recv(anIRReturn)._isInlined())._not())._and_((function(){
+$1=[$recv($recv($recv(anIRReturn)._isInlined())._not())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(anIRReturn)._expression();
+$3=[$recv(anIRReturn)._expression()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["expression"]=1;
+,$ctx2.sendIdx["expression"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._isSend();
 return $recv($2)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -637,10 +642,11 @@ return $self._shouldInlineSend_($recv(anIRReturn)._expression());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["and:"]=1;
+,$ctx1.sendIdx["and:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn})});
@@ -700,14 +706,15 @@ $1=$self._shouldInlineAssignment_(anIRAssignment);
 if($core.assert($1)){
 return $recv($self._assignmentInliner())._inlineAssignment_(anIRAssignment);
 } else {
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRAssignment_.call($self,anIRAssignment));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRAssignment_.call($self,anIRAssignment))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment})});
@@ -732,17 +739,19 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$4,$3,$5;
-$2=$recv(anIRNonLocalReturn)._scope();
+$2=[$recv(anIRNonLocalReturn)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["scope"]=1;
+,$ctx1.sendIdx["scope"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._canFlattenNonLocalReturns();
 if($core.assert($1)){
 var localReturn;
-$4=$recv(anIRNonLocalReturn)._scope();
+$4=[$recv(anIRNonLocalReturn)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["scope"]=2;
+,$ctx1.sendIdx["scope"]=2
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._methodScope();
 $recv($3)._removeNonLocalReturn_($recv(anIRNonLocalReturn)._scope());
 localReturn=$self._flattenedReturn_(anIRNonLocalReturn);
@@ -753,14 +762,15 @@ $5=$self._shouldInlineReturn_(anIRNonLocalReturn);
 if($core.assert($5)){
 return $recv($self._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
 } else {
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRNonLocalReturn_.call($self,anIRNonLocalReturn));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRNonLocalReturn_.call($self,anIRNonLocalReturn))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn})});
@@ -789,14 +799,15 @@ $1=$self._shouldInlineReturn_(anIRReturn);
 if($core.assert($1)){
 return $recv($self._returnInliner())._inlineReturn_(anIRReturn);
 } else {
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRReturn_.call($self,anIRReturn));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRReturn_.call($self,anIRReturn))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn})});
@@ -825,14 +836,15 @@ $1=$self._shouldInlineSend_(anIRSend);
 if($core.assert($1)){
 return $recv($self._sendInliner())._inlineSend_(anIRSend);
 } else {
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRSend_.call($self,anIRSend));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitIRSend_.call($self,anIRSend))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend})});
@@ -896,31 +908,36 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3;
-$1=$self._stream();
+$1=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["stream"]=1;
+,$ctx1.sendIdx["stream"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._nextPutIf_then_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._stream();
+$2=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["stream"]=2;
+,$ctx2.sendIdx["stream"]=2
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_("!$core.assert(");
+][0];
+[$recv($2)._nextPutAll_("!$core.assert(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=1;
+,$ctx2.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$4=$recv(anIRInlinedIfFalse)._dagChildren();
+][0];
+$4=[$recv(anIRInlinedIfFalse)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=1;
+,$ctx2.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._first();
-$self._visit_($3);
+[$self._visit_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=1;
+,$ctx2.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($self._stream())._nextPutAll_(")");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -958,46 +975,54 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3,$6,$5,$7,$8,$10,$9;
-$1=$self._stream();
+$1=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["stream"]=1;
+,$ctx1.sendIdx["stream"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._nextPutIf_then_else_((function(){
 var recvVarName;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 recvVarName=$recv(anIRInlinedIfNilIfNotNil)._receiverInternalVariableName();
-$2=$self._stream();
+$2=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["stream"]=2;
+,$ctx2.sendIdx["stream"]=2
 //>>excludeEnd("ctx");
-$4="(".__comma(recvVarName);
+][0];
+$4=["(".__comma(recvVarName)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=2;
+,$ctx2.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma(" = ");
+][0];
+$3=[$recv($4).__comma(" = ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=1;
+,$ctx2.sendIdx[","]=1
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_($3);
+][0];
+[$recv($2)._nextPutAll_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=1;
+,$ctx2.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$6=$recv(anIRInlinedIfNilIfNotNil)._dagChildren();
+][0];
+$6=[$recv(anIRInlinedIfNilIfNotNil)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=1;
+,$ctx2.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6)._first();
-$self._visit_($5);
+[$self._visit_($5)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=1;
+,$ctx2.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
+][0];
 $7=$self._stream();
-$8=$recv(") == null || ".__comma(recvVarName)).__comma(".a$nil");
+$8=[$recv(") == null || ".__comma(recvVarName)).__comma(".a$nil")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=3;
+,$ctx2.sendIdx[","]=3
 //>>excludeEnd("ctx");
+][0];
 return $recv($7)._nextPutAll_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({recvVarName:recvVarName},$ctx1,1)});
@@ -1006,15 +1031,17 @@ return $recv($7)._nextPutAll_($8);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$10=$recv(anIRInlinedIfNilIfNotNil)._dagChildren();
+$10=[$recv(anIRInlinedIfNilIfNotNil)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=2;
+,$ctx2.sendIdx["dagChildren"]=2
 //>>excludeEnd("ctx");
+][0];
 $9=$recv($10)._second();
-return $self._visit_($9);
+return [$self._visit_($9)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=2;
+,$ctx2.sendIdx["visit:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -1051,31 +1078,36 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3;
-$1=$self._stream();
+$1=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["stream"]=1;
+,$ctx1.sendIdx["stream"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._nextPutIf_then_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._stream();
+$2=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["stream"]=2;
+,$ctx2.sendIdx["stream"]=2
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_("$core.assert(");
+][0];
+[$recv($2)._nextPutAll_("$core.assert(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=1;
+,$ctx2.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$4=$recv(anIRInlinedIfTrue)._dagChildren();
+][0];
+$4=[$recv(anIRInlinedIfTrue)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=1;
+,$ctx2.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._first();
-$self._visit_($3);
+[$self._visit_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=1;
+,$ctx2.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($self._stream())._nextPutAll_(")");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -1113,31 +1145,36 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3,$6,$5;
-$1=$self._stream();
+$1=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["stream"]=1;
+,$ctx1.sendIdx["stream"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._nextPutIf_then_else_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._stream();
+$2=[$self._stream()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["stream"]=2;
+,$ctx2.sendIdx["stream"]=2
 //>>excludeEnd("ctx");
-$recv($2)._nextPutAll_("$core.assert(");
+][0];
+[$recv($2)._nextPutAll_("$core.assert(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=1;
+,$ctx2.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$4=$recv(anIRInlinedIfTrueIfFalse)._dagChildren();
+][0];
+$4=[$recv(anIRInlinedIfTrueIfFalse)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=1;
+,$ctx2.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._first();
-$self._visit_($3);
+[$self._visit_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=1;
+,$ctx2.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($self._stream())._nextPutAll_(")");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -1146,15 +1183,17 @@ return $recv($self._stream())._nextPutAll_(")");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$6=$recv(anIRInlinedIfTrueIfFalse)._dagChildren();
+$6=[$recv(anIRInlinedIfTrueIfFalse)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["dagChildren"]=2;
+,$ctx2.sendIdx["dagChildren"]=2
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6)._second();
-return $self._visit_($5);
+return [$self._visit_($5)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["visit:"]=2;
+,$ctx2.sendIdx["visit:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -1243,26 +1282,30 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
-$1=$recv($globals.IRInlinedIfNilIfNotNil)._new();
+$1=[$recv($globals.IRInlinedIfNilIfNotNil)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$3=$recv($globals.IRClosure)._new();
+][0];
+$3=[$recv($globals.IRClosure)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=2;
+,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
 $5=$recv($globals.IRBlockSequence)._new();
 $recv($5)._add_($recv($self._send())._receiver());
-$6=$recv($5)._yourself();
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$6;
-$recv($3)._add_($4);
+[$recv($3)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=1;
+,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._yourself();
 return $self._inlinedSend_withBlock_withBlock_($1,anIRInstruction,$2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1311,26 +1354,30 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
-$1=$recv($globals.IRInlinedIfNilIfNotNil)._new();
+$1=[$recv($globals.IRInlinedIfNilIfNotNil)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$3=$recv($globals.IRClosure)._new();
+][0];
+$3=[$recv($globals.IRClosure)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=2;
+,$ctx1.sendIdx["new"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._scope_($recv($recv(anIRInstruction)._scope())._copy());
 $5=$recv($globals.IRBlockSequence)._new();
 $recv($5)._add_($recv($self._send())._receiver());
-$6=$recv($5)._yourself();
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$6;
-$recv($3)._add_($4);
+[$recv($3)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=1;
+,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._yourself();
 return $self._inlinedSend_withBlock_withBlock_($1,$2,anIRInstruction);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1428,124 +1475,147 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$3,$5,$6,$4,$7,$9,$11,$13,$14,$15,$12,$10,$17,$19,$20,$18,$16,$8;
 inlinedClosure=$self._inlinedClosure();
 $1=inlinedClosure;
-$2=$recv(anIRClosure)._scope();
+$2=[$recv(anIRClosure)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["scope"]=1;
+,$ctx1.sendIdx["scope"]=1
 //>>excludeEnd("ctx");
-$recv($1)._scope_($2);
+][0];
+[$recv($1)._scope_($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["scope:"]=1;
+,$ctx1.sendIdx["scope:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._parent_($recv(anIRClosure)._parent());
-$recv($recv(anIRClosure)._tempDeclarations())._do_((function(each){
+[$recv($recv(anIRClosure)._tempDeclarations())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(inlinedClosure)._add_(each);
+return [$recv(inlinedClosure)._add_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=1;
+,$ctx2.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=1;
+,$ctx1.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 sequence=$self._inlinedSequence();
-$recv($recv(anIRClosure)._arguments())._do_((function(each){
+[$recv($recv(anIRClosure)._arguments())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $3=inlinedClosure;
-$5=$recv($globals.IRTempDeclaration)._new();
+$5=[$recv($globals.IRTempDeclaration)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=1;
+,$ctx2.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$recv($5)._name_(each);
+][0];
+[$recv($5)._name_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name:"]=1;
+,$ctx2.sendIdx["name:"]=1
 //>>excludeEnd("ctx");
-$6=$recv($5)._yourself();
+][0];
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["yourself"]=1;
+,$ctx2.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$6;
-$recv($3)._add_($4);
+[$recv($3)._add_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=2;
+,$ctx2.sendIdx["add:"]=2
 //>>excludeEnd("ctx");
+][0];
 $7=sequence;
-$9=$recv($globals.IRAssignment)._new();
+$9=[$recv($globals.IRAssignment)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=2;
+,$ctx2.sendIdx["new"]=2
 //>>excludeEnd("ctx");
-$11=$recv($globals.IRVariable)._new();
+][0];
+$11=[$recv($globals.IRVariable)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=3;
+,$ctx2.sendIdx["new"]=3
 //>>excludeEnd("ctx");
-$13=$recv($globals.AliasVar)._new();
+][0];
+$13=[$recv($globals.AliasVar)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=4;
+,$ctx2.sendIdx["new"]=4
 //>>excludeEnd("ctx");
-$14=$recv(inlinedClosure)._scope();
+][0];
+$14=[$recv(inlinedClosure)._scope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["scope"]=2;
+,$ctx2.sendIdx["scope"]=2
 //>>excludeEnd("ctx");
-$recv($13)._scope_($14);
+][0];
+[$recv($13)._scope_($14)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["scope:"]=2;
+,$ctx2.sendIdx["scope:"]=2
 //>>excludeEnd("ctx");
-$recv($13)._name_(each);
+][0];
+[$recv($13)._name_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name:"]=2;
+,$ctx2.sendIdx["name:"]=2
 //>>excludeEnd("ctx");
-$15=$recv($13)._yourself();
+][0];
+$15=[$recv($13)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["yourself"]=2;
+,$ctx2.sendIdx["yourself"]=2
 //>>excludeEnd("ctx");
+][0];
 $12=$15;
-$10=$recv($11)._variable_($12);
+$10=[$recv($11)._variable_($12)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["variable:"]=1;
+,$ctx2.sendIdx["variable:"]=1
 //>>excludeEnd("ctx");
-$recv($9)._add_($10);
+][0];
+[$recv($9)._add_($10)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=4;
+,$ctx2.sendIdx["add:"]=4
 //>>excludeEnd("ctx");
-$17=$recv($globals.IRVariable)._new();
+][0];
+$17=[$recv($globals.IRVariable)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=5;
+,$ctx2.sendIdx["new"]=5
 //>>excludeEnd("ctx");
+][0];
 $19=$recv($globals.AliasVar)._new();
 $recv($19)._scope_($recv(inlinedClosure)._scope());
 $recv($19)._name_("$receiver");
-$20=$recv($19)._yourself();
+$20=[$recv($19)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["yourself"]=3;
+,$ctx2.sendIdx["yourself"]=3
 //>>excludeEnd("ctx");
+][0];
 $18=$20;
 $16=$recv($17)._variable_($18);
-$recv($9)._add_($16);
+[$recv($9)._add_($16)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=5;
+,$ctx2.sendIdx["add:"]=5
 //>>excludeEnd("ctx");
+][0];
 $8=$recv($9)._yourself();
-return $recv($7)._add_($8);
+return [$recv($7)._add_($8)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=3;
+,$ctx2.sendIdx["add:"]=3
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=2;
+,$ctx1.sendIdx["do:"]=2
 //>>excludeEnd("ctx");
-$recv(inlinedClosure)._add_(sequence);
+][0];
+[$recv(inlinedClosure)._add_(sequence)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=6;
+,$ctx1.sendIdx["add:"]=6
 //>>excludeEnd("ctx");
+][0];
 statements=$recv($recv(anIRClosure)._sequence())._dagChildren();
 $recv(statements)._ifNotEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1555,10 +1625,11 @@ $recv($recv(statements)._allButLast())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv(sequence)._add_(each);
+return [$recv(sequence)._add_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["add:"]=7;
+,$ctx3.sendIdx["add:"]=7
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2,4)});
 //>>excludeEnd("ctx");
@@ -1593,10 +1664,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
 $self._send_(anIRSend);
-$2=$self._send();
+$2=[$self._send()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["send"]=1;
+,$ctx1.sendIdx["send"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._selector();
 return $self._perform_withArguments_($1,$recv($self._send())._arguments());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1671,10 +1743,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$4;
 sequence=$recv(closure)._sequence();
-statements=$recv(sequence)._dagChildren();
+statements=[$recv(sequence)._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["dagChildren"]=1;
+,$ctx1.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($recv(sequence)._dagChildren())._ifEmpty_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1720,31 +1793,35 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$4,$3,$5;
 $1=$recv(anIRInstruction)._isClosure();
 if(!$core.assert($1)){
-$self._inliningError_("Message argument should be a block");
+[$self._inliningError_("Message argument should be a block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["inliningError:"]=1;
+,$ctx1.sendIdx["inliningError:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
 $2=$recv($recv($recv(anIRInstruction)._arguments())._size()).__eq((0));
 if(!$core.assert($2)){
 $self._inliningError_("Inlined block should have zero argument");
 }
 inlinedClosure=$recv($self._translator())._visit_($self._inlineClosure_(anIRInstruction));
-$4=$self._send();
+$4=[$self._send()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["send"]=1;
+,$ctx1.sendIdx["send"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._receiver();
-$recv(inlinedSend)._add_($3);
+[$recv(inlinedSend)._add_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=1;
+,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(inlinedSend)._add_(inlinedClosure);
 $recv($self._send())._replaceWith_(inlinedSend);
-$5=$recv($recv(inlinedSend)._method())._internalVariables();
+$5=[$recv($recv(inlinedSend)._method())._internalVariables()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["internalVariables"]=1;
+,$ctx1.sendIdx["internalVariables"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($5)._addAll_($recv(inlinedSend)._internalVariables());
 return inlinedSend;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1771,52 +1848,61 @@ var inlinedClosure1,inlinedClosure2;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$4,$6,$5,$7;
-$1=$recv(anIRInstruction)._isClosure();
+$1=[$recv(anIRInstruction)._isClosure()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["isClosure"]=1;
+,$ctx1.sendIdx["isClosure"]=1
 //>>excludeEnd("ctx");
+][0];
 if(!$core.assert($1)){
-$self._inliningError_("Message argument should be a block");
+[$self._inliningError_("Message argument should be a block")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["inliningError:"]=1;
+,$ctx1.sendIdx["inliningError:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
 $2=$recv(anotherIRInstruction)._isClosure();
 if(!$core.assert($2)){
 $self._inliningError_("Message argument should be a block");
 }
-$3=$self._translator();
+$3=[$self._translator()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["translator"]=1;
+,$ctx1.sendIdx["translator"]=1
 //>>excludeEnd("ctx");
-$4=$self._inlineClosure_(anIRInstruction);
+][0];
+$4=[$self._inlineClosure_(anIRInstruction)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["inlineClosure:"]=1;
+,$ctx1.sendIdx["inlineClosure:"]=1
 //>>excludeEnd("ctx");
-inlinedClosure1=$recv($3)._visit_($4);
+][0];
+inlinedClosure1=[$recv($3)._visit_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["visit:"]=1;
+,$ctx1.sendIdx["visit:"]=1
 //>>excludeEnd("ctx");
+][0];
 inlinedClosure2=$recv($self._translator())._visit_($self._inlineClosure_(anotherIRInstruction));
-$6=$self._send();
+$6=[$self._send()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["send"]=1;
+,$ctx1.sendIdx["send"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6)._receiver();
-$recv(inlinedSend)._add_($5);
+[$recv(inlinedSend)._add_($5)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=1;
+,$ctx1.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
-$recv(inlinedSend)._add_(inlinedClosure1);
+][0];
+[$recv(inlinedSend)._add_(inlinedClosure1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["add:"]=2;
+,$ctx1.sendIdx["add:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(inlinedSend)._add_(inlinedClosure2);
 $recv($self._send())._replaceWith_(inlinedSend);
-$7=$recv($recv(inlinedSend)._method())._internalVariables();
+$7=[$recv($recv(inlinedSend)._method())._internalVariables()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["internalVariables"]=1;
+,$ctx1.sendIdx["internalVariables"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($7)._addAll_($recv(inlinedSend)._internalVariables());
 return inlinedSend;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2051,23 +2137,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $2=$recv($globals.IRAssignment)._new();
-$recv($2)._add_($self._target());
+[$recv($2)._add_($self._target())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["add:"]=1;
+,$ctx2.sendIdx["add:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._add_($recv(final)._copy());
 return $recv($2)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2140,14 +2228,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2211,14 +2300,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.call($self,anIRClosure))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2348,22 +2438,25 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$receiver;
 $1=$self.transformersDictionary;
 if(($receiver = $1) == null || $receiver.a$nil){
-$2=(
+$2=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._transformersDictionary.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._transformersDictionary.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$recv($2)._at_put_("3000-inlinerTagging",$self._preInliner());
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+[$recv($2)._at_put_("3000-inlinerTagging",$self._preInliner())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("6000-inliner",$self._inliner());
+][0];
+[$recv($2)._at_put_("6000-inliner",$self._inliner())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._at_put_("8000-irToJs",$self._irTranslator());
 $self.transformersDictionary=$recv($2)._yourself();
 return $self.transformersDictionary;

+ 197 - 136
lang/src/Compiler-Interpreter.js

@@ -259,10 +259,11 @@ $recv($recv(sequenceNode)._temps())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(context)._defineLocal_(each);
+return [$recv(context)._defineLocal_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["defineLocal:"]=1;
+,$ctx2.sendIdx["defineLocal:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -280,17 +281,19 @@ return nil;
 }, function($ctx2) {$ctx2.fillBlock({each:each,index:index},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$2=$recv(context)._interpreter();
+$2=[$recv(context)._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=1;
+,$ctx1.sendIdx["interpreter"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._node_(sequenceNode);
 $recv($2)._enterNode();
 $recv($2)._proceed();
-$3=$recv($self.outerContext)._interpreter();
+$3=[$recv($self.outerContext)._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=2;
+,$ctx1.sendIdx["interpreter"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._setNonLocalReturnFromContext_(context);
 return $recv($recv(context)._interpreter())._pop();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -677,10 +680,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._method();
+$1=[$self._method()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["method"]=1;
+,$ctx1.sendIdx["method"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.ast=$recv($1)._ast();
 $recv($recv($globals.SemanticAnalyzer)._on_($recv($self._method())._origin()))._visit_($self.ast);
 return self;
@@ -713,10 +717,11 @@ $self._sendIndexes_($recv(aMethodContext)._sendIndexes());
 $self._receiver_($recv(aMethodContext)._receiver());
 $self._supercall_($recv(aMethodContext)._supercall());
 $self._selector_($recv(aMethodContext)._selector());
-$1=$recv(aMethodContext)._outerContext();
+$1=[$recv(aMethodContext)._outerContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["outerContext"]=1;
+,$ctx1.sendIdx["outerContext"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -728,10 +733,11 @@ $2;
 } else {
 $self._outerContext_($recv($self._class())._fromMethodContext_($recv(aMethodContext)._outerContext()));
 }
-$3=$recv(aMethodContext)._locals();
+$3=[$recv(aMethodContext)._locals()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["locals"]=1;
+,$ctx1.sendIdx["locals"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._keysAndValuesDo_((function(key,value){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1340,16 +1346,18 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$3,$4,$7,$6,$5,$receiver;
 $1=$recv($globals.ASTPCNodeVisitor)._new();
-$2=$self._evaluatedSelector();
+$2=[$self._evaluatedSelector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["evaluatedSelector"]=1;
+,$ctx1.sendIdx["evaluatedSelector"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._selector_($2);
 $recv($1)._index_($self._sendIndexAt_($self._evaluatedSelector()));
-$3=$self._ast();
+$3=[$self._ast()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["ast"]=1;
+,$ctx1.sendIdx["ast"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._visit_($3);
 currentNode=$recv($1)._currentNode();
 $4=$recv($self._ast())._sequenceNode();
@@ -1358,7 +1366,7 @@ $4;
 } else {
 var sequence;
 sequence=$receiver;
-$recv($recv(sequence)._temps())._do_((function(each){
+[$recv($recv(sequence)._temps())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1366,26 +1374,29 @@ return $self._defineLocal_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=1;
+,$ctx1.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
 $recv(anInterpreter)._node_(currentNode);
-$7=$self._innerContext();
+$7=[$self._innerContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["innerContext"]=1;
+,$ctx1.sendIdx["innerContext"]=1
 //>>excludeEnd("ctx");
+][0];
 $6=$recv($7)._arguments();
 $5=$recv($6)._reversed();
 $recv($5)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv(anInterpreter)._push_(each);
+return [$recv(anInterpreter)._push_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["push:"]=1;
+,$ctx2.sendIdx["push:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,3)});
 //>>excludeEnd("ctx");
@@ -1562,14 +1573,15 @@ $recv($self._context())._localAt_ifAbsent_($recv(aNode)._value(),(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitVariableNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitVariableNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx2.supercall = false
+//>>excludeEnd("ctx");
+][0];
 throw $early=[$1];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -1651,10 +1663,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$self._context();
+$1=[$self._context()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["context"]=1;
+,$ctx1.sendIdx["context"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return true;
 } else {
@@ -1792,10 +1805,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$self._interpreter();
+$1=[$self._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=1;
+,$ctx1.sendIdx["interpreter"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return $1;
 } else {
@@ -1824,19 +1838,22 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$4,$6,$5,$receiver;
-$1=$self._interpreter();
+$1=[$self._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=1;
+,$ctx1.sendIdx["interpreter"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.result=$recv($1)._result();
-$3=$self._interpreter();
+$3=[$self._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=2;
+,$ctx1.sendIdx["interpreter"]=2
 //>>excludeEnd("ctx");
-$2=$recv($3)._atEnd();
+][0];
+$2=[$recv($3)._atEnd()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["atEnd"]=1;
+,$ctx1.sendIdx["atEnd"]=1
 //>>excludeEnd("ctx");
+][0];
 if($core.assert($2)){
 $4=$recv($self._context())._outerContext();
 if(($receiver = $4) == null || $receiver.a$nil){
@@ -1846,10 +1863,11 @@ var outerContext;
 outerContext=$receiver;
 $self._context_(outerContext);
 }
-$6=$self._interpreter();
+$6=[$self._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=3;
+,$ctx1.sendIdx["interpreter"]=3
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6)._atEnd();
 if(!$core.assert($5)){
 $recv($self._interpreter())._skip();
@@ -1991,10 +2009,11 @@ $1=$recv($self._context())._isTopContext();
 if($core.assert($1)){
 $recv($self._interpreter())._stepOver();
 } else {
-$2=$self._interpreter();
+$2=[$self._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=1;
+,$ctx1.sendIdx["interpreter"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._skip();
 }
 $self._onStep();
@@ -2149,14 +2168,15 @@ return $recv($recv($self._interpreter())._context())._defineLocal_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode})});
@@ -2215,15 +2235,17 @@ return $core.withContext(function($ctx1) {
 var $1,$3,$2,$4;
 $1=$recv($recv(aNode)._binding())._isInstanceVar();
 if($core.assert($1)){
-$3=$self._context();
+$3=[$self._context()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["context"]=1;
+,$ctx1.sendIdx["context"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._receiver();
-$4=$recv(aNode)._value();
+$4=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["value"]=1;
+,$ctx1.sendIdx["value"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._instVarAt_put_($4,anObject);
 } else {
 $recv($self._context())._localAt_put_($recv(aNode)._value(),anObject);
@@ -2354,27 +2376,31 @@ source=$recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(str)._nextPutAll_("0,(function(");
+[$recv(str)._nextPutAll_("0,(function(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=1;
+,$ctx2.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$3=$self._context();
+][0];
+$3=[$self._context()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["context"]=1;
+,$ctx2.sendIdx["context"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3)._locals();
+][0];
+$2=[$recv($3)._locals()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["locals"]=1;
+,$ctx2.sendIdx["locals"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._keys();
 $recv($1)._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv(str)._nextPutAll_(each);
+return [$recv(str)._nextPutAll_(each)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["nextPutAll:"]=2;
+,$ctx3.sendIdx["nextPutAll:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2,2)});
 //>>excludeEnd("ctx");
@@ -2382,22 +2408,25 @@ $ctx3.sendIdx["nextPutAll:"]=2;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv(str)._nextPutAll_(",");
+return [$recv(str)._nextPutAll_(",")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["nextPutAll:"]=3;
+,$ctx3.sendIdx["nextPutAll:"]=3
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 //>>excludeEnd("ctx");
 }));
-$recv(str)._nextPutAll_("){ return (function() {");
+[$recv(str)._nextPutAll_("){ return (function() {")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=4;
+,$ctx2.sendIdx["nextPutAll:"]=4
 //>>excludeEnd("ctx");
-$recv(str)._nextPutAll_(aString);
+][0];
+[$recv(str)._nextPutAll_(aString)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["nextPutAll:"]=5;
+,$ctx2.sendIdx["nextPutAll:"]=5
 //>>excludeEnd("ctx");
+][0];
 return $recv(str)._nextPutAll_("})()})");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1,1)});
@@ -2456,14 +2485,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.forceAtEnd=false;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2645,10 +2675,11 @@ return $core.withContext(function($ctx1) {
 var $1;
 var $early={};
 try {
-$1=$self._stack();
+$1=[$self._stack()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["stack"]=1;
+,$ctx1.sendIdx["stack"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._ifEmpty_((function(){
 throw $early=[nil];
 
@@ -2863,15 +2894,17 @@ var $1,$2,$3,$receiver;
 if(!$core.assert(aBoolean)){
 return $recv(aMessage)._sendTo_(anObject);
 }
-$1=$recv($recv(anObject)._class())._superclass();
+$1=[$recv($recv(anObject)._class())._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=1;
+,$ctx1.sendIdx["superclass"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
-$2=$self._messageNotUnderstood_receiver_(aMessage,anObject);
+$2=[$self._messageNotUnderstood_receiver_(aMessage,anObject)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["messageNotUnderstood:receiver:"]=1;
+,$ctx1.sendIdx["messageNotUnderstood:receiver:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $2;
 } else {
 $1;
@@ -2906,10 +2939,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-$2=$recv(aContext)._interpreter();
+$2=[$recv(aContext)._interpreter()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["interpreter"]=1;
+,$ctx1.sendIdx["interpreter"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._hasReturned();
 if($core.assert($1)){
 $self.returned=true;
@@ -3018,18 +3052,20 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-$self._step();
+[$self._step()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["step"]=1;
+,$ctx1.sendIdx["step"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._node();
+$2=[$self._node()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["node"]=1;
+,$ctx2.sendIdx["node"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._isNil();
 return $recv($1)._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3078,14 +3114,15 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=$self._hasReturned();
 if(!$core.assert($1)){
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 }
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3111,10 +3148,11 @@ var poppedValue;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-poppedValue=$self._pop();
+poppedValue=[$self._pop()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["pop"]=1;
+,$ctx1.sendIdx["pop"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._pop();
 $self._push_(poppedValue);
 $self._assign_to_($recv(aNode)._left(),poppedValue);
@@ -3167,14 +3205,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitBlockSequenceNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitBlockSequenceNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.forceAtEnd=true;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3343,10 +3382,11 @@ args=$recv($recv(aNode)._arguments())._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $self._pop();
+return [$self._pop()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["pop"]=1;
+,$ctx2.sendIdx["pop"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -3415,21 +3455,24 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$5,$6,$4,$3,$9,$8,$11,$10,$12,$13,$15,$14,$17,$16,$19,$18,$21,$20,$23,$22,$24,$25,$7;
-$2=$recv(aNode)._binding();
+$2=[$recv(aNode)._binding()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["binding"]=1;
+,$ctx1.sendIdx["binding"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._isExternallyKnownVar();
 if($core.assert($1)){
-$5=$recv($globals.Platform)._globals();
+$5=[$recv($globals.Platform)._globals()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["globals"]=1;
+,$ctx1.sendIdx["globals"]=1
 //>>excludeEnd("ctx");
-$6=$recv(aNode)._value();
+][0];
+$6=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["value"]=1;
+,$ctx1.sendIdx["value"]=1
 //>>excludeEnd("ctx");
-$4=$recv($5)._at_ifAbsent_($6,(function(){
+][0];
+$4=[$recv($5)._at_ifAbsent_($6,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -3437,31 +3480,36 @@ return $self._error_("Unknown variable");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:ifAbsent:"]=1;
+,$ctx1.sendIdx["at:ifAbsent:"]=1
 //>>excludeEnd("ctx");
-$3=$self._push_($4);
+][0];
+$3=[$self._push_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["push:"]=1;
+,$ctx1.sendIdx["push:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $3;
 }
-$9=$recv(aNode)._binding();
+$9=[$recv(aNode)._binding()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["binding"]=2;
+,$ctx1.sendIdx["binding"]=2
 //>>excludeEnd("ctx");
+][0];
 $8=$recv($9)._isInstanceVar();
 if($core.assert($8)){
-$11=$self._context();
+$11=[$self._context()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["context"]=1;
+,$ctx1.sendIdx["context"]=1
 //>>excludeEnd("ctx");
+][0];
 $10=$recv($11)._receiver();
-$12=$recv(aNode)._value();
+$12=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["value"]=2;
+,$ctx1.sendIdx["value"]=2
 //>>excludeEnd("ctx");
+][0];
 $7=$recv($10)._instVarAt_($12);
 } else {
 $13=$self._context();
@@ -3469,59 +3517,68 @@ $15=$recv($recv(aNode)._binding())._isSuper();
 if($core.assert($15)){
 $14="self";
 } else {
-$14=$recv(aNode)._value();
+$14=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["value"]=3;
+,$ctx1.sendIdx["value"]=3
 //>>excludeEnd("ctx");
+][0];
 }
 $7=$recv($13)._localAt_ifAbsent_($14,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$17=$recv(aNode)._value();
+$17=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value"]=4;
+,$ctx2.sendIdx["value"]=4
 //>>excludeEnd("ctx");
-$16=$recv($17).__eq("nil");
+][0];
+$16=[$recv($17).__eq("nil")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["="]=1;
+,$ctx2.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 if($core.assert($16)){
 return nil;
 } else {
-$19=$recv(aNode)._value();
+$19=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value"]=5;
+,$ctx2.sendIdx["value"]=5
 //>>excludeEnd("ctx");
-$18=$recv($19).__eq("true");
+][0];
+$18=[$recv($19).__eq("true")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["="]=2;
+,$ctx2.sendIdx["="]=2
 //>>excludeEnd("ctx");
+][0];
 if($core.assert($18)){
 return true;
 } else {
-$21=$recv(aNode)._value();
+$21=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value"]=6;
+,$ctx2.sendIdx["value"]=6
 //>>excludeEnd("ctx");
+][0];
 $20=$recv($21).__eq("false");
 if($core.assert($20)){
 return false;
 } else {
-$23=$recv(aNode)._value();
+$23=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value"]=7;
+,$ctx2.sendIdx["value"]=7
 //>>excludeEnd("ctx");
+][0];
 $22=$recv($23)._isCapitalized();
 if($core.assert($22)){
-$24=$recv($globals.Smalltalk)._globals();
+$24=[$recv($globals.Smalltalk)._globals()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["globals"]=2;
+,$ctx2.sendIdx["globals"]=2
 //>>excludeEnd("ctx");
-$25=$recv(aNode)._value();
+][0];
+$25=[$recv(aNode)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value"]=8;
+,$ctx2.sendIdx["value"]=8
 //>>excludeEnd("ctx");
+][0];
 return $recv($24)._at_ifAbsent_($25,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
@@ -3742,22 +3799,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$2=$self._selector();
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+$2=[$self._selector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["selector"]=1;
+,$ctx1.sendIdx["selector"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__eq($recv(aNode)._selector());
+][0];
+$1=[$recv($2).__eq($recv(aNode)._selector())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=1;
+,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 if($core.assert($1)){
 $3=$recv($self._trackedIndex()).__eq($self._index());
 if($core.assert($3)){
@@ -3834,10 +3894,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._dagChildren();
+$1=[$self._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["dagChildren"]=1;
+,$ctx1.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._at_ifAbsent_($recv($recv($self._dagChildren())._indexOf_(aNode)).__plus((1)),(function(){
 return nil;
 

+ 129 - 93
lang/src/Compiler-Semantic.js

@@ -25,10 +25,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._args();
+$1=[$self._args()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["args"]=1;
+,$ctx1.sendIdx["args"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._at_put_(aString,$recv($globals.ArgVar)._on_(aString));
 $recv($recv($self._args())._at_(aString))._scope_(self);
 return self;
@@ -55,10 +56,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._temps();
+$1=[$self._temps()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["temps"]=1;
+,$ctx1.sendIdx["temps"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._at_put_(aString,$recv($globals.TempVar)._on_(aString));
 $recv($recv($self._temps())._at_(aString))._scope_(self);
 return self;
@@ -108,10 +110,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self._args())._keys();
+$1=[$recv($self._args())._keys()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["keys"]=1;
+,$ctx1.sendIdx["keys"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__comma($recv($self._temps())._keys());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"allVariableNames",{})});
@@ -168,11 +171,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 identifier=$recv(aNode)._value();
-$1=$recv($self._pseudoVars())._at_ifAbsent_(identifier,(function(){
+$1=[$recv($self._pseudoVars())._at_ifAbsent_(identifier,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $recv($self._args())._at_ifAbsent_(identifier,(function(){
+return [$recv($self._args())._at_ifAbsent_(identifier,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
@@ -183,17 +186,19 @@ return nil;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["at:ifAbsent:"]=2;
+,$ctx2.sendIdx["at:ifAbsent:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:ifAbsent:"]=1;
+,$ctx1.sendIdx["at:ifAbsent:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode,identifier:identifier})});
@@ -410,10 +415,11 @@ var $1,$2,$receiver;
 lookup=$self._bindingFor_(aNode);
 $1=lookup;
 if(($receiver = $1) == null || $receiver.a$nil){
-$2=$self._outerScope();
+$2=[$self._outerScope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["outerScope"]=1;
+,$ctx1.sendIdx["outerScope"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $2) == null || $receiver.a$nil){
 lookup=$2;
 } else {
@@ -447,10 +453,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$self._outerScope();
+$1=[$self._outerScope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["outerScope"]=1;
+,$ctx1.sendIdx["outerScope"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return $1;
 } else {
@@ -576,10 +583,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$4,$3,$receiver;
-$1=$self._outerScope();
+$1=[$self._outerScope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["outerScope"]=1;
+,$ctx1.sendIdx["outerScope"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return (1);
 } else {
@@ -587,14 +595,16 @@ $1;
 }
 $2=$self._isInlined();
 if($core.assert($2)){
-$4=$self._outerScope();
+$4=[$self._outerScope()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["outerScope"]=2;
+,$ctx1.sendIdx["outerScope"]=2
 //>>excludeEnd("ctx");
-$3=$recv($4)._scopeLevel();
+][0];
+$3=[$recv($4)._scopeLevel()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["scopeLevel"]=1;
+,$ctx1.sendIdx["scopeLevel"]=1
 //>>excludeEnd("ctx");
+][0];
 return $3;
 }
 return $recv($recv($self._outerScope())._scopeLevel()).__plus((1));
@@ -657,10 +667,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._iVars();
+$1=[$self._iVars()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["iVars"]=1;
+,$ctx1.sendIdx["iVars"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._at_put_(aString,$recv($globals.InstanceVar)._on_(aString));
 $recv($recv($self._iVars())._at_(aString))._scope_(self);
 return self;
@@ -711,14 +722,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._allVariableNames.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._allVariableNames.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $recv($1).__comma($recv($self._iVars())._keys());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"allVariableNames",{})});
@@ -743,14 +755,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._bindingFor_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._bindingFor_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return $recv($self._iVars())._at_ifAbsent_($recv(aNode)._value(),(function(){
 return nil;
@@ -1568,26 +1581,31 @@ var $1,$2,$receiver;
 $1=$self.dictionary;
 if(($receiver = $1) == null || $receiver.a$nil){
 $2=$recv($globals.Dictionary)._new();
-$recv($2)._at_put_("self",$globals.PseudoVar);
+[$recv($2)._at_put_("self",$globals.PseudoVar)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("super",$globals.SuperVar);
+][0];
+[$recv($2)._at_put_("super",$globals.SuperVar)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("nil",$globals.PseudoVar);
+][0];
+[$recv($2)._at_put_("nil",$globals.PseudoVar)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=3;
+,$ctx1.sendIdx["at:put:"]=3
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("false",$globals.PseudoVar);
+][0];
+[$recv($2)._at_put_("false",$globals.PseudoVar)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=4;
+,$ctx1.sendIdx["at:put:"]=4
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("true",$globals.PseudoVar);
+][0];
+[$recv($2)._at_put_("true",$globals.PseudoVar)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=5;
+,$ctx1.sendIdx["at:put:"]=5
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._at_put_("thisContext",$globals.ThisContextVar);
 $self.dictionary=$recv($2)._yourself();
 return $self.dictionary;
@@ -1620,14 +1638,16 @@ var $1,$2,$receiver;
 $1=$self.receiverNames;
 if(($receiver = $1) == null || $receiver.a$nil){
 $2=$recv($globals.Dictionary)._new();
-$recv($2)._at_put_("self","$self");
+[$recv($2)._at_put_("self","$self")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv($2)._at_put_("super","$self");
+][0];
+[$recv($2)._at_put_("super","$self")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._at_put_("nil","$nil");
 $self.receiverNames=$recv($2)._yourself();
 return $self.receiverNames;
@@ -1755,18 +1775,21 @@ var $1,$2,$3,$4,$5;
 $1=$recv(aString)._isCapitalized();
 if($core.assert($1)){
 $recv($self._classReferences())._add_(aString);
-$2=$recv($globals.ClassRefVar)._new();
+$2=[$recv($globals.ClassRefVar)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$recv($2)._name_(aString);
+][0];
+[$recv($2)._name_(aString)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name:"]=1;
+,$ctx1.sendIdx["name:"]=1
 //>>excludeEnd("ctx");
-$3=$recv($2)._yourself();
+][0];
+$3=[$recv($2)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 return $3;
 }
 $4=$recv($recv($recv($globals.Smalltalk)._globalJsVariables())._includes_(aString))._or_((function(){
@@ -1920,18 +1943,21 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$4,$3,$2;
 $1=$recv($globals.Compiler)._new();
-$4=$recv("typeof(".__comma(aString)).__comma(")!== \x22undefined\x22||(function(){try{return(");
+$4=[$recv("typeof(".__comma(aString)).__comma(")!== \x22undefined\x22||(function(){try{return(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=3;
+,$ctx1.sendIdx[","]=3
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma(aString);
+][0];
+$3=[$recv($4).__comma(aString)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$2=$recv($3).__comma(",true)}catch(_){return false}})()");
+][0];
+$2=[$recv($3).__comma(",true)}catch(_){return false}})()")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._eval_forPackage_($2,aPackage);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"isVariableKnown:inPackage:",{aString:aString,aPackage:aPackage})});
@@ -2251,14 +2277,15 @@ var lhs;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitAssignmentNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitAssignmentNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 lhs=$recv(aNode)._left();
 $1=$recv(lhs)._isImmutable();
 if($core.assert($1)){
@@ -2302,14 +2329,15 @@ return $recv($self.currentScope)._addArg_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitBlockNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitBlockNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self._popScope();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2335,14 +2363,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 $recv(aNode)._receiver_($recv($recv($recv(aNode)._dagChildren())._first())._receiver());
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitCascadeNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitCascadeNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode})});
@@ -2369,7 +2398,7 @@ return $core.withContext(function($ctx1) {
 $self._pushScope_($self._newMethodScope());
 $recv(aNode)._scope_($self.currentScope);
 $recv($self.currentScope)._node_(aNode);
-$recv($recv($self._theClass())._allInstanceVariableNames())._do_((function(each){
+[$recv($recv($self._theClass())._allInstanceVariableNames())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -2377,10 +2406,11 @@ return $recv($self.currentScope)._addIVar_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=1;
+,$ctx1.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($recv(aNode)._arguments())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2391,14 +2421,15 @@ return $recv($self.currentScope)._addArg_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitMethodNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitMethodNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $recv(aNode)._classReferences_($self._classReferences());
 $recv(aNode)._sendIndexes_($self._messageSends());
 $self._popScope();
@@ -2433,14 +2464,15 @@ $recv($self.currentScope)._localReturn_(true);
 } else {
 $recv($recv($self.currentScope)._methodScope())._addNonLocalReturn_($self.currentScope);
 }
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitReturnNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitReturnNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode})});
@@ -2476,14 +2508,15 @@ return $recv($globals.OrderedCollection)._new();
 }));
 $recv(sends)._add_(aNode);
 $recv(aNode)._index_($recv(sends)._size());
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode,sends:sends})});
@@ -2517,14 +2550,15 @@ return $recv($self.currentScope)._addTemp_(each);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
 }));
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode})});
@@ -2684,10 +2718,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv("Variable shadowing error: ".__comma($self._variableName())).__comma(" is already defined");
+$1=[$recv("Variable shadowing error: ".__comma($self._variableName())).__comma(" is already defined")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"messageText",{})});
@@ -2755,10 +2790,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv("Unknown Variable error: ".__comma($self._variableName())).__comma(" is not defined");
+$1=[$recv("Unknown Variable error: ".__comma($self._variableName())).__comma(" is not defined")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"messageText",{})});

Fichier diff supprimé car celui-ci est trop grand
+ 359 - 208
lang/src/Compiler-Tests.js


+ 8 - 0
lang/src/Compiler-Tests.st

@@ -45,6 +45,14 @@ ASTMethodRunningTest subclass: #AbstractCompilerTest
 
 !AbstractCompilerTest methodsFor: 'tests'!
 
+testAfterInliningNonLocalBlockReturnIndexSend
+	self should: 'foo [ ^ true ifTrue: [ self class ] ] value. self class' return: DoIt.
+!
+
+testAfterInliningNonLocalBlockReturnSuperSend
+	self should: 'foo [ ^ true ifTrue: [ super class ] ] value' return: DoIt.
+!
+
 testAssignment
 	self should: 'foo | a | a := true ifTrue: [ 1 ]. ^ a' return: 1.
 	self should: 'foo | a | a := false ifTrue: [ 1 ]. ^ a' return: nil.

+ 25 - 18
lang/src/Kernel-Announcements.js

@@ -341,14 +341,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.subscriptions=$recv($globals.OrderedCollection)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -399,22 +400,25 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
 $1=$self.subscriptions;
-$3=$recv($globals.AnnouncementSubscription)._new();
+$3=[$recv($globals.AnnouncementSubscription)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($globals.AnnouncementValuable)._new();
 $recv($5)._valuable_(aBlock);
 $recv($5)._receiver_(aReceiver);
-$6=$recv($5)._yourself();
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$6;
-$recv($3)._valuable_($4);
+[$recv($3)._valuable_($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["valuable:"]=1;
+,$ctx1.sendIdx["valuable:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._announcementClass_(aClass);
 $2=$recv($3)._yourself();
 $recv($1)._add_($2);
@@ -482,17 +486,19 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$5,$6,$4,$2;
 $1=$self.subscriptions;
-$3=$recv($globals.AnnouncementSubscription)._new();
+$3=[$recv($globals.AnnouncementSubscription)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($globals.MessageSend)._new();
 $recv($5)._receiver_(anObject);
 $recv($5)._selector_(aSelector);
-$6=$recv($5)._yourself();
+$6=[$recv($5)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$6;
 $recv($3)._valuable_($4);
 $recv($3)._announcementClass_(aClass);
@@ -564,14 +570,15 @@ return $core.withContext(function($ctx1) {
 var $1,$receiver;
 $1=$self.current;
 if(($receiver = $1) == null || $receiver.a$nil){
-$self.current=(
+$self.current=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $self.current;
 } else {
 return $1;

+ 275 - 189
lang/src/Kernel-Classes.js

@@ -27,10 +27,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 result=$recv($self._instanceVariableNames())._copy();
-$1=$self._superclass();
+$1=[$self._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=1;
+,$ctx1.sendIdx["superclass"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -61,10 +62,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
 $1=$self._allSuperclasses();
-$2=$self._selectors();
+$2=[$self._selectors()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["selectors"]=1;
+,$ctx1.sendIdx["selectors"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._inject_into_($2,(function(acc,each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -163,19 +165,21 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$receiver;
-$1=$self._superclass();
+$1=[$self._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=1;
+,$ctx1.sendIdx["superclass"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return [];
 } else {
 $1;
 }
-$3=$self._superclass();
+$3=[$self._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=2;
+,$ctx1.sendIdx["superclass"]=2
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._allSuperclasses();
 return $recv($2)._copyWithFirst_($self._superclass());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -848,47 +852,55 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(stream)._print_($self._superclass());
+[$recv(stream)._print_($self._superclass())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["print:"]=1;
+,$ctx2.sendIdx["print:"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_(" subclass: ");
+][0];
+[$recv(stream)._write_(" subclass: ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._printSymbol_($self._name());
-$recv(stream)._lf();
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=1;
+,$ctx2.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifNotEmpty_((function(tcd){
+][0];
+[$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifNotEmpty_((function(tcd){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$1=$recv($globals.String)._tab();
+$1=[$recv($globals.String)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["tab"]=1;
+,$ctx3.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
-$2=$recv($globals.String)._lf();
+][0];
+$2=[$recv($globals.String)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["lf"]=2;
+,$ctx3.sendIdx["lf"]=2
 //>>excludeEnd("ctx");
+][0];
 return [$1,"uses: ",tcd,$2];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({tcd:tcd},$ctx2,2)});
 //>>excludeEnd("ctx");
-})));
+})))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=2;
+,$ctx2.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=2;
+,$ctx2.sendIdx["tab"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._write_(["slots: {",". "._join_($recv($self._instanceVariableNames())._collect_("symbolPrintString")),"}"]);
+][0];
+[$recv(stream)._write_(["slots: {",". "._join_($recv($self._instanceVariableNames())._collect_("symbolPrintString")),"}"])
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=3;
+,$ctx2.sendIdx["write:"]=3
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._lf();
 $recv(stream)._tab();
 $recv(stream)._write_("package: ");
@@ -919,10 +931,11 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv(aBlock)._value_(self);
+[$recv(aBlock)._value_(self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["value:"]=1;
+,$ctx1.sendIdx["value:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(aBlock)._value_($self._theMetaClass());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1083,10 +1096,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv("$globals.".__comma($recv($self._instanceClass())._name())).__comma(".a$cls");
+$1=[$recv("$globals.".__comma($recv($self._instanceClass())._name())).__comma(".a$cls")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asJavaScriptSource",{})});
@@ -1116,29 +1130,32 @@ return $recv($globals.String)._streamContents_((function(stream){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $recv(stream)._print_(self);
-$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifEmpty_ifNotEmpty_((function(){
+[$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifEmpty_ifNotEmpty_((function(){
 return " ";
 
 }),(function(tcd){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$1=$recv($globals.String)._lf();
+$1=[$recv($globals.String)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["lf"]=1;
+,$ctx3.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$2=$recv($globals.String)._tab();
+][0];
+$2=[$recv($globals.String)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["tab"]=1;
+,$ctx3.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
+][0];
 return [$1,$2,"uses: ",tcd,$recv($globals.String)._lf(),$recv($globals.String)._tab()];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({tcd:tcd},$ctx2,3)});
 //>>excludeEnd("ctx");
-})));
+})))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv(stream)._write_(["slots: {",". "._join_($recv($self._instanceVariableNames())._collect_("symbolPrintString")),"}"]);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1,1)});
@@ -1711,97 +1728,113 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$4,$5,$6,$7,$8,$10,$9,$12,$11,$14,$15,$13,$16,$17,$18,$19;
 $recv(anotherClass)._comment_($recv(aClass)._comment());
-$1=$recv(aClass)._methodDictionary();
+$1=[$recv(aClass)._methodDictionary()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodDictionary"]=1;
+,$ctx1.sendIdx["methodDictionary"]=1
 //>>excludeEnd("ctx");
-$recv($1)._valuesDo_((function(each){
+][0];
+[$recv($1)._valuesDo_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(each)._origin();
+$3=[$recv(each)._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["origin"]=1;
+,$ctx2.sendIdx["origin"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3).__eq(aClass);
+][0];
+$2=[$recv($3).__eq(aClass)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["="]=1;
+,$ctx2.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 if($core.assert($2)){
-$4=$recv($globals.Compiler)._new();
+$4=[$recv($globals.Compiler)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["new"]=1;
+,$ctx2.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$5=$recv(each)._source();
+][0];
+$5=[$recv(each)._source()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["source"]=1;
+,$ctx2.sendIdx["source"]=1
 //>>excludeEnd("ctx");
-$6=$recv(each)._protocol();
+][0];
+$6=[$recv(each)._protocol()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["protocol"]=1;
+,$ctx2.sendIdx["protocol"]=1
 //>>excludeEnd("ctx");
-return $recv($4)._install_forClass_protocol_($5,anotherClass,$6);
+][0];
+return [$recv($4)._install_forClass_protocol_($5,anotherClass,$6)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["install:forClass:protocol:"]=1;
+,$ctx2.sendIdx["install:forClass:protocol:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["valuesDo:"]=1;
+,$ctx1.sendIdx["valuesDo:"]=1
 //>>excludeEnd("ctx");
-$7=$recv(aClass)._traitComposition();
+][0];
+$7=[$recv(aClass)._traitComposition()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["traitComposition"]=1;
+,$ctx1.sendIdx["traitComposition"]=1
 //>>excludeEnd("ctx");
-$recv(anotherClass)._setTraitComposition_($7);
+][0];
+[$recv(anotherClass)._setTraitComposition_($7)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["setTraitComposition:"]=1;
+,$ctx1.sendIdx["setTraitComposition:"]=1
 //>>excludeEnd("ctx");
-$8=$recv(anotherClass)._class();
+][0];
+$8=[$recv(anotherClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
-$10=$recv(aClass)._class();
+][0];
+$10=[$recv(aClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=2;
+,$ctx1.sendIdx["class"]=2
 //>>excludeEnd("ctx");
+][0];
 $9=$recv($10)._instanceVariableNames();
 $self._basicClass_instanceVariables_($8,$9);
-$12=$recv(aClass)._class();
+$12=[$recv(aClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=3;
+,$ctx1.sendIdx["class"]=3
 //>>excludeEnd("ctx");
+][0];
 $11=$recv($12)._methodDictionary();
 $recv($11)._valuesDo_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $14=$recv(each)._origin();
-$15=$recv(aClass)._class();
+$15=[$recv(aClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["class"]=4;
+,$ctx2.sendIdx["class"]=4
 //>>excludeEnd("ctx");
+][0];
 $13=$recv($14).__eq($15);
 if($core.assert($13)){
 $16=$recv($globals.Compiler)._new();
 $17=$recv(each)._source();
-$18=$recv(anotherClass)._class();
+$18=[$recv(anotherClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["class"]=5;
+,$ctx2.sendIdx["class"]=5
 //>>excludeEnd("ctx");
+][0];
 return $recv($16)._install_forClass_protocol_($17,$18,$recv(each)._protocol());
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,3)});
 //>>excludeEnd("ctx");
 }));
-$19=$recv(anotherClass)._class();
+$19=[$recv(anotherClass)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=6;
+,$ctx1.sendIdx["class"]=6
 //>>excludeEnd("ctx");
+][0];
 $recv($19)._setTraitComposition_($recv($recv(aClass)._class())._traitComposition());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1827,10 +1860,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv(aClass)._name();
+$1=[$recv(aClass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=1;
+,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
+][0];
 return $self._migrateClassNamed_superclass_instanceVariableNames_package_($1,anotherClass,$recv(aClass)._instanceVariableNames(),$recv($recv(aClass)._package())._name());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"migrateClass:superclass:",{aClass:aClass,anotherClass:anotherClass})});
@@ -1859,10 +1893,11 @@ 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);
-$self._basicSwapClassNames_with_(oldClass,newClass);
+[$self._basicSwapClassNames_with_(oldClass,newClass)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicSwapClassNames:with:"]=1;
+,$ctx1.sendIdx["basicSwapClassNames:with:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1876,19 +1911,21 @@ return $self._copyClass_to_(oldClass,newClass);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $self._basicSwapClassNames_with_(oldClass,newClass);
-$self._basicRemoveClass_(newClass);
+[$self._basicRemoveClass_(newClass)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["basicRemoveClass:"]=1;
+,$ctx2.sendIdx["basicRemoveClass:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv(exception)._pass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({exception:exception},$ctx1,2)});
 //>>excludeEnd("ctx");
 }));
-$self._rawRenameClass_to_(oldClass,tmp);
+[$self._rawRenameClass_to_(oldClass,tmp)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["rawRenameClass:to:"]=1;
+,$ctx1.sendIdx["rawRenameClass:to:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._rawRenameClass_to_(newClass,className);
 $recv($recv(oldClass)._subclasses())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2050,35 +2087,39 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$3,$4,$5,$7,$6,$8,$receiver;
 root=[nil,[]];
 members=$recv($globals.HashedCollection)._new();
-$recv(aCollection)._do_((function(each){
+[$recv(aCollection)._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $1=members;
-$2=$recv(each)._name();
+$2=[$recv(each)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=1;
+,$ctx2.sendIdx["name"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._at_put_($2,[each,[]]);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=1;
+,$ctx1.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($recv($recv(aCollection)._asArray())._sorted_((function(a,b){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(a)._name();
+$3=[$recv(a)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=2;
+,$ctx2.sendIdx["name"]=2
 //>>excludeEnd("ctx");
-$4=$recv(b)._name();
+][0];
+$4=[$recv(b)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=3;
+,$ctx2.sendIdx["name"]=3
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__lt_eq($4);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1,2)});
@@ -2095,19 +2136,21 @@ $6=$7;
 } else {
 var superklass;
 superklass=$receiver;
-$6=$recv(superklass)._name();
+$6=[$recv(superklass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=4;
+,$ctx2.sendIdx["name"]=4
 //>>excludeEnd("ctx");
+][0];
 }
 target=$recv($5)._at_ifAbsent_($6,(function(){
 return root;
 
 }));
-$8=$recv(target)._second();
+$8=[$recv(target)._second()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["second"]=1;
+,$ctx2.sendIdx["second"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($8)._add_($recv(members)._at_($recv(each)._name()));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each,target:target},$ctx1,3)});
@@ -2219,14 +2262,15 @@ return $core.withContext(function($ctx1) {
 var $1,$receiver;
 $1=$self._name();
 if(($receiver = $1) == null || $receiver.a$nil){
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 } else {
 var name;
 name=$receiver;
@@ -2328,18 +2372,21 @@ return nil;
 $self._basicAddCompiledMethod_(aMethod);
 $1=oldMethod;
 if(($receiver = $1) == null || $receiver.a$nil){
-$2=$recv($globals.MethodAdded)._new();
+$2=[$recv($globals.MethodAdded)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
-$recv($2)._method_(aMethod);
+][0];
+[$recv($2)._method_(aMethod)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["method:"]=1;
+,$ctx1.sendIdx["method:"]=1
 //>>excludeEnd("ctx");
-announcement=$recv($2)._yourself();
+][0];
+announcement=[$recv($2)._yourself()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["yourself"]=1;
+,$ctx1.sendIdx["yourself"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 $3=$recv($globals.MethodModified)._new();
 $recv($3)._oldMethod_(oldMethod);
@@ -2523,10 +2570,11 @@ if(($receiver = aMethod) == null || $receiver.a$nil){
 aMethod;
 } else {
 $1=$self._organization();
-$2=$recv(aMethod)._protocol();
+$2=[$recv(aMethod)._protocol()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["protocol"]=1;
+,$ctx1.sendIdx["protocol"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._addElement_($2);
 }
 if(($receiver = oldMethod) == null || $receiver.a$nil){
@@ -2561,38 +2609,46 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(stream)._write_("messageSelectorAndArgumentNames");
+[$recv(stream)._write_("messageSelectorAndArgumentNames")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._lf();
+][0];
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=1;
+,$ctx2.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=1;
+,$ctx2.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_("\x22comment stating purpose of message\x22");
+][0];
+[$recv(stream)._write_("\x22comment stating purpose of message\x22")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=2;
+,$ctx2.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._lf();
+][0];
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=2;
+,$ctx2.sendIdx["lf"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._lf();
+][0];
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=3;
+,$ctx2.sendIdx["lf"]=3
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=2;
+,$ctx2.sendIdx["tab"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._write_("| temporary variable names |");
+][0];
+[$recv(stream)._write_("| temporary variable names |")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=3;
+,$ctx2.sendIdx["write:"]=3
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._lf();
 $recv(stream)._tab();
 return $recv(stream)._write_("statements");
@@ -2677,10 +2733,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$self._basicOrganization();
+$1=[$self._basicOrganization()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicOrganization"]=1;
+,$ctx1.sendIdx["basicOrganization"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $self._basicOrganization_($recv($globals.ClassOrganizer)._on_(self));
 return $self._basicOrganization();
@@ -2722,10 +2779,11 @@ return $recv(acc).__comma($self._ownMethodsInProtocol_(each));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$recv(a)._selector();
+$1=[$recv(a)._selector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["selector"]=1;
+,$ctx2.sendIdx["selector"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__lt_eq($recv(b)._selector());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1,2)});
@@ -2870,10 +2928,11 @@ var methodsByProtocol;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-methodsByProtocol=$recv($globals.HashedCollection)._new();
+methodsByProtocol=[$recv($globals.HashedCollection)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($self._methodDictionary())._valuesDo_((function(m){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -3110,18 +3169,20 @@ return $recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$recv(str)._write_("{");
+[$recv(str)._write_("{")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["write:"]=1;
+,$ctx3.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(traitComposition)._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-return $recv(str)._write_($recv(each)._definition());
+return [$recv(str)._write_($recv(each)._definition())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["write:"]=2;
+,$ctx4.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({each:each},$ctx3,3)});
 //>>excludeEnd("ctx");
@@ -3129,10 +3190,11 @@ $ctx4.sendIdx["write:"]=2;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-return $recv(str)._write_(". ");
+return [$recv(str)._write_(". ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["write:"]=3;
+,$ctx4.sendIdx["write:"]=3
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({},$ctx3,4)});
 //>>excludeEnd("ctx");
@@ -3221,10 +3283,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$self._package();
+$1=[$self._package()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["package"]=1;
+,$ctx1.sendIdx["package"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return "Unclassified";
 } else {
@@ -3336,10 +3399,11 @@ var methods;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-methods=$self._methods();
+methods=[$self._methods()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methods"]=1;
+,$ctx1.sendIdx["methods"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$self._theMetaClass();
 if(($receiver = $1) == null || $receiver.a$nil){
 return methods;
@@ -3377,10 +3441,11 @@ $globals.Smalltalk;
 } else {
 $1=$self._basicAt_("category");
 if(($receiver = $1) == null || $receiver.a$nil){
-$self._basicPackage_(nil);
+[$self._basicPackage_(nil)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicPackage:"]=1;
+,$ctx1.sendIdx["basicPackage:"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 var category;
 category=$receiver;
@@ -3466,10 +3531,11 @@ var oldPackage;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3,$5,$4;
-$2=$self._package();
+$2=[$self._package()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["package"]=1;
+,$ctx1.sendIdx["package"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__eq(aPackage);
 if($core.assert($1)){
 return self;
@@ -3698,31 +3764,35 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(stream)._write_("Trait named: ");
+[$recv(stream)._write_("Trait named: ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._printSymbol_($self._name());
-$recv(stream)._lf();
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=1;
+,$ctx2.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifNotEmpty_((function(tcd){
+][0];
+[$recv(stream)._write_($recv($self._traitCompositionDefinition())._ifNotEmpty_((function(tcd){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$1=$recv($globals.String)._tab();
+$1=[$recv($globals.String)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["tab"]=1;
+,$ctx3.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
+][0];
 return [$1,"uses: ",tcd,$recv($globals.String)._lf()];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({tcd:tcd},$ctx2,2)});
 //>>excludeEnd("ctx");
-})));
+})))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=2;
+,$ctx2.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._tab();
 $recv(stream)._write_("package: ");
 return $recv(stream)._print_($self._category());
@@ -4038,11 +4108,12 @@ return $recv($globals.String)._streamContents_((function(str){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$recv($self._trait())._asJavaScriptSource();
+$2=[$recv($self._trait())._asJavaScriptSource()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["asJavaScriptSource"]=1;
+,$ctx2.sendIdx["asJavaScriptSource"]=1
 //>>excludeEnd("ctx");
-$3=$recv($self._aliases())._ifNotEmpty_((function(al){
+][0];
+$3=[$recv($self._aliases())._ifNotEmpty_((function(al){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
@@ -4050,10 +4121,11 @@ return [", aliases: ",$recv(al)._asJSONString()];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({al:al},$ctx2,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["ifNotEmpty:"]=1;
+,$ctx2.sendIdx["ifNotEmpty:"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=["{trait: ",$2,$3,$recv($self._exclusions())._ifNotEmpty_((function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
@@ -4131,26 +4203,29 @@ return $recv($globals.String)._streamContents_((function(str){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $recv(str)._print_($self._trait());
-$recv($self._aliases())._ifNotEmpty_((function(al){
+[$recv($self._aliases())._ifNotEmpty_((function(al){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$recv(str)._write_(" @ {");
+[$recv(str)._write_(" @ {")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["write:"]=1;
+,$ctx3.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
-$recv($recv(al)._associations())._do_separatedBy_((function(each){
+][0];
+[$recv($recv(al)._associations())._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-$recv(str)._printSymbol_($recv(each)._key());
+[$recv(str)._printSymbol_($recv(each)._key())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["printSymbol:"]=1;
+,$ctx4.sendIdx["printSymbol:"]=1
 //>>excludeEnd("ctx");
-$recv(str)._write_(" -> ");
+][0];
+[$recv(str)._write_(" -> ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["write:"]=2;
+,$ctx4.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 return $recv(str)._printSymbol_($recv(each)._value());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({each:each},$ctx3,3)});
@@ -4159,44 +4234,50 @@ return $recv(str)._printSymbol_($recv(each)._value());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-return $recv(str)._write_(". ");
+return [$recv(str)._write_(". ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["write:"]=3;
+,$ctx4.sendIdx["write:"]=3
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({},$ctx3,4)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["do:separatedBy:"]=1;
+,$ctx3.sendIdx["do:separatedBy:"]=1
 //>>excludeEnd("ctx");
-return $recv(str)._write_("}");
+][0];
+return [$recv(str)._write_("}")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["write:"]=4;
+,$ctx3.sendIdx["write:"]=4
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({al:al},$ctx2,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["ifNotEmpty:"]=1;
+,$ctx2.sendIdx["ifNotEmpty:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($self._exclusions())._ifNotEmpty_((function(ex){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$recv(str)._write_(" - #(");
+[$recv(str)._write_(" - #(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["write:"]=5;
+,$ctx3.sendIdx["write:"]=5
 //>>excludeEnd("ctx");
+][0];
 $recv($recv($recv(ex)._asArray())._sorted())._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-return $recv(str)._write_($recv($recv(each)._symbolPrintString())._allButFirst());
+return [$recv(str)._write_($recv($recv(each)._symbolPrintString())._allButFirst())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["write:"]=6;
+,$ctx4.sendIdx["write:"]=6
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({each:each},$ctx3,6)});
 //>>excludeEnd("ctx");
@@ -4258,14 +4339,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.aliases=$globals.HashedCollection._newFromPairs_([]);
 $self.exclusions=$recv($globals.Set)._new();
 $self.trait=nil;
@@ -4292,10 +4374,11 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$self.aliases=$recv($self.aliases)._copy();
+$self.aliases=[$recv($self.aliases)._copy()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["copy"]=1;
+,$ctx1.sendIdx["copy"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.exclusions=$recv($self.exclusions)._copy();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4359,22 +4442,24 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$4,$3,$2;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $recv($1)._trait_($recv(aJSObject)._at_("trait"));
-$4=$recv(aJSObject)._at_ifAbsent_("aliases",(function(){
+$4=[$recv(aJSObject)._at_ifAbsent_("aliases",(function(){
 return $globals.HashedCollection._newFromPairs_([]);
 
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:ifAbsent:"]=1;
+,$ctx1.sendIdx["at:ifAbsent:"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($globals.Smalltalk)._readJSObject_($4);
 $2=$recv($3)._associations();
 $recv($1)._addAliases_($2);
@@ -4406,14 +4491,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $recv($1)._trait_(aTrait);
 return $recv($1)._yourself();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

Fichier diff supprimé car celui-ci est trop grand
+ 270 - 194
lang/src/Kernel-Collections.js


+ 18 - 14
lang/src/Kernel-Dag.js

@@ -213,14 +213,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.path=[];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -271,14 +272,15 @@ $recv((function(){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $self.path=$recv($self.path).__comma([aNode]);
-result=(
+result=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visit_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx2.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return result;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -313,14 +315,15 @@ var newNode;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-newNode=(
+newNode=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitDagNodeVariantRedux_.call($self,aNode));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._visitDagNodeVariantRedux_.call($self,aNode))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $1=$recv(aNode).__eq_eq(newNode);
 if(!$core.assert($1)){
 $recv($self.path)._at_put_($recv($self.path)._size(),newNode);
@@ -379,10 +382,11 @@ var allNodes;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._dagChildren();
+$1=[$self._dagChildren()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["dagChildren"]=1;
+,$ctx1.sendIdx["dagChildren"]=1
 //>>excludeEnd("ctx");
+][0];
 allNodes=$recv($1)._asSet();
 $recv($self._dagChildren())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 19 - 13
lang/src/Kernel-Exceptions.js

@@ -371,14 +371,16 @@ return $recv(aContext)._findContextSuchThat_((function(one){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(one)._receiver();
+$3=[$recv(one)._receiver()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["receiver"]=1;
+,$ctx2.sendIdx["receiver"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3).__eq_eq(self);
+][0];
+$2=[$recv($3).__eq_eq(self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["=="]=1;
+,$ctx2.sendIdx["=="]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
@@ -531,15 +533,17 @@ return $recv(aContext)._findContextSuchThat_((function(one){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(one)._receiver();
+$3=[$recv(one)._receiver()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["receiver"]=1;
+,$ctx2.sendIdx["receiver"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3).__eq_eq(self);
+][0];
+$2=[$recv($3).__eq_eq(self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["=="]=1;
+,$ctx2.sendIdx["=="]=1
 //>>excludeEnd("ctx");
-$1=$recv($2)._or_((function(){
+][0];
+$1=[$recv($2)._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
@@ -555,10 +559,11 @@ return $recv($recv($recv(one)._method())._selector()).__eq("halt");
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["or:"]=1;
+,$ctx2.sendIdx["or:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._not();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({one:one},$ctx1,1)});
@@ -750,10 +755,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($recv($recv($self._receiver())._asString()).__comma(" does not understand #")).__comma($recv($self._message())._selector());
+$1=[$recv($recv($recv($self._receiver())._asString()).__comma(" does not understand #")).__comma($recv($self._message())._selector())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"messageText",{})});

+ 207 - 147
lang/src/Kernel-Infrastructure.js

@@ -54,7 +54,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($recv($globals.Smalltalk)._classes())._do_((function(eachClass){
+[$recv($recv($globals.Smalltalk)._classes())._do_((function(eachClass){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -70,10 +70,11 @@ return $recv($recv(eachMethod)._methodClass())._methodOrganizationEnter_andLeave
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({eachClass:eachClass},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["do:"]=1;
+,$ctx1.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"organizeMethods",{})});
@@ -129,10 +130,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-$2=$recv(anObject)._class();
+$2=[$recv(anObject)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__eq_eq($self._class());
 if(!$core.assert($1)){
 return false;
@@ -312,14 +314,15 @@ $1=$recv($globals.NativeFunction)._isNativeFunction_($self._at_("then"));
 if($core.assert($1)){
 return $recv($recv($globals.TThenable).__gt_gt("catch:"))._sendTo_arguments_($self.jsObject,[aBlock]);
 } else {
-$2=(
+$2=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._catch_.call($self,aBlock));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._catch_.call($self,aBlock))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $2;
 }
 return self;
@@ -348,14 +351,15 @@ return $core.withContext(function($ctx1) {
 var $1,$receiver;
 $1=$recv($globals.JSObjectProxy)._lookupProperty_ofProxy_($recv($recv(aMessage)._selector())._asJavaScriptPropertyName(),self);
 if(($receiver = $1) == null || $receiver.a$nil){
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._doesNotUnderstand_.call($self,aMessage));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._doesNotUnderstand_.call($self,aMessage))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 } else {
 var jsSelector;
 jsSelector=$receiver;
@@ -458,14 +462,15 @@ $1=$recv($globals.NativeFunction)._isNativeFunction_($self._at_("then"));
 if($core.assert($1)){
 return $recv($recv($globals.TThenable).__gt_gt("on:do:"))._sendTo_arguments_($self.jsObject,[aClass,aBlock]);
 } else {
-$2=(
+$2=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._on_do_.call($self,aClass,aBlock));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._on_do_.call($self,aClass,aBlock))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $2;
 }
 return self;
@@ -597,14 +602,15 @@ $1=$recv($globals.NativeFunction)._isNativeFunction_($self._at_("then"));
 if($core.assert($1)){
 return $recv($recv($globals.TThenable).__gt_gt("then:"))._sendTo_arguments_($self.jsObject,[aBlockOrArray]);
 } else {
-$2=(
+$2=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._then_.call($self,aBlockOrArray));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._then_.call($self,aBlockOrArray))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $2;
 }
 return self;
@@ -881,14 +887,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.elements=$recv($globals.Set)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -946,14 +953,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._addElement_.call($self,aString));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._addElement_.call($self,aString))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $1=$recv($globals.SystemAnnouncer)._current();
 $3=$recv($globals.ProtocolAdded)._new();
 $recv($3)._protocol_(aString);
@@ -984,14 +992,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._removeElement_.call($self,aString));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._removeElement_.call($self,aString))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $1=$recv($globals.SystemAnnouncer)._current();
 $3=$recv($globals.ProtocolRemoved)._new();
 $recv($3)._protocol_(aString);
@@ -1178,22 +1187,26 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(stream)._write_("Object subclass: #NameOfSubclass");
+[$recv(stream)._write_("Object subclass: #NameOfSubclass")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._lf();
+][0];
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=1;
+,$ctx2.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=1;
+,$ctx2.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_("instanceVariableNames: ''");
+][0];
+[$recv(stream)._write_("instanceVariableNames: ''")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=2;
+,$ctx2.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._lf();
 $recv(stream)._tab();
 $recv(stream)._write_("package: ");
@@ -1252,39 +1265,47 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$recv($self._class())._name();
+$1=[$recv($self._class())._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=1;
+,$ctx2.sendIdx["name"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_($1);
+][0];
+[$recv(stream)._write_($1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._lf();
+][0];
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=1;
+,$ctx2.sendIdx["lf"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=1;
+,$ctx2.sendIdx["tab"]=1
 //>>excludeEnd("ctx");
-$recv(stream)._write_("named: ");
+][0];
+[$recv(stream)._write_("named: ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=2;
+,$ctx2.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._print_($self._name());
-$recv(stream)._lf();
+[$recv(stream)._lf()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["lf"]=2;
+,$ctx2.sendIdx["lf"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._tab();
+][0];
+[$recv(stream)._tab()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["tab"]=2;
+,$ctx2.sendIdx["tab"]=2
 //>>excludeEnd("ctx");
-$recv(stream)._write_(["imports: ",$self._importsDefinition()]);
+][0];
+[$recv(stream)._write_(["imports: ",$self._importsDefinition()])
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=3;
+,$ctx2.sendIdx["write:"]=3
 //>>excludeEnd("ctx");
+][0];
 $recv(stream)._lf();
 $recv(stream)._tab();
 return $recv(stream)._write_(["transport: (",$recv($self._transport())._definition(),")"]);
@@ -1444,10 +1465,11 @@ $1=$recv(each)._isString();
 if($core.assert($1)){
 return each;
 } else {
-return $recv($recv($recv(each)._key()).__comma("=")).__comma($recv(each)._value());
+return [$recv($recv($recv(each)._key()).__comma("=")).__comma($recv(each)._value())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=1;
+,$ctx2.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 }
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
@@ -1479,10 +1501,11 @@ return $recv($globals.String)._streamContents_((function(stream){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(stream)._write_("{");
+[$recv(stream)._write_("{")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["write:"]=1;
+,$ctx2.sendIdx["write:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($self._sortedImportsAsArray())._do_separatedBy_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
@@ -1495,10 +1518,11 @@ return $recv(stream)._print_(each);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv(stream)._write_(". ");
+return [$recv(stream)._write_(". ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["write:"]=2;
+,$ctx3.sendIdx["write:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 //>>excludeEnd("ctx");
@@ -1539,10 +1563,11 @@ return $core.withContext(function($ctx2) {
 split=$recv(each)._tokenize_("=");
 $1=$recv($recv(split)._size()).__eq((1));
 if($core.assert($1)){
-return $recv(split)._first();
+return [$recv(split)._first()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["first"]=1;
+,$ctx2.sendIdx["first"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 return $recv($recv(split)._first()).__minus_gt($recv(split)._second());
 }
@@ -1572,18 +1597,20 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$self.organization=$recv($globals.PackageOrganizer)._new();
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+$self.organization=[$recv($globals.PackageOrganizer)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.evalBlock=nil;
 $self.dirty=nil;
 $self.imports=nil;
@@ -1697,7 +1724,7 @@ var basicEval,basicImports;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-basicEval=$recv(anObject)._at_ifAbsent_("innerEval",(function(){
+basicEval=[$recv(anObject)._at_ifAbsent_("innerEval",(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1705,17 +1732,19 @@ return $nil._asJavaScriptObject();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:ifAbsent:"]=1;
+,$ctx1.sendIdx["at:ifAbsent:"]=1
 //>>excludeEnd("ctx");
-basicImports=$recv(anObject)._at_ifAbsent_("imports",(function(){
+][0];
+basicImports=[$recv(anObject)._at_ifAbsent_("imports",(function(){
 return [];
 
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:ifAbsent:"]=2;
+,$ctx1.sendIdx["at:ifAbsent:"]=2
 //>>excludeEnd("ctx");
+][0];
 $self.basicTransport=$recv(anObject)._at_ifAbsent_("transport",(function(){
 
 }));
@@ -1794,11 +1823,12 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1;
 starCategoryName="*".__comma($self._name());
-$3=$self._classes();
+$3=[$self._classes()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["classes"]=1;
+,$ctx1.sendIdx["classes"]=1
 //>>excludeEnd("ctx");
-$2=$recv($3)._collect_((function(each){
+][0];
+$2=[$recv($3)._collect_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1806,12 +1836,13 @@ return $recv(each)._superclass();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["collect:"]=1;
+,$ctx1.sendIdx["collect:"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2)._asSet();
-$recv($1)._addAll_($recv($recv($globals.Smalltalk)._classes())._select_((function(each){
+[$recv($1)._addAll_($recv($recv($globals.Smalltalk)._classes())._select_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1835,10 +1866,11 @@ return $recv($recv(any)._ownMethodsInProtocol_(starCategoryName))._notEmpty();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
 //>>excludeEnd("ctx");
-})));
+})))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["addAll:"]=1;
+,$ctx1.sendIdx["addAll:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._addAll_($recv($globals.Array)._streamContents_((function(as){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1945,22 +1977,25 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$recv(aStream)._nextPutAll_(" (");
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+[$recv(aStream)._nextPutAll_(" (")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=1;
+,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_($self._name());
+][0];
+[$recv(aStream)._nextPutAll_($self._name())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=2;
+,$ctx1.sendIdx["nextPutAll:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_(")");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2045,33 +2080,37 @@ return $recv($recv($self._imports())._asArray())._sorted_((function(a,b){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$recv(a)._isString();
+$3=[$recv(a)._isString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["isString"]=1;
+,$ctx2.sendIdx["isString"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._not();
-$4=$recv(b)._isString();
+$4=[$recv(b)._isString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["isString"]=2;
+,$ctx2.sendIdx["isString"]=2
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__and($4);
 return $recv($1)._or_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-$6=$recv(a)._isString();
+$6=[$recv(a)._isString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["isString"]=3;
+,$ctx3.sendIdx["isString"]=3
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__eq($recv(b)._isString());
 return $recv($5)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx4) {
 //>>excludeEnd("ctx");
-$7=$recv(a)._value();
+$7=[$recv(a)._value()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx4.sendIdx["value"]=1;
+,$ctx4.sendIdx["value"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($7).__lt_eq($recv(b)._value());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx4) {$ctx4.fillBlock({},$ctx3,3)});
@@ -2217,32 +2256,37 @@ $recv(aCollection)._do_((function(import_){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$recv(import_)._isString();
+$1=[$recv(import_)._isString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["isString"]=1;
+,$ctx2.sendIdx["isString"]=1
 //>>excludeEnd("ctx");
+][0];
 if(!$core.assert($1)){
 $2=$recv(import_)._respondsTo_("key");
 if(!$core.assert($2)){
-$self._error_("Imports must be Strings or Associations");
+[$self._error_("Imports must be Strings or Associations")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["error:"]=1;
+,$ctx2.sendIdx["error:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
-$5=$recv(import_)._key();
+$5=[$recv(import_)._key()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["key"]=1;
+,$ctx2.sendIdx["key"]=1
 //>>excludeEnd("ctx");
-$4=$recv($5)._isString();
+][0];
+$4=[$recv($5)._isString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["isString"]=2;
+,$ctx2.sendIdx["isString"]=2
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4).__and($recv($recv(import_)._value())._isString());
 if(!$core.assert($3)){
-$self._error_("Key and value must be Strings");
+[$self._error_("Key and value must be Strings")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["error:"]=2;
+,$ctx2.sendIdx["error:"]=2
 //>>excludeEnd("ctx");
+][0];
 }
 $6=$recv($recv(import_)._key())._match_("^[a-zA-Z][a-zA-Z0-9]*$");
 if(!$core.assert($6)){
@@ -2498,18 +2542,21 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $1=$self._announcer();
-$recv($1)._on_send_to_($globals.PackageAdded,"onPackageAdded:",self);
+[$recv($1)._on_send_to_($globals.PackageAdded,"onPackageAdded:",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["on:send:to:"]=1;
+,$ctx1.sendIdx["on:send:to:"]=1
 //>>excludeEnd("ctx");
-$recv($1)._on_send_to_($globals.ClassAnnouncement,"onClassModification:",self);
+][0];
+[$recv($1)._on_send_to_($globals.ClassAnnouncement,"onClassModification:",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["on:send:to:"]=2;
+,$ctx1.sendIdx["on:send:to:"]=2
 //>>excludeEnd("ctx");
-$recv($1)._on_send_to_($globals.MethodAnnouncement,"onMethodModification:",self);
+][0];
+[$recv($1)._on_send_to_($globals.MethodAnnouncement,"onMethodModification:",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["on:send:to:"]=3;
+,$ctx1.sendIdx["on:send:to:"]=3
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._on_send_to_($globals.ProtocolAnnouncement,"onProtocolModification:",self);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2845,14 +2892,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $recv($1)._key_(aString);
 $recv($1)._defaultValue_(aDefaultValue);
 return $recv($1)._yourself();
@@ -3544,10 +3592,11 @@ var classes;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(pkgs)._do_("beClean");
+[$recv(pkgs)._do_("beClean")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["do:"]=1;
+,$ctx2.sendIdx["do:"]=1
 //>>excludeEnd("ctx");
+][0];
 classes=$recv($recv($globals.Smalltalk)._classes())._select_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
@@ -3646,39 +3695,46 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$5,$4,$6,$3,$7,$9,$8;
 $1=$recv(aClass)._isMetaclass();
 if($core.assert($1)){
-$2=$recv($recv(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!");
+$2=[$recv($recv(aClass)._asString()).__comma(" is a Metaclass and cannot be removed!")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
-$self._error_($2);
+][0];
+[$self._error_($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["error:"]=1;
+,$ctx1.sendIdx["error:"]=1
 //>>excludeEnd("ctx");
+][0];
 }
 $recv(aClass)._allSubclassesDo_((function(subclass){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$5=$recv(aClass)._name();
+$5=[$recv(aClass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=1;
+,$ctx2.sendIdx["name"]=1
 //>>excludeEnd("ctx");
-$4=$recv($5).__comma(" has a subclass: ");
+][0];
+$4=[$recv($5).__comma(" has a subclass: ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=3;
+,$ctx2.sendIdx[","]=3
 //>>excludeEnd("ctx");
-$6=$recv(subclass)._name();
+][0];
+$6=[$recv(subclass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["name"]=2;
+,$ctx2.sendIdx["name"]=2
 //>>excludeEnd("ctx");
-$3=$recv($4).__comma($6);
+][0];
+$3=[$recv($4).__comma($6)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=2;
+,$ctx2.sendIdx[","]=2
 //>>excludeEnd("ctx");
-return $self._error_($3);
+][0];
+return [$self._error_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["error:"]=2;
+,$ctx2.sendIdx["error:"]=2
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({subclass:subclass},$ctx1,2)});
 //>>excludeEnd("ctx");
@@ -3779,14 +3835,16 @@ pkg=$self._packageAt_ifAbsent_(packageName,(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1="Missing package: ".__comma(packageName);
+$1=["Missing package: ".__comma(packageName)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx[","]=1;
+,$ctx2.sendIdx[","]=1
 //>>excludeEnd("ctx");
-return $self._error_($1);
+][0];
+return [$self._error_($1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["error:"]=1;
+,$ctx2.sendIdx["error:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -3905,10 +3963,11 @@ return $recv(actionBlock)._tryIfTrue_catch_((function(error){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 smalltalkError=$self._asSmalltalkException_(error);
-return $recv(aBlock)._value_(smalltalkError);
+return [$recv(aBlock)._value_(smalltalkError)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value:"]=1;
+,$ctx2.sendIdx["value:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({error:error},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -4022,14 +4081,15 @@ return $core.withContext(function($ctx1) {
 var $1,$receiver;
 $1=$self.current;
 if(($receiver = $1) == null || $receiver.a$nil){
-$self.current=(
+$self.current=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $self.current;
 } else {
 $self._deprecatedAPI();

+ 130 - 90
lang/src/Kernel-Methods.js

@@ -897,91 +897,108 @@ var result;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$4,$6,$7,$5,$3,$10,$9,$12,$11,$8,$14,$16,$15,$13,$17,$receiver;
-result=$recv(aClass)._name();
+result=[$recv(aClass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=1;
+,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
-$2=$self._methodClass();
+][0];
+$2=[$self._methodClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodClass"]=1;
+,$ctx1.sendIdx["methodClass"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__eq(aClass);
+][0];
+$1=[$recv($2).__eq(aClass)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=1;
+,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 if(!$core.assert($1)){
-$4=$recv(result).__comma(" (");
+$4=[$recv(result).__comma(" (")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=3;
+,$ctx1.sendIdx[","]=3
 //>>excludeEnd("ctx");
-$6=$self._methodClass();
+][0];
+$6=[$self._methodClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodClass"]=2;
+,$ctx1.sendIdx["methodClass"]=2
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $6) == null || $receiver.a$nil){
 $5="nil";
 } else {
-$7=$self._methodClass();
+$7=[$self._methodClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodClass"]=3;
+,$ctx1.sendIdx["methodClass"]=3
 //>>excludeEnd("ctx");
-$5=$recv($7)._name();
+][0];
+$5=[$recv($7)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=2;
+,$ctx1.sendIdx["name"]=2
 //>>excludeEnd("ctx");
+][0];
 }
-$3=$recv($4).__comma($5);
+$3=[$recv($4).__comma($5)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-result=$recv($3).__comma(")");
+][0];
+result=[$recv($3).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 result;
 }
-$10=$self._origin();
+$10=[$self._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["origin"]=1;
+,$ctx1.sendIdx["origin"]=1
 //>>excludeEnd("ctx");
-$9=$recv($10).__eq(aClass);
+][0];
+$9=[$recv($10).__eq(aClass)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=2;
+,$ctx1.sendIdx["="]=2
 //>>excludeEnd("ctx");
-$12=$self._origin();
+][0];
+$12=[$self._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["origin"]=2;
+,$ctx1.sendIdx["origin"]=2
 //>>excludeEnd("ctx");
+][0];
 $11=$recv($12).__eq($self._methodClass());
 $8=$recv($9).__or($11);
 if(!$core.assert($8)){
-$14=$recv(result).__comma(" /");
+$14=[$recv(result).__comma(" /")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=6;
+,$ctx1.sendIdx[","]=6
 //>>excludeEnd("ctx");
-$16=$self._origin();
+][0];
+$16=[$self._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["origin"]=3;
+,$ctx1.sendIdx["origin"]=3
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $16) == null || $receiver.a$nil){
 $15="nil";
 } else {
 $15=$recv($self._origin())._name();
 }
-$13=$recv($14).__comma($15);
+$13=[$recv($14).__comma($15)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=5;
+,$ctx1.sendIdx[","]=5
 //>>excludeEnd("ctx");
-result=$recv($13).__comma("/");
+][0];
+result=[$recv($13).__comma("/")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=4;
+,$ctx1.sendIdx[","]=4
 //>>excludeEnd("ctx");
+][0];
 result;
 }
-$17=$recv($recv(result).__comma(" >> ")).__comma($recv($self._selector())._symbolPrintString());
+$17=[$recv($recv(result).__comma(" >> ")).__comma($recv($self._selector())._symbolPrintString())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=7;
+,$ctx1.sendIdx[","]=7
 //>>excludeEnd("ctx");
+][0];
 return $17;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asStringForClass:",{aClass:aClass,result:result})});
@@ -1214,14 +1231,16 @@ var superclass;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2,$receiver;
-$1=$self._methodClass();
+$1=[$self._methodClass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodClass"]=1;
+,$ctx1.sendIdx["methodClass"]=1
 //>>excludeEnd("ctx");
-superclass=$recv($1)._superclass();
+][0];
+superclass=[$recv($1)._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=1;
+,$ctx1.sendIdx["superclass"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=superclass;
 if(($receiver = $2) == null || $receiver.a$nil){
 return false;
@@ -1684,14 +1703,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.poolSize=(0);
 $self.queue=$recv($globals.Queue)._new();
 $self.worker=$self._makeWorker();
@@ -1936,22 +1956,25 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$recv(aStream)._nextPutAll_("(");
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+[$recv(aStream)._nextPutAll_("(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=1;
+,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_($self._selector());
+][0];
+[$recv(aStream)._nextPutAll_($self._selector())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=2;
+,$ctx1.sendIdx["nextPutAll:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_(")");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2139,14 +2162,15 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.message=$recv($globals.Message)._new();
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2171,30 +2195,35 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$recv(aStream)._nextPutAll_("(");
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+[$recv(aStream)._nextPutAll_("(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=1;
+,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_($self._receiver());
+][0];
+[$recv(aStream)._nextPutAll_($self._receiver())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=2;
+,$ctx1.sendIdx["nextPutAll:"]=2
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_(" >> ");
+][0];
+[$recv(aStream)._nextPutAll_(" >> ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=3;
+,$ctx1.sendIdx["nextPutAll:"]=3
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_($self._selector());
+][0];
+[$recv(aStream)._nextPutAll_($self._selector())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=4;
+,$ctx1.sendIdx["nextPutAll:"]=4
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_(")");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3300,14 +3329,16 @@ return $core.withContext(function($ctx1) {
 var $1,$2,$3,$receiver;
 $1=$self._isBlockContext();
 if($core.assert($1)){
-$2="a block (in ".__comma($recv($self._methodContext())._asString());
+$2=["a block (in ".__comma($recv($self._methodContext())._asString())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-return $recv($2).__comma(")");
+][0];
+return [$recv($2).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 $3=$self._method();
 if(($receiver = $3) == null || $receiver.a$nil){
@@ -3513,34 +3544,39 @@ var method,lookupClass,receiverClass,supercall;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$3,$2,$4,$6,$5,$7,$8,$receiver;
-$1=$self._methodContext();
+$1=[$self._methodContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodContext"]=1;
+,$ctx1.sendIdx["methodContext"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 return nil;
 } else {
 $1;
 }
-$3=$self._methodContext();
+$3=[$self._methodContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodContext"]=2;
+,$ctx1.sendIdx["methodContext"]=2
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._receiver();
 receiverClass=$recv($2)._class();
 $4=receiverClass;
-$6=$self._methodContext();
+$6=[$self._methodContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["methodContext"]=3;
+,$ctx1.sendIdx["methodContext"]=3
 //>>excludeEnd("ctx");
-$5=$recv($6)._selector();
+][0];
+$5=[$recv($6)._selector()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["selector"]=1;
+,$ctx1.sendIdx["selector"]=1
 //>>excludeEnd("ctx");
-method=$recv($4)._lookupSelector_($5);
+][0];
+method=[$recv($4)._lookupSelector_($5)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["lookupSelector:"]=1;
+,$ctx1.sendIdx["lookupSelector:"]=1
 //>>excludeEnd("ctx");
+][0];
 $7=$self._outerContext();
 if(($receiver = $7) == null || $receiver.a$nil){
 supercall=false;
@@ -3636,22 +3672,25 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._printOn_.call($self,aStream))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$recv(aStream)._nextPutAll_("(");
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+[$recv(aStream)._nextPutAll_("(")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=1;
+,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
-$recv(aStream)._nextPutAll_($self._asString());
+][0];
+[$recv(aStream)._nextPutAll_($self._asString())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=2;
+,$ctx1.sendIdx["nextPutAll:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_(")");
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3681,10 +3720,11 @@ $1=$recv($self._isBlockContext())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$2=$self._outerContext();
+$2=[$self._outerContext()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["outerContext"]=1;
+,$ctx2.sendIdx["outerContext"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($2)._notNil();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});

+ 263 - 176
lang/src/Kernel-Objects.js

@@ -508,14 +508,16 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $5,$4,$3,$2,$1;
-$5=$self._class();
+$5=[$self._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
-$4=$recv($5)._name();
+][0];
+$4=[$recv($5)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=1;
+,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._first();
 $2=$recv($3)._isVowel();
 if($core.assert($2)){
@@ -523,10 +525,11 @@ $1="an ";
 } else {
 $1="a ";
 }
-$recv(aStream)._nextPutAll_($1);
+[$recv(aStream)._nextPutAll_($1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["nextPutAll:"]=1;
+,$ctx1.sendIdx["nextPutAll:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_($recv($self._class())._name());
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -601,10 +604,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self.__eq(anObject)).__eq(false);
+$1=[$recv($self.__eq(anObject)).__eq(false)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=1;
+,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"~=",{anObject:anObject})});
@@ -976,28 +980,33 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$6,$5,$4,$8,$7,$3,$2;
 $1=console;
-$6=$core.getThisContext()._home();
+$6=[$core.getThisContext()._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=1;
+,$ctx1.sendIdx["home"]=1
 //>>excludeEnd("ctx");
-$5=$recv($6)._asString();
+][0];
+$5=[$recv($6)._asString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asString"]=1;
+,$ctx1.sendIdx["asString"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$recv($5).__comma(" is deprecated! (in ");
-$8=$recv($core.getThisContext()._home())._home();
+$8=[$recv($core.getThisContext()._home())._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=2;
+,$ctx1.sendIdx["home"]=2
 //>>excludeEnd("ctx");
+][0];
 $7=$recv($8)._asString();
-$3=$recv($4).__comma($7);
+$3=[$recv($4).__comma($7)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$2=$recv($3).__comma(")");
+][0];
+$2=[$recv($3).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._warn_($2);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1024,32 +1033,38 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$6,$5,$4,$8,$7,$3,$2;
 $1=console;
-$6=$core.getThisContext()._home();
+$6=[$core.getThisContext()._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=1;
+,$ctx1.sendIdx["home"]=1
 //>>excludeEnd("ctx");
-$5=$recv($6)._asString();
+][0];
+$5=[$recv($6)._asString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asString"]=1;
+,$ctx1.sendIdx["asString"]=1
 //>>excludeEnd("ctx");
+][0];
 $4=$recv($5).__comma(" is deprecated! (in ");
-$8=$recv($core.getThisContext()._home())._home();
+$8=[$recv($core.getThisContext()._home())._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=2;
+,$ctx1.sendIdx["home"]=2
 //>>excludeEnd("ctx");
+][0];
 $7=$recv($8)._asString();
-$3=$recv($4).__comma($7);
+$3=[$recv($4).__comma($7)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$2=$recv($3).__comma(")");
+][0];
+$2=[$recv($3).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
-$recv($1)._warn_($2);
+][0];
+[$recv($1)._warn_($2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["warn:"]=1;
+,$ctx1.sendIdx["warn:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(console)._warn_(aString);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2050,22 +2065,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-$2=$recv(aDate)._class();
+$2=[$recv(aDate)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__eq_eq($self._class());
+][0];
+$1=[$recv($2).__eq_eq($self._class())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["=="]=1;
+,$ctx1.sendIdx["=="]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$self._asMilliseconds();
+$3=[$self._asMilliseconds()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["asMilliseconds"]=1;
+,$ctx2.sendIdx["asMilliseconds"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__eq_eq($recv(aDate)._asMilliseconds());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -2875,10 +2893,11 @@ var t;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-t=$recv($globals.Date)._now();
+t=[$recv($globals.Date)._now()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["now"]=1;
+,$ctx1.sendIdx["now"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(aBlock)._value();
 return $recv($recv($globals.Date)._now()).__minus(t);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -3453,10 +3472,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv("(".__comma($self._printString())).__comma(")");
+$1=[$recv("(".__comma($self._printString())).__comma(")")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"asJavaScriptSource",{})});
@@ -4489,14 +4509,16 @@ var array,first,last,count;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-first=$self._truncated();
+first=[$self._truncated()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["truncated"]=1;
+,$ctx1.sendIdx["truncated"]=1
 //>>excludeEnd("ctx");
-last=$recv($recv(aNumber)._truncated()).__plus((1));
+][0];
+last=[$recv($recv(aNumber)._truncated()).__plus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["+"]=1;
+,$ctx1.sendIdx["+"]=1
 //>>excludeEnd("ctx");
+][0];
 count=(1);
 array=$recv($globals.Array)._new();
 $recv($recv(last).__minus(first))._timesRepeat_((function(){
@@ -4504,10 +4526,11 @@ $recv($recv(last).__minus(first))._timesRepeat_((function(){
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $recv(array)._at_put_(count,first);
-count=$recv(count).__plus((1));
+count=[$recv(count).__plus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=2;
+,$ctx2.sendIdx["+"]=2
 //>>excludeEnd("ctx");
+][0];
 first=$recv(first).__plus((1));
 return first;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4548,7 +4571,7 @@ $self._error_("step must be non-zero");
 }
 $2=$recv(step).__lt((0));
 if($core.assert($2)){
-$recv((function(){
+[$recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -4560,26 +4583,30 @@ return $recv(value).__gt_eq(stop);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(array)._at_put_(pos,value);
+[$recv(array)._at_put_(pos,value)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["at:put:"]=1;
+,$ctx2.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-pos=$recv(pos).__plus((1));
+][0];
+pos=[$recv(pos).__plus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=1;
+,$ctx2.sendIdx["+"]=1
 //>>excludeEnd("ctx");
-value=$recv(value).__plus(step);
+][0];
+value=[$recv(value).__plus(step)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=2;
+,$ctx2.sendIdx["+"]=2
 //>>excludeEnd("ctx");
+][0];
 return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,4)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["whileTrue:"]=1;
+,$ctx1.sendIdx["whileTrue:"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4594,10 +4621,11 @@ return $recv(value).__lt_eq(stop);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
 $recv(array)._at_put_(pos,value);
-pos=$recv(pos).__plus((1));
+pos=[$recv(pos).__plus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=3;
+,$ctx2.sendIdx["+"]=3
 //>>excludeEnd("ctx");
+][0];
 value=$recv(value).__plus(step);
 return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4637,7 +4665,7 @@ $self._error_("step must be non-zero");
 }
 $2=$recv(step).__lt((0));
 if($core.assert($2)){
-$recv((function(){
+[$recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -4649,22 +4677,25 @@ return $recv(value).__gt_eq(stop);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$recv(aBlock)._value_(value);
+[$recv(aBlock)._value_(value)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["value:"]=1;
+,$ctx2.sendIdx["value:"]=1
 //>>excludeEnd("ctx");
-value=$recv(value).__plus(step);
+][0];
+value=[$recv(value).__plus(step)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=1;
+,$ctx2.sendIdx["+"]=1
 //>>excludeEnd("ctx");
+][0];
 return value;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,4)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["whileTrue:"]=1;
+,$ctx1.sendIdx["whileTrue:"]=1
 //>>excludeEnd("ctx");
+][0];
 } else {
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4903,23 +4934,27 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$4,$3,$1,$6,$5;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$4=$recv(aPoint)._asPoint();
+][0];
+$4=[$recv(aPoint)._asPoint()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asPoint"]=1;
+,$ctx1.sendIdx["asPoint"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._x();
-$1=$recv($2).__star($3);
+$1=[$recv($2).__star($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["*"]=1;
+,$ctx1.sendIdx["*"]=1
 //>>excludeEnd("ctx");
-$6=$self._y();
+][0];
+$6=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__star($recv($recv(aPoint)._asPoint())._y());
 return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4945,23 +4980,27 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$4,$3,$1,$6,$5;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$4=$recv(aPoint)._asPoint();
+][0];
+$4=[$recv(aPoint)._asPoint()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asPoint"]=1;
+,$ctx1.sendIdx["asPoint"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._x();
-$1=$recv($2).__plus($3);
+$1=[$recv($2).__plus($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["+"]=1;
+,$ctx1.sendIdx["+"]=1
 //>>excludeEnd("ctx");
-$6=$self._y();
+][0];
+$6=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__plus($recv($recv(aPoint)._asPoint())._y());
 return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -4987,23 +5026,27 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$4,$3,$1,$6,$5;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$4=$recv(aPoint)._asPoint();
+][0];
+$4=[$recv(aPoint)._asPoint()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asPoint"]=1;
+,$ctx1.sendIdx["asPoint"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._x();
-$1=$recv($2).__minus($3);
+$1=[$recv($2).__minus($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["-"]=1;
+,$ctx1.sendIdx["-"]=1
 //>>excludeEnd("ctx");
-$6=$self._y();
+][0];
+$6=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__minus($recv($recv(aPoint)._asPoint())._y());
 return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5029,23 +5072,27 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$4,$3,$1,$6,$5;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$4=$recv(aPoint)._asPoint();
+][0];
+$4=[$recv(aPoint)._asPoint()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["asPoint"]=1;
+,$ctx1.sendIdx["asPoint"]=1
 //>>excludeEnd("ctx");
+][0];
 $3=$recv($4)._x();
-$1=$recv($2).__slash($3);
+$1=[$recv($2).__slash($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["/"]=1;
+,$ctx1.sendIdx["/"]=1
 //>>excludeEnd("ctx");
-$6=$self._y();
+][0];
+$6=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__slash($recv($recv(aPoint)._asPoint())._y());
 return $recv($globals.Point)._x_y_($1,$5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5071,22 +5118,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__lt($recv(aPoint)._x());
+][0];
+$1=[$recv($2).__lt($recv(aPoint)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["<"]=1;
+,$ctx1.sendIdx["<"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$self._y();
+$3=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["y"]=1;
+,$ctx2.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__lt($recv(aPoint)._y());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -5115,22 +5165,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__lt_eq($recv(aPoint)._x());
+][0];
+$1=[$recv($2).__lt_eq($recv(aPoint)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["<="]=1;
+,$ctx1.sendIdx["<="]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$self._y();
+$3=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["y"]=1;
+,$ctx2.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__lt_eq($recv(aPoint)._y());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -5159,30 +5212,35 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$4,$3,$6,$5;
-$2=$recv(aPoint)._class();
+$2=[$recv(aPoint)._class()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["class"]=1;
+,$ctx1.sendIdx["class"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__eq($self._class());
+][0];
+$1=[$recv($2).__eq($self._class())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=1;
+,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$4=$recv(aPoint)._x();
+$4=[$recv(aPoint)._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["x"]=1;
+,$ctx2.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$3=$recv($4).__eq($self._x());
+][0];
+$3=[$recv($4).__eq($self._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["="]=2;
+,$ctx2.sendIdx["="]=2
 //>>excludeEnd("ctx");
-$6=$recv(aPoint)._y();
+][0];
+$6=[$recv(aPoint)._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["y"]=1;
+,$ctx2.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__eq($self._y());
 return $recv($3).__and($5);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5212,22 +5270,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__gt($recv(aPoint)._x());
+][0];
+$1=[$recv($2).__gt($recv(aPoint)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[">"]=1;
+,$ctx1.sendIdx[">"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$self._y();
+$3=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["y"]=1;
+,$ctx2.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__gt($recv(aPoint)._y());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -5256,22 +5317,25 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1,$3;
-$2=$self._x();
+$2=[$self._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$1=$recv($2).__gt_eq($recv(aPoint)._x());
+][0];
+$1=[$recv($2).__gt_eq($recv(aPoint)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[">="]=1;
+,$ctx1.sendIdx[">="]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$3=$self._y();
+$3=[$self._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["y"]=1;
+,$ctx2.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($3).__gt_eq($recv(aPoint)._y());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -5365,15 +5429,17 @@ var dx,dy;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-dx=$recv($recv(aPoint)._x()).__minus($self.x);
+dx=[$recv($recv(aPoint)._x()).__minus($self.x)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["-"]=1;
+,$ctx1.sendIdx["-"]=1
 //>>excludeEnd("ctx");
+][0];
 dy=$recv($recv(aPoint)._y()).__minus($self.y);
-$2=$recv(dx).__star(dx);
+$2=[$recv(dx).__star(dx)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["*"]=1;
+,$ctx1.sendIdx["*"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__plus($recv(dy).__star(dy));
 return $recv($1)._sqrt();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5399,10 +5465,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self.x).__star($recv(aPoint)._x());
+$1=[$recv($self.x).__star($recv(aPoint)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["*"]=1;
+,$ctx1.sendIdx["*"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__plus($recv($self.y).__star($recv(aPoint)._y()));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"dotProduct:",{aPoint:aPoint})});
@@ -5451,22 +5518,26 @@ var n,d;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $4,$3,$6,$5,$2,$1;
-n=$recv($recv($self.y)._negated()).__at($self.x);
+n=[$recv($recv($self.y)._negated()).__at($self.x)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["@"]=1;
+,$ctx1.sendIdx["@"]=1
 //>>excludeEnd("ctx");
-$4=$recv(n)._x();
+][0];
+$4=[$recv(n)._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$3=$recv($4).__star($recv(n)._x());
+][0];
+$3=[$recv($4).__star($recv(n)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["*"]=1;
+,$ctx1.sendIdx["*"]=1
 //>>excludeEnd("ctx");
-$6=$recv(n)._y();
+][0];
+$6=[$recv(n)._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
+][0];
 $5=$recv($6).__star($recv(n)._y());
 d=$recv($3).__plus($5);
 $2=d;
@@ -5502,16 +5573,18 @@ var $1,$2,$3;
 r=$self._r();
 $1=$recv(r).__eq((0));
 if($core.assert($1)){
-$2=$recv($globals.Point)._x_y_((0),(0));
+$2=[$recv($globals.Point)._x_y_((0),(0))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x:y:"]=1;
+,$ctx1.sendIdx["x:y:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $2;
 } else {
-$3=$recv($self.x).__slash(r);
+$3=[$recv($self.x).__slash(r)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["/"]=1;
+,$ctx1.sendIdx["/"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($globals.Point)._x_y_($3,$recv($self.y).__slash(r));
 }
 return self;
@@ -5538,10 +5611,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$recv($self.x)._printOn_(aStream);
+[$recv($self.x)._printOn_(aStream)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["printOn:"]=1;
+,$ctx1.sendIdx["printOn:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_("@");
 $1=$recv($recv($self.y)._notNil())._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5580,10 +5654,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-$2=$recv($self.x).__star($self.x);
+$2=[$recv($self.x).__star($self.x)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["*"]=1;
+,$ctx1.sendIdx["*"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__plus($recv($self.y).__star($self.y));
 return $recv($1)._sqrt();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -5632,10 +5707,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($recv(delta)._x()).__plus($self.x);
+$1=[$recv($recv(delta)._x()).__plus($self.x)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["+"]=1;
+,$ctx1.sendIdx["+"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__at($recv($recv(delta)._y()).__plus($self.y));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"translateBy:",{delta:delta})});
@@ -5846,10 +5922,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self.origin).__eq($recv(aRectangle)._origin());
+$1=[$recv($self.origin).__eq($recv(aRectangle)._origin())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["="]=1;
+,$ctx1.sendIdx["="]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -5979,10 +6056,11 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv($self.origin)._printOn_(aStream);
+[$recv($self.origin)._printOn_(aStream)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["printOn:"]=1;
+,$ctx1.sendIdx["printOn:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv(aStream)._nextPutAll_(" corner: ");
 $recv($self.corner)._printOn_(aStream);
 return self;
@@ -6009,43 +6087,52 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$3,$1,$5,$6,$4,$8,$7,$10,$9;
-$2=$recv(pt1)._x();
+$2=[$recv(pt1)._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=1;
+,$ctx1.sendIdx["x"]=1
 //>>excludeEnd("ctx");
-$3=$recv(pt2)._x();
+][0];
+$3=[$recv(pt2)._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=2;
+,$ctx1.sendIdx["x"]=2
 //>>excludeEnd("ctx");
-$1=$recv($2)._min_($3);
+][0];
+$1=[$recv($2)._min_($3)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["min:"]=1;
+,$ctx1.sendIdx["min:"]=1
 //>>excludeEnd("ctx");
-$5=$recv(pt1)._y();
+][0];
+$5=[$recv(pt1)._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=1;
+,$ctx1.sendIdx["y"]=1
 //>>excludeEnd("ctx");
-$6=$recv(pt2)._y();
+][0];
+$6=[$recv(pt2)._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=2;
+,$ctx1.sendIdx["y"]=2
 //>>excludeEnd("ctx");
+][0];
 $4=$recv($5)._min_($6);
-$self.origin=$recv($1).__at($4);
+$self.origin=[$recv($1).__at($4)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["@"]=1;
+,$ctx1.sendIdx["@"]=1
 //>>excludeEnd("ctx");
-$8=$recv(pt1)._x();
+][0];
+$8=[$recv(pt1)._x()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["x"]=3;
+,$ctx1.sendIdx["x"]=3
 //>>excludeEnd("ctx");
-$7=$recv($8)._max_($recv(pt2)._x());
+][0];
+$7=[$recv($8)._max_($recv(pt2)._x())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["max:"]=1;
+,$ctx1.sendIdx["max:"]=1
 //>>excludeEnd("ctx");
-$10=$recv(pt1)._y();
+][0];
+$10=[$recv(pt1)._y()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["y"]=3;
+,$ctx1.sendIdx["y"]=3
 //>>excludeEnd("ctx");
+][0];
 $9=$recv($10)._max_($recv(pt2)._y());
 $self.corner=$recv($7).__at($9);
 return self;

Fichier diff supprimé car celui-ci est trop grand
+ 336 - 226
lang/src/Kernel-Tests.js


+ 5 - 4
lang/src/Platform-DOM.js

@@ -170,14 +170,15 @@ $1=$recv($globals.PlatformDom)._isDomNode_($self.jsObject);
 if($core.assert($1)){
 return $self.jsObject;
 } else {
-$2=(
+$2=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._asDomNode.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._asDomNode.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $2;
 }
 return self;

Fichier diff supprimé car celui-ci est trop grand
+ 352 - 235
lang/src/Platform-ImportExport.js


+ 92 - 62
lang/src/Platform-Services.js

@@ -25,10 +25,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$recv(anError)._context();
+$1=[$recv(anError)._context()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["context"]=1;
+,$ctx1.sendIdx["context"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -83,10 +84,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
-$1=$recv(aContext)._home();
+$1=[$recv(aContext)._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=1;
+,$ctx1.sendIdx["home"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -144,10 +146,11 @@ var $1,$receiver;
 if(($receiver = aContext) == null || $receiver.a$nil){
 aContext;
 } else {
-$1=$recv(aContext)._home();
+$1=[$recv(aContext)._home()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["home"]=1;
+,$ctx1.sendIdx["home"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -321,18 +324,20 @@ var $1,$2,$3,$4,$5;
 newInstVars=$recv($recv(aClass)._instanceVariableNames())._copyWith_(aString);
 $1=$recv(aClass)._isMetaclass();
 if($core.assert($1)){
-$2=$self._classBuilder();
+$2=[$self._classBuilder()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["classBuilder"]=1;
+,$ctx1.sendIdx["classBuilder"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($2)._class_slots_(aClass,newInstVars);
 } else {
 $3=$self._classBuilder();
 $4=$recv(aClass)._superclass();
-$5=$recv(aClass)._name();
+$5=[$recv(aClass)._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=1;
+,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($3)._addSubclassOf_named_instanceVariableNames_package_($4,$5,newInstVars,$recv($recv(aClass)._package())._name());
 }
 return self;
@@ -446,10 +451,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$receiver;
 protocols=$recv(aClass)._protocols();
-$1=$recv(aClass)._superclass();
+$1=[$recv(aClass)._superclass()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["superclass"]=1;
+,$ctx1.sendIdx["superclass"]=1
 //>>excludeEnd("ctx");
+][0];
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
@@ -669,10 +675,11 @@ $1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
-$2=$recv("A class named ".__comma(aClassName)).__comma(" already exists");
+$2=[$recv("A class named ".__comma(aClassName)).__comma(" already exists")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 $self._error_($2);
 }
 $recv($recv($globals.ClassBuilder)._new())._copyClass_named_(aClass,aClassName);
@@ -834,18 +841,20 @@ return $core.withContext(function($ctx1) {
 var $2,$3,$1,$5,$4;
 destinationClass=$self._classNamed_(aClassName);
 $2=destinationClass;
-$3=$recv(aMethod)._origin();
+$3=[$recv(aMethod)._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["origin"]=1;
+,$ctx1.sendIdx["origin"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__eq_eq($3);
 if($core.assert($1)){
 return self;
 }
-$5=$recv(aMethod)._origin();
+$5=[$recv(aMethod)._origin()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["origin"]=2;
+,$ctx1.sendIdx["origin"]=2
 //>>excludeEnd("ctx");
+][0];
 $4=$recv($5)._isMetaclass();
 if($core.assert($4)){
 destinationClass=$recv(destinationClass)._theMetaClass();
@@ -1129,10 +1138,11 @@ $1=$recv($recv($globals.Smalltalk)._globals())._at_(aClassName);
 if(($receiver = $1) == null || $receiver.a$nil){
 $1;
 } else {
-$2=$recv("A class named ".__comma(aClassName)).__comma(" already exists");
+$2=[$recv("A class named ".__comma(aClassName)).__comma(" already exists")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 $self._error_($2);
 }
 $recv($recv($globals.ClassBuilder)._new())._renameClass_to_(aClass,aClassName);
@@ -1971,14 +1981,16 @@ var variables;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#keys",$self._keys());
+][0];
+[$recv(variables)._at_put_("#keys",$self._keys())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
+][0];
 $self._keysAndValuesDo_((function(key,value){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2015,10 +2027,11 @@ var variables;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._withIndexDo_((function(each,i){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2055,34 +2068,41 @@ var variables;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#year",$self._year());
+][0];
+[$recv(variables)._at_put_("#year",$self._year())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#month",$self._month());
+][0];
+[$recv(variables)._at_put_("#month",$self._month())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=3;
+,$ctx1.sendIdx["at:put:"]=3
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#day",$self._day());
+][0];
+[$recv(variables)._at_put_("#day",$self._day())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=4;
+,$ctx1.sendIdx["at:put:"]=4
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#hours",$self._hours());
+][0];
+[$recv(variables)._at_put_("#hours",$self._hours())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=5;
+,$ctx1.sendIdx["at:put:"]=5
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#minutes",$self._minutes());
+][0];
+[$recv(variables)._at_put_("#minutes",$self._minutes())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=6;
+,$ctx1.sendIdx["at:put:"]=6
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#seconds",$self._seconds());
+][0];
+[$recv(variables)._at_put_("#seconds",$self._seconds())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=7;
+,$ctx1.sendIdx["at:put:"]=7
 //>>excludeEnd("ctx");
+][0];
 $recv(variables)._at_put_("#milliseconds",$self._milliseconds());
 $recv(anInspector)._setLabel_($self._printString());
 $recv(anInspector)._setVariables_(variables);
@@ -2140,10 +2160,11 @@ var variables;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($recv($self._class())._allInstanceVariableNames())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -2204,10 +2225,11 @@ var variables,i;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
+][0];
 i=(1);
 $self._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2247,25 +2269,28 @@ var label;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $3,$2,$1,$5,$4;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._inspectOn_.call($self,anInspector));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._inspectOn_.call($self,anInspector))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$3=$self._printString();
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+$3=[$self._printString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["printString"]=1;
+,$ctx1.sendIdx["printString"]=1
 //>>excludeEnd("ctx");
+][0];
 $2=$recv($3)._size();
 $1=$recv($2).__gt((30));
 if($core.assert($1)){
-$5=$self._printString();
+$5=[$self._printString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["printString"]=2;
+,$ctx1.sendIdx["printString"]=2
 //>>excludeEnd("ctx");
+][0];
 $4=$recv($5)._copyFrom_to_((1),(30));
 label=$recv($4).__comma("...'");
 label;
@@ -2299,26 +2324,31 @@ var variables;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 variables=$recv($globals.Dictionary)._new();
-$recv(variables)._at_put_("#self",self);
+[$recv(variables)._at_put_("#self",self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=1;
+,$ctx1.sendIdx["at:put:"]=1
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#home",$self._home());
+][0];
+[$recv(variables)._at_put_("#home",$self._home())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=2;
+,$ctx1.sendIdx["at:put:"]=2
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#receiver",$self._receiver());
+][0];
+[$recv(variables)._at_put_("#receiver",$self._receiver())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=3;
+,$ctx1.sendIdx["at:put:"]=3
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#selector",$self._selector());
+][0];
+[$recv(variables)._at_put_("#selector",$self._selector())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=4;
+,$ctx1.sendIdx["at:put:"]=4
 //>>excludeEnd("ctx");
-$recv(variables)._at_put_("#locals",$self._locals());
+][0];
+[$recv(variables)._at_put_("#locals",$self._locals())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["at:put:"]=5;
+,$ctx1.sendIdx["at:put:"]=5
 //>>excludeEnd("ctx");
+][0];
 $recv($recv($self._class())._instanceVariableNames())._do_((function(each){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {

+ 98 - 67
lang/src/SUnit-Tests.js

@@ -99,7 +99,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$self._should_raise_((function(){
+[$self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -107,10 +107,11 @@ return $recv($self.empty)._at_((5));
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}),$globals.Error);
+}),$globals.Error)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["should:raise:"]=1;
+,$ctx1.sendIdx["should:raise:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -144,14 +145,16 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self.full)._includes_((5));
+$1=[$recv($self.full)._includes_((5))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["includes:"]=1;
+,$ctx1.sendIdx["includes:"]=1
 //>>excludeEnd("ctx");
-$self._assert_($1);
+][0];
+[$self._assert_($1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["assert:"]=1;
+,$ctx1.sendIdx["assert:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._assert_($recv($self.full)._includes_("abc"));
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -177,22 +180,26 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$recv($self.empty)._occurrencesOf_((0));
+$1=[$recv($self.empty)._occurrencesOf_((0))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["occurrencesOf:"]=1;
+,$ctx1.sendIdx["occurrencesOf:"]=1
 //>>excludeEnd("ctx");
-$self._assert_equals_($1,(0));
+][0];
+[$self._assert_equals_($1,(0))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["assert:equals:"]=1;
+,$ctx1.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
-$2=$recv($self.full)._occurrencesOf_((5));
+][0];
+$2=[$recv($self.full)._occurrencesOf_((5))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["occurrencesOf:"]=2;
+,$ctx1.sendIdx["occurrencesOf:"]=2
 //>>excludeEnd("ctx");
-$self._assert_equals_($2,(1));
+][0];
+[$self._assert_equals_($2,(1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["assert:equals:"]=2;
+,$ctx1.sendIdx["assert:equals:"]=2
 //>>excludeEnd("ctx");
+][0];
 $recv($self.full)._add_((5));
 $self._assert_equals_($recv($self.full)._occurrencesOf_((5)),(1));
 return self;
@@ -220,10 +227,11 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
 $recv($self.full)._remove_((5));
-$1=$recv($self.full)._includes_("abc");
+$1=[$recv($self.full)._includes_("abc")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["includes:"]=1;
+,$ctx1.sendIdx["includes:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._assert_($1);
 $self._deny_($recv($self.full)._includes_((5)));
 return self;
@@ -357,11 +365,12 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$self._timeout_((100));
+[$self._timeout_((100))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["timeout:"]=1;
+,$ctx1.sendIdx["timeout:"]=1
 //>>excludeEnd("ctx");
-$1=$self._async_((function(){
+][0];
+$1=[$self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -378,14 +387,16 @@ return $self._finished();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["async:"]=1;
+,$ctx1.sendIdx["async:"]=1
 //>>excludeEnd("ctx");
-$recv($1)._valueWithTimeout_((20));
+][0];
+[$recv($1)._valueWithTimeout_((20))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["valueWithTimeout:"]=1;
+,$ctx1.sendIdx["valueWithTimeout:"]=1
 //>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutFailing",{})});
@@ -410,11 +421,12 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$self._timeout_((20));
+[$self._timeout_((20))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["timeout:"]=1;
+,$ctx1.sendIdx["timeout:"]=1
 //>>excludeEnd("ctx");
-$1=$self._async_((function(){
+][0];
+$1=[$self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -431,14 +443,16 @@ return $self._finished();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["async:"]=1;
+,$ctx1.sendIdx["async:"]=1
 //>>excludeEnd("ctx");
-$recv($1)._valueWithTimeout_((10));
+][0];
+[$recv($1)._valueWithTimeout_((10))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["valueWithTimeout:"]=1;
+,$ctx1.sendIdx["valueWithTimeout:"]=1
 //>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"fakeMultipleTimeoutPassing",{})});
@@ -582,26 +596,30 @@ return $recv($self._class())._selector_(each);
 }));
 runner=$recv($globals.TestSuiteRunner)._on_(suite);
 $self._timeout_((200));
-result=$recv(runner)._result();
+result=[$recv(runner)._result()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["result"]=1;
+,$ctx1.sendIdx["result"]=1
 //>>excludeEnd("ctx");
+][0];
 assertBlock=$self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$self._selectorSetOf_($recv(result)._errors());
+$1=[$self._selectorSetOf_($recv(result)._errors())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["selectorSetOf:"]=1;
+,$ctx2.sendIdx["selectorSetOf:"]=1
 //>>excludeEnd("ctx");
-$2=["fakeError"]._asSet();
+][0];
+$2=[["fakeError"]._asSet()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["asSet"]=1;
+,$ctx2.sendIdx["asSet"]=1
 //>>excludeEnd("ctx");
-$self._assert_equals_($1,$2);
+][0];
+[$self._assert_equals_($1,$2)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["assert:equals:"]=1;
+,$ctx2.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._assert_equals_($self._selectorSetOf_($recv(result)._failures()),["fakeErrorFailingInTearDown", "fakeFailure"]._asSet());
 return $self._finished();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -649,12 +667,13 @@ $self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $self._async_((function(){
+return [$self._async_((function(){
 
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["async:"]=1;
+,$ctx2.sendIdx["async:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -699,10 +718,11 @@ $self._should_raise_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return $self._finished();
+return [$self._finished()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["finished"]=1;
+,$ctx2.sendIdx["finished"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
@@ -741,19 +761,22 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$1=$self._isAsync();
+$1=[$self._isAsync()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["isAsync"]=1;
+,$ctx1.sendIdx["isAsync"]=1
 //>>excludeEnd("ctx");
-$self._deny_($1);
+][0];
+[$self._deny_($1)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["deny:"]=1;
+,$ctx1.sendIdx["deny:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._timeout_((0));
-$2=$self._isAsync();
+$2=[$self._isAsync()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["isAsync"]=2;
+,$ctx1.sendIdx["isAsync"]=2
 //>>excludeEnd("ctx");
+][0];
 $self._assert_($2);
 $self._finished();
 $self._deny_($self._isAsync());
@@ -830,22 +853,25 @@ return $recv($self._class())._selector_(each);
 }));
 runner=$recv($globals.TestSuiteRunner)._on_(suite);
 $self._timeout_((200));
-result=$recv(runner)._result();
+result=[$recv(runner)._result()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["result"]=1;
+,$ctx1.sendIdx["result"]=1
 //>>excludeEnd("ctx");
+][0];
 assertBlock=$self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=$self._selectorSetOf_($recv(result)._errors());
+$1=[$self._selectorSetOf_($recv(result)._errors())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["selectorSetOf:"]=1;
+,$ctx2.sendIdx["selectorSetOf:"]=1
 //>>excludeEnd("ctx");
-$self._assert_equals_($1,$recv($globals.Set)._new());
+][0];
+[$self._assert_equals_($1,$recv($globals.Set)._new())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["assert:equals:"]=1;
+,$ctx2.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self._assert_equals_($self._selectorSetOf_($recv(result)._failures()),["fakeMultipleTimeoutFailing", "fakeTimeout"]._asSet());
 return $self._finished();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -894,34 +920,39 @@ var $1;
 $self.flag="bad";
 $self._timeout_((10));
 x=(0);
-$1=$self._async_((function(){
+$1=[$self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$self._finished();
+[$self._finished()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["finished"]=1;
+,$ctx2.sendIdx["finished"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.flag="ok";
-x=$recv(x).__plus((1));
+x=[$recv(x).__plus((1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["+"]=1;
+,$ctx2.sendIdx["+"]=1
 //>>excludeEnd("ctx");
-return $self._assert_equals_(x,(1));
+][0];
+return [$self._assert_equals_(x,(1))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["assert:equals:"]=1;
+,$ctx2.sendIdx["assert:equals:"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["async:"]=1;
+,$ctx1.sendIdx["async:"]=1
 //>>excludeEnd("ctx");
-$self.flag=$recv($1)._valueWithTimeout_((0));
+][0];
+$self.flag=[$recv($1)._valueWithTimeout_((0))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["valueWithTimeout:"]=1;
+,$ctx1.sendIdx["valueWithTimeout:"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.flag=$recv($self._async_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {

+ 73 - 54
lang/src/SUnit.js

@@ -99,14 +99,15 @@ learning=$recv($self._learnings())._at_ifAbsent_($recv(aMessage)._selector(),(fu
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._doesNotUnderstand_.call($self,aMessage));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._doesNotUnderstand_.call($self,aMessage))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx2.supercall = false
+//>>excludeEnd("ctx");
+][0];
 throw $early=[$1];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -225,7 +226,7 @@ var $1;
 teachable=$self._new();
 $1=teachable;
 $recv($1)._whenSend_return_("help","ok");
-$recv($1)._whenSend_evaluate_("doit",(function(){
+[$recv($1)._whenSend_evaluate_("doit",(function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -233,10 +234,11 @@ return (1)._inspect();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["whenSend:evaluate:"]=1;
+,$ctx1.sendIdx["whenSend:evaluate:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv($1)._acceptSend_("noDebugger");
 $recv($1)._whenSend_evaluate_("negate:",(function(num){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -331,19 +333,22 @@ return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$5,$4,$3,$2;
 $1=$recv(actual).__eq(expected);
-$5=$recv(expected)._printString();
+$5=[$recv(expected)._printString()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["printString"]=1;
+,$ctx1.sendIdx["printString"]=1
 //>>excludeEnd("ctx");
+][0];
 $4="Expected: ".__comma($5);
-$3=$recv($4).__comma(" but was: ");
+$3=[$recv($4).__comma(" but was: ")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=2;
+,$ctx1.sendIdx[","]=2
 //>>excludeEnd("ctx");
-$2=$recv($3).__comma($recv(actual)._printString());
+][0];
+$2=[$recv($3).__comma($recv(actual)._printString())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx[","]=1;
+,$ctx1.sendIdx[","]=1
 //>>excludeEnd("ctx");
+][0];
 return $self._assert_description_($1,$2);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"assert:equals:",{actual:actual,expected:expected})});
@@ -890,10 +895,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$self._name();
+$1=[$self._name()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["name"]=1;
+,$ctx1.sendIdx["name"]=1
 //>>excludeEnd("ctx");
+][0];
 return $recv($1).__eq($recv($globals.TestCase)._name());
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"isAbstract",{})});
@@ -1045,10 +1051,11 @@ var failed;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1,$2;
-$recv($self.testCase)._context_(self);
+[$recv($self.testCase)._context_(self)
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["context:"]=1;
+,$ctx1.sendIdx["context:"]=1
 //>>excludeEnd("ctx");
+][0];
 $recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
@@ -1069,10 +1076,11 @@ $1=$recv(failed)._and_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return $recv($self.testCase)._isAsync();
+return [$recv($self.testCase)._isAsync()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.sendIdx["isAsync"]=1;
+,$ctx3.sendIdx["isAsync"]=1
 //>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 //>>excludeEnd("ctx");
@@ -1204,14 +1212,15 @@ return $self._withErrorReporting_((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx3) {
 //>>excludeEnd("ctx");
-return (
+return [(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx3.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._execute_.call($self,aBlock));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._execute_.call($self,aBlock))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx3.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx3.supercall = false
+//>>excludeEnd("ctx");
+][0];
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 //>>excludeEnd("ctx");
@@ -1293,7 +1302,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv((function(){
+[$recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1317,10 +1326,11 @@ return $recv($self.result)._addError_($self.testCase);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1,3)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["on:do:"]=1;
+,$ctx1.sendIdx["on:do:"]=1
 //>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock})});
@@ -1346,14 +1356,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._testCase_.call($self,aTestCase));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._testCase_.call($self,aTestCase))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $recv($1)._result_(aTestResult);
 $recv($1)._finished_(aBlock);
 return $recv($1)._yourself();
@@ -1498,20 +1509,22 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 $self.timestamp=$recv($globals.Date)._now();
 $self.runs=(0);
-$self.errors=$recv($globals.Array)._new();
+$self.errors=[$recv($globals.Array)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.failures=$recv($globals.Array)._new();
 $self.total=(0);
 return self;
@@ -1538,10 +1551,11 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $2,$1;
-$2=$self._runs();
+$2=[$self._runs()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["runs"]=1;
+,$ctx1.sendIdx["runs"]=1
 //>>excludeEnd("ctx");
+][0];
 $1=$recv($2).__eq_eq($self._total());
 if(!$core.assert($1)){
 return $recv(aBlock)._value_($recv($self._runs()).__plus((1)));
@@ -1568,7 +1582,7 @@ var self=this,$self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
-$recv((function(){
+[$recv((function(){
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
@@ -1601,10 +1615,11 @@ return $self._addError_(aTestCase);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1,4)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["on:do:"]=1;
+,$ctx1.sendIdx["on:do:"]=1
 //>>excludeEnd("ctx");
+][0];
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase})});
@@ -1647,7 +1662,7 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=$recv($self._errors())._ifNotEmpty_ifEmpty_((function(){
+$1=[$recv($self._errors())._ifNotEmpty_ifEmpty_((function(){
 return "error";
 
 }),(function(){
@@ -1664,10 +1679,11 @@ return "success";
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
 //>>excludeEnd("ctx");
-}));
+}))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["ifNotEmpty:ifEmpty:"]=1;
+,$ctx1.sendIdx["ifNotEmpty:ifEmpty:"]=1
 //>>excludeEnd("ctx");
+][0];
 return $1;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"status",{})});
@@ -1802,18 +1818,20 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-(
+[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._initialize.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
-$self.announcer=$recv($globals.Announcer)._new();
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
+$self.announcer=[$recv($globals.Announcer)._new()
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["new"]=1;
+,$ctx1.sendIdx["new"]=1
 //>>excludeEnd("ctx");
+][0];
 $self.result=$recv($globals.TestResult)._new();
 $self.runNextTest=(function(){
 var runs;
@@ -1965,14 +1983,15 @@ var self=this,$self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 var $1;
-$1=(
+$1=[(
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx1.supercall = true,
 //>>excludeEnd("ctx");
-($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self));
+($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self))
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.supercall = false;
-//>>excludeEnd("ctx");;
+,$ctx1.supercall = false
+//>>excludeEnd("ctx");
+][0];
 return $recv($1)._suite_(aCollection);
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection})});

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff