Class JSFunctionExpressionNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.JavaScriptNode
com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, FunctionNameHolder, Cloneable

public abstract class JSFunctionExpressionNode extends JavaScriptNode implements FunctionNameHolder
  • Field Details

  • Constructor Details

    • JSFunctionExpressionNode

      protected JSFunctionExpressionNode(JSFunctionData functionData)
  • Method Details

    • create

      public static JSFunctionExpressionNode create(JSFunctionData function)
    • create

      public static JSFunctionExpressionNode create(JSFunctionData function, JSFrameSlot blockScopeSlot)
    • createLexicalThis

      public static JSFunctionExpressionNode createLexicalThis(JSFunctionData function, JSFrameSlot blockScopeSlot, JavaScriptNode thisNode)
    • execute

      public final 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
    • executeWithRealm

      public abstract Object executeWithRealm(com.oracle.truffle.api.frame.VirtualFrame frame, JSRealm realm)
    • 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
    • materializeInstrumentableNodes

      public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
      Specified by:
      materializeInstrumentableNodes in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
    • getFunctionData

      public final JSFunctionData getFunctionData()
    • getFunctionName

      public com.oracle.truffle.api.strings.TruffleString getFunctionName()
      Specified by:
      getFunctionName in interface FunctionNameHolder
    • setFunctionName

      public void setFunctionName(com.oracle.truffle.api.strings.TruffleString name)
      Specified by:
      setFunctionName in interface FunctionNameHolder