Class InterpreterContext

java.lang.Object
org.jruby.ir.interpreter.InterpreterContext
Direct Known Subclasses:
ClosureInterpreterContext, ExitableInterpreterContext, FullInterpreterContext

public class InterpreterContext extends Object
  • Field Details

    • temporaryVariableCount

      protected int temporaryVariableCount
    • instructions

      protected volatile Instr[] instructions
    • rescueIPCs

      protected volatile int[] rescueIPCs
    • hasExplicitCallProtocol

      protected boolean hasExplicitCallProtocol
    • dynamicScopeEliminated

      protected boolean dynamicScopeEliminated
    • instructionsCallback

      public final Supplier<List<Instr>> instructionsCallback
  • Constructor Details

  • Method Details

    • initialize

      protected void initialize()
    • getEngine

      public InterpreterEngine getEngine()
    • getInstructions

      public Instr[] getInstructions()
    • getRescueIPCs

      public int[] getRescueIPCs()
    • getRequiredArgsCount

      public int getRequiredArgsCount()
    • getScope

      public IRScope getScope()
    • getCFG

      public CFG getCFG()
    • getTemporaryVariableCount

      public int getTemporaryVariableCount()
    • allocateTemporaryVariables

      public Object[] allocateTemporaryVariables()
    • allocateTemporaryBooleanVariables

      public boolean[] allocateTemporaryBooleanVariables()
    • allocateTemporaryFixnumVariables

      public long[] allocateTemporaryFixnumVariables()
    • allocateTemporaryFloatVariables

      public double[] allocateTemporaryFloatVariables()
    • getStaticScope

      public StaticScope getStaticScope()
    • getFileName

      public String getFileName()
    • getLine

      public int getLine()
    • getName

      public RubySymbol getName()
    • computeScopeFlagsFromInstructions

      public void computeScopeFlagsFromInstructions()
    • newDynamicScope

      public DynamicScope newDynamicScope(ThreadContext context)
      Get a new dynamic scope. Note: This only works for method scopes (ClosureIC will throw).
    • hasExplicitCallProtocol

      public boolean hasExplicitCallProtocol()
    • setExplicitCallProtocol

      public void setExplicitCallProtocol(boolean callProtocol)
    • isDynamicScopeEliminated

      public boolean isDynamicScopeEliminated()
    • setDynamicScopeEliminated

      public void setDynamicScopeEliminated(boolean dynamicScopeEliminated)
    • isEND

      public boolean isEND()
    • pushNewDynScope

      public boolean pushNewDynScope()
    • reuseParentDynScope

      public boolean reuseParentDynScope()
    • setReuseParentDynScope

      public void setReuseParentDynScope(boolean reuseParentDynScope)
    • popDynScope

      public boolean popDynScope()
    • receivesKeywordArguments

      public boolean receivesKeywordArguments()
    • isRuby2Keywords

      public boolean isRuby2Keywords()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toStringInstrs

      public String toStringInstrs()
    • getFlags

      public EnumSet<IRFlags> getFlags()