public abstract class SpreadArgumentNode extends JavaScriptNode
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
SpreadArgumentNode(JSContext context,
GetIteratorUnaryNode getIteratorNode) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static SpreadArgumentNode |
create(JSContext context,
GetIteratorUnaryNode getIteratorNode) |
protected void |
doSpread(com.oracle.truffle.api.frame.VirtualFrame frame,
SimpleArrayList<Object> argList,
com.oracle.truffle.api.profiles.InlinedBranchProfile growBranch,
com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch) |
Object[] |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
boolean |
executeBoolean(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to a
boolean. |
double |
executeDouble(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to a
double. |
int |
executeInt(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to an
int. |
long |
executeLong(com.oracle.truffle.api.frame.VirtualFrame frame) |
abstract void |
executeToList(com.oracle.truffle.api.frame.VirtualFrame frame,
SimpleArrayList<Object> argList) |
void |
executeVoid(com.oracle.truffle.api.frame.VirtualFrame frame)
Like
JavaScriptNode.execute(VirtualFrame) except that it throws away the result. |
boolean |
isInstrumentable() |
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isResultAlwaysOfType, 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, reportPolymorphicSpecializeprotected SpreadArgumentNode(JSContext context, GetIteratorUnaryNode getIteratorNode)
public boolean isInstrumentable()
isInstrumentable in interface com.oracle.truffle.api.instrumentation.InstrumentableNodeisInstrumentable in class JavaScriptNodepublic static SpreadArgumentNode create(JSContext context, GetIteratorUnaryNode getIteratorNode)
public final Object[] execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic final boolean executeBoolean(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
JavaScriptNodeJavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to a
boolean. A node can override this method if it has a better way to producing a value of type
boolean.executeBoolean in class JavaScriptNodeframe - the frame of the currently executing guest language methodcom.oracle.truffle.api.nodes.UnexpectedResultException - if a loss-free conversion of the result to double is not
possiblepublic final double executeDouble(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
JavaScriptNodeJavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to a
double. A node can override this method if it has a better way to producing a value of type
double.executeDouble in class JavaScriptNodeframe - the frame of the currently executing guest language methodcom.oracle.truffle.api.nodes.UnexpectedResultException - if a loss-free conversion of the result to double is not
possiblepublic final int executeInt(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
JavaScriptNodeJavaScriptNode.execute(VirtualFrame) except that it tries to convert the result value to an
int. A node can override this method if it has a better way to producing a value of type int.executeInt in class JavaScriptNodeframe - the frame of the currently executing guest language methodcom.oracle.truffle.api.nodes.UnexpectedResultException - if a loss-free conversion of the result to int is not
possiblepublic final long executeLong(com.oracle.truffle.api.frame.VirtualFrame frame)
throws com.oracle.truffle.api.nodes.UnexpectedResultException
executeLong in class JavaScriptNodecom.oracle.truffle.api.nodes.UnexpectedResultExceptionpublic final 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 void executeToList(com.oracle.truffle.api.frame.VirtualFrame frame,
SimpleArrayList<Object> argList)
protected final void doSpread(com.oracle.truffle.api.frame.VirtualFrame frame,
SimpleArrayList<Object> argList,
com.oracle.truffle.api.profiles.InlinedBranchProfile growBranch,
com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNode