Class IteratorCloseWrapperNode
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.IteratorCloseWrapperNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, Cloneable
Wrapper around a for-in/of loop or ArrayAssignmentPattern that performs IteratorClose on abrupt
completion, and optionally on normal completion, too, if the iterator is not done.
- See Also:
-
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.WrapperNode -
Field Summary
Fields inherited from class JavaScriptNode
INTERMEDIATE_VALUE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedIteratorCloseWrapperNode(JSContext context, JavaScriptNode block, JavaScriptNode iterator, boolean arrayDestructuring) -
Method Summary
Modifier and TypeMethodDescriptionprotected JavaScriptNodecopyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) static JavaScriptNodecreate(JSContext context, JavaScriptNode block, JavaScriptNode iterator, boolean arrayDestructuring) protected final ObjectdoDefault(com.oracle.truffle.api.frame.VirtualFrame frame, com.oracle.truffle.api.profiles.InlinedBranchProfile throwBranch, com.oracle.truffle.api.profiles.InlinedBranchProfile exitBranch, com.oracle.truffle.api.profiles.InlinedBranchProfile notDoneBranch) Methods inherited from class JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, execute, executeBoolean, executeDouble, executeInt, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, onReplace, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsMethods inherited from class 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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbe, getNodeObject, materializeInstrumentableNodes
-
Constructor Details
-
IteratorCloseWrapperNode
protected IteratorCloseWrapperNode(JSContext context, JavaScriptNode block, JavaScriptNode iterator, boolean arrayDestructuring)
-
-
Method Details
-
create
public static JavaScriptNode create(JSContext context, JavaScriptNode block, JavaScriptNode iterator, boolean arrayDestructuring) -
doDefault
protected final Object doDefault(com.oracle.truffle.api.frame.VirtualFrame frame, com.oracle.truffle.api.profiles.InlinedBranchProfile throwBranch, com.oracle.truffle.api.profiles.InlinedBranchProfile exitBranch, com.oracle.truffle.api.profiles.InlinedBranchProfile notDoneBranch) -
copyUninitialized
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) - Overrides:
copyUninitializedin classJavaScriptNode
-