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 JSDynamicObject |
doEnumerateJSAdapter(JSDynamicObject iteratedObject,
EnumerateNode enumerateCallbackResultNode) |
protected JSDynamicObject |
doEnumerateNullOrUndefined(Object iteratedObject) |
protected JSDynamicObject |
doEnumerateObject(JSObject iteratedObject) |
protected JSDynamicObject |
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 JSDynamicObject |
doNonObject(Object iteratedObject,
JSToObjectNode toObjectNode,
EnumerateNode enumerateNode) |
abstract JSDynamicObject |
execute(Object iteratedObject) |
abstract JSDynamicObject |
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, executeSafeInteger, 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 JSDynamicObject execute(com.oracle.truffle.api.frame.VirtualFrame frame)
JavaScriptNodeexecute in class JavaScriptNodeframe - the frame of the currently executing guest language methodpublic abstract JSDynamicObject execute(Object iteratedObject)
protected JavaScriptNode copyUninitialized(Set<Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializedTags)
copyUninitialized in class JavaScriptNodeprotected JSDynamicObject doEnumerateObject(JSObject iteratedObject)
protected JSDynamicObject doEnumerateNullOrUndefined(Object iteratedObject)
protected JSDynamicObject doEnumerateJSAdapter(JSDynamicObject iteratedObject, EnumerateNode enumerateCallbackResultNode)
protected JSDynamicObject 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 JSDynamicObject doNonObject(Object iteratedObject, JSToObjectNode toObjectNode, EnumerateNode enumerateNode)