Class BlockScopeNode.FrameBlockScopeNode
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.FrameBlockScopeNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode,com.oracle.truffle.api.nodes.NodeInterface,com.oracle.truffle.api.nodes.RepeatingNode,ResumableNode,ResumableNode.WithObjectState,FrameDescriptorProvider,Cloneable
- Enclosing class:
BlockScopeNode
public static class BlockScopeNode.FrameBlockScopeNode
extends BlockScopeNode
implements ResumableNode.WithObjectState, FrameDescriptorProvider
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.js.nodes.function.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 com.oracle.truffle.js.nodes.control.ResumableNode
ResumableNode.WithIntState, ResumableNode.WithObjectState -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intprotected final booleanIf true, put the virtual function frame in the parent scope slot.protected final intVirtual frame slots end index (exclusive).protected final com.oracle.truffle.api.frame.FrameDescriptorprotected final booleanIf true, this is the function-level block scope.protected final booleanIf true, this is a block scope in the generator function prologue.protected final booleanprotected final intprotected final intVirtual frame slots start index (inclusive).Fields inherited from class com.oracle.truffle.js.nodes.function.BlockScopeNode
blockFields inherited from class com.oracle.truffle.js.nodes.JavaScriptNode
INTERMEDIATE_VALUEFields inherited from interface com.oracle.truffle.api.nodes.RepeatingNode
BREAK_LOOP_STATUS, CONTINUE_LOOP_STATUS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFrameBlockScopeNode(JavaScriptNode block, int blockScopeSlot, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor, int parentSlot, boolean functionBlock, boolean captureFunctionFrame, boolean generatorFunctionBlock, boolean hasParentBlock, 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) com.oracle.truffle.api.frame.FrameDescriptorintintbooleancom.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) voidsetBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame, Object state) Methods inherited from class com.oracle.truffle.js.nodes.function.BlockScopeNode
create, createVirtual, execute, executeRepeating, executeVoid, executeWithName, exitScope, getBlock, isResultAlwaysOfTypeMethods inherited from class com.oracle.truffle.js.nodes.function.NamedEvaluationTargetNode
createWrapperMethods inherited from class com.oracle.truffle.js.nodes.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 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, findProbe, getNodeObjectMethods inherited from interface com.oracle.truffle.api.nodes.RepeatingNode
executeRepeatingWithValue, initialLoopStatus, shouldContinueMethods 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
-
Field Details
-
blockScopeSlot
protected final int blockScopeSlot -
parentSlot
protected final int parentSlot -
frameDescriptor
protected final com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor -
functionBlock
protected final boolean functionBlockIf true, this is the function-level block scope. -
captureFunctionFrame
protected final boolean captureFunctionFrameIf true, put the virtual function frame in the parent scope slot. -
generatorFunctionBlock
protected final boolean generatorFunctionBlockIf true, this is a block scope in the generator function prologue. -
hasParentBlock
protected final boolean hasParentBlock -
start
protected final int startVirtual frame slots start index (inclusive). -
end
protected final int endVirtual frame slots end index (exclusive).
-
-
Constructor Details
-
FrameBlockScopeNode
protected FrameBlockScopeNode(JavaScriptNode block, int blockScopeSlot, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor, int parentSlot, boolean functionBlock, boolean captureFunctionFrame, boolean generatorFunctionBlock, boolean hasParentBlock, int start, int end)
-
-
Method Details
-
materializeInstrumentableNodes
-
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
-
getFrameDescriptor
public com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor()- Specified by:
getFrameDescriptorin interfaceFrameDescriptorProvider
-
resume
- Specified by:
resumein interfaceResumableNode
-
getBlockScope
- Specified by:
getBlockScopein classBlockScopeNode
-
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
-