smalltalk.addPackage('Compiler-AST', {}); smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'used', 'alias', 'canBeInlined'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitNode_", [self]); return self;} }), smalltalk.Node); smalltalk.addMethod( "_addNode_", smalltalk.method({ selector: "addNode:", fn: function (aNode) { var self=this; smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]); return self;} }), smalltalk.Node); smalltalk.addMethod( "_alias", smalltalk.method({ selector: "alias", fn: function () { var self=this; return self['@alias']; return self;} }), smalltalk.Node); smalltalk.addMethod( "_alias_", smalltalk.method({ selector: "alias:", fn: function (aString) { var self=this; (self['@alias']=aString); return self;} }), smalltalk.Node); smalltalk.addMethod( "_beUsed", smalltalk.method({ selector: "beUsed", fn: function () { var self=this; (self['@used']=true); return self;} }), smalltalk.Node); smalltalk.addMethod( "_canAliasChildren", smalltalk.method({ selector: "canAliasChildren", fn: function () { var self=this; return true; return self;} }), smalltalk.Node); smalltalk.addMethod( "_canBeInlined", smalltalk.method({ selector: "canBeInlined", fn: function (){ var self=this; return (($receiver = self['@canBeInlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver; return self;} }), smalltalk.Node); smalltalk.addMethod( "_canBeInlined_", smalltalk.method({ selector: "canBeInlined:", fn: function (aBoolean){ var self=this; (self['@canBeInlined']=aBoolean); return self;} }), smalltalk.Node); smalltalk.addMethod( "_isAliased", smalltalk.method({ selector: "isAliased", fn: function () { var self=this; return smalltalk.send(smalltalk.send(self, "_alias", []), "_notNil", []); return self;} }), smalltalk.Node); smalltalk.addMethod( "_isBlockNode", smalltalk.method({ selector: "isBlockNode", fn: function () { var self=this; return false; return self;} }), smalltalk.Node); smalltalk.addMethod( "_isBlockSequenceNode", smalltalk.method({ selector: "isBlockSequenceNode", fn: function () { var self=this; return false; return self;} }), smalltalk.Node); smalltalk.addMethod( "_isSendNode", smalltalk.method({ selector: "isSendNode", fn: function () { var self=this; return false; return self;} }), smalltalk.Node); smalltalk.addMethod( "_isUsed", smalltalk.method({ selector: "isUsed", fn: function () { var self=this; return smalltalk.send(self, "_used", []); return self;} }), smalltalk.Node); smalltalk.addMethod( "_isValueNode", smalltalk.method({ selector: "isValueNode", fn: function () { var self=this; return false; return self;} }), smalltalk.Node); smalltalk.addMethod( "_nodes", smalltalk.method({ selector: "nodes", fn: function () { var self=this; return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver; return self;} }), smalltalk.Node); smalltalk.addMethod( "_nodes_", smalltalk.method({ selector: "nodes:", fn: function (aCollection) { var self=this; (self['@nodes']=aCollection); return self;} }), smalltalk.Node); smalltalk.addMethod( "_shouldBeAliased", smalltalk.method({ selector: "shouldBeAliased", fn: function () { var self=this; return smalltalk.send(smalltalk.send(self, "_isUsed", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_alias", []), "_isNil", []);})]); return self;} }), smalltalk.Node); smalltalk.addMethod( "_used", smalltalk.method({ selector: "used", fn: function () { var self=this; return (($receiver = self['@used']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver; return self;} }), smalltalk.Node); smalltalk.addMethod( "_used_", smalltalk.method({ selector: "used:", fn: function (aBoolean) { var self=this; (self['@used']=aBoolean); return self;} }), smalltalk.Node); smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]); return self;} }), smalltalk.AssignmentNode); smalltalk.addMethod( "_left", smalltalk.method({ selector: "left", fn: function () { var self=this; return self['@left']; return self;} }), smalltalk.AssignmentNode); smalltalk.addMethod( "_left_", smalltalk.method({ selector: "left:", fn: function (aNode) { var self=this; (self['@left']=aNode); smalltalk.send(self['@left'], "_assigned_", [true]); return self;} }), smalltalk.AssignmentNode); smalltalk.addMethod( "_nodes", smalltalk.method({ selector: "nodes", fn: function () { var self=this; return smalltalk.send((smalltalk.Array || Array), "_with_with_", [smalltalk.send(self, "_left", []), smalltalk.send(self, "_right", [])]); return self;} }), smalltalk.AssignmentNode); smalltalk.addMethod( "_right", smalltalk.method({ selector: "right", fn: function () { var self=this; return self['@right']; return self;} }), smalltalk.AssignmentNode); smalltalk.addMethod( "_right_", smalltalk.method({ selector: "right:", fn: function (aNode) { var self=this; (self['@right']=aNode); return self;} }), smalltalk.AssignmentNode); smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'scope'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitBlockNode_", [self]); return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_canInlineNonLocalReturns", smalltalk.method({ selector: "canInlineNonLocalReturns", fn: function (){ var self=this; return smalltalk.send(smalltalk.send(self, "_canBeInlined", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_scope", []), "_outerScope", []), "_node", []), "_canInlineNonLocalReturns", []);})]); return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_isBlockNode", smalltalk.method({ selector: "isBlockNode", fn: function () { var self=this; return true; return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_parameters", smalltalk.method({ selector: "parameters", fn: function () { var self=this; return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver; return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_parameters_", smalltalk.method({ selector: "parameters:", fn: function (aCollection) { var self=this; (self['@parameters']=aCollection); return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_scope", smalltalk.method({ selector: "scope", fn: function () { var self=this; return self['@scope']; return self;} }), smalltalk.BlockNode); smalltalk.addMethod( "_scope_", smalltalk.method({ selector: "scope:", fn: function (aLexicalScope) { var self=this; (self['@scope']=aLexicalScope); return self;} }), smalltalk.BlockNode); smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitCascadeNode_", [self]); return self;} }), smalltalk.CascadeNode); smalltalk.addMethod( "_alias", smalltalk.method({ selector: "alias", fn: function () { var self=this; return smalltalk.send(smalltalk.send(smalltalk.send(self, "_nodes", []), "_last", []), "_alias", []); return self;} }), smalltalk.CascadeNode); smalltalk.addMethod( "_beUsed", smalltalk.method({ selector: "beUsed", fn: function () { var self=this; smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_beUsed", []);})]); return self;} }), smalltalk.CascadeNode); smalltalk.addMethod( "_receiver", smalltalk.method({ selector: "receiver", fn: function () { var self=this; return self['@receiver']; return self;} }), smalltalk.CascadeNode); smalltalk.addMethod( "_receiver_", smalltalk.method({ selector: "receiver:", fn: function (aNode) { var self=this; (self['@receiver']=aNode); return self;} }), smalltalk.CascadeNode); smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]); return self;} }), smalltalk.DynamicArrayNode); smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]); return self;} }), smalltalk.DynamicDictionaryNode); smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]); return self;} }), smalltalk.JSStatementNode); smalltalk.addMethod( "_source", smalltalk.method({ selector: "source", fn: function () { var self=this; return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver; return self;} }), smalltalk.JSStatementNode); smalltalk.addMethod( "_source_", smalltalk.method({ selector: "source:", fn: function (aString) { var self=this; (self['@source']=aString); return self;} }), smalltalk.JSStatementNode); smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitMethodNode_", [self]); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_arguments", smalltalk.method({ selector: "arguments", fn: function () { var self=this; return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_arguments_", smalltalk.method({ selector: "arguments:", fn: function (aCollection) { var self=this; (self['@arguments']=aCollection); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_canAliasChildren", smalltalk.method({ selector: "canAliasChildren", fn: function () { var self=this; return false; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_canInlineNonLocalReturns", smalltalk.method({ selector: "canInlineNonLocalReturns", fn: function (){ var self=this; return true; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_classReferences", smalltalk.method({ selector: "classReferences", fn: function () { var self=this; return self['@classReferences']; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_classReferences_", smalltalk.method({ selector: "classReferences:", fn: function (aCollection) { var self=this; (self['@classReferences']=aCollection); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_hasLocalReturn", smalltalk.method({ selector: "hasLocalReturn", fn: function () { var self=this; return (($receiver = smalltalk.send(self, "_scope", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return smalltalk.send(smalltalk.send(self, "_scope", []), "_hasLocalReturn", []);})(); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_hasNonLocalReturn", smalltalk.method({ selector: "hasNonLocalReturn", fn: function () { var self=this; return (($receiver = smalltalk.send(self, "_scope", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return smalltalk.send(smalltalk.send(self, "_scope", []), "_hasNonLocalReturn", []);})(); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_messageSends", smalltalk.method({ selector: "messageSends", fn: function () { var self=this; return self['@messageSends']; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_messageSends_", smalltalk.method({ selector: "messageSends:", fn: function (aCollection) { var self=this; (self['@messageSends']=aCollection); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_scope", smalltalk.method({ selector: "scope", fn: function () { var self=this; return self['@scope']; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_scope_", smalltalk.method({ selector: "scope:", fn: function (aMethodScope) { var self=this; (self['@scope']=aMethodScope); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_selector", smalltalk.method({ selector: "selector", fn: function () { var self=this; return self['@selector']; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_selector_", smalltalk.method({ selector: "selector:", fn: function (aString) { var self=this; (self['@selector']=aString); return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_source", smalltalk.method({ selector: "source", fn: function () { var self=this; return self['@source']; return self;} }), smalltalk.MethodNode); smalltalk.addMethod( "_source_", smalltalk.method({ selector: "source:", fn: function (aString) { var self=this; (self['@source']=aString); return self;} }), smalltalk.MethodNode); smalltalk.addClass('ReturnNode', smalltalk.Node, ['nonLocalReturn', 'canBeInlined'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitReturnNode_", [self]); return self;} }), smalltalk.ReturnNode); smalltalk.addMethod( "_nonLocalReturn", smalltalk.method({ selector: "nonLocalReturn", fn: function () { var self=this; return (($receiver = self['@nonLocalReturn']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver; return self;} }), smalltalk.ReturnNode); smalltalk.addMethod( "_nonLocalReturn_", smalltalk.method({ selector: "nonLocalReturn:", fn: function (aBoolean) { var self=this; (self['@nonLocalReturn']=aBoolean); return self;} }), smalltalk.ReturnNode); smalltalk.addMethod( "_shouldBeAliased", smalltalk.method({ selector: "shouldBeAliased", fn: function () { var self=this; return false; return self;} }), smalltalk.ReturnNode); smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver', 'superSend'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitSendNode_", [self]); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_arguments", smalltalk.method({ selector: "arguments", fn: function () { var self=this; return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver; return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_arguments_", smalltalk.method({ selector: "arguments:", fn: function (aCollection) { var self=this; (self['@arguments']=aCollection); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_cascadeNodeWithMessages_", smalltalk.method({ selector: "cascadeNodeWithMessages:", fn: function (aCollection) { var self=this; var first=nil; (first=(function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []))); return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", [])); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_isSendNode", smalltalk.method({ selector: "isSendNode", fn: function () { var self=this; return true; return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_nodes", smalltalk.method({ selector: "nodes", fn: function () { var self=this; return (function($rec){smalltalk.send($rec, "_add_", [smalltalk.send(self, "_receiver", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Array || Array), "_withAll_", [smalltalk.send(self, "_arguments", [])])); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_receiver", smalltalk.method({ selector: "receiver", fn: function () { var self=this; return self['@receiver']; return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_receiver_", smalltalk.method({ selector: "receiver:", fn: function (aNode) { var self=this; (self['@receiver']=aNode); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_selector", smalltalk.method({ selector: "selector", fn: function () { var self=this; return self['@selector']; return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_selector_", smalltalk.method({ selector: "selector:", fn: function (aString) { var self=this; (self['@selector']=aString); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_superSend", smalltalk.method({ selector: "superSend", fn: function () { var self=this; return (($receiver = self['@superSend']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver; return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_superSend_", smalltalk.method({ selector: "superSend:", fn: function (aBoolean) { var self=this; (self['@superSend']=aBoolean); return self;} }), smalltalk.SendNode); smalltalk.addMethod( "_valueForReceiver_", smalltalk.method({ selector: "valueForReceiver:", fn: function (anObject) { var self=this; return (function($rec){smalltalk.send($rec, "_receiver_", [(($receiver = smalltalk.send(self, "_receiver", [])) == nil || $receiver == undefined) ? (function(){return anObject;})() : (function(){return smalltalk.send(smalltalk.send(self, "_receiver", []), "_valueForReceiver_", [anObject]);})()]);smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", [])); return self;} }), smalltalk.SendNode); smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps', 'scope'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitSequenceNode_", [self]); return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_asBlockSequenceNode", smalltalk.method({ selector: "asBlockSequenceNode", fn: function () { var self=this; return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", [])); return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_canAliasChildren", smalltalk.method({ selector: "canAliasChildren", fn: function () { var self=this; return false; return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_scope", smalltalk.method({ selector: "scope", fn: function () { var self=this; return self['@scope']; return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_scope_", smalltalk.method({ selector: "scope:", fn: function (aLexicalScope) { var self=this; (self['@scope']=aLexicalScope); return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_temps", smalltalk.method({ selector: "temps", fn: function () { var self=this; return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver; return self;} }), smalltalk.SequenceNode); smalltalk.addMethod( "_temps_", smalltalk.method({ selector: "temps:", fn: function (aCollection) { var self=this; (self['@temps']=aCollection); return self;} }), smalltalk.SequenceNode); smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]); return self;} }), smalltalk.BlockSequenceNode); smalltalk.addMethod( "_isBlockSequenceNode", smalltalk.method({ selector: "isBlockSequenceNode", fn: function () { var self=this; return true; return self;} }), smalltalk.BlockSequenceNode); smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitValueNode_", [self]); return self;} }), smalltalk.ValueNode); smalltalk.addMethod( "_isValueNode", smalltalk.method({ selector: "isValueNode", fn: function () { var self=this; return true; return self;} }), smalltalk.ValueNode); smalltalk.addMethod( "_shouldBeAliased", smalltalk.method({ selector: "shouldBeAliased", fn: function () { var self=this; return false; return self;} }), smalltalk.ValueNode); smalltalk.addMethod( "_value", smalltalk.method({ selector: "value", fn: function () { var self=this; return self['@value']; return self;} }), smalltalk.ValueNode); smalltalk.addMethod( "_value_", smalltalk.method({ selector: "value:", fn: function (anObject) { var self=this; (self['@value']=anObject); return self;} }), smalltalk.ValueNode); smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned', 'binding'], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitVariableNode_", [self]); return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_alias", smalltalk.method({ selector: "alias", fn: function () { var self=this; return smalltalk.send(smalltalk.send(self, "_binding", []), "_alias", []); return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_assigned", smalltalk.method({ selector: "assigned", fn: function () { var self=this; return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver; return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_assigned_", smalltalk.method({ selector: "assigned:", fn: function (aBoolean) { var self=this; (self['@assigned']=aBoolean); return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_beAssigned", smalltalk.method({ selector: "beAssigned", fn: function () { var self=this; smalltalk.send(smalltalk.send(self, "_binding", []), "_validateAssignment", []); (self['@assigned']=true); return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_binding", smalltalk.method({ selector: "binding", fn: function () { var self=this; return self['@binding']; return self;} }), smalltalk.VariableNode); smalltalk.addMethod( "_binding_", smalltalk.method({ selector: "binding:", fn: function (aScopeVar) { var self=this; (self['@binding']=aScopeVar); return self;} }), smalltalk.VariableNode); smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler-AST'); smalltalk.addMethod( "_accept_", smalltalk.method({ selector: "accept:", fn: function (aVisitor) { var self=this; smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]); return self;} }), smalltalk.ClassReferenceNode);