public final class WhileNode extends StatementNode
EMPTY
INTERMEDIATE_VALUE
Modifier and Type | Method and Description |
---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static JavaScriptNode |
createDesugaredFor(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static JavaScriptNode |
createDesugaredForAwaitOf(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static JavaScriptNode |
createDesugaredForIn(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static JavaScriptNode |
createDesugaredForOf(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static JavaScriptNode |
createDoWhile(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static com.oracle.truffle.api.nodes.RepeatingNode |
createDoWhileRepeatingNode(JavaScriptNode condition,
JavaScriptNode body) |
static JavaScriptNode |
createWhileDo(com.oracle.truffle.api.nodes.LoopNode loopNode) |
static com.oracle.truffle.api.nodes.RepeatingNode |
createWhileDoRepeatingNode(JavaScriptNode condition,
JavaScriptNode body) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
void |
executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it throws away the result. |
com.oracle.truffle.api.nodes.LoopNode |
getLoopNode() |
Object |
getNodeObject() |
boolean |
hasTag(Class<? extends com.oracle.truffle.api.instrumentation.Tag> tag) |
boolean |
isResultAlwaysOfType(Class<?> clazz) |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
executeConditionAsBoolean
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, 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
public static com.oracle.truffle.api.nodes.RepeatingNode createWhileDoRepeatingNode(JavaScriptNode condition, JavaScriptNode body)
public static JavaScriptNode createWhileDo(com.oracle.truffle.api.nodes.LoopNode loopNode)
public static JavaScriptNode createDesugaredFor(com.oracle.truffle.api.nodes.LoopNode loopNode)
public static JavaScriptNode createDesugaredForOf(com.oracle.truffle.api.nodes.LoopNode loopNode)
public static JavaScriptNode createDesugaredForIn(com.oracle.truffle.api.nodes.LoopNode loopNode)
public static JavaScriptNode createDesugaredForAwaitOf(com.oracle.truffle.api.nodes.LoopNode loopNode)
public static com.oracle.truffle.api.nodes.RepeatingNode createDoWhileRepeatingNode(JavaScriptNode condition, JavaScriptNode body)
public static JavaScriptNode createDoWhile(com.oracle.truffle.api.nodes.LoopNode loopNode)
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()
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized
in class JavaScriptNode
public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNode
execute
in class JavaScriptNode
frame
- the frame of the currently executing guest language methodpublic void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNode
JavaScriptNode.execute(VirtualFrame)
except that it throws away the result. A node can
override this method if it has a better way to execute without producing a value.executeVoid
in class JavaScriptNode
frame
- the frame of the currently executing guest language methodpublic boolean isResultAlwaysOfType(Class<?> clazz)
isResultAlwaysOfType
in class JavaScriptNode
public com.oracle.truffle.api.nodes.LoopNode getLoopNode()