@Override public Instr cloneForInlining(InlinerInfo ii) { return new PutGlobalVarInstr(((GlobalVariable) operands[TARGET]).getName(), operands[VALUE].cloneForInlining(ii)); }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new PutGlobalVarInstr(((GlobalVariable) operands[TARGET]).getName(), operands[VALUE].cloneForInlining(ii)); }
@Interp @Override public Object retrieve(ThreadContext context, IRubyObject self, DynamicScope currDynScope, Object[] temp) { return context.runtime.getGlobalVariables().get(getName()); }
@Interp @Override public Object retrieve(ThreadContext context, IRubyObject self, DynamicScope currDynScope, Object[] temp) { return context.runtime.getGlobalVariables().get(getName()); }
@Override public Instr clone(CloneInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), getTarget().getName()); }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), ((GlobalVariable)getSource()).getName()); }
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), ((GlobalVariable)getSource()).getName()); }
@Override public Instr clone(CloneInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), getTarget().getName()); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { GlobalVariable target = (GlobalVariable)getTarget(); IRubyObject value = (IRubyObject) getValue().retrieve(context, self, currDynScope, temp); context.runtime.getGlobalVariables().set(target.getName(), value); return null; }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { GlobalVariable target = (GlobalVariable)getTarget(); IRubyObject value = (IRubyObject) getValue().retrieve(context, self, currDynScope, temp); context.runtime.getGlobalVariables().set(target.getName(), value); return null; }