| 
					
				 | 
			
			
				@@ -942,7 +942,7 @@ selector: "scope:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (aScope){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.IRScopedInstruction.fn.prototype._scope_.apply(_st(self), [aScope]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.IRClosureInstruction.superclass.fn.prototype._scope_.apply(_st(self), [aScope]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(aScope)._instruction_(self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope},smalltalk.IRClosureInstruction)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["scope:", "instruction:"]}), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1952,7 +1952,7 @@ smalltalk.IRVisitor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.addClass('IRJSTranslator', smalltalk.IRVisitor, ['stream'], 'Compiler-IR'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.addClass('IRJSTranslator', smalltalk.IRVisitor, ['stream', 'currentClass'], 'Compiler-IR'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "contents", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1966,6 +1966,30 @@ return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["contents", "stream"]}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.IRJSTranslator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "currentClass", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=self["@currentClass"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"currentClass",{},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: []}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.IRJSTranslator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "currentClass:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (aClass){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+self["@currentClass"]=aClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self}, function($ctx1) {$ctx1.fill(self,"currentClass:",{aClass:aClass},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: []}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.IRJSTranslator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "initialize", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1973,7 +1997,7 @@ fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function $JSStream(){return smalltalk.JSStream||(typeof JSStream=="undefined"?nil:JSStream)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.IRVisitor.fn.prototype._initialize.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.IRJSTranslator.superclass.fn.prototype._initialize.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 self["@stream"]=_st($JSStream())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["initialize", "new"]}), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2030,7 +2054,7 @@ return _st(_st(each)._name())._asVariableName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2)})}))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return _st(self._stream())._nextPutBlockContextFor_during_(anIRClosure,(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.IRVisitor.fn.prototype._visitIRClosure_.apply(_st(self), [anIRClosure]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.IRJSTranslator.superclass.fn.prototype._visitIRClosure_.apply(_st(self), [anIRClosure]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),_st(anIRClosure)._arguments()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"visitIRClosure:",{anIRClosure:anIRClosure},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2107,10 +2131,10 @@ $2=_st(_st(anIRMethod)._scope())._hasNonLocalReturn(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(smalltalk.assert($2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return _st(self._stream())._nextPutNonLocalReturnHandlingWith_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.IRVisitor.fn.prototype._visitIRMethod_.apply(_st(self), [anIRMethod]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.IRJSTranslator.superclass.fn.prototype._visitIRMethod_.apply(_st(self), [anIRMethod]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx5) {$ctx5.fillBlock({},$ctx4)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.IRVisitor.fn.prototype._visitIRMethod_.apply(_st(self), [anIRMethod]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.IRJSTranslator.superclass.fn.prototype._visitIRMethod_.apply(_st(self), [anIRMethod]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx4) {$ctx4.fillBlock({},$ctx3)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}),_st(anIRMethod)._arguments()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2127,7 +2151,7 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(self._stream())._nextPutNonLocalReturnWith_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.IRJSTranslator.superclass.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["nextPutNonLocalReturnWith:", "visitIRNonLocalReturn:", "stream"]}), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2141,7 +2165,7 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(self._stream())._nextPutReturnWith_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.IRJSTranslator.superclass.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["nextPutReturnWith:", "visitIRReturn:", "stream"]}), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2280,7 +2304,8 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var $1,$2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $1=self._stream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._nextPutAll_(_st(_st(_st(anIRSend)._classSend())._asJavascript()).__comma(".fn.prototype.")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._nextPutAll_(_st(self._currentClass())._asJavascript()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._nextPutAll_(".superclass.fn.prototype."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st($1)._nextPutAll_(_st(_st(_st(anIRSend)._selector())._asSelector()).__comma(".apply(")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $2=_st($1)._nextPutAll_("_st("); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 self._visit_(_st(_st(anIRSend)._instructions())._first()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2294,7 +2319,7 @@ return _st(self._stream())._nextPutAll_(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(self._stream())._nextPutAll_("])"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend},smalltalk.IRJSTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["nextPutAll:", ",", "asJavascript", "classSend", "stream", "asSelector", "selector", "visit:", "first", "instructions", "do:separatedBy:", "allButFirst"]}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["nextPutAll:", "asJavascript", "currentClass", "stream", ",", "asSelector", "selector", "visit:", "first", "instructions", "do:separatedBy:", "allButFirst"]}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.IRJSTranslator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2319,7 +2344,7 @@ selector: "initialize", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-smalltalk.Object.fn.prototype._initialize.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.JSStream.superclass.fn.prototype._initialize.apply(_st(self), []); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 self["@stream"]=""._writeStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.JSStream)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: ["initialize", "writeStream"]}), 
			 |