| 
					
				 | 
			
			
				@@ -1653,6 +1653,47 @@ return $recv($globals.IRInlinedClosure)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRSendInliner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "inlinedClosure:wrapFinalValueIn:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+protocol: "inlining", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+args: ["closure", "aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlinedClosure: closure wrapFinalValueIn: aBlock\x0a\x09| sequence statements |\x0a\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence dagChildren.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09| final |\x0a\x09\x09final := statements last.\x0a\x09\x09final yieldsValue ifTrue: [ sequence replace: final with: (aBlock value: final) ] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+pragmas: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["sequence", "dagChildren", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "value:"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function ($methodClass){ return function (closure,aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this,$self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+statements=$recv(sequence)._dagChildren(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv(sequence)._replace_with_(final,$recv(aBlock)._value_(final)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({final:final},$ctx1,1)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return closure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlinedClosure:wrapFinalValueIn:",{closure:closure,aBlock:aBlock,sequence:sequence,statements:statements})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$globals.IRSendInliner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "inlinedSend:withBlock:", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1989,19 +2030,18 @@ selector: "inlineClosure:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: "inlining", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anIRClosure"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "inlineClosure: anIRClosure\x0a\x09| closure sequence statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence dagChildren.\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", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlineClosure: anIRClosure\x0a\x09^ self\x0a\x09\x09inlinedClosure: (super inlineClosure: anIRClosure)\x0a\x09\x09wrapFinalValueIn: [ :final |\x0a\x09\x09\x09IRAssignment new\x0a\x09\x09\x09\x09add: self target;\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself ]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRAssignment"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pragmas: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["inlineClosure:", "sequence", "dagChildren", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "add:", "new", "target", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["inlinedClosure:wrapFinalValueIn:", "inlineClosure:", "add:", "new", "target", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function ($methodClass){ return function (anIRClosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this,$self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var closure,sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-closure=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2009,34 +2049,23 @@ $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx");; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-statements=$recv(sequence)._dagChildren(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=sequence; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5=$recv($globals.IRAssignment)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($self._target()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=$recv($globals.IRAssignment)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($2)._add_($self._target()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx2.sendIdx["add:"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4=$recv($5)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $recv($2)._replace_with_($3,$4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($2)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv($2)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 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,sequence:sequence,statements:statements})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRAssignmentInliner); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2090,19 +2119,18 @@ selector: "inlineClosure:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: "inlining", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anIRClosure"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "inlineClosure: anIRClosure\x0a\x09| closure sequence statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence dagChildren.\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: (IRNonLocalReturn new\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x0a\x09^ closure", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlineClosure: anIRClosure\x0a\x09^ self\x0a\x09\x09inlinedClosure: (super inlineClosure: anIRClosure)\x0a\x09\x09wrapFinalValueIn: [ :final |\x0a\x09\x09\x09IRNonLocalReturn new\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself ]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRNonLocalReturn"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pragmas: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["inlineClosure:", "sequence", "dagChildren", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["inlinedClosure:wrapFinalValueIn:", "inlineClosure:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function ($methodClass){ return function (anIRClosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this,$self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var closure,sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-closure=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2110,30 +2138,19 @@ $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx");; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-statements=$recv(sequence)._dagChildren(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=sequence; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5=$recv($globals.IRNonLocalReturn)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4=$recv($5)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $recv($2)._replace_with_($3,$4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=$recv($globals.IRNonLocalReturn)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($2)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv($2)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 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,sequence:sequence,statements:statements})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRNonLocalReturnInliner); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2173,19 +2190,18 @@ selector: "inlineClosure:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 protocol: "inlining", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["anIRClosure"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "inlineClosure: anIRClosure\x0a\x09| closure sequence statements |\x0a\x0a\x09closure := super inlineClosure: anIRClosure.\x0a\x09sequence := closure sequence.\x0a\x09statements := sequence dagChildren.\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", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "inlineClosure: anIRClosure\x0a\x09^ self\x0a\x09\x09inlinedClosure: (super inlineClosure: anIRClosure)\x0a\x09\x09wrapFinalValueIn: [ :final |\x0a\x09\x09\x09IRReturn new\x0a\x09\x09\x09\x09add: final copy;\x0a\x09\x09\x09\x09yourself ]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRReturn"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 pragmas: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["inlineClosure:", "sequence", "dagChildren", "ifNotEmpty:", "last", "ifTrue:", "yieldsValue", "replace:with:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["inlinedClosure:wrapFinalValueIn:", "inlineClosure:", "add:", "new", "copy", "yourself"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function ($methodClass){ return function (anIRClosure){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this,$self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var closure,sequence,statements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2,$3,$5,$4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-closure=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2193,30 +2209,19 @@ $ctx1.supercall = true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.supercall = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx");; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sequence=$recv(closure)._sequence(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-statements=$recv(sequence)._dagChildren(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv(statements)._ifNotEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $self._inlinedClosure_wrapFinalValueIn_($1,(function(final){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-final=$recv(statements)._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$recv(final)._yieldsValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if($core.assert($1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=sequence; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=final; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5=$recv($globals.IRReturn)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$recv($5)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4=$recv($5)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $recv($2)._replace_with_($3,$4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=$recv($globals.IRReturn)._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$recv($2)._add_($recv(final)._copy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $recv($2)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 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,sequence:sequence,statements:statements})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $globals.IRReturnInliner); 
			 |