Module: YTLJit::VM::YARVTranslatorCRubyObjectMixin

Includes:
Node
Included in:
YARVTranslatorCRubyObject
Defined in:
lib/ytljit/vm_cruby_obj.rb

Instance Method Summary collapse

Methods included from Node

#compile_compare_nonnum

Instance Method Details

#visit_getinstancevariable(code, ins, context) ⇒ Object



92
93
94
95
96
97
98
99
# File 'lib/ytljit/vm_cruby_obj.rb', line 92

def visit_getinstancevariable(code, ins, context)
  context.macro_method = false
  curnode = context.current_node
  mnode = context.current_method_node
  node = CRubyInstanceVarRefNode.new(curnode, ins[1], mnode)
  node.debug_info = context.debug_info
  context.expstack.push node
end

#visit_setinstancevariable(code, ins, context) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/ytljit/vm_cruby_obj.rb', line 101

def visit_setinstancevariable(code, ins, context)
  context.macro_method = false
  val = context.expstack.pop
  curnode = context.current_node
  mnode = context.current_method_node
  node = CRubyInstanceVarAssignNode.new(curnode, ins[1], mnode, val)
  node.debug_info = context.debug_info
  if context.expstack[-1] == val then
    ivr = CRubyInstanceVarRefNode.new(curnode, ins[1], mnode)
    context.expstack[-1] = ivr
  end
  curnode.body = node
  context.current_node = node
end