Class ForNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.JavaScriptNode
com.oracle.truffle.js.nodes.control.StatementNode
com.oracle.truffle.js.nodes.control.ForNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode,com.oracle.truffle.api.nodes.NodeInterface,ResumableNode,ResumableNode.WithObjectState,Cloneable
for(;condition;modify) {body} with per-iteration scope.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.ChildrenNested classes/interfaces inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
com.oracle.truffle.api.instrumentation.InstrumentableNode.WrapperNodeNested classes/interfaces inherited from interface com.oracle.truffle.js.nodes.control.ResumableNode
ResumableNode.WithIntState, ResumableNode.WithObjectState -
Field Summary
Fields inherited from class com.oracle.truffle.js.nodes.control.StatementNode
EMPTYFields inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
INTERMEDIATE_VALUE -
Method Summary
Modifier and TypeMethodDescriptionprotected JavaScriptNodecopyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) static ForNodecreateFor(com.oracle.truffle.api.nodes.LoopNode loopNode) static com.oracle.truffle.api.nodes.RepeatingNodecreateForRepeatingNode(JavaScriptNode condition, JavaScriptNode body, JavaScriptNode modify, IterationScopeNode copy, JavaScriptNode isFirstNode, JavaScriptNode setNotFirstNode) execute(com.oracle.truffle.api.frame.VirtualFrame frame) Executes this node using the specified context and frame and returns the result value.voidexecuteVoid(com.oracle.truffle.api.frame.VirtualFrame frame) LikeJavaScriptNode.execute(VirtualFrame)except that it throws away the result.com.oracle.truffle.api.nodes.LoopNodebooleanbooleanisResultAlwaysOfType(Class<?> clazz) com.oracle.truffle.api.instrumentation.InstrumentableNodematerializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) resume(com.oracle.truffle.api.frame.VirtualFrame frame, int stateSlot) Methods inherited from class com.oracle.truffle.js.nodes.control.StatementNode
executeConditionAsBooleanMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, executeBoolean, executeDouble, executeInt, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, isInstrumentable, onReplace, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, reportLoopCount, reportLoopCountMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, reportReplaceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbeMethods inherited from interface com.oracle.truffle.js.nodes.control.ResumableNode
asResumableNode, resetStateMethods inherited from interface com.oracle.truffle.js.nodes.control.ResumableNode.WithObjectState
getState, getStateAndReset, getStateSlotKind, setState
-
Method Details
-
createForRepeatingNode
public static com.oracle.truffle.api.nodes.RepeatingNode createForRepeatingNode(JavaScriptNode condition, JavaScriptNode body, JavaScriptNode modify, IterationScopeNode copy, JavaScriptNode isFirstNode, JavaScriptNode setNotFirstNode) -
createFor
-
hasTag
- Specified by:
hasTagin interfacecom.oracle.truffle.api.instrumentation.InstrumentableNode- Overrides:
hasTagin classJavaScriptNode
-
getNodeObject
- Specified by:
getNodeObjectin interfacecom.oracle.truffle.api.instrumentation.InstrumentableNode
-
materializeInstrumentableNodes
-
execute
Description copied from class:JavaScriptNodeExecutes this node using the specified context and frame and returns the result value.- Specified by:
executein classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method- Returns:
- the value of the execution
-
executeVoid
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame) Description copied from class:JavaScriptNodeLikeJavaScriptNode.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.- Overrides:
executeVoidin classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method
-
resume
- Specified by:
resumein interfaceResumableNode
-
isResultAlwaysOfType
- Overrides:
isResultAlwaysOfTypein classJavaScriptNode
-
copyUninitialized
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) - Overrides:
copyUninitializedin classJavaScriptNode
-
getLoopNode
public com.oracle.truffle.api.nodes.LoopNode getLoopNode()
-