Class JSFunctionCallNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, JavaScriptFunctionCallNode, Cloneable
Direct Known Subclasses:
JSFunctionCallNode.InvokeNode

public abstract class JSFunctionCallNode extends JavaScriptNode implements JavaScriptFunctionCallNode
  • Field Details

    • flags

      protected final byte flags
    • cacheNode

      protected com.oracle.truffle.js.nodes.function.JSFunctionCallNode.AbstractCacheNode cacheNode
  • Constructor Details

    • JSFunctionCallNode

      protected JSFunctionCallNode(byte flags)
  • Method Details

    • createCall

      public static JSFunctionCallNode createCall()
    • createNew

      public static JSFunctionCallNode createNew()
    • createNewTarget

      public static JSFunctionCallNode createNewTarget()
    • create

      public static JSFunctionCallNode create(boolean isNew)
    • create

      public static JSFunctionCallNode create(boolean isNew, boolean isNewTarget)
    • createCall

      public static JSFunctionCallNode createCall(JavaScriptNode function, JavaScriptNode target, JavaScriptNode[] arguments, boolean isNew, boolean isNewTarget)
    • createInvoke

      public static JSFunctionCallNode createInvoke(JSTargetableNode targetFunction, JavaScriptNode[] arguments, boolean isNew, boolean isNewTarget)
    • getUncachedCall

      public static JSFunctionCallNode getUncachedCall()
    • getUncachedNew

      public static JSFunctionCallNode getUncachedNew()
    • isNew

      public final boolean isNew()
    • isInvoke

      public final boolean isInvoke()
    • getPropertyKey

      protected Object getPropertyKey()
    • 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
    • executeCall

      public Object executeCall(Object[] arguments)
    • getTarget

      public JavaScriptNode getTarget()
      Description copied from interface: JavaScriptFunctionCallNode
      Returns the target of the call.
      Specified by:
      getTarget in interface JavaScriptFunctionCallNode
      Returns:
      target of the call.
    • evaluateReceiver

      protected final Object evaluateReceiver(com.oracle.truffle.api.frame.VirtualFrame frame, Object target)
    • executeFillObjectArraySpread

      protected static Object[] executeFillObjectArraySpread(JavaScriptNode[] arguments, com.oracle.truffle.api.frame.VirtualFrame frame, Object[] args, int fixedArgumentsLength)
    • createCallableNode

      protected static com.oracle.truffle.js.nodes.function.JSFunctionCallNode.JSFunctionCacheNode createCallableNode(JSFunctionObject function, JSFunctionData functionData, boolean isNew, boolean isNewTarget, boolean cacheOnInstance)
    • getCallTarget

      protected static com.oracle.truffle.api.CallTarget getCallTarget(JSFunctionData functionData, boolean isNew, boolean isNewTarget)