public abstract class AbstractAwaitNode extends JavaScriptNode implements ResumableNode, SuspendNode
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children
ResumableNode.WithIntState, ResumableNode.WithObjectState
Modifier and Type | Field and Description |
---|---|
protected JSContext |
context |
protected JavaScriptNode |
expression |
protected JSReadFrameSlotNode |
readAsyncContextNode |
protected JSReadFrameSlotNode |
readAsyncResultNode |
protected int |
stateSlot |
INTERMEDIATE_VALUE
Modifier | Constructor and Description |
---|---|
protected |
AbstractAwaitNode(JSContext context,
int stateSlot,
JavaScriptNode expression,
JSReadFrameSlotNode readAsyncContextNode,
JSReadFrameSlotNode readAsyncResultNode) |
Modifier and Type | Method and Description |
---|---|
protected void |
echoInput(com.oracle.truffle.api.frame.VirtualFrame frame,
Object value) |
static List<com.oracle.truffle.api.TruffleStackTraceElement> |
findAsyncStackFramesFromHandler(JSFunctionObject handlerFunction) |
static List<com.oracle.truffle.api.TruffleStackTraceElement> |
findAsyncStackFramesFromPromise(JSDynamicObject promise) |
Object |
getNodeObject() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
protected Object |
resumeAwait(com.oracle.truffle.api.frame.VirtualFrame frame) |
protected Object |
suspendAwait(com.oracle.truffle.api.frame.VirtualFrame frame,
Object value) |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, execute, 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
asResumableNode, createResumableNode, getStateSlotKind, resetState, resume
protected final int stateSlot
protected JavaScriptNode expression
protected JSReadFrameSlotNode readAsyncResultNode
protected JSReadFrameSlotNode readAsyncContextNode
protected final JSContext context
protected AbstractAwaitNode(JSContext context, int stateSlot, JavaScriptNode expression, JSReadFrameSlotNode readAsyncContextNode, JSReadFrameSlotNode readAsyncResultNode)
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
protected final Object suspendAwait(com.oracle.truffle.api.frame.VirtualFrame frame, Object value)
public Object getNodeObject()
getNodeObject
in interface com.oracle.truffle.api.instrumentation.InstrumentableNode
protected final Object resumeAwait(com.oracle.truffle.api.frame.VirtualFrame frame)
protected void echoInput(com.oracle.truffle.api.frame.VirtualFrame frame, Object value)
public static List<com.oracle.truffle.api.TruffleStackTraceElement> findAsyncStackFramesFromPromise(JSDynamicObject promise)
public static List<com.oracle.truffle.api.TruffleStackTraceElement> findAsyncStackFramesFromHandler(JSFunctionObject handlerFunction)