public abstract class com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  protected final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 62
            ldc Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 66
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 67
            aload 0 /* this */
            aload 1 /* context */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.JSContext
            putfield com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 68
            return
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
            0    3     1  context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode create(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 71
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tJSArrayToDenseObjectArrayNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
         Name  Flags
      context  

  public abstract java.lang.Object[] executeObjectArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;J)[Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      array      
      arrayType  
      length     

  protected java.lang.Object[] fromDenseArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.access.ReadElementNode);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject array
        start local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        start local 3 // long length
        start local 5 // com.oracle.truffle.js.runtime.array.ScriptArray cachedArrayType
        start local 6 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
         0: .line 80
            getstatic com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.$assertionsDisabled:Z
            ifne 1
            lload 3 /* length */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 81
      StackMap locals:
      StackMap stack:
            lload 3 /* length */
            l2i
            istore 7 /* iLen */
        start local 7 // int iLen
         2: .line 83
            iload 7 /* iLen */
            anewarray java.lang.Object
            astore 8 /* arr */
        start local 8 // java.lang.Object[] arr
         3: .line 84
            iconst_0
            istore 9 /* index */
        start local 9 // int index
         4: goto 8
         5: .line 85
      StackMap locals: int java.lang.Object[] int
      StackMap stack:
            aload 6 /* readNode */
            aload 1 /* array */
            iload 9 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndex:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 10 /* value */
        start local 10 // java.lang.Object value
         6: .line 86
            aload 8 /* arr */
            iload 9 /* index */
            aload 10 /* value */
            aastore
        end local 10 // java.lang.Object value
         7: .line 84
            iinc 9 /* index */ 1
      StackMap locals:
      StackMap stack:
         8: iload 9 /* index */
            iload 7 /* iLen */
            if_icmplt 5
        end local 9 // int index
         9: .line 88
            aload 8 /* arr */
            areturn
        end local 8 // java.lang.Object[] arr
        end local 7 // int iLen
        end local 6 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        end local 5 // com.oracle.truffle.js.runtime.array.ScriptArray cachedArrayType
        end local 3 // long length
        end local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        end local 1 // com.oracle.truffle.api.object.DynamicObject array
        end local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
            0   10     1            array  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     2        arrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0   10     3           length  J
            0   10     5  cachedArrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0   10     6         readNode  Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            2   10     7             iLen  I
            3   10     8              arr  [Ljava/lang/Object;
            4    9     9            index  I
            6    7    10            value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"cachedArrayType.isInstance(arrayType)", "!cachedArrayType.isHolesType()", "!cachedArrayType.hasHoles(array)"}, limit = "5")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "arrayType")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
    MethodParameters:
                 Name  Flags
      array            
      arrayType        
      length           
      cachedArrayType  
      readNode         

  protected java.lang.Object[] fromSparseArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=7
        start local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject array
        start local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        start local 3 // long length
        start local 5 // com.oracle.truffle.js.runtime.array.ScriptArray cachedArrayType
        start local 6 // com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode nextElementIndexNode
        start local 7 // com.oracle.truffle.api.profiles.BranchProfile growProfile
         0: .line 96
            aload 5 /* cachedArrayType */
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.firstElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lstore 8 /* pos */
        start local 8 // long pos
         1: .line 97
            new com.oracle.truffle.js.runtime.util.SimpleArrayList
            dup
            invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
            astore 10 /* list */
        start local 10 // com.oracle.truffle.js.runtime.util.SimpleArrayList list
         2: .line 98
            goto 6
         3: .line 99
      StackMap locals: long com.oracle.truffle.js.runtime.util.SimpleArrayList
      StackMap stack:
            getstatic com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.$assertionsDisabled:Z
            ifne 4
            aload 5 /* cachedArrayType */
            aload 1 /* array */
            lload 8 /* pos */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 100
      StackMap locals:
      StackMap stack:
            aload 10 /* list */
            aload 5 /* cachedArrayType */
            aload 1 /* array */
            lload 8 /* pos */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.getElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            aload 7 /* growProfile */
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
         5: .line 101
            aload 6 /* nextElementIndexNode */
            aload 1 /* array */
            lload 8 /* pos */
            lload 3 /* length */
            invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.executeLong:(Ljava/lang/Object;JJ)J
            lstore 8 /* pos */
         6: .line 98
      StackMap locals:
      StackMap stack:
            lload 8 /* pos */
            aload 5 /* cachedArrayType */
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.lastElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lcmp
            ifle 3
         7: .line 103
            aload 10 /* list */
            aload 10 /* list */
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.size:()I
            anewarray java.lang.Object
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 10 // com.oracle.truffle.js.runtime.util.SimpleArrayList list
        end local 8 // long pos
        end local 7 // com.oracle.truffle.api.profiles.BranchProfile growProfile
        end local 6 // com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode nextElementIndexNode
        end local 5 // com.oracle.truffle.js.runtime.array.ScriptArray cachedArrayType
        end local 3 // long length
        end local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        end local 1 // com.oracle.truffle.api.object.DynamicObject array
        end local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
            0    8     1                 array  Lcom/oracle/truffle/api/object/DynamicObject;
            0    8     2             arrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0    8     3                length  J
            0    8     5       cachedArrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0    8     6  nextElementIndexNode  Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
            0    8     7           growProfile  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1    8     8                   pos  J
            2    8    10                  list  Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"cachedArrayType.isInstance(arrayType)", "cachedArrayType.isHolesType() || cachedArrayType.hasHoles(array)"}, limit = "5")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "arrayType")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
      5:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                      Name  Flags
      array                 
      arrayType             
      length                
      cachedArrayType       
      nextElementIndexNode  
      growProfile           

  protected java.lang.Object[] doUncached(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.js.nodes.access.ReadElementNode, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject array
        start local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        start local 3 // long length
        start local 5 // com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode nextElementIndexNode
        start local 6 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        start local 7 // com.oracle.truffle.api.profiles.BranchProfile growProfile
         0: .line 111
            aload 2 /* arrayType */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isHolesType:()Z
            ifne 1
            aload 2 /* arrayType */
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasHoles:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 2
         1: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            aload 2 /* arrayType */
            lload 3 /* length */
            aload 2 /* arrayType */
            aload 5 /* nextElementIndexNode */
            aload 7 /* growProfile */
            invokevirtual com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.fromSparseArray:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
            areturn
         2: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* array */
            aload 2 /* arrayType */
            lload 3 /* length */
            aload 2 /* arrayType */
            aload 6 /* readNode */
            invokevirtual com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.fromDenseArray:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;)[Ljava/lang/Object;
            areturn
        end local 7 // com.oracle.truffle.api.profiles.BranchProfile growProfile
        end local 6 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        end local 5 // com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode nextElementIndexNode
        end local 3 // long length
        end local 2 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        end local 1 // com.oracle.truffle.api.object.DynamicObject array
        end local 0 // com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
            0    3     1                 array  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     2             arrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            0    3     3                length  J
            0    3     5  nextElementIndexNode  Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
            0    3     6              readNode  Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            0    3     7           growProfile  Lcom/oracle/truffle/api/profiles/BranchProfile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"fromDenseArray", "fromSparseArray"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
      5:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                      Name  Flags
      array                 
      arrayType             
      length                
      nextElementIndexNode  
      readNode              
      growProfile           
}
SourceFile: "JSArrayToDenseObjectArrayNode.java"