Class BlockScopeNode.VirtualBlockScopeNode
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.function.NamedEvaluationTargetNode
com.oracle.truffle.js.nodes.function.BlockScopeNode
com.oracle.truffle.js.nodes.function.BlockScopeNode.VirtualBlockScopeNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.NodeInterface, com.oracle.truffle.api.nodes.RepeatingNode, ResumableNode, Cloneable
- Enclosing class:
BlockScopeNode
public static class BlockScopeNode.VirtualBlockScopeNode
extends BlockScopeNode
implements ResumableNode
Represents a local block scope that has been merged into the function's virtual frame. Serves
as metadata to reconstruct the original block structure for debugging purposes and clears the
block's frame slots on leave to limit value lifetimes. Not needed for correct execution.
-
Nested Class Summary
Nested classes/interfaces inherited from class BlockScopeNode
BlockScopeNode.FrameBlockScopeNode, BlockScopeNode.VirtualBlockScopeNodeNested 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 ResumableNode
ResumableNode.WithIntState, ResumableNode.WithObjectState -
Field Summary
FieldsFields inherited from class BlockScopeNode
blockFields inherited from class JavaScriptNode
INTERMEDIATE_VALUEFields inherited from interface com.oracle.truffle.api.nodes.RepeatingNode
BREAK_LOOP_STATUS, CONTINUE_LOOP_STATUS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedVirtualBlockScopeNode(JavaScriptNode block, int start, int end) -
Method Summary
Modifier and TypeMethodDescriptioncom.oracle.truffle.api.frame.VirtualFrameappendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame) protected JavaScriptNodecopyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) voidexitScope(com.oracle.truffle.api.frame.VirtualFrame frame, boolean yield) getBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame) intintbooleanresume(com.oracle.truffle.api.frame.VirtualFrame frame, int stateSlot) voidsetBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame, Object state) Methods inherited from class BlockScopeNode
create, createVirtual, execute, executeRepeating, executeVoid, executeWithName, exitScope, getBlock, isResultAlwaysOfTypeMethods inherited from class NamedEvaluationTargetNode
createWrapperMethods inherited from class JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeDouble, executeInt, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, 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, materializeInstrumentableNodesMethods inherited from interface com.oracle.truffle.api.nodes.RepeatingNode
executeRepeatingWithValue, initialLoopStatus, shouldContinueMethods inherited from interface ResumableNode
asResumableNode, getStateSlotKind, resetState
-
Field Details
-
start
protected final int start -
end
protected final int end
-
-
Constructor Details
-
VirtualBlockScopeNode
-
-
Method Details
-
appendScopeFrame
public com.oracle.truffle.api.frame.VirtualFrame appendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame) - Specified by:
appendScopeFramein classBlockScopeNode
-
exitScope
public void exitScope(com.oracle.truffle.api.frame.VirtualFrame frame, boolean yield) - Specified by:
exitScopein classBlockScopeNode
-
resume
- Specified by:
resumein interfaceResumableNode
-
getBlockScope
- Specified by:
getBlockScopein classBlockScopeNode- See Also:
-
setBlockScope
- Specified by:
setBlockScopein classBlockScopeNode
-
isFunctionBlock
public boolean isFunctionBlock()- Specified by:
isFunctionBlockin classBlockScopeNode
-
getFrameStart
public int getFrameStart()- Overrides:
getFrameStartin classBlockScopeNode
-
getFrameEnd
public int getFrameEnd()- Overrides:
getFrameEndin classBlockScopeNode
-
copyUninitialized
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) - Overrides:
copyUninitializedin classJavaScriptNode
-