Class JSFunctionCallNode.InvokeNode

All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, JavaScriptFunctionCallNode, Cloneable
Enclosing class:
JSFunctionCallNode

public abstract static class JSFunctionCallNode.InvokeNode extends JSFunctionCallNode
The target of functionTargetNode also serves as the this argument of the call. If true, target not only serves as the this argument of the call, but also the target object for the member expression that retrieves the function.
  • Field Details

  • Constructor Details

  • Method Details

    • getTarget

      public final JavaScriptNode getTarget()
      Description copied from interface: JavaScriptFunctionCallNode
      Returns the target of the call.
      Specified by:
      getTarget in interface JavaScriptFunctionCallNode
      Overrides:
      getTarget in class JSFunctionCallNode
      Returns:
      target of the call.
    • createArguments

      protected abstract Object[] createArguments(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object function)
    • getArgumentNodes

      protected abstract JavaScriptNode[] getArgumentNodes()
    • materializeInstrumentableArguments

      protected abstract void materializeInstrumentableArguments()
    • 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
    • executeTarget

      protected final Object executeTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
    • expressionToString

      public String expressionToString()
      Overrides:
      expressionToString in class JavaScriptNode
    • materializeInstrumentableNodes

      public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
    • getPropertyKey

      protected Object getPropertyKey()
      Overrides:
      getPropertyKey in class JSFunctionCallNode
    • getFunctionTargetNode

      public JSTargetableNode getFunctionTargetNode()