Class EvalVariableNode

All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, WriteNode, ReadNode, Cloneable

public final class EvalVariableNode extends JSTargetableNode implements ReadNode, WriteNode
Wrapper around a variable access in the presence of dynamic scopes induced by direct eval calls.
  • Constructor Details

  • Method Details

    • getPropertyName

      public Object getPropertyName()
    • getDefaultDelegate

      public JavaScriptNode getDefaultDelegate()
    • hasTag

      public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
      Specified by:
      hasTag in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
      Overrides:
      hasTag in class JavaScriptNode
    • getNodeObject

      public Object getNodeObject()
      Specified by:
      getNodeObject in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
    • getTarget

      public JavaScriptNode getTarget()
      Overrides:
      getTarget in class JSTargetableNode
    • evaluateTarget

      public Object evaluateTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
      Overrides:
      evaluateTarget in class JSTargetableNode
    • execute

      public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
      Description copied from class: JavaScriptNode
      Executes this node using the specified context and frame and returns the result value.
      Specified by:
      execute in class JavaScriptNode
      Parameters:
      frame - the frame of the currently executing guest language method
      Returns:
      the value of the execution
    • executeWithTarget

      public Object executeWithTarget(com.oracle.truffle.api.frame.VirtualFrame frame, Object dynamicScope)
      Specified by:
      executeWithTarget in class JSTargetableNode
    • executeWrite

      public void executeWrite(com.oracle.truffle.api.frame.VirtualFrame frame, Object value)
      Specified by:
      executeWrite in interface WriteNode
    • getRhs

      public JavaScriptNode getRhs()
      Specified by:
      getRhs in interface WriteNode
    • copyUninitialized

      protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
      Overrides:
      copyUninitialized in class JavaScriptNode