public class YieldNode extends JavaScriptNode implements ResumableNode.WithIntState
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.ChildrenResumableNode.WithIntState, ResumableNode.WithObjectState| Modifier and Type | Field and Description |
|---|---|
protected JSContext |
context |
protected JavaScriptNode |
expression |
protected YieldResultNode |
generatorYieldNode |
protected ReturnNode |
returnNode |
protected com.oracle.truffle.api.profiles.ConditionProfile |
returnOrExceptionProfile |
protected int |
stateSlot |
protected JavaScriptNode |
yieldValue |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
YieldNode(JSContext context,
int stateSlot,
JavaScriptNode expression,
JavaScriptNode yieldValue,
ReturnNode returnNode,
YieldResultNode yieldResultNode) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static JavaScriptNode |
createYield(JSContext context,
int stateSlot,
JavaScriptNode expression,
JavaScriptNode yieldValue,
ReturnNode returnNode,
JSWriteFrameSlotNode writeYieldResultNode) |
static JavaScriptNode |
createYieldStar(JSContext context,
int stateSlot,
JavaScriptNode expression,
JavaScriptNode yieldValue,
ReturnNode returnNode,
JSWriteFrameSlotNode writeYieldResultNode) |
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 |
generatorYield(com.oracle.truffle.api.frame.VirtualFrame frame,
Object iterNextObj) |
protected Object |
returnValue(com.oracle.truffle.api.frame.VirtualFrame frame,
Object value) |
protected Object |
throwValue(Object value) |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsgetLanguage, getRealm, hasOverloadedOperatorsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecializeclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitgetStateAsInt, getStateAsIntAndReset, getStateSlotKind, setStateAsIntasResumableNode, createResumableNode, resetState, resumeprotected final int stateSlot
protected JavaScriptNode expression
protected JavaScriptNode yieldValue
protected ReturnNode returnNode
protected YieldResultNode generatorYieldNode
protected final JSContext context
protected final com.oracle.truffle.api.profiles.ConditionProfile returnOrExceptionProfile
protected YieldNode(JSContext context, int stateSlot, JavaScriptNode expression, JavaScriptNode yieldValue, ReturnNode returnNode, YieldResultNode yieldResultNode)
public static JavaScriptNode createYield(JSContext context, int stateSlot, JavaScriptNode expression, JavaScriptNode yieldValue, ReturnNode returnNode, JSWriteFrameSlotNode writeYieldResultNode)
public static JavaScriptNode createYieldStar(JSContext context, int stateSlot, JavaScriptNode expression, JavaScriptNode yieldValue, ReturnNode returnNode, JSWriteFrameSlotNode writeYieldResultNode)
public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodprotected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNodeprotected final Object generatorYield(com.oracle.truffle.api.frame.VirtualFrame frame, Object iterNextObj)