public abstract static class JSFunctionCallNode.InvokeNode extends JSFunctionCallNode
JSFunctionCallNode.InvokeNode.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.JSFunctionCallNode.InvokeNode| Modifier and Type | Field and Description |
|---|---|
protected JSTargetableNode |
functionTargetNode |
protected JavaScriptNode |
targetNode |
cacheNode, flagsINTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
InvokeNode(JavaScriptNode targetNode,
JSTargetableNode functionTargetNode,
byte flags) |
protected |
InvokeNode(JSTargetableNode functionTargetNode,
byte flags) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract Object[] |
createArguments(com.oracle.truffle.api.frame.VirtualFrame frame,
Object target,
Object function) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
protected Object |
executeTarget(com.oracle.truffle.api.frame.VirtualFrame frame) |
String |
expressionToString() |
protected abstract JavaScriptNode[] |
getArgumentNodes() |
JSTargetableNode |
getFunctionTargetNode() |
protected Object |
getPropertyKey() |
JavaScriptNode |
getTarget()
Returns the target of the call.
|
protected abstract void |
materializeInstrumentableArguments() |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
create, create, createCall, createCall, createCallableNode, createInternalCall, createInvoke, createNew, createNewTarget, evaluateReceiver, executeCall, executeFillObjectArraySpread, getCallTarget, getCost, getNodeObject, getUncachedCall, getUncachedNew, hasTag, isInvoke, isNewaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, executeString, executeVoid, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, isResultAlwaysOfType, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsgetLanguage, getRealmaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecializeprotected JavaScriptNode targetNode
protected JSTargetableNode functionTargetNode
protected InvokeNode(JSTargetableNode functionTargetNode, byte flags)
protected InvokeNode(JavaScriptNode targetNode, JSTargetableNode functionTargetNode, byte flags)
public JavaScriptNode getTarget()
JavaScriptFunctionCallNodegetTarget in interface JavaScriptFunctionCallNodegetTarget in class JSFunctionCallNodeprotected abstract Object[] createArguments(com.oracle.truffle.api.frame.VirtualFrame frame, Object target, Object function)
protected abstract JavaScriptNode[] getArgumentNodes()
protected abstract void materializeInstrumentableArguments()
public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodprotected Object executeTarget(com.oracle.truffle.api.frame.VirtualFrame frame)
public String expressionToString()
expressionToString in class JavaScriptNodepublic com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
protected Object getPropertyKey()
getPropertyKey in class JSFunctionCallNodepublic JSTargetableNode getFunctionTargetNode()