Class JSFunctionCallNode
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.JSFunctionCallNode
- 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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe target ofJSFunctionCallNode.InvokeNode.functionTargetNodealso serves as the this argument of the call.Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.ChildrenNested classes/interfaces inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
com.oracle.truffle.api.instrumentation.InstrumentableNode.WrapperNode -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.oracle.truffle.js.nodes.function.JSFunctionCallNode.AbstractCacheNodeprotected final byteFields inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
INTERMEDIATE_VALUE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic JSFunctionCallNodecreate(boolean isNew) static JSFunctionCallNodecreate(boolean isNew, boolean isNewTarget) static JSFunctionCallNodestatic JSFunctionCallNodecreateCall(JavaScriptNode function, JavaScriptNode target, JavaScriptNode[] arguments, boolean isNew, boolean isNewTarget) protected static com.oracle.truffle.js.nodes.function.JSFunctionCallNode.JSFunctionCacheNodecreateCallableNode(JSFunctionObject function, JSFunctionData functionData, boolean isNew, boolean isNewTarget, boolean cacheOnInstance) static JSFunctionCallNodecreateInvoke(JSTargetableNode targetFunction, JavaScriptNode[] arguments, boolean isNew, boolean isNewTarget) static JSFunctionCallNodestatic JSFunctionCallNodeprotected final ObjectevaluateReceiver(com.oracle.truffle.api.frame.VirtualFrame frame, Object target) executeCall(Object[] arguments) protected static Object[]executeFillObjectArraySpread(JavaScriptNode[] arguments, com.oracle.truffle.api.frame.VirtualFrame frame, Object[] args, int fixedArgumentsLength) protected static com.oracle.truffle.api.CallTargetgetCallTarget(JSFunctionData functionData, boolean isNew, boolean isNewTarget) protected ObjectReturns the target of the call.static JSFunctionCallNodestatic JSFunctionCallNodebooleanfinal booleanisInvoke()final booleanisNew()Methods inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, execute, executeBoolean, executeDouble, executeInt, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, isResultAlwaysOfType, onReplace, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, reportLoopCount, reportLoopCountMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, reportReplaceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbe, materializeInstrumentableNodes
-
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
-
createNew
-
createNewTarget
-
create
-
create
-
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
-
getUncachedNew
-
isNew
public final boolean isNew() -
isInvoke
public final boolean isInvoke() -
getPropertyKey
-
hasTag
- Specified by:
hasTagin interfacecom.oracle.truffle.api.instrumentation.InstrumentableNode- Overrides:
hasTagin classJavaScriptNode
-
getNodeObject
- Specified by:
getNodeObjectin interfacecom.oracle.truffle.api.instrumentation.InstrumentableNode
-
executeCall
-
getTarget
Description copied from interface:JavaScriptFunctionCallNodeReturns the target of the call.- Specified by:
getTargetin interfaceJavaScriptFunctionCallNode- Returns:
- target of the call.
-
evaluateReceiver
-
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)
-