| 
														
															@@ -117,46 +117,6 @@ smalltalk.IRInlinedReturn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addClass('IRInlinedNonLocalReturn', smalltalk.IRInlinedReturn, [], 'Compiler-Inlining'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRInlinedNonLocalReturn.comment="I represent an inlined non local return instruction." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addMethod( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-"_accept_", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.method({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-selector: "accept:", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-category: 'visiting', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-fn: function (aVisitor){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var self=this; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor},smalltalk.IRInlinedNonLocalReturn)})}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-args: ["aVisitor"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "accept: aVisitor\x0a\x09^ aVisitor visitIRInlinedNonLocalReturn: self", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["visitIRInlinedNonLocalReturn:"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRInlinedNonLocalReturn); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addMethod( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-"_isInlined", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.method({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-selector: "isInlined", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-category: 'testing', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-fn: function (){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var self=this; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return true; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}, function($ctx1) {$ctx1.fill(self,"isInlined",{},smalltalk.IRInlinedNonLocalReturn)})}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-args: [], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "isInlined\x0a\x09^ true", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: [], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRInlinedNonLocalReturn); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.addClass('IRInlinedSend', smalltalk.IRSend, [], 'Compiler-Inlining'); 
														 | 
														
														 | 
														
															 smalltalk.addClass('IRInlinedSend', smalltalk.IRSend, [], 'Compiler-Inlining'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRInlinedSend.comment="I am the abstract super class of inlined message send instructions." 
														 | 
														
														 | 
														
															 smalltalk.IRInlinedSend.comment="I am the abstract super class of inlined message send instructions." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.addMethod( 
														 | 
														
														 | 
														
															 smalltalk.addMethod( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -338,29 +298,6 @@ referencedClasses: ["IRAssignmentInliner"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }), 
														 | 
														
														 | 
														
															 }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRInliner); 
														 | 
														
														 | 
														
															 smalltalk.IRInliner); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addMethod( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-"_nonLocalReturnInliner", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.method({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-selector: "nonLocalReturnInliner", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-category: 'factory', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-fn: function (){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var self=this; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function $IRNonLocalReturnInliner(){return smalltalk.IRNonLocalReturnInliner||(typeof IRNonLocalReturnInliner=="undefined"?nil:IRNonLocalReturnInliner)} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $2,$3,$1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$2=_st($IRNonLocalReturnInliner())._new(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-_st($2)._translator_(self); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$3=_st($2)._yourself(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=$3; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{},smalltalk.IRInliner)})}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-args: [], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "nonLocalReturnInliner\x0a\x09^ IRNonLocalReturnInliner new\x0a\x09\x09translator: self;\x0a\x09\x09yourself", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["translator:", "new", "yourself"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: ["IRNonLocalReturnInliner"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRInliner); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.addMethod( 
														 | 
														
														 | 
														
															 smalltalk.addMethod( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 "_returnInliner", 
														 | 
														
														 | 
														
															 "_returnInliner", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.method({ 
														 | 
														
														 | 
														
															 smalltalk.method({ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -549,18 +486,13 @@ category: 'visiting', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 fn: function (anIRNonLocalReturn){ 
														 | 
														
														 | 
														
															 fn: function (anIRNonLocalReturn){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var self=this; 
														 | 
														
														 | 
														
															 var self=this; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $2,$1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$2=_st(self)._shouldInlineReturn_(anIRNonLocalReturn); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-if(smalltalk.assert($2)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var $1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn); 
														 | 
														
														 | 
														
															 $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return $1; 
														 | 
														
														 | 
														
															 return $1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn},smalltalk.IRInliner)})}, 
														 | 
														
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn},smalltalk.IRInliner)})}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 args: ["anIRNonLocalReturn"], 
														 | 
														
														 | 
														
															 args: ["anIRNonLocalReturn"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "visitIRNonLocalReturn: anIRNonLocalReturn\x0a\x09^ (self shouldInlineReturn: anIRNonLocalReturn)\x0a\x09\x09ifTrue: [ self nonLocalReturnInliner inlineReturn: anIRNonLocalReturn ]\x0a\x09\x09ifFalse: [ self transformNonLocalReturn: anIRNonLocalReturn ]", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["ifTrue:ifFalse:", "inlineReturn:", "nonLocalReturnInliner", "transformNonLocalReturn:", "shouldInlineReturn:"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+source: "visitIRNonLocalReturn: anIRNonLocalReturn\x0a\x09^ self transformNonLocalReturn: anIRNonLocalReturn", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+messageSends: ["transformNonLocalReturn:"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 referencedClasses: [] 
														 | 
														
														 | 
														
															 referencedClasses: [] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }), 
														 | 
														
														 | 
														
															 }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRInliner); 
														 | 
														
														 | 
														
															 smalltalk.IRInliner); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1041,8 +973,12 @@ category: 'inlining', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 fn: function (anIRClosure){ 
														 | 
														
														 | 
														
															 fn: function (anIRClosure){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var self=this; 
														 | 
														
														 | 
														
															 var self=this; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var inlinedClosure,sequence,statements; 
														 | 
														
														 | 
														
															 var inlinedClosure,sequence,statements; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function $AliasVar(){return smalltalk.AliasVar||(typeof AliasVar=="undefined"?nil:AliasVar)} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function $IRAssignment(){return smalltalk.IRAssignment||(typeof IRAssignment=="undefined"?nil:IRAssignment)} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1,$2; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 inlinedClosure=_st(self)._inlinedClosure(); 
														 | 
														
														 | 
														
															 inlinedClosure=_st(self)._inlinedClosure(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(inlinedClosure)._scope_(_st(anIRClosure)._scope()); 
														 | 
														
														 | 
														
															 _st(inlinedClosure)._scope_(_st(anIRClosure)._scope()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(_st(anIRClosure)._tempDeclarations())._do_((function(each){ 
														 | 
														
														 | 
														
															 _st(_st(anIRClosure)._tempDeclarations())._do_((function(each){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1050,6 +986,26 @@ return smalltalk.withContext(function($ctx2) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return _st(inlinedClosure)._add_(each); 
														 | 
														
														 | 
														
															 return _st(inlinedClosure)._add_(each); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})); 
														 | 
														
														 | 
														
															 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 sequence=_st(self)._inlinedSequence(); 
														 | 
														
														 | 
														
															 sequence=_st(self)._inlinedSequence(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st(_st(anIRClosure)._arguments())._do_((function(each){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return smalltalk.withContext(function($ctx2) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$1=_st($IRTempDeclaration())._new(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($1)._name_(each); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$2=_st($1)._yourself(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st(inlinedClosure)._add_($2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$3=_st($IRAssignment())._new(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$4=_st($AliasVar())._new(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($4)._scope_(_st(inlinedClosure)._scope()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($4)._name_(each); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$5=_st($4)._yourself(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($3)._add_(_st(_st($IRVariable())._new())._variable_($5)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$6=_st($AliasVar())._new(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($6)._scope_(_st(inlinedClosure)._scope()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($6)._name_("$receiver"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$7=_st($6)._yourself(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($3)._add_(_st(_st($IRVariable())._new())._variable_($7)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$8=_st($3)._yourself(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return _st(sequence)._add_($8); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(inlinedClosure)._add_(sequence); 
														 | 
														
														 | 
														
															 _st(inlinedClosure)._add_(sequence); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 statements=_st(_st(_st(anIRClosure)._instructions())._last())._instructions(); 
														 | 
														
														 | 
														
															 statements=_st(_st(_st(anIRClosure)._instructions())._last())._instructions(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(statements)._ifNotEmpty_((function(){ 
														 | 
														
														 | 
														
															 _st(statements)._ifNotEmpty_((function(){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1058,23 +1014,23 @@ _st(_st(statements)._allButLast())._do_((function(each){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.withContext(function($ctx3) { 
														 | 
														
														 | 
														
															 return smalltalk.withContext(function($ctx3) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return _st(sequence)._add_(each); 
														 | 
														
														 | 
														
															 return _st(sequence)._add_(each); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})})); 
														 | 
														
														 | 
														
															 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})})); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=_st(_st(_st(statements)._last())._isReturn())._and_((function(){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$9=_st(_st(_st(statements)._last())._isReturn())._and_((function(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.withContext(function($ctx3) { 
														 | 
														
														 | 
														
															 return smalltalk.withContext(function($ctx3) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return _st(_st(statements)._last())._isBlockReturn(); 
														 | 
														
														 | 
														
															 return _st(_st(statements)._last())._isBlockReturn(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})); 
														 | 
														
														 | 
														
															 }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-if(smalltalk.assert($1)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+if(smalltalk.assert($9)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return _st(sequence)._add_(_st(_st(_st(statements)._last())._instructions())._first()); 
														 | 
														
														 | 
														
															 return _st(sequence)._add_(_st(_st(_st(statements)._last())._instructions())._first()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } else { 
														 | 
														
														 | 
														
															 } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return _st(sequence)._add_(_st(statements)._last()); 
														 | 
														
														 | 
														
															 return _st(sequence)._add_(_st(statements)._last()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
														 | 
														
														 | 
														
															 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$2=inlinedClosure; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $2; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$10=inlinedClosure; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return $10; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,sequence:sequence,statements:statements},smalltalk.IRSendInliner)})}, 
														 | 
														
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,sequence:sequence,statements:statements},smalltalk.IRSendInliner)})}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 args: ["anIRClosure"], 
														 | 
														
														 | 
														
															 args: ["anIRClosure"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "inlineClosure: anIRClosure\x0a\x09| inlinedClosure sequence statements |\x0a\x0a\x09inlinedClosure := self inlinedClosure.\x0a\x09inlinedClosure scope: anIRClosure scope.\x0a\x0a\x09\x22Add the possible temp declarations\x22\x0a\x09anIRClosure tempDeclarations do: [ :each |\x0a\x09\x09\x09inlinedClosure add: each ].\x0a\x0a\x09\x22Add a block sequence\x22\x0a\x09sequence := self inlinedSequence.\x0a\x09inlinedClosure add: sequence.\x0a\x0a\x09\x22Get all the statements\x22\x0a\x09statements := anIRClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements allButLast do: [ :each | sequence add: each ].\x0a\x0a\x09\x09\x22Inlined closures don't have implicit local returns\x22\x0a\x09\x09(statements last isReturn and: [ statements last isBlockReturn ])\x0a\x09\x09\x09ifTrue: [ sequence add: statements last instructions first ]\x0a\x09\x09\x09ifFalse: [ sequence add: statements last ] ].\x0a\x0a\x09^ inlinedClosure", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["inlinedClosure", "scope:", "scope", "do:", "add:", "tempDeclarations", "inlinedSequence", "instructions", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+source: "inlineClosure: anIRClosure\x0a\x09| inlinedClosure sequence statements |\x0a\x0a\x09inlinedClosure := self inlinedClosure.\x0a\x09inlinedClosure scope: anIRClosure scope.\x0a\x0a\x09\x22Add the possible temp declarations\x22\x0a\x09anIRClosure tempDeclarations do: [ :each |\x0a\x09\x09\x09inlinedClosure add: each ].\x0a\x0a\x09\x22Add a block sequence\x22\x0a\x09sequence := self inlinedSequence.\x0a\x0a\x09\x22Map the closure arguments to the receiver of the message send\x22\x0a\x09anIRClosure arguments do: [ :each |\x0a\x09\x09inlinedClosure add: (IRTempDeclaration new name: each; yourself).\x0a\x09\x09sequence add: (IRAssignment new\x0a\x09\x09\x09add: (IRVariable new variable: (AliasVar new scope: inlinedClosure scope; name: each; yourself));\x0a\x09\x09\x09add: (IRVariable new variable: (AliasVar new scope: inlinedClosure scope; name: '$receiver'; yourself));\x0a\x09\x09\x09yourself) ].\x0a\x09\x09\x09\x0a\x09\x22To ensure the correct order of the closure instructions: first the temps then the sequence\x22\x0a\x09inlinedClosure add: sequence.\x0a\x0a\x09\x22Get all the statements\x22\x0a\x09statements := anIRClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements allButLast do: [ :each | sequence add: each ].\x0a\x0a\x09\x09\x22Inlined closures don't have implicit local returns\x22\x0a\x09\x09(statements last isReturn and: [ statements last isBlockReturn ])\x0a\x09\x09\x09ifTrue: [ sequence add: statements last instructions first ]\x0a\x09\x09\x09ifFalse: [ sequence add: statements last ] ].\x0a\x0a\x09^ inlinedClosure", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+messageSends: ["inlinedClosure", "scope:", "scope", "do:", "add:", "tempDeclarations", "inlinedSequence", "name:", "new", "yourself", "variable:", "arguments", "instructions", "last", "ifNotEmpty:", "allButLast", "ifTrue:ifFalse:", "first", "and:", "isBlockReturn", "isReturn"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+referencedClasses: ["IRTempDeclaration", "AliasVar", "IRVariable", "IRAssignment"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }), 
														 | 
														
														 | 
														
															 }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRSendInliner); 
														 | 
														
														 | 
														
															 smalltalk.IRSendInliner); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1160,36 +1116,28 @@ fn: function (inlinedSend,anIRInstruction,anotherIRInstruction){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var self=this; 
														 | 
														
														 | 
														
															 var self=this; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var inlinedClosure1,inlinedClosure2; 
														 | 
														
														 | 
														
															 var inlinedClosure1,inlinedClosure2; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 return smalltalk.withContext(function($ctx1) {  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1,$2,$3,$4,$5,$6,$7; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var $1,$2,$3,$4,$5; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 $1=_st(anIRInstruction)._isClosure(); 
														 | 
														
														 | 
														
															 $1=_st(anIRInstruction)._isClosure(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if(! smalltalk.assert($1)){ 
														 | 
														
														 | 
														
															 if(! smalltalk.assert($1)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(self)._inliningError_("Message argument should be a block"); 
														 | 
														
														 | 
														
															 _st(self)._inliningError_("Message argument should be a block"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$2=_st(_st(_st(anIRInstruction)._arguments())._size()).__eq((0)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$2=_st(anotherIRInstruction)._isClosure(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if(! smalltalk.assert($2)){ 
														 | 
														
														 | 
														
															 if(! smalltalk.assert($2)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-_st(self)._inliningError_("Inlined block should have zero argument"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$3=_st(anotherIRInstruction)._isClosure(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-if(! smalltalk.assert($3)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(self)._inliningError_("Message argument should be a block"); 
														 | 
														
														 | 
														
															 _st(self)._inliningError_("Message argument should be a block"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$4=_st(_st(_st(anotherIRInstruction)._arguments())._size()).__eq((0)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-if(! smalltalk.assert($4)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-_st(self)._inliningError_("Inlined block should have zero argument"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 inlinedClosure1=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anIRInstruction)); 
														 | 
														
														 | 
														
															 inlinedClosure1=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anIRInstruction)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 inlinedClosure2=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anotherIRInstruction)); 
														 | 
														
														 | 
														
															 inlinedClosure2=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anotherIRInstruction)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$5=inlinedSend; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-_st($5)._add_(_st(_st(_st(self)._send())._instructions())._first()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-_st($5)._add_(inlinedClosure1); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$6=_st($5)._add_(inlinedClosure2); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$3=inlinedSend; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($3)._add_(_st(_st(_st(self)._send())._instructions())._first()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+_st($3)._add_(inlinedClosure1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$4=_st($3)._add_(inlinedClosure2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 _st(_st(self)._send())._replaceWith_(inlinedSend); 
														 | 
														
														 | 
														
															 _st(_st(self)._send())._replaceWith_(inlinedSend); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$7=inlinedSend; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $7; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$5=inlinedSend; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return $5; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction,inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2},smalltalk.IRSendInliner)})}, 
														 | 
														
														 | 
														
															 }, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction,inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2},smalltalk.IRSendInliner)})}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 args: ["inlinedSend", "anIRInstruction", "anotherIRInstruction"], 
														 | 
														
														 | 
														
															 args: ["inlinedSend", "anIRInstruction", "anotherIRInstruction"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "inlinedSend: inlinedSend with: anIRInstruction with: anotherIRInstruction\x0a\x09| inlinedClosure1 inlinedClosure2 |\x0a\x0a\x09anIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anIRInstruction arguments size = 0 ifFalse: [ self inliningError: 'Inlined block should have zero argument' ].\x0a\x0a\x09anotherIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anotherIRInstruction arguments size = 0 ifFalse: [ self inliningError: 'Inlined block should have zero argument' ].\x0a\x0a\x09inlinedClosure1 := self translator visit: (self inlineClosure: anIRInstruction).\x0a\x09inlinedClosure2 := self translator visit: (self inlineClosure: anotherIRInstruction).\x0a\x0a\x0a\x09inlinedSend\x0a\x09\x09add: self send instructions first;\x0a\x09\x09add: inlinedClosure1;\x0a\x09\x09add: inlinedClosure2.\x0a\x0a\x09self send replaceWith: inlinedSend.\x0a\x09^ inlinedSend", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["ifFalse:", "inliningError:", "isClosure", "=", "size", "arguments", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+source: "inlinedSend: inlinedSend with: anIRInstruction with: anotherIRInstruction\x0a\x09| inlinedClosure1 inlinedClosure2 |\x0a\x0a\x09anIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x09anotherIRInstruction isClosure ifFalse: [ self inliningError: 'Message argument should be a block' ].\x0a\x0a\x09inlinedClosure1 := self translator visit: (self inlineClosure: anIRInstruction).\x0a\x09inlinedClosure2 := self translator visit: (self inlineClosure: anotherIRInstruction).\x0a\x0a\x09inlinedSend\x0a\x09\x09add: self send instructions first;\x0a\x09\x09add: inlinedClosure1;\x0a\x09\x09add: inlinedClosure2.\x0a\x0a\x09self send replaceWith: inlinedSend.\x0a\x09^ inlinedSend", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+messageSends: ["ifFalse:", "inliningError:", "isClosure", "visit:", "inlineClosure:", "translator", "add:", "first", "instructions", "send", "replaceWith:"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 referencedClasses: [] 
														 | 
														
														 | 
														
															 referencedClasses: [] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }), 
														 | 
														
														 | 
														
															 }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRSendInliner); 
														 | 
														
														 | 
														
															 smalltalk.IRSendInliner); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1461,48 +1409,6 @@ smalltalk.IRAssignmentInliner); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addClass('IRNonLocalReturnInliner', smalltalk.IRSendInliner, [], 'Compiler-Inlining'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addMethod( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-"_inlineClosure_", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.method({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-selector: "inlineClosure:", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-category: 'inlining', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-fn: function (anIRClosure){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var self=this; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure},smalltalk.IRNonLocalReturnInliner)})}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-args: ["anIRClosure"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "inlineClosure: anIRClosure\x0a\x09\x22| inlinedClosure statements |\x0a\x0a\x09inlinedClosure := super inlineClosure: anIRClosure.\x0a\x09statements := inlinedClosure instructions last instructions.\x0a\x09\x0a\x09statements ifNotEmpty: [\x0a\x09\x09statements last replaceWith: (IRNonLocalReturn new\x0a\x09\x09\x09add: statements last copy;\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09^ inlinedClosure\x22\x0a\x0a\x09^ super inlineCLosure: anIRClosure", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["inlineCLosure:"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRNonLocalReturnInliner); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.addMethod( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-"_inlinedReturn", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.method({ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-selector: "inlinedReturn", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-category: 'factory', 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-fn: function (){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var self=this; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function $IRInlinedNonLocalReturn(){return smalltalk.IRInlinedNonLocalReturn||(typeof IRInlinedNonLocalReturn=="undefined"?nil:IRInlinedNonLocalReturn)} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return smalltalk.withContext(function($ctx1) {  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=_st($IRInlinedNonLocalReturn())._new(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{},smalltalk.IRNonLocalReturnInliner)})}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-args: [], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "inlinedReturn\x0a\x09^ IRInlinedNonLocalReturn new", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["new"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: ["IRInlinedNonLocalReturn"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-}), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-smalltalk.IRNonLocalReturnInliner); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.addClass('IRReturnInliner', smalltalk.IRSendInliner, [], 'Compiler-Inlining'); 
														 | 
														
														 | 
														
															 smalltalk.addClass('IRReturnInliner', smalltalk.IRSendInliner, [], 'Compiler-Inlining'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.IRReturnInliner.comment="I inline message sends with inlined closure together with a return instruction." 
														 | 
														
														 | 
														
															 smalltalk.IRReturnInliner.comment="I inline message sends with inlined closure together with a return instruction." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.addMethod( 
														 | 
														
														 | 
														
															 smalltalk.addMethod( 
														 |