Class JSArrayFirstElementIndexNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public abstract class JSArrayFirstElementIndexNode extends JSArrayElementIndexNode
Provides the functionality of ScriptArray.firstElementIndex but additionally adheres to the prototype chain. It is implemented in a specialized and profiled fashion.
  • Constructor Details

    • JSArrayFirstElementIndexNode

      protected JSArrayFirstElementIndexNode(JSContext context)
  • Method Details

    • create

      public static JSArrayFirstElementIndexNode create(JSContext context)
    • executeLong

      public final long executeLong(Object object, long length)
    • executeLong

      public abstract long executeLong(Object object, long length, boolean isArray)
    • doWithoutHolesCached

      public long doWithoutHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType)
    • doWithoutHolesUncached

      public long doWithoutHolesUncached(JSDynamicObject object, long length, boolean isArray)
    • doWithHolesCached

      public long doWithHolesCached(JSDynamicObject object, long length, boolean isArray, ScriptArray cachedArrayType, com.oracle.truffle.api.nodes.Node node, JSArrayNextElementIndexNode nextElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isZero)
    • doWithHolesUncached

      public long doWithHolesUncached(JSDynamicObject object, long length, boolean isArray, JSArrayNextElementIndexNode nextElementIndexNode, com.oracle.truffle.api.profiles.InlinedConditionProfile isZero, com.oracle.truffle.api.profiles.InlinedExactClassProfile arrayTypeProfile)
    • firstObjectViaEnumeration

      public long firstObjectViaEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode)
    • firstObjectViaFullEnumeration

      public long firstObjectViaFullEnumeration(JSDynamicObject object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode)
    • doObject

      public long doObject(Object object, long length, boolean isArray, JSHasPropertyNode hasPropertyNode)