Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.instructions;
 
 
public class RuntimeHelperCall extends Instr implements ResultInstr {
    Variable  result;
    String    helperMethod;
    Operand[] args;
    public RuntimeHelperCall(Variable resultString helperMethodOperand[] args) {
        super(.);
        this. = result;
        this. = helperMethod;
        this. = args;
    }
    @Override
    public Operand[] getOperands() {
        return ;
    }
    public Variable getResult() {
        return ;
    }
    public void updateResult(Variable v) {
        this. = v;
    }
    @Override
    public void simplifyOperands(Map<OperandOperandvalueMapboolean force) {
        for (int i = 0; i < .i++) {
            [i] = [i].getSimplifiedOperand(valueMapforce);
        }
    }
    @Override
    public Instr cloneForInlining(InlinerInfo ii) {
        // SSS FIXME: array of args cloning should be part of utility class
        Operand[] clonedArgs = new Operand[.];
        for (int i = 0; i < .i++) {
            clonedArgs[i] = [i].cloneForInlining(ii);
        }
        Variable var = getResult();
        return new RuntimeHelperCall(var == null ? null : ii.getRenamedVariable(var), clonedArgs);
    }
    @Override
    public String toString() {
        return (getResult() == null ? "" : (getResult() + " = ")) + getOperation()  + "(" +  + ", " + Arrays.toString() + ")";
    }
    public IRubyObject callHelper(ThreadContext contextDynamicScope currDynScopeIRubyObject selfObject[] tempIRScope scopeBlock.Type blockType) {
        Object exc = [0].retrieve(contextselfcurrDynScopetemp);
        if (.equals("handlePropagatedBreak")) {
            return IRRuntimeHelpers.handlePropagatedBreak(contextscopeexcblockType);
        } else if (.equals("handleNonlocalReturn")) {
            return IRRuntimeHelpers.handleNonlocalReturn(scopeexcblockType);
        } else if (.equals("catchUncaughtBreakInLambdas")) {
            IRRuntimeHelpers.catchUncaughtBreakInLambdas(contextscopeexcblockType);
            // should not get here
            return null;
        } else {
            // Unknown helper method!
            return null;
        }
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.RuntimeHelperCall(this);
    }
New to GrepCode? Check out our FAQ X