Class JSArrayLastElementIndexNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.js.nodes.JavaScriptBaseNode
com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode
com.oracle.truffle.js.nodes.array.JSArrayLastElementIndexNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
Provides the functionality of ScriptArray.lastElementIndex but additionally adheres to the
prototype chain. It is implemented in a specialized and profiled fashion.
-
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.Children -
Field Summary
Fields inherited from class com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode
context, MAX_CACHED_ARRAY_TYPES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic JSArrayLastElementIndexNodelongdoObject(Object object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode) longdoObjectViaEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode) longdoObjectViaFullEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode) longdoWithHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType, com.oracle.truffle.api.nodes.Node node, JSArrayPreviousElementIndexNode previousElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isLengthMinusOne) longdoWithHolesUncached(JSDynamicObject object, long length, boolean isArray, JSArrayPreviousElementIndexNode previousElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isLengthMinusOne, com.oracle.truffle.api.profiles.InlinedExactClassProfile arrayTypeProfile) longdoWithoutHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType) longdoWithoutHolesUncached(JSDynamicObject object, long length, boolean isArray) final longexecuteLong(Object object, long length) abstract longexecuteLong(Object object, long length, boolean isArray) Methods inherited from class com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode
getArrayType, getArrayTypeIfArray, hasHoles, hasPrototypeElements, isArray, isSuitableForEnumBasedProcessing, isSuitableForEnumBasedProcessingUsingOwnKeys, isSupportedArrayMethods inherited from class com.oracle.truffle.js.nodes.JavaScriptBaseNode
copy, getJSContext, getLanguage, getLanguageOptions, getRealm, hasOverloadedOperators, onReplace, reportLoopCount, reportLoopCountMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, reportReplace, toString
-
Constructor Details
-
JSArrayLastElementIndexNode
-
-
Method Details
-
create
-
executeLong
-
executeLong
-
doWithoutHolesCached
public long doWithoutHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType) -
doWithoutHolesUncached
-
doWithHolesCached
public long doWithHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType, com.oracle.truffle.api.nodes.Node node, JSArrayPreviousElementIndexNode previousElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isLengthMinusOne) -
doWithHolesUncached
public long doWithHolesUncached(JSDynamicObject object, long length, boolean isArray, JSArrayPreviousElementIndexNode previousElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isLengthMinusOne, com.oracle.truffle.api.profiles.InlinedExactClassProfile arrayTypeProfile) -
doObjectViaEnumeration
public long doObjectViaEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode) -
doObjectViaFullEnumeration
public long doObjectViaFullEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode) -
doObject
public long doObject(Object object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode)
-