| 
					
				 | 
			
			
				@@ -1940,11 +1940,11 @@ selector: "inlineClosure:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: 'inlining', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (anIRClosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var closure,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var closure,sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $2,$1,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 closure=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = true, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1953,45 +1953,43 @@ $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx");; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-statements=$recv($recv(closure)._sequence())._instructions(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+statements=$recv(sequence)._instructions(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["last"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$recv($2)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["last"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=sequence; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $5=$recv($globals.IRAssignment)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $recv($5)._add_(self._target()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["add:"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($recv($recv(statements)._last())._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($5)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $4=$recv($5)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $recv($3)._replaceWith_($4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv($2)._replace_with_($3,$4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({final:final},$ctx1,1)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return closure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements},$globals.IRAssignmentInliner)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,sequence:sequence,statements:statements},$globals.IRAssignmentInliner)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anIRClosure"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "inlineClosure: anIRClosure\x0a\x09| closure statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09statements := closure sequence instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last yieldsValue ifTrue: [\x0a\x09\x09\x09statements last replaceWith: (IRAssignment new\x0a\x09\x09\x09\x09add: self target;\x0a\x09\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlineClosure: anIRClosure\x0a\x09| closure sequence statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09| final |\x0a\x09\x09final := statements last.\x0a\x09\x09final yieldsValue ifTrue: [\x0a\x09\x09\x09sequence replace: final with: (IRAssignment new\x0a\x09\x09\x09\x09add: self target;\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRAssignment"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["inlineClosure:", "instructions", "sequence", "ifNotEmpty:", "ifTrue:", "yieldsValue", "last", "replaceWith:", "add:", "new", "target", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["inlineClosure:", "sequence", "instructions", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "add:", "new", "target", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRAssignmentInliner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2044,11 +2042,11 @@ selector: "inlineClosure:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: 'inlining', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (anIRClosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var closure,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var closure,sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $2,$1,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 closure=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = true, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2057,41 +2055,39 @@ $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx");; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-statements=$recv($recv(closure)._sequence())._instructions(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+statements=$recv(sequence)._instructions(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["last"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$recv($2)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["last"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=sequence; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $5=$recv($globals.IRReturn)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($recv($recv(statements)._last())._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($5)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $4=$recv($5)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $recv($3)._replaceWith_($4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv($2)._replace_with_($3,$4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({final:final},$ctx1,1)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return closure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements},$globals.IRReturnInliner)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,sequence:sequence,statements:statements},$globals.IRReturnInliner)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anIRClosure"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "inlineClosure: anIRClosure\x0a\x09| closure statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09statements := closure sequence instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last yieldsValue ifTrue: [\x0a\x09\x09\x09statements last replaceWith: (IRReturn new\x0a\x09\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09\x09yourself)] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlineClosure: anIRClosure\x0a\x09| closure sequence statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09| final |\x0a\x09\x09final := statements last.\x0a\x09\x09final yieldsValue ifTrue: [\x0a\x09\x09\x09sequence replace: final with: (IRReturn new\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRReturn"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["inlineClosure:", "instructions", "sequence", "ifNotEmpty:", "ifTrue:", "yieldsValue", "last", "replaceWith:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["inlineClosure:", "sequence", "instructions", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRReturnInliner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |