@Override public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { IRubyObject object = (IRubyObject) getTarget().retrieve(context, self, currScope, currDynScope, temp); VariableAccessor a = getAccessor(object); Object value = getValue().retrieve(context, self, currScope, currDynScope, temp); a.set(object, value); return null; }
@Override public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { IRubyObject object = (IRubyObject) getTarget().retrieve(context, self, currScope, currDynScope, temp); VariableAccessor a = getAccessor(object); Object value = getValue().retrieve(context, self, currScope, currDynScope, temp); a.set(object, value); return null; }
@Override public Instr clone(CloneInfo ii) { return new PutFieldInstr(getTarget().cloneForInlining(ii), getName(), getValue().cloneForInlining(ii)); }
@Override public Instr clone(CloneInfo ii) { return new PutFieldInstr(getTarget().cloneForInlining(ii), getName(), getValue().cloneForInlining(ii)); }
@Override public void PutFieldInstr(PutFieldInstr putfieldinstr) { visit(putfieldinstr.getTarget()); visit(putfieldinstr.getValue()); jvm.method().putField(putfieldinstr.getRef()); }
@Override public void PutFieldInstr(PutFieldInstr putfieldinstr) { visit(putfieldinstr.getTarget()); visit(putfieldinstr.getValue()); jvmMethod().putField(putfieldinstr.getId()); }
@Override public void PutFieldInstr(PutFieldInstr putfieldinstr) { visit(putfieldinstr.getTarget()); visit(putfieldinstr.getValue()); jvmMethod().putField(putfieldinstr.getId()); }
@Override public void PutFieldInstr(PutFieldInstr putfieldinstr) { visit(putfieldinstr.getTarget()); visit(putfieldinstr.getValue()); jvm.method().putField(putfieldinstr.getRef()); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { IRubyObject object = (IRubyObject) getTarget().retrieve(context, self, currDynScope, temp); // FIXME: Why getRealClass? Document RubyClass clazz = object.getMetaClass().getRealClass(); // FIXME: Should add this as a field for instruction clazz.getVariableAccessorForWrite(getRef()).set(object, getValue().retrieve(context, self, currDynScope, temp)); return null; }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { IRubyObject object = (IRubyObject) getTarget().retrieve(context, self, currDynScope, temp); // FIXME: Why getRealClass? Document RubyClass clazz = object.getMetaClass().getRealClass(); // FIXME: Should add this as a field for instruction clazz.getVariableAccessorForWrite(getRef()).set(object, getValue().retrieve(context, self, currDynScope, temp)); return null; }