public static class BlockScopeNode.FrameBlockScopeNode extends BlockScopeNode implements ResumableNode.WithObjectState, FrameDescriptorProvider
BlockScopeNode.FrameBlockScopeNode, BlockScopeNode.VirtualBlockScopeNodecom.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.ChildrenResumableNode.WithIntState, ResumableNode.WithObjectState| Modifier and Type | Field and Description |
|---|---|
protected int |
blockScopeSlot |
protected boolean |
captureFunctionFrame
If true, put the virtual function frame in the parent scope slot.
|
protected int |
end
Virtual frame slots end index (exclusive).
|
protected com.oracle.truffle.api.frame.FrameDescriptor |
frameDescriptor |
protected boolean |
functionBlock
If true, this is the function-level block scope.
|
protected boolean |
generatorFunctionBlock
If true, this is a block scope in the generator function prologue.
|
protected boolean |
hasParentBlock |
protected int |
parentSlot |
protected int |
start
Virtual frame slots start index (inclusive).
|
blockINTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
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) |
| Modifier and Type | Method and Description |
|---|---|
com.oracle.truffle.api.frame.VirtualFrame |
appendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame) |
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
void |
exitScope(com.oracle.truffle.api.frame.VirtualFrame frame,
boolean yield) |
Object |
getBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame) |
com.oracle.truffle.api.frame.FrameDescriptor |
getFrameDescriptor() |
int |
getFrameEnd() |
int |
getFrameStart() |
boolean |
isFunctionBlock() |
com.oracle.truffle.api.instrumentation.InstrumentableNode |
materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
Object |
resume(com.oracle.truffle.api.frame.VirtualFrame frame,
int stateSlot) |
void |
setBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame,
Object state) |
create, createVirtual, execute, executeRepeating, executeVoid, executeWithName, exitScope, getBlock, isResultAlwaysOfTypecreateWrapperaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, executeBoolean, executeDouble, executeInt, executeLong, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsgetLanguage, getRealm, hasOverloadedOperatorsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecializeclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitgetState, getStateAndReset, getStateSlotKind, setStateasResumableNode, createResumableNode, resetStateprotected final int blockScopeSlot
protected final int parentSlot
protected final com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
protected final boolean functionBlock
protected final boolean captureFunctionFrame
protected final boolean generatorFunctionBlock
protected final boolean hasParentBlock
protected final int start
protected final int end
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)
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
materializeInstrumentableNodes in interface com.oracle.truffle.api.instrumentation.InstrumentableNodepublic com.oracle.truffle.api.frame.VirtualFrame appendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame)
appendScopeFrame in class BlockScopeNodepublic void exitScope(com.oracle.truffle.api.frame.VirtualFrame frame,
boolean yield)
exitScope in class BlockScopeNodepublic com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor()
getFrameDescriptor in interface FrameDescriptorProviderpublic Object resume(com.oracle.truffle.api.frame.VirtualFrame frame, int stateSlot)
resume in interface ResumableNodepublic Object getBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame)
getBlockScope in class BlockScopeNodepublic void setBlockScope(com.oracle.truffle.api.frame.VirtualFrame frame,
Object state)
setBlockScope in class BlockScopeNodepublic boolean isFunctionBlock()
isFunctionBlock in class BlockScopeNodepublic int getFrameStart()
getFrameStart in class BlockScopeNodepublic int getFrameEnd()
getFrameEnd in class BlockScopeNodeprotected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNode