Class AbstractBlockNode
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.control.StatementNode
com.oracle.truffle.js.nodes.control.AbstractBlockNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>, com.oracle.truffle.api.nodes.NodeInterface, SequenceNode, Cloneable
- Direct Known Subclasses:
AbstractGeneratorBlockNode, ExprBlockNode, VoidBlockNode
public abstract class AbstractBlockNode
extends StatementNode
implements SequenceNode, com.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>
-
Nested Class Summary
Nested 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.WrapperNode -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.oracle.truffle.api.nodes.BlockNode<JavaScriptNode> Fields inherited from class StatementNode
EMPTYFields inherited from class JavaScriptNode
INTERMEDIATE_VALUE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionexecute(com.oracle.truffle.api.frame.VirtualFrame frame) Executes this node using the specified context and frame and returns the result value.executeGeneric(com.oracle.truffle.api.frame.VirtualFrame frame, JavaScriptNode node, int index, int argument) voidexecuteVoid(com.oracle.truffle.api.frame.VirtualFrame frame) LikeJavaScriptNode.execute(VirtualFrame)except that it throws away the result.voidexecuteVoid(com.oracle.truffle.api.frame.VirtualFrame frame, JavaScriptNode node, int index, int argument) protected static JavaScriptNodefilterStatements(JavaScriptNode[] originalStatements, boolean exprBlock) Filter out empty statements, unwrap void nodes, and inline block nodes.final JavaScriptNode[]protected static ArrayList<JavaScriptNode> newListFromRange(JavaScriptNode[] statements, int from, int to) Methods inherited from class StatementNode
executeConditionAsBooleanMethods inherited from class JavaScriptNode
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, copyUninitialized, createWrapper, executeBoolean, executeDouble, executeInt, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, isResultAlwaysOfType, 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.nodes.BlockNode.ElementExecutor
executeBoolean, executeByte, executeChar, executeDouble, executeFloat, executeInt, executeLong, executeShortMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbe, getNodeObject, materializeInstrumentableNodes
-
Field Details
-
block
-
-
Constructor Details
-
AbstractBlockNode
-
-
Method Details
-
getStatements
- Specified by:
getStatementsin interfaceSequenceNode
-
executeVoid
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame) Description copied from class:JavaScriptNodeLikeJavaScriptNode.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.- Overrides:
executeVoidin classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method
-
execute
Description copied from class:JavaScriptNodeExecutes this node using the specified context and frame and returns the result value.- Specified by:
executein classJavaScriptNode- Parameters:
frame- the frame of the currently executing guest language method- Returns:
- the value of the execution
-
executeVoid
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame, JavaScriptNode node, int index, int argument) - Specified by:
executeVoidin interfacecom.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>
-
executeGeneric
public Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame frame, JavaScriptNode node, int index, int argument) - Specified by:
executeGenericin interfacecom.oracle.truffle.api.nodes.BlockNode.ElementExecutor<JavaScriptNode>
-
filterStatements
protected static JavaScriptNode filterStatements(JavaScriptNode[] originalStatements, boolean exprBlock) Filter out empty statements, unwrap void nodes, and inline block nodes. If creating an expression block, for the last statement, only inline expression block nodes. -
newListFromRange
protected static ArrayList<JavaScriptNode> newListFromRange(JavaScriptNode[] statements, int from, int to)
-