public abstract class EnumerateNode extends JavaScriptNode
| Modifier and Type | Field and Description |
|---|---|
protected JSContext |
context |
protected JavaScriptNode |
targetNode |
INTERMEDIATE_VALUE| Modifier | Constructor and Description |
|---|---|
protected |
EnumerateNode(JSContext context,
boolean values,
boolean requireIterable,
JavaScriptNode targetNode) |
| Modifier and Type | Method and Description |
|---|---|
protected JavaScriptNode |
copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags) |
static EnumerateNode |
create(JSContext context,
boolean values,
boolean requireIterable) |
static EnumerateNode |
create(JSContext context,
JavaScriptNode target,
boolean values) |
protected JSObject |
doEnumerateJSAdapter(JSObject iteratedObject,
EnumerateNode enumerateCallbackResultNode) |
protected JSObject |
doEnumerateNullOrUndefined(Object iteratedObject) |
protected JSObject |
doEnumerateObject(JSObject iteratedObject) |
protected JSObject |
doEnumerateTruffleObject(Object iteratedObject,
com.oracle.truffle.api.nodes.Node node,
com.oracle.truffle.api.interop.InteropLibrary interop,
com.oracle.truffle.api.interop.InteropLibrary keysInterop,
com.oracle.truffle.api.profiles.InlinedBranchProfile notIterable,
com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode switchEncoding) |
protected JSObject |
doNonObject(Object iteratedObject,
JSToObjectNode toObjectNode,
EnumerateNode enumerateNode) |
abstract JSObject |
execute(Object iteratedObject) |
abstract JSObject |
execute(com.oracle.truffle.api.frame.VirtualFrame frame)
Executes this node using the specified context and frame and returns the result value.
|
addCallTag, addExpressionTag, addRootBodyTag, addStatementTag, cloneUninitialized, cloneUninitialized, copy, createWrapper, executeBoolean, executeDouble, executeInt, executeLong, executeVoid, expressionToString, findBlockScopeNode, getSourceSection, hasSourceSection, hasTag, isInstrumentable, 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 final JSContext context
protected JavaScriptNode targetNode
protected EnumerateNode(JSContext context, boolean values, boolean requireIterable, JavaScriptNode targetNode)
public static EnumerateNode create(JSContext context, JavaScriptNode target, boolean values)
public static EnumerateNode create(JSContext context, boolean values, boolean requireIterable)
public abstract JSObject execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodprotected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNodeprotected JSObject doEnumerateJSAdapter(JSObject iteratedObject, EnumerateNode enumerateCallbackResultNode)
protected JSObject doEnumerateTruffleObject(Object iteratedObject, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.interop.InteropLibrary keysInterop, com.oracle.truffle.api.profiles.InlinedBranchProfile notIterable, com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode switchEncoding)
protected JSObject doNonObject(Object iteratedObject, JSToObjectNode toObjectNode, EnumerateNode enumerateNode)