public abstract class BlockScopeNode extends JavaScriptNode implements ResumableNode, com.oracle.truffle.api.nodes.RepeatingNode
| Modifier and Type | Class and Description |
|---|---|
static class |
BlockScopeNode.FrameBlockScopeNode |
| Modifier and Type | Field and Description |
|---|---|
protected JavaScriptNode |
block |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
BlockScopeNode(JavaScriptNode block) |
| Modifier and Type | Method and Description |
|---|---|
abstract com.oracle.truffle.api.frame.VirtualFrame |
appendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame) |
static BlockScopeNode |
create(com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor,
com.oracle.truffle.api.frame.FrameSlot parentSlot,
JavaScriptNode block) |
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
boolean |
executeRepeating(com.oracle.truffle.api.frame.VirtualFrame frame) |
void |
executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it throws away the result. |
abstract void |
exitScope(com.oracle.truffle.api.frame.VirtualFrame frame) |
JavaScriptNode |
getBlock() |
boolean |
isResultAlwaysOfType(Class<?> clazz) |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, executeString, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, onReplace, removeSourceSection, setSourceSection, setSourceSection, toString, transferSourceSection, transferSourceSectionAddExpressionTag, transferSourceSectionAndTagsaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, lookupContextReference, lookupLanguageReference, notifyInserted, replace, replace, reportPolymorphicSpecializeclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetState, getStateAndReset, getStateAsInt, getStateAsIntAndReset, parent, resetState, resume, setStateprotected JavaScriptNode block
protected BlockScopeNode(JavaScriptNode block)
public static BlockScopeNode create(com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor, com.oracle.truffle.api.frame.FrameSlot parentSlot, JavaScriptNode block)
public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeJavaScriptNode.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.executeVoid in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic abstract com.oracle.truffle.api.frame.VirtualFrame appendScopeFrame(com.oracle.truffle.api.frame.VirtualFrame frame)
public abstract void exitScope(com.oracle.truffle.api.frame.VirtualFrame frame)
public boolean executeRepeating(com.oracle.truffle.api.frame.VirtualFrame frame)
executeRepeating in interface com.oracle.truffle.api.nodes.RepeatingNodepublic JavaScriptNode getBlock()
public boolean isResultAlwaysOfType(Class<?> clazz)
isResultAlwaysOfType in class JavaScriptNode