public abstract class AbstractBlockNode extends StatementNode implements SequenceNode, com.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>
| Modifier and Type | Field and Description |
|---|---|
protected com.oracle.truffle.api.nodes.BlockNode<JavaScriptNode> |
block |
EMPTYINTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
AbstractBlockNode(JavaScriptNode[] statements) |
| Modifier and Type | Method and Description |
|---|---|
Object |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
Object |
executeGeneric(com.oracle.truffle.api.frame.VirtualFrame frame,
JavaScriptNode node,
int index,
int argument) |
void |
executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it throws away the result. |
void |
executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame,
JavaScriptNode node,
int index,
int argument) |
protected static JavaScriptNode |
filterStatements(JavaScriptNode[] originalStatements,
boolean exprBlock)
Filter out empty statements, unwrap void nodes, and inline block nodes.
|
JavaScriptNode[] |
getStatements() |
protected static ArrayList<JavaScriptNode> |
newListFromRange(JavaScriptNode[] statements,
int from,
int to) |
executeConditionAsBooleanaddCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeSafeInteger, executeString, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, 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, waitprotected com.oracle.truffle.api.nodes.BlockNode<JavaScriptNode> block
protected AbstractBlockNode(JavaScriptNode[] statements)
public final JavaScriptNode[] getStatements()
getStatements in interface SequenceNodepublic 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 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,
JavaScriptNode node,
int index,
int argument)
executeVoid in interface com.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>public Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame frame, JavaScriptNode node, int index, int argument)
executeGeneric in interface com.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>protected static JavaScriptNode filterStatements(JavaScriptNode[] originalStatements, boolean exprBlock)
protected static ArrayList<JavaScriptNode> newListFromRange(JavaScriptNode[] statements, int from, int to)