public abstract class JSFunctionExpressionNode extends JavaScriptNode implements FunctionNameHolder
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children
FunctionNameHolder.Delegate
Modifier and Type | Field and Description |
---|---|
protected JSFunctionData |
functionData |
INTERMEDIATE_VALUE
Modifier | Constructor and Description |
---|---|
protected |
JSFunctionExpressionNode(JSFunctionData functionData) |
Modifier and Type | Method and Description |
---|---|
static JSFunctionExpressionNode |
create(JSFunctionData function) |
static JSFunctionExpressionNode |
create(JSFunctionData function,
JSFrameSlot blockScopeSlot) |
static JSFunctionExpressionNode |
createLexicalThis(JSFunctionData function,
JSFrameSlot blockScopeSlot,
JavaScriptNode thisNode) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
abstract Object |
executeWithRealm(com.oracle.truffle.api.frame.VirtualFrame frame,
JSRealm realm) |
JSFunctionData |
getFunctionData() |
com.oracle.truffle.api.strings.TruffleString |
getFunctionName() |
Object |
getNodeObject() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
void |
setFunctionName(com.oracle.truffle.api.strings.TruffleString name) |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, isResultAlwaysOfType, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTags
getLanguage, getRealm, hasOverloadedOperators
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
isAnonymous
protected final JSFunctionData functionData
protected JSFunctionExpressionNode(JSFunctionData functionData)
public static JSFunctionExpressionNode create(JSFunctionData function)
public static JSFunctionExpressionNode create(JSFunctionData function, JSFrameSlot blockScopeSlot)
public static JSFunctionExpressionNode createLexicalThis(JSFunctionData function, JSFrameSlot blockScopeSlot, JavaScriptNode thisNode)
public final Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNode
execute
in class JavaScriptNode
frame
- the frame of the currently executing guest language methodpublic abstract Object executeWithRealm(com.oracle.truffle.api.frame.VirtualFrame frame, JSRealm realm)
public boolean hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag)
hasTag
in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
hasTag
in class JavaScriptNode
public Object getNodeObject()
getNodeObject
in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
materializeInstrumentableNodes
in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
public final JSFunctionData getFunctionData()
public com.oracle.truffle.api.strings.TruffleString getFunctionName()
getFunctionName
in interface FunctionNameHolder
public void setFunctionName(com.oracle.truffle.api.strings.TruffleString name)
setFunctionName
in interface FunctionNameHolder