| 
					
				 | 
			
			
				@@ -449,20 +449,20 @@ smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "visitJSStatementNode:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 category: 'visiting', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aNode){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function $IRVerbatim(){return smalltalk.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.withContext(function($ctx1) { 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $2,$3,$1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=_st($IRVerbatim())._new();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($2)._source_(_st(aNode)._source());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=_st($2)._yourself();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=$3;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (aNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function $IRVerbatim(){return smalltalk.IRVerbatim||(typeof IRVerbatim=="undefined"?nil:IRVerbatim)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $2,$3,$1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=_st($IRVerbatim())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($2)._source_(_st(_st(aNode)._source())._crlfSanitized()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=_st($2)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=$3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode},smalltalk.IRASTTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aNode"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "visitJSStatementNode: aNode\x0a\x09^ IRVerbatim new\x0a\x09\x09source: aNode source;\x0a\x09\x09yourself", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["source:", "source", "new", "yourself"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "visitJSStatementNode: aNode\x0a\x09^ IRVerbatim new\x0a\x09\x09source: aNode source crlfSanitized;\x0a\x09\x09yourself", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["source:", "crlfSanitized", "source", "new", "yourself"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRVerbatim"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.IRASTTranslator); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -472,50 +472,50 @@ smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "visitMethodNode:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 category: 'visiting', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aNode){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function $IRMethod(){return smalltalk.IRMethod||(typeof IRMethod=="undefined"?nil:IRMethod)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.withContext(function($ctx1) { 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2,$3,$4,$5,$6,$7,$8;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$1=_st($IRMethod())._new();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._source_(_st(self)._source());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._theClass_(_st(self)._theClass());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._arguments_(_st(aNode)._arguments());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._selector_(_st(aNode)._selector());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._messageSends_(_st(aNode)._messageSends());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._superSends_(_st(aNode)._superSends());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._classReferences_(_st(aNode)._classReferences());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._scope_(_st(aNode)._scope());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=_st($1)._yourself();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st(self)._method_($2);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st(_st(_st(aNode)._scope())._temps())._do_((function(each){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.withContext(function($ctx2) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=_st($IRTempDeclaration())._new();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($3)._name_(_st(each)._name());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($3)._scope_(_st(aNode)._scope());
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4=_st($3)._yourself();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return _st(_st(self)._method())._add_($4);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st(_st(aNode)._nodes())._do_((function(each){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return smalltalk.withContext(function($ctx2) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return _st(_st(self)._method())._add_(_st(self)._visit_(each));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5=_st(_st(aNode)._scope())._hasLocalReturn();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if(! smalltalk.assert($5)){
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$6=_st($IRVariable())._new();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$7=_st($6)._yourself();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st(_st(_st(self)._method())._add_(_st($IRReturn())._new()))._add_($7);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$8=_st(self)._method();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $8;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (aNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function $IRMethod(){return smalltalk.IRMethod||(typeof IRMethod=="undefined"?nil:IRMethod)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function $IRTempDeclaration(){return smalltalk.IRTempDeclaration||(typeof IRTempDeclaration=="undefined"?nil:IRTempDeclaration)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function $IRVariable(){return smalltalk.IRVariable||(typeof IRVariable=="undefined"?nil:IRVariable)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function $IRReturn(){return smalltalk.IRReturn||(typeof IRReturn=="undefined"?nil:IRReturn)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2,$3,$4,$5,$6,$7,$8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=_st($IRMethod())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._source_(_st(_st(self)._source())._crlfSanitized()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._theClass_(_st(self)._theClass()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._arguments_(_st(aNode)._arguments()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._selector_(_st(aNode)._selector()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._messageSends_(_st(aNode)._messageSends()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._superSends_(_st(aNode)._superSends()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._classReferences_(_st(aNode)._classReferences()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._scope_(_st(aNode)._scope()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=_st($1)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(self)._method_($2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(_st(_st(aNode)._scope())._temps())._do_((function(each){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=_st($IRTempDeclaration())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($3)._name_(_st(each)._name()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($3)._scope_(_st(aNode)._scope()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$4=_st($3)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st(_st(self)._method())._add_($4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(_st(aNode)._nodes())._do_((function(each){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st(_st(self)._method())._add_(_st(self)._visit_(each)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$5=_st(_st(aNode)._scope())._hasLocalReturn(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(! smalltalk.assert($5)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$6=_st($IRVariable())._new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$7=_st($6)._yourself(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st(_st(_st(self)._method())._add_(_st($IRReturn())._new()))._add_($7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$8=_st(self)._method(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return $8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode},smalltalk.IRASTTranslator)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aNode"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "visitMethodNode: aNode\x0a\x0a\x09self method: (IRMethod new\x0a\x09\x09source: self source;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09arguments: aNode arguments;\x0a\x09\x09selector: aNode selector;\x0a\x09\x09messageSends: aNode messageSends;\x0a\x09\x09superSends: aNode superSends;\x0a\x09\x09classReferences: aNode classReferences;\x0a\x09\x09scope: aNode scope;\x0a\x09\x09yourself).\x0a\x0a\x09aNode scope temps do: [ :each |\x0a\x09\x09self method add: (IRTempDeclaration new\x0a\x09\x09\x09name: each name;\x0a\x09\x09\x09scope: aNode scope;\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09aNode nodes do: [ :each | self method add: (self visit: each) ].\x0a\x0a\x09aNode scope hasLocalReturn ifFalse: [\x0a\x09\x09(self method add: IRReturn new) add: (IRVariable new\x0a\x09\x09\x09variable: (aNode scope pseudoVars at: 'self');\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09^ self method", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["method:", "source:", "source", "new", "theClass:", "theClass", "arguments:", "arguments", "selector:", "selector", "messageSends:", "messageSends", "superSends:", "superSends", "classReferences:", "classReferences", "scope:", "scope", "yourself", "do:", "add:", "name:", "name", "method", "temps", "visit:", "nodes", "ifFalse:", "variable:", "at:", "pseudoVars", "hasLocalReturn"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "visitMethodNode: aNode\x0a\x0a\x09self method: (IRMethod new\x0a\x09\x09source: self source crlfSanitized;\x0a\x09\x09theClass: self theClass;\x0a\x09\x09arguments: aNode arguments;\x0a\x09\x09selector: aNode selector;\x0a\x09\x09messageSends: aNode messageSends;\x0a\x09\x09superSends: aNode superSends;\x0a\x09\x09classReferences: aNode classReferences;\x0a\x09\x09scope: aNode scope;\x0a\x09\x09yourself).\x0a\x0a\x09aNode scope temps do: [ :each |\x0a\x09\x09self method add: (IRTempDeclaration new\x0a\x09\x09\x09name: each name;\x0a\x09\x09\x09scope: aNode scope;\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09aNode nodes do: [ :each | self method add: (self visit: each) ].\x0a\x0a\x09aNode scope hasLocalReturn ifFalse: [\x0a\x09\x09(self method add: IRReturn new) add: (IRVariable new\x0a\x09\x09\x09variable: (aNode scope pseudoVars at: 'self');\x0a\x09\x09\x09yourself) ].\x0a\x0a\x09^ self method", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["method:", "source:", "crlfSanitized", "source", "new", "theClass:", "theClass", "arguments:", "arguments", "selector:", "selector", "messageSends:", "messageSends", "superSends:", "superSends", "classReferences:", "classReferences", "scope:", "scope", "yourself", "do:", "add:", "name:", "name", "method", "temps", "visit:", "nodes", "ifFalse:", "variable:", "at:", "pseudoVars", "hasLocalReturn"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: ["IRMethod", "IRTempDeclaration", "IRVariable", "IRReturn"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.IRASTTranslator); 
			 |