@Override public Instr cloneForInlining(InlinerInfo inlinerInfo) { return new GlobalIsDefinedInstr((Variable) getResult().cloneForInlining(inlinerInfo), (StringLiteral) getOperands()[0].cloneForInlining(inlinerInfo)); }
@Override public String toString() { return super.toString() + "(" + getName() + ")"; }
return buildDefinitionCheck(s, new GlobalIsDefinedInstr(s.getNewTemporaryVariable(), new StringLiteral(((GlobalVarNode) node).getName())), "global-variable"); case INSTVARNODE: return buildDefinitionCheck(s, new HasInstanceVarInstr(s.getNewTemporaryVariable(), getSelf(s), new StringLiteral(((InstVarNode) node).getName())), "instance-variable");
return buildDefinitionCheck(s, new GlobalIsDefinedInstr(s.getNewTemporaryVariable(), new StringLiteral(((GlobalVarNode) node).getName())), "global-variable"); case INSTVARNODE: return buildDefinitionCheck(s, new HasInstanceVarInstr(s.getNewTemporaryVariable(), getSelf(s), new StringLiteral(((InstVarNode) node).getName())), "instance-variable");
@Override public Instr cloneForInlining(InlinerInfo inlinerInfo) { return new GlobalIsDefinedInstr((Variable) getResult().cloneForInlining(inlinerInfo), (StringLiteral) getOperands()[0].cloneForInlining(inlinerInfo)); }
@Override public String toString() { return super.toString() + "(" + getName() + ")"; }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { Ruby runtime = context.runtime; return runtime.newBoolean(runtime.getGlobalVariables().isDefined(getName().string)); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { Ruby runtime = context.runtime; return runtime.newBoolean(runtime.getGlobalVariables().isDefined(getName().string)); }