public abstract class com.oracle.truffle.js.runtime.builtins.JSAbstractArray extends com.oracle.truffle.js.runtime.builtins.JSNonProxy
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.runtime.builtins.JSAbstractArray
  super_class: com.oracle.truffle.js.runtime.builtins.JSNonProxy
{
  public static final java.lang.String LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "length"

  protected static final java.lang.String ARRAY_LENGTH_NOT_WRITABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "array length is not writable"

  private static final java.lang.String LENGTH_PROPERTY_NOT_WRITABLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "length property not writable"

  protected static final java.lang.String CANNOT_REDEFINE_PROPERTY_LENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "Cannot redefine property: length"

  protected static final java.lang.String MAKE_SLOW_ARRAY_NEVER_PART_OF_COMPILATION_MESSAGE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "do not convert to slow array from compiled code"

  public static final java.lang.String ARRAY_PROTOTYPE_NO_ELEMENTS_INVALIDATION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Array.prototype no element assumption"

  public static final com.oracle.truffle.api.object.HiddenKey LAZY_REGEX_RESULT_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.oracle.truffle.api.object.HiddenKey LAZY_REGEX_ORIGINAL_INPUT_ID;
    descriptor: Lcom/oracle/truffle/api/object/HiddenKey;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.util.Comparator<java.lang.Object> DEFAULT_JSARRAY_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Ljava/lang/Object;>;

  public static final java.util.Comparator<java.lang.Object> DEFAULT_JSARRAY_INTEGER_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Ljava/lang/Object;>;

  public static final java.util.Comparator<java.lang.Object> DEFAULT_JSARRAY_DOUBLE_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Ljava/lang/Object;>;

  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=3, locals=0, args_size=0
         0: .line 78
            ldc Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            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.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
         3: .line 88
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "lazyRegexResult"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.LAZY_REGEX_RESULT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
         4: .line 89
            new com.oracle.truffle.api.object.HiddenKey
            dup
            ldc "lazyRegexResultOriginalInput"
            invokespecial com.oracle.truffle.api.object.HiddenKey.<init>:(Ljava/lang/String;)V
            putstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.LAZY_REGEX_ORIGINAL_INPUT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
         5: .line 173
            new com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayComparator
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayComparator.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.DEFAULT_JSARRAY_COMPARATOR:Ljava/util/Comparator;
         6: .line 174
            new com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayIntegerComparator
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayIntegerComparator.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.DEFAULT_JSARRAY_INTEGER_COMPARATOR:Ljava/util/Comparator;
         7: .line 175
            new com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayDoubleComparator
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayDoubleComparator.<init>:()V
            putstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.DEFAULT_JSARRAY_DOUBLE_COMPARATOR:Ljava/util/Comparator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.runtime.array.ScriptArray arrayGetArrayType(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 92
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSArray:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArgumentsArray.isJSArgumentsObject:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSObjectPrototype.isJSObjectPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 93
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getArrayType:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static long arrayGetLength(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 97
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getLength:(Ljava/lang/Object;)J
            lreturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static int arrayGetUsedLength(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 101
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getUsedLength:(Ljava/lang/Object;)I
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static long arrayGetIndexOffset(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 105
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getIndexOffset:(Ljava/lang/Object;)J
            lreturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static int arrayGetArrayOffset(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 109
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getArrayOffset:(Ljava/lang/Object;)I
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static void arraySetArrayType(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
         0: .line 113
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            aload 1 /* arrayType */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setArrayType:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         1: .line 114
            return
        end local 1 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0    thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1  arrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    MethodParameters:
           Name  Flags
      thisObj    
      arrayType  

  public static void arraySetLength(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // int length
         0: .line 117
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            iload 1 /* length */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 118
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            iload 1 /* length */
            i2l
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setLength:(Ljava/lang/Object;J)V
         2: .line 119
            return
        end local 1 // int length
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   length  I
    MethodParameters:
         Name  Flags
      thisObj  
      length   

  public static void arraySetLength(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // long length
         0: .line 122
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            lload 1 /* length */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isValidArrayLength:(J)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 123
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            lload 1 /* length */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setLength:(Ljava/lang/Object;J)V
         2: .line 124
            return
        end local 1 // long length
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   length  J
    MethodParameters:
         Name  Flags
      thisObj  
      length   

  public static void arraySetUsedLength(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // int usedLength
         0: .line 127
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            iload 1 /* usedLength */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 128
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            iload 1 /* usedLength */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setUsedLength:(Ljava/lang/Object;I)V
         2: .line 129
            return
        end local 1 // int usedLength
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0     thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  usedLength  I
    MethodParameters:
            Name  Flags
      thisObj     
      usedLength  

  public static void arraySetIndexOffset(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // long indexOffset
         0: .line 132
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            lload 1 /* indexOffset */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setIndexOffset:(Ljava/lang/Object;J)V
         1: .line 133
            return
        end local 1 // long indexOffset
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1  indexOffset  J
    MethodParameters:
             Name  Flags
      thisObj      
      indexOffset  

  public static void arraySetArrayOffset(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // int arrayOffset
         0: .line 136
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            iload 1 /* arrayOffset */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 137
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            iload 1 /* arrayOffset */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setArrayOffset:(Ljava/lang/Object;I)V
         2: .line 138
            return
        end local 1 // int arrayOffset
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0      thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  arrayOffset  I
    MethodParameters:
             Name  Flags
      thisObj      
      arrayOffset  

  public static java.lang.Object arrayGetArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 141
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 142
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getArray:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static void arraySetArray(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // java.lang.Object array
         0: .line 146
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 147
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 3
            aload 1 /* array */
            ifnull 2
            aload 1 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifne 3
            aload 1 /* array */
            instanceof java.util.TreeMap
            ifne 3
      StackMap locals:
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 148
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            aload 1 /* array */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setArray:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 149
            return
        end local 1 // java.lang.Object array
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     1    array  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      thisObj  
      array    

  public static int arrayGetHoleCount(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 152
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getHoleCount:(Ljava/lang/Object;)I
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static void arraySetHoleCount(com.oracle.truffle.api.object.DynamicObject, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // int holeCount
         0: .line 156
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            iload 1 /* holeCount */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 157
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            iload 1 /* holeCount */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.setHoleCount:(Ljava/lang/Object;I)V
         2: .line 158
            return
        end local 1 // int holeCount
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  holeCount  I
    MethodParameters:
           Name  Flags
      thisObj    
      holeCount  

  public static com.oracle.truffle.js.runtime.array.ArrayAllocationSite arrayGetAllocationSite(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ArrayAllocationSite;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 161
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayAccess:()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.ArrayAccess.getAllocationSite:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/ArrayAllocationSite;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public static java.lang.Object arrayGetRegexResult(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObjectLibrary);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObjectLibrary;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // com.oracle.truffle.api.object.DynamicObjectLibrary lazyRegexResult
         0: .line 165
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 2
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSArray:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            getstatic com.oracle.truffle.js.runtime.array.dyn.LazyRegexResultArray.LAZY_REGEX_RESULT_ARRAY:Lcom/oracle/truffle/js/runtime/array/dyn/LazyRegexResultArray;
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 166
      StackMap locals:
      StackMap stack:
            aload 1 /* lazyRegexResult */
            aload 0 /* thisObj */
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.LAZY_REGEX_RESULT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObjectLibrary lazyRegexResult
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0          thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  lazyRegexResult  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    MethodParameters:
                 Name  Flags
      thisObj          
      lazyRegexResult  

  public static java.lang.String arrayGetRegexResultOriginalInput(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObjectLibrary);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObjectLibrary;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // com.oracle.truffle.api.object.DynamicObjectLibrary lazyRegexResultOriginalInput
         0: .line 170
            aload 1 /* lazyRegexResultOriginalInput */
            aload 0 /* thisObj */
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.LAZY_REGEX_ORIGINAL_INPUT_ID:Lcom/oracle/truffle/api/object/HiddenKey;
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObjectLibrary lazyRegexResultOriginalInput
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    1     0                       thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     1  lazyRegexResultOriginalInput  Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
    MethodParameters:
                              Name  Flags
      thisObj                       
      lazyRegexResultOriginalInput  

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
         0: .line 240
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.<init>:()V
         1: .line 241
            return
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;

  protected static final com.oracle.truffle.js.runtime.builtins.ArrayAccess arrayAccess();
    descriptor: ()Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=0, args_size=0
         0: .line 244
            getstatic com.oracle.truffle.js.runtime.builtins.ArrayAccess.SINGLETON:Lcom/oracle/truffle/js/runtime/builtins/ArrayAccess;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public long getLength(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 248
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.length:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lreturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    1     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public boolean setLength(com.oracle.truffle.api.object.DynamicObject, long, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // long length
        start local 4 // boolean doThrow
         0: .line 253
            lload 2 /* length */
            lconst_0
            lcmp
            ifge 2
         1: .line 254
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 256
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 5 /* array */
        start local 5 // com.oracle.truffle.js.runtime.array.ScriptArray array
         3: .line 257
            lload 2 /* length */
            ldc 2147483647
            lcmp
            ifle 5
            aload 5 /* array */
            instanceof com.oracle.truffle.js.runtime.array.SparseArray
            ifne 5
         4: .line 258
            aload 1 /* thisObj */
            aload 5 /* array */
            invokestatic com.oracle.truffle.js.runtime.array.SparseArray.makeSparseArray:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)Lcom/oracle/truffle/js/runtime/array/SparseArray;
            astore 5 /* array */
         5: .line 260
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            aload 5 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isSealed:()Z
            ifeq 11
         6: .line 261
            aload 5 /* array */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.lastElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lconst_1
            ladd
            lstore 6 /* minIndex */
        start local 6 // long minIndex
         7: .line 262
            lload 2 /* length */
            lload 6 /* minIndex */
            lcmp
            ifge 11
         8: .line 263
            aload 5 /* array */
            aload 1 /* thisObj */
            lload 6 /* minIndex */
            iload 4 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.setLength:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 5 /* array */
         9: .line 264
            aload 1 /* thisObj */
            aload 5 /* array */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
        10: .line 265
            aload 5 /* array */
            aload 1 /* thisObj */
            lload 6 /* minIndex */
            lconst_1
            lsub
            iload 4 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.canDeleteElement:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ireturn
        end local 6 // long minIndex
        11: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            aload 5 /* array */
            aload 1 /* thisObj */
            lload 2 /* length */
            iload 4 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.setLength:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
        12: .line 269
            iconst_1
            ireturn
        end local 5 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 4 // boolean doThrow
        end local 2 // long length
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   13     1   thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2    length  J
            0   13     4   doThrow  Z
            3   13     5     array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            7   11     6  minIndex  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      length   
      doThrow  

  public java.lang.String getBuiltinToStringTag(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 274
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getClassName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    1     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
        Name  Flags
      object  

  public final java.lang.Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object thisObj
        start local 3 // java.lang.Object key
        start local 4 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 280
            aload 3 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
            lstore 5 /* idx */
        start local 5 // long idx
         1: .line 281
            lload 5 /* idx */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
            ifeq 3
         2: .line 282
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* thisObj */
            lload 5 /* idx */
            aload 4 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            areturn
         3: .line 284
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* thisObj */
            aload 3 /* key */
            aload 4 /* encapsulatingNode */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            areturn
        end local 5 // long idx
        end local 4 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 3 // java.lang.Object key
        end local 2 // java.lang.Object thisObj
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    4     1              store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     2            thisObj  Ljava/lang/Object;
            0    4     3                key  Ljava/lang/Object;
            0    4     4  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            1    4     5                idx  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      store              
      thisObj            
      key                
      encapsulatingNode  

  public final boolean set(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=8, locals=9, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
        start local 5 // boolean isStrict
        start local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 290
            aload 4 /* receiver */
            aload 1 /* thisObj */
            if_acmpeq 2
         1: .line 291
            aload 1 /* thisObj */
            aload 2 /* key */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.ordinarySetWithReceiver:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
         2: .line 293
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 3
            aload 4 /* receiver */
            aload 1 /* thisObj */
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 294
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
            lstore 7 /* idx */
        start local 7 // long idx
         4: .line 295
            lload 7 /* idx */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
            ifeq 6
         5: .line 296
            aload 0 /* this */
            aload 1 /* thisObj */
            lload 7 /* idx */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
         6: .line 298
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* key */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 7 // long idx
        end local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 5 // boolean isStrict
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    7     1            thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    7     2                key  Ljava/lang/Object;
            0    7     3              value  Ljava/lang/Object;
            0    7     4           receiver  Ljava/lang/Object;
            0    7     5           isStrict  Z
            0    7     6  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            4    7     7                idx  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      thisObj            
      key                
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  public boolean set(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // long index
        start local 4 // java.lang.Object value
        start local 5 // java.lang.Object receiver
        start local 6 // boolean isStrict
        start local 7 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 305
            aload 5 /* receiver */
            aload 1 /* thisObj */
            if_acmpeq 2
         1: .line 306
            aload 1 /* thisObj */
            lload 2 /* index */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            aload 4 /* value */
            aload 5 /* receiver */
            iload 6 /* isStrict */
            aload 7 /* encapsulatingNode */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.ordinarySetWithReceiver:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
         2: .line 308
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 3
            aload 5 /* receiver */
            aload 1 /* thisObj */
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 309
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 1 /* thisObj */
            lload 2 /* index */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifeq 5
         4: .line 310
            aload 1 /* thisObj */
            lload 2 /* index */
            aload 4 /* value */
            iload 6 /* isStrict */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setElement:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Z)Z
            ireturn
         5: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            lload 2 /* index */
            aload 4 /* value */
            aload 5 /* receiver */
            iload 6 /* isStrict */
            aload 7 /* encapsulatingNode */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setPropertySlow:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 7 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 6 // boolean isStrict
        end local 5 // java.lang.Object receiver
        end local 4 // java.lang.Object value
        end local 2 // long index
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    6     1            thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     2              index  J
            0    6     4              value  Ljava/lang/Object;
            0    6     5           receiver  Ljava/lang/Object;
            0    6     6           isStrict  Z
            0    6     7  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      thisObj            
      index              
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  private static boolean setPropertySlow(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // long index
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
        start local 5 // boolean isStrict
        start local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 318
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getArrayPrototypeNoElementsAssumption:()Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 2
            aload 0 /* thisObj */
            lload 1 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setPropertyPrototypes:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 2
         1: .line 319
            iconst_1
            ireturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 6
         3: .line 323
            iload 5 /* isStrict */
            ifeq 5
         4: .line 324
            aload 0 /* thisObj */
            lload 1 /* index */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         5: .line 326
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            lload 1 /* index */
            aload 3 /* value */
            iload 5 /* isStrict */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setElement:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Z)Z
            ireturn
        end local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 5 // boolean isStrict
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0            thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    7     1              index  J
            0    7     3              value  Ljava/lang/Object;
            0    7     4           receiver  Ljava/lang/Object;
            0    7     5           isStrict  Z
            0    7     6  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      thisObj            
      index              
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  private static boolean setPropertyPrototypes(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=10, args_size=6
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // long index
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object receiver
        start local 5 // boolean isStrict
        start local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 333
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* current */
        start local 7 // com.oracle.truffle.api.object.DynamicObject current
         1: .line 334
            aconst_null
            astore 8 /* propertyName */
        start local 8 // java.lang.String propertyName
         2: .line 335
            goto 19
         3: .line 336
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.String
      StackMap stack:
            aload 7 /* current */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSProxy.isJSProxy:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 337
            aload 7 /* current */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/builtins/JSClass;
            aload 7 /* current */
            lload 1 /* index */
            aload 3 /* value */
            aload 4 /* receiver */
            iconst_0
            aload 6 /* encapsulatingNode */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSClass.set:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
         5: .line 339
      StackMap locals:
      StackMap stack:
            aload 7 /* current */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.canHaveReadOnlyOrAccessorProperties:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 18
         6: .line 340
            aload 7 /* current */
            lload 1 /* index */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifeq 18
         7: .line 341
            aload 8 /* propertyName */
            ifnonnull 9
         8: .line 342
            lload 1 /* index */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            astore 8 /* propertyName */
         9: .line 344
      StackMap locals:
      StackMap stack:
            aload 7 /* current */
            aload 8 /* propertyName */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 9 /* desc */
        start local 9 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        10: .line 345
            aload 9 /* desc */
            ifnull 18
        11: .line 346
            aload 9 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.isAccessorDescriptor:()Z
            ifeq 14
        12: .line 347
            aload 9 /* desc */
            aload 0 /* thisObj */
            aload 8 /* propertyName */
            aload 3 /* value */
            aload 4 /* receiver */
            iload 5 /* isStrict */
            aload 6 /* encapsulatingNode */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.invokeAccessorPropertySetter:(Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;)Z
            pop
        13: .line 348
            iconst_1
            ireturn
        14: .line 349
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            aload 9 /* desc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 20
        15: .line 350
            iload 5 /* isStrict */
            ifeq 17
        16: .line 351
            new java.lang.StringBuilder
            dup
            ldc "Cannot assign to read only property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "' of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defaultToString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        17: .line 353
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 9 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor desc
        18: .line 360
      StackMap locals:
      StackMap stack:
            aload 7 /* current */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 7 /* current */
        19: .line 335
      StackMap locals:
      StackMap stack:
            aload 7 /* current */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 3
        20: .line 362
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // java.lang.String propertyName
        end local 7 // com.oracle.truffle.api.object.DynamicObject current
        end local 6 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 5 // boolean isStrict
        end local 4 // java.lang.Object receiver
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0            thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   21     1              index  J
            0   21     3              value  Ljava/lang/Object;
            0   21     4           receiver  Ljava/lang/Object;
            0   21     5           isStrict  Z
            0   21     6  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            1   21     7            current  Lcom/oracle/truffle/api/object/DynamicObject;
            2   21     8       propertyName  Ljava/lang/String;
           10   18     9               desc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    MethodParameters:
                   Name  Flags
      thisObj            
      index              
      value              
      receiver           
      isStrict           
      encapsulatingNode  

  private static boolean canHaveReadOnlyOrAccessorProperties(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject current
         0: .line 366
            aload 0 /* current */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArrayBufferView.isJSArrayBufferView:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject current
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  current  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      current  

  private static boolean setElement(com.oracle.truffle.api.object.DynamicObject, long, java.lang.Object, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // long index
        start local 3 // java.lang.Object value
        start local 4 // boolean isStrict
         0: .line 370
            aload 0 /* thisObj */
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 0 /* thisObj */
            lload 1 /* index */
            aload 3 /* value */
            iload 4 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.setElement:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Z)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         1: .line 371
            iconst_1
            ireturn
        end local 4 // boolean isStrict
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     1     index  J
            0    2     3     value  Ljava/lang/Object;
            0    2     4  isStrict  Z
    MethodParameters:
          Name  Flags
      thisObj   
      index     
      value     
      isStrict  

  public boolean delete(com.oracle.truffle.api.object.DynamicObject, long, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // long index
        start local 4 // boolean isStrict
         0: .line 376
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 5 /* arrayType */
        start local 5 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
         1: .line 377
            aload 5 /* arrayType */
            aload 1 /* thisObj */
            lload 2 /* index */
            iload 4 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.canDeleteElement:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ifeq 4
         2: .line 378
            aload 1 /* thisObj */
            aload 5 /* arrayType */
            aload 1 /* thisObj */
            lload 2 /* index */
            iload 4 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.deleteElement:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         3: .line 379
            iconst_1
            ireturn
         4: .line 381
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // com.oracle.truffle.js.runtime.array.ScriptArray arrayType
        end local 4 // boolean isStrict
        end local 2 // long index
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    5     1    thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     2      index  J
            0    5     4   isStrict  Z
            1    5     5  arrayType  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    MethodParameters:
          Name  Flags
      thisObj   
      index     
      isStrict  

  public java.lang.Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, long, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject store
        start local 2 // java.lang.Object thisObj
        start local 3 // long index
        start local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
         0: .line 388
            aload 1 /* store */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 6 /* array */
        start local 6 // com.oracle.truffle.js.runtime.array.ScriptArray array
         1: .line 389
            aload 6 /* array */
            aload 1 /* store */
            lload 3 /* index */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifeq 3
         2: .line 390
            aload 6 /* array */
            aload 1 /* store */
            lload 3 /* index */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.getElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            areturn
         3: .line 392
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            aload 0 /* this */
            aload 1 /* store */
            aload 2 /* thisObj */
            lload 3 /* index */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            aload 5 /* encapsulatingNode */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.getOwnHelper:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 5 // com.oracle.truffle.api.nodes.Node encapsulatingNode
        end local 3 // long index
        end local 2 // java.lang.Object thisObj
        end local 1 // com.oracle.truffle.api.object.DynamicObject store
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    4     1              store  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     2            thisObj  Ljava/lang/Object;
            0    4     3              index  J
            0    4     5  encapsulatingNode  Lcom/oracle/truffle/api/nodes/Node;
            1    4     6              array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      store              
      thisObj            
      index              
      encapsulatingNode  

  public static java.lang.Object[] toArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 397
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.toArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  

  public final boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
         0: .line 403
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* key */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ifeq 2
         1: .line 404
            iconst_1
            ireturn
         2: .line 406
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
            lstore 3 /* index */
        start local 3 // long index
         3: .line 407
            lload 3 /* index */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
            ifeq 5
         4: .line 408
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 1 /* thisObj */
            lload 3 /* index */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ireturn
         5: .line 410
      StackMap locals: long
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // long index
        end local 2 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    6     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     2      key  Ljava/lang/Object;
            3    6     3    index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      key      

  public final boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;J)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // long index
         0: .line 416
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 4 /* array */
        start local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
         1: .line 417
            aload 4 /* array */
            aload 1 /* thisObj */
            lload 2 /* index */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifeq 3
         2: .line 418
            iconst_1
            ireturn
         3: .line 420
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            lload 2 /* index */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.hasOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
            ireturn
        end local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 2 // long index
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    4     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     2    index  J
            1    4     4    array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      index    

  public java.util.List<java.lang.Object> getOwnPropertyKeys(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // boolean strings
        start local 3 // boolean symbols
         0: .line 426
            aload 1 /* thisObj */
            iload 2 /* strings */
            iload 3 /* symbols */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.ownPropertyKeysSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
            areturn
        end local 3 // boolean symbols
        end local 2 // boolean strings
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    1     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  strings  Z
            0    1     3  symbols  Z
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      strings  
      symbols  

  protected static java.util.List<java.lang.Object> ownPropertyKeysFastArray(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // boolean strings
        start local 2 // boolean symbols
         0: .line 431
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.isJSFastArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 1
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSArgumentsArray.isJSFastArgumentsObject:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 432
      StackMap locals:
      StackMap stack:
            iload 1 /* strings */
            ifeq 2
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            goto 3
      StackMap locals:
      StackMap stack:
         2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
         3: astore 3 /* indices */
        start local 3 // java.util.List indices
         4: .line 433
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getKeyList:()Ljava/util/List;
            astore 4 /* keyList */
        start local 4 // java.util.List keyList
         5: .line 434
            aload 4 /* keyList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 435
            aload 3 /* indices */
            areturn
         7: .line 437
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 4 /* keyList */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* list */
        start local 5 // java.util.List list
         8: .line 438
            iload 1 /* strings */
            ifeq 10
         9: .line 439
            aload 4 /* keyList */
            aload 5 /* list */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/runtime/builtins/JSAbstractArray.lambda$0(Ljava/util/List;Ljava/lang/Object;)V (6)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        10: .line 446
      StackMap locals: java.util.List
      StackMap stack:
            iload 2 /* symbols */
            ifeq 12
        11: .line 447
            aload 4 /* keyList */
            aload 5 /* list */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/runtime/builtins/JSAbstractArray.lambda$1(Ljava/util/List;Ljava/lang/Object;)V (6)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        12: .line 453
      StackMap locals:
      StackMap stack:
            aload 3 /* indices */
            aload 5 /* list */
            invokestatic com.oracle.truffle.js.runtime.util.IteratorUtil.concatLists:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            areturn
        end local 5 // java.util.List list
        end local 4 // java.util.List keyList
        end local 3 // java.util.List indices
        end local 2 // boolean symbols
        end local 1 // boolean strings
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     1  strings  Z
            0   13     2  symbols  Z
            4   13     3  indices  Ljava/util/List<Ljava/lang/Object;>;
            5   13     4  keyList  Ljava/util/List<Ljava/lang/Object;>;
            8   13     5     list  Ljava/util/List<Ljava/lang/Object;>;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      strings  
      symbols  

  protected static java.util.List<java.lang.Object> ownPropertyKeysSlowArray(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // boolean strings
        start local 2 // boolean symbols
         0: .line 459
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 461
            iload 1 /* strings */
            ifeq 8
         2: .line 462
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 4 /* array */
        start local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
         3: .line 463
            aload 4 /* array */
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.firstElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lstore 5 /* currentIndex */
        start local 5 // long currentIndex
         4: .line 464
            goto 7
         5: .line 465
      StackMap locals: java.util.List com.oracle.truffle.js.runtime.array.ScriptArray long
      StackMap stack:
            aload 3 /* list */
            lload 5 /* currentIndex */
            invokestatic com.oracle.truffle.js.runtime.Boundaries.stringValueOf:(J)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 466
            aload 4 /* array */
            aload 0 /* thisObj */
            lload 5 /* currentIndex */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.nextElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;J)J
            lstore 5 /* currentIndex */
         7: .line 464
      StackMap locals:
      StackMap stack:
            lload 5 /* currentIndex */
            aload 4 /* array */
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.lastElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lcmp
            ifle 5
        end local 5 // long currentIndex
        end local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
         8: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getKeyList:()Ljava/util/List;
            astore 4 /* keyList */
        start local 4 // java.util.List keyList
         9: .line 471
            aload 4 /* keyList */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 19
        10: .line 472
            iload 1 /* strings */
            ifeq 17
        11: .line 473
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            istore 5 /* before */
        start local 5 // int before
        12: .line 474
            aload 4 /* keyList */
            aload 3 /* list */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/runtime/builtins/JSAbstractArray.lambda$2(Ljava/util/List;Ljava/lang/Object;)V (6)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        13: .line 479
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            istore 6 /* after */
        start local 6 // int after
        14: .line 480
            iload 6 /* after */
            iload 5 /* before */
            if_icmpeq 16
        15: .line 481
            aload 3 /* list */
            new com.oracle.truffle.js.runtime.builtins.JSAbstractArray$1
            dup
            invokespecial com.oracle.truffle.js.runtime.builtins.JSAbstractArray$1.<init>:()V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        16: .line 490
      StackMap locals: java.util.List int int
      StackMap stack:
            aload 4 /* keyList */
            aload 3 /* list */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/runtime/builtins/JSAbstractArray.lambda$3(Ljava/util/List;Ljava/lang/Object;)V (6)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        end local 6 // int after
        end local 5 // int before
        17: .line 496
      StackMap locals:
      StackMap stack:
            iload 2 /* symbols */
            ifeq 19
        18: .line 497
            aload 4 /* keyList */
            aload 3 /* list */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/runtime/builtins/JSAbstractArray.lambda$4(Ljava/util/List;Ljava/lang/Object;)V (6)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        19: .line 504
      StackMap locals:
      StackMap stack:
            aload 3 /* list */
            areturn
        end local 4 // java.util.List keyList
        end local 3 // java.util.List list
        end local 2 // boolean symbols
        end local 1 // boolean strings
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0       thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   20     1       strings  Z
            0   20     2       symbols  Z
            1   20     3          list  Ljava/util/List<Ljava/lang/Object;>;
            3    8     4         array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            4    8     5  currentIndex  J
            9   20     4       keyList  Ljava/util/List<Ljava/lang/Object;>;
           12   17     5        before  I
           14   17     6         after  I
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      strings  
      symbols  

  protected static long toArrayLengthOrRangeError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 508
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toNumber:(Ljava/lang/Object;)Ljava/lang/Number;
            astore 1 /* len */
        start local 1 // java.lang.Number len
         1: .line 509
            aload 1 /* len */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Number;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 2 /* len32 */
        start local 2 // java.lang.Number len32
         2: .line 514
            aload 0 /* obj */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toNumber:(Ljava/lang/Object;)Ljava/lang/Number;
            astore 3 /* numberLen */
        start local 3 // java.lang.Number numberLen
         3: .line 515
            aload 3 /* numberLen */
            aload 2 /* len32 */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.toArrayLengthOrRangeError:(Ljava/lang/Number;Ljava/lang/Number;)J
            lreturn
        end local 3 // java.lang.Number numberLen
        end local 2 // java.lang.Number len32
        end local 1 // java.lang.Number len
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0        obj  Ljava/lang/Object;
            1    4     1        len  Ljava/lang/Number;
            2    4     2      len32  Ljava/lang/Number;
            3    4     3  numberLen  Ljava/lang/Number;
    MethodParameters:
      Name  Flags
      obj   

  public static long toArrayLengthOrRangeError(java.lang.Number, java.lang.Number);
    descriptor: (Ljava/lang/Number;Ljava/lang/Number;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.Number len
        start local 1 // java.lang.Number len32
         0: .line 519
            aload 1 /* len32 */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.doubleValue:(Ljava/lang/Number;)D
            dstore 2 /* d32 */
        start local 2 // double d32
         1: .line 520
            aload 0 /* len */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.doubleValue:(Ljava/lang/Number;)D
            dstore 4 /* d */
        start local 4 // double d
         2: .line 522
            dload 2 /* d32 */
            dload 4 /* d */
            dcmpl
            ifne 4
         3: .line 523
            aload 1 /* len32 */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longValue:(Ljava/lang/Number;)J
            lreturn
         4: .line 525
      StackMap locals: double double
      StackMap stack:
            dload 4 /* d */
            dconst_0
            dcmpl
            ifne 6
         5: .line 526
            lconst_0
            lreturn
         6: .line 528
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 4 // double d
        end local 2 // double d32
        end local 1 // java.lang.Number len32
        end local 0 // java.lang.Number len
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    len  Ljava/lang/Number;
            0    7     1  len32  Ljava/lang/Number;
            1    7     2    d32  D
            2    7     4      d  D
    MethodParameters:
       Name  Flags
      len    
      len32  

  public boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
        start local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        start local 4 // boolean doThrow
         0: .line 534
            aload 2 /* key */
            ldc "length"
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 535
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 3 /* descriptor */
            iload 4 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.defineOwnPropertyLength:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            ireturn
         2: .line 536
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            instanceof java.lang.String
            ifeq 4
            aload 2 /* key */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 537
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* key */
            checkcast java.lang.String
            aload 3 /* descriptor */
            iload 4 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.defineOwnPropertyIndex:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            ireturn
         4: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* key */
            aload 3 /* descriptor */
            iload 4 /* doThrow */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            ireturn
        end local 4 // boolean doThrow
        end local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 2 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    5     1     thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     2         key  Ljava/lang/Object;
            0    5     3  descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0    5     4     doThrow  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      thisObj     
      key         
      descriptor  
      doThrow     

  private boolean defineOwnPropertyLength(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=10, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        start local 3 // boolean doThrow
         0: .line 550
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.hasValue:()Z
            ifne 5
         1: .line 551
            aload 1 /* thisObj */
            ldc "length"
            aload 2 /* descriptor */
            iload 3 /* doThrow */
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.ordinaryDefineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            istore 4 /* success */
        start local 4 // boolean success
         2: .line 552
            iload 4 /* success */
            ifeq 4
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.hasWritable:()Z
            ifeq 4
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 4
         3: .line 553
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setLengthNotWritable:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         4: .line 555
      StackMap locals: int
      StackMap stack:
            iload 4 /* success */
            ireturn
        end local 4 // boolean success
         5: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            lstore 4 /* newLen */
        start local 4 // long newLen
         6: .line 559
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getValue:()Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toNumber:(Ljava/lang/Object;)Ljava/lang/Number;
            astore 6 /* numberLen */
        start local 6 // java.lang.Number numberLen
         7: .line 560
            aload 6 /* numberLen */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.doubleValue:(Ljava/lang/Number;)D
            lload 4 /* newLen */
            l2d
            dcmpl
            ifeq 9
         8: .line 561
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorInvalidArrayLength:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         9: .line 563
      StackMap locals: long java.lang.Number
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            ldc "length"
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 7 /* lenDesc */
        start local 7 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
        10: .line 564
            lload 4 /* newLen */
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lcmp
            iflt 12
        11: .line 565
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* descriptor */
            aload 7 /* lenDesc */
            lload 4 /* newLen */
            iload 3 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.definePropertyLength:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;JZ)Z
            ireturn
        12: .line 568
      StackMap locals: com.oracle.truffle.js.runtime.objects.PropertyDescriptor
      StackMap stack:
            aload 7 /* lenDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 14
        13: .line 569
            iload 3 /* doThrow */
            ldc "array length is not writable"
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.reject:(ZLjava/lang/String;)Z
            ireturn
        14: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lstore 8 /* pos */
        start local 8 // long pos
        15: .line 573
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* descriptor */
            aload 7 /* lenDesc */
            lload 4 /* newLen */
            iload 3 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.definePropertyLength:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;JZ)Z
            ifne 17
        16: .line 574
            iconst_0
            ireturn
        17: .line 577
      StackMap locals: long
      StackMap stack:
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.isJSSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 19
        18: .line 578
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* descriptor */
            iload 3 /* doThrow */
            lload 4 /* newLen */
            aload 7 /* lenDesc */
            lload 8 /* pos */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.deleteElementsAfterShortening:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;ZJLcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;J)Z
            ireturn
        19: .line 581
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 8 // long pos
        end local 7 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
        end local 6 // java.lang.Number numberLen
        end local 4 // long newLen
        end local 3 // boolean doThrow
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   20     1     thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   20     2  descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   20     3     doThrow  Z
            2    5     4     success  Z
            6   20     4      newLen  J
            7   20     6   numberLen  Ljava/lang/Number;
           10   20     7     lenDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
           15   20     8         pos  J
    MethodParameters:
            Name  Flags
      thisObj     
      descriptor  
      doThrow     

  private static void setLengthNotWritable(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 586
            aload 0 /* thisObj */
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.setLengthNotWritable:()Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         1: .line 587
            return
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  private boolean deleteElementsAfterShortening(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean, long, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;ZJLcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=15, args_size=7
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        start local 3 // boolean doThrow
        start local 4 // long newLen
        start local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
        start local 7 // long startPos
         0: .line 590
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            lload 4 /* newLen */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isValidArrayLength:(J)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 591
      StackMap locals:
      StackMap stack:
            lload 7 /* startPos */
            lstore 9 /* pos */
        start local 9 // long pos
         2: .line 592
            goto 15
         3: .line 593
      StackMap locals: long
      StackMap stack:
            lload 9 /* pos */
            lconst_1
            lsub
            lstore 9 /* pos */
         4: .line 594
            lload 9 /* pos */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            astore 11 /* key */
        start local 11 // java.lang.String key
         5: .line 595
            aload 1 /* thisObj */
            aload 11 /* key */
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.getPropertyByKey:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 12 /* prop */
        start local 12 // com.oracle.truffle.api.object.Property prop
         6: .line 596
            aload 12 /* prop */
            ifnull 15
         7: .line 597
            aload 12 /* prop */
            invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isConfigurable:(Lcom/oracle/truffle/api/object/Property;)Z
            ifeq 10
         8: .line 598
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 11 /* key */
            iload 3 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            pop
         9: .line 599
            goto 15
        10: .line 601
      StackMap locals: java.lang.String com.oracle.truffle.api.object.Property
      StackMap stack:
            lload 9 /* pos */
            lconst_1
            ladd
            lstore 13 /* len */
        start local 13 // long len
        11: .line 602
            aload 2 /* descriptor */
            lload 13 /* len */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longToIntOrDouble:(J)Ljava/lang/Number;
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.setValue:(Ljava/lang/Object;)V
        12: .line 603
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* descriptor */
            aload 6 /* lenDesc */
            lload 13 /* len */
            iload 3 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.definePropertyLength:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;JZ)Z
            pop
        13: .line 604
            aload 1 /* thisObj */
            ldc "length"
            aload 2 /* descriptor */
            iconst_0
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.ordinaryDefineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            pop
        14: .line 605
            iload 3 /* doThrow */
            ldc "cannot set the length to expected value"
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.reject:(ZLjava/lang/String;)Z
            ireturn
        end local 13 // long len
        end local 12 // com.oracle.truffle.api.object.Property prop
        end local 11 // java.lang.String key
        15: .line 592
      StackMap locals:
      StackMap stack:
            lload 9 /* pos */
            lload 4 /* newLen */
            lcmp
            ifgt 3
        16: .line 609
            iconst_1
            ireturn
        end local 9 // long pos
        end local 7 // long startPos
        end local 6 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
        end local 4 // long newLen
        end local 3 // boolean doThrow
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   17     1     thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   17     2  descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   17     3     doThrow  Z
            0   17     4      newLen  J
            0   17     6     lenDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   17     7    startPos  J
            2   17     9         pos  J
            5   15    11         key  Ljava/lang/String;
            6   15    12        prop  Lcom/oracle/truffle/api/object/Property;
           11   15    13         len  J
    MethodParameters:
            Name  Flags
      thisObj     
      descriptor  
      doThrow     
      newLen      
      lenDesc     
      startPos    

  private boolean definePropertyLength(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, long, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;JZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        start local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor currentDesc
        start local 4 // long len
        start local 6 // boolean doThrow
         0: .line 613
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            lload 4 /* len */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isValidArrayLength:(J)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 614
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 2
            aload 3 /* currentDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getConfigurable:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 615
      StackMap locals:
      StackMap stack:
            aload 3 /* currentDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            istore 7 /* currentWritable */
        start local 7 // boolean currentWritable
         3: .line 616
            aload 3 /* currentDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getEnumerable:()Z
            istore 8 /* currentEnumerable */
        start local 8 // boolean currentEnumerable
         4: .line 618
            aload 2 /* descriptor */
            iload 7 /* currentWritable */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getIfHasWritable:(Z)Z
            istore 9 /* newWritable */
        start local 9 // boolean newWritable
         5: .line 619
            aload 2 /* descriptor */
            iload 8 /* currentEnumerable */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getIfHasEnumerable:(Z)Z
            istore 10 /* newEnumerable */
        start local 10 // boolean newEnumerable
         6: .line 620
            aload 2 /* descriptor */
            iconst_0
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getIfHasConfigurable:(Z)Z
            istore 11 /* newConfigurable */
        start local 11 // boolean newConfigurable
         7: .line 622
            iload 11 /* newConfigurable */
            ifne 8
            iload 10 /* newEnumerable */
            iload 8 /* currentEnumerable */
            if_icmpeq 9
         8: .line 624
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSAbstractArray com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.objects.PropertyDescriptor com.oracle.truffle.js.runtime.objects.PropertyDescriptor long int int int int int int
      StackMap stack:
            iload 6 /* doThrow */
            ldc "Cannot redefine property: length"
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.reject:(ZLjava/lang/String;)Z
            ireturn
         9: .line 626
      StackMap locals:
      StackMap stack:
            iload 7 /* currentWritable */
            iload 9 /* newWritable */
            if_icmpne 12
            iload 8 /* currentEnumerable */
            iload 10 /* newEnumerable */
            if_icmpne 12
        10: .line 627
            aload 2 /* descriptor */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.hasValue:()Z
            ifeq 11
            lload 4 /* len */
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lcmp
            ifne 12
        11: .line 628
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        12: .line 631
      StackMap locals:
      StackMap stack:
            iload 7 /* currentWritable */
            ifne 14
        13: .line 632
            iload 6 /* doThrow */
            ldc "length property not writable"
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.reject:(ZLjava/lang/String;)Z
            ireturn
        14: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            lload 4 /* len */
            iload 6 /* doThrow */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setLength:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            pop
        15: .line 637
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 12
        17: .line 638
            iload 11 /* newConfigurable */
            iload 10 /* newEnumerable */
            iload 9 /* newWritable */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.fromConfigurableEnumerableWritable:(ZZZ)I
            istore 13 /* newAttr */
        start local 13 // int newAttr
        18: .line 639
            aload 1 /* thisObj */
            ldc "length"
            iload 13 /* newAttr */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.changePropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)V
        end local 13 // int newAttr
        19: .line 640
            aload 12
            athrow
        20: .line 638
      StackMap locals:
      StackMap stack:
            iload 11 /* newConfigurable */
            iload 10 /* newEnumerable */
            iload 9 /* newWritable */
            invokestatic com.oracle.truffle.js.runtime.objects.JSAttributes.fromConfigurableEnumerableWritable:(ZZZ)I
            istore 13 /* newAttr */
        start local 13 // int newAttr
        21: .line 639
            aload 1 /* thisObj */
            ldc "length"
            iload 13 /* newAttr */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.changePropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;I)V
        end local 13 // int newAttr
        22: .line 642
            iload 9 /* newWritable */
            ifne 24
        23: .line 643
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.setLengthNotWritable:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        24: .line 646
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 11 // boolean newConfigurable
        end local 10 // boolean newEnumerable
        end local 9 // boolean newWritable
        end local 8 // boolean currentEnumerable
        end local 7 // boolean currentWritable
        end local 6 // boolean doThrow
        end local 4 // long len
        end local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor currentDesc
        end local 2 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0               this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   25     1            thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   25     2         descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   25     3        currentDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   25     4                len  J
            0   25     6            doThrow  Z
            3   25     7    currentWritable  Z
            4   25     8  currentEnumerable  Z
            5   25     9        newWritable  Z
            6   25    10      newEnumerable  Z
            7   25    11    newConfigurable  Z
           18   19    13            newAttr  I
           21   22    13            newAttr  I
      Exception table:
        from    to  target  type
          14    16      16  any
    MethodParameters:
             Name  Flags
      thisObj      
      descriptor   
      currentDesc  
      len          
      doThrow      

  protected boolean defineOwnPropertyIndex(com.oracle.truffle.api.object.DynamicObject, java.lang.String, com.oracle.truffle.js.runtime.objects.PropertyDescriptor, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.String name
        start local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        start local 4 // boolean doThrow
         0: .line 656
            aload 2 /* name */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.toUInt32:(Ljava/lang/Object;)J
            lstore 5 /* index */
        start local 5 // long index
         1: .line 657
            lload 5 /* index */
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getLength:(Lcom/oracle/truffle/api/object/DynamicObject;)J
            lcmp
            iflt 5
         2: .line 658
            aload 0 /* this */
            aload 1 /* thisObj */
            ldc "length"
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.getOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            astore 7 /* lenDesc */
        start local 7 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
         3: .line 659
            aload 7 /* lenDesc */
            invokevirtual com.oracle.truffle.js.runtime.objects.PropertyDescriptor.getWritable:()Z
            ifne 5
         4: .line 660
            iload 4 /* doThrow */
            ldc "array length is not writable"
            invokestatic com.oracle.truffle.js.runtime.util.DefinePropertyUtil.reject:(ZLjava/lang/String;)Z
            pop
        end local 7 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor lenDesc
         5: .line 663
      StackMap locals: long
      StackMap stack:
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.isExtensible:(Lcom/oracle/truffle/api/object/Shape;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* wasNotExtensible */
        start local 7 // boolean wasNotExtensible
         8: .line 664
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.makeSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            aload 2 /* name */
            aload 3 /* descriptor */
            iload 4 /* doThrow */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.defineOwnProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;Z)Z
            istore 8 /* success */
        start local 8 // boolean success
         9: .line 665
            iload 7 /* wasNotExtensible */
            ifeq 11
        10: .line 666
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 11
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokestatic com.oracle.truffle.js.runtime.objects.JSShape.isExtensible:(Lcom/oracle/truffle/api/object/Shape;)Z
            ifeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 668
      StackMap locals: int int
      StackMap stack:
            iload 8 /* success */
            ireturn
        end local 8 // boolean success
        end local 7 // boolean wasNotExtensible
        end local 5 // long index
        end local 4 // boolean doThrow
        end local 3 // com.oracle.truffle.js.runtime.objects.PropertyDescriptor descriptor
        end local 2 // java.lang.String name
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   12     1           thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   12     2              name  Ljava/lang/String;
            0   12     3        descriptor  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            0   12     4           doThrow  Z
            1   12     5             index  J
            3    5     7           lenDesc  Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            8   12     7  wasNotExtensible  Z
            9   12     8           success  Z
    MethodParameters:
            Name  Flags
      thisObj     
      name        
      descriptor  
      doThrow     

  protected com.oracle.truffle.api.object.DynamicObject makeSlowArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 672
            ldc "do not convert to slow array from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 673
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.isSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 3
         2: .line 674
            aload 1 /* thisObj */
            areturn
         3: .line 677
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 4
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.isJSSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            getstatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.INSTANCE:Lcom/oracle/truffle/js/runtime/builtins/JSSlowArray;
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.setJSClass:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/builtins/JSClass;)V
         5: .line 679
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         6: .line 680
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getFastArrayAssumption:()Lcom/oracle/truffle/api/Assumption;
            ldc "create slow ArgumentsObject"
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
         7: .line 681
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.isArrayPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 9
         8: .line 682
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getArrayPrototypeNoElementsAssumption:()Lcom/oracle/truffle/api/Assumption;
            ldc "Array.prototype has no elements"
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
         9: .line 684
      StackMap locals: com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 10
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.isJSSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 685
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            areturn
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0   11     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            6   11     2  context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      thisObj  

  private static boolean isArrayPrototype(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 689
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            instanceof com.oracle.truffle.js.runtime.array.dyn.ConstantEmptyPrototypeArray
            ireturn
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public boolean testIntegrityLevel(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // boolean frozen
         0: .line 694
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 3 /* array */
        start local 3 // com.oracle.truffle.js.runtime.array.ScriptArray array
         1: .line 695
            iload 2 /* frozen */
            ifeq 2
            aload 3 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isFrozen:()Z
            goto 3
      StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
         2: aload 3 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isSealed:()Z
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* arrayIs */
        start local 4 // boolean arrayIs
         4: .line 696
            iload 4 /* arrayIs */
            ifeq 5
            aload 1 /* thisObj */
            iload 2 /* frozen */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSNonProxy.testIntegrityLevelFast:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ifeq 5
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         5: iconst_0
            ireturn
        end local 4 // boolean arrayIs
        end local 3 // com.oracle.truffle.js.runtime.array.ScriptArray array
        end local 2 // boolean frozen
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    6     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    6     2   frozen  Z
            1    6     3    array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            4    6     4  arrayIs  Z
    MethodParameters:
         Name  Flags
      thisObj  
      frozen   

  public boolean setIntegrityLevel(com.oracle.truffle.api.object.DynamicObject, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;ZZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // boolean freeze
        start local 3 // boolean doThrow
         0: .line 701
            aload 0 /* this */
            aload 1 /* thisObj */
            iload 2 /* freeze */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.testIntegrityLevel:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ifeq 2
         1: .line 702
            iconst_1
            ireturn
         2: .line 705
      StackMap locals:
      StackMap stack:
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 4 /* arr */
        start local 4 // com.oracle.truffle.js.runtime.array.ScriptArray arr
         3: .line 706
            aload 1 /* thisObj */
            iload 2 /* freeze */
            ifeq 4
            aload 4 /* arr */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.freeze:()Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            goto 5
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSAbstractArray com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack: com.oracle.truffle.api.object.DynamicObject
         4: aload 4 /* arr */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.seal:()Lcom/oracle/truffle/js/runtime/array/ScriptArray;
      StackMap locals: com.oracle.truffle.js.runtime.builtins.JSAbstractArray com.oracle.truffle.api.object.DynamicObject int int com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.ScriptArray
         5: invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         6: .line 707
            aload 0 /* this */
            aload 1 /* thisObj */
            iload 2 /* freeze */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.setIntegrityLevelFast:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            ireturn
        end local 4 // com.oracle.truffle.js.runtime.array.ScriptArray arr
        end local 3 // boolean doThrow
        end local 2 // boolean freeze
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    7     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    7     2   freeze  Z
            0    7     3  doThrow  Z
            3    7     4      arr  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    MethodParameters:
         Name  Flags
      thisObj  
      freeze   
      doThrow  

  public final boolean preventExtensions(com.oracle.truffle.api.object.DynamicObject, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // boolean doThrow
         0: .line 713
            aload 0 /* this */
            aload 1 /* thisObj */
            iload 2 /* doThrow */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.preventExtensions:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Z
            istore 3 /* result */
        start local 3 // boolean result
         1: .line 714
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 4 /* arr */
        start local 4 // com.oracle.truffle.js.runtime.array.ScriptArray arr
         2: .line 715
            aload 1 /* thisObj */
            aload 4 /* arr */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.preventExtensions:()Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arraySetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;)V
         3: .line 716
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            aload 1 /* thisObj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.isExtensible:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 717
      StackMap locals: int com.oracle.truffle.js.runtime.array.ScriptArray
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 4 // com.oracle.truffle.js.runtime.array.ScriptArray arr
        end local 3 // boolean result
        end local 2 // boolean doThrow
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    5     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    5     2  doThrow  Z
            1    5     3   result  Z
            2    5     4      arr  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      doThrow  

  public boolean delete(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, boolean);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
        start local 3 // boolean isStrict
         0: .line 723
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
            lstore 4 /* index */
        start local 4 // long index
         1: .line 724
            lload 4 /* index */
            lconst_0
            lcmp
            iflt 3
         2: .line 725
            aload 0 /* this */
            aload 1 /* thisObj */
            lload 4 /* index */
            iload 3 /* isStrict */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.delete:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)Z
            ireturn
         3: .line 727
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* key */
            iload 3 /* isStrict */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.delete:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)Z
            ireturn
        end local 4 // long index
        end local 3 // boolean isStrict
        end local 2 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    4     1   thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    4     2       key  Ljava/lang/Object;
            0    4     3  isStrict  Z
            1    4     4     index  J
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      thisObj   
      key       
      isStrict  

  public boolean setPrototypeOf(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // com.oracle.truffle.api.object.DynamicObject newPrototype
         0: .line 734
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getJSContext:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getArrayPrototypeNoElementsAssumption:()Lcom/oracle/truffle/api/Assumption;
            ldc "Array.prototype no element assumption"
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
         1: .line 735
            aload 0 /* this */
            aload 1 /* thisObj */
            aload 2 /* newPrototype */
            invokespecial com.oracle.truffle.js.runtime.builtins.JSNonProxy.setPrototypeOf:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject newPrototype
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    2     1       thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     2  newPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
              Name  Flags
      thisObj       
      newPrototype  

  public com.oracle.truffle.js.runtime.objects.PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 2 // java.lang.Object key
         0: .line 740
            aload 1 /* thisObj */
            aload 2 /* key */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.ordinaryGetOwnPropertyArray:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 2 // java.lang.Object key
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    1     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2      key  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      thisObj  
      key      

  public static com.oracle.truffle.js.runtime.objects.PropertyDescriptor ordinaryGetOwnPropertyArray(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
        start local 1 // java.lang.Object key
         0: .line 748
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isPropertyKey:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 750
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyKeyToArrayIndex:(Ljava/lang/Object;)J
            lstore 2 /* idx */
        start local 2 // long idx
         2: .line 751
            lload 2 /* idx */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(J)Z
            ifeq 11
         3: .line 752
            aload 0 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.arrayGetArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            astore 4 /* array */
        start local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
         4: .line 753
            aload 4 /* array */
            aload 0 /* thisObj */
            lload 2 /* idx */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
            ifeq 11
         5: .line 754
            aload 4 /* array */
            aload 0 /* thisObj */
            lload 2 /* idx */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.getElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         6: .line 755
            aload 5 /* value */
            iconst_1
            aload 4 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isFrozen:()Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object long com.oracle.truffle.js.runtime.array.ScriptArray java.lang.Object
      StackMap stack: java.lang.Object int
         7: iconst_1
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object long com.oracle.truffle.js.runtime.array.ScriptArray java.lang.Object
      StackMap stack: java.lang.Object int int
         8: aload 4 /* array */
            invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isSealed:()Z
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object long com.oracle.truffle.js.runtime.array.ScriptArray java.lang.Object
      StackMap stack: java.lang.Object int int
         9: iconst_1
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.lang.Object long com.oracle.truffle.js.runtime.array.ScriptArray java.lang.Object
      StackMap stack: java.lang.Object int int int
        10: invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;ZZZ)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 5 // java.lang.Object value
        end local 4 // com.oracle.truffle.js.runtime.array.ScriptArray array
        11: .line 758
      StackMap locals:
      StackMap stack:
            aload 0 /* thisObj */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 4 /* prop */
        start local 4 // com.oracle.truffle.api.object.Property prop
        12: .line 759
            aload 4 /* prop */
            ifnonnull 14
        13: .line 760
            aconst_null
            areturn
        14: .line 762
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            aload 0 /* thisObj */
            aload 1 /* key */
            aload 4 /* prop */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSNonProxy.ordinaryGetOwnPropertyIntl:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
            areturn
        end local 4 // com.oracle.truffle.api.object.Property prop
        end local 2 // long idx
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.api.object.DynamicObject thisObj
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   15     1      key  Ljava/lang/Object;
            2   15     2      idx  J
            4   11     4    array  Lcom/oracle/truffle/js/runtime/array/ScriptArray;
            6   11     5    value  Ljava/lang/Object;
           12   15     4     prop  Lcom/oracle/truffle/api/object/Property;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      thisObj  
      key      

  public java.lang.String toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject, int, boolean, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;IZLcom/oracle/truffle/js/runtime/JSContext;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // int depth
        start local 3 // boolean allowSideEffects
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 767
            aload 4 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
            ifeq 2
         1: .line 768
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSAbstractArray.defaultToString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            areturn
         2: .line 770
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            aconst_null
            iload 2 /* depth */
            iload 3 /* allowSideEffects */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.objectToConsoleString:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/String;IZ)Ljava/lang/String;
            areturn
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // boolean allowSideEffects
        end local 2 // int depth
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    3     1               obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     2             depth  I
            0    3     3  allowSideEffects  Z
            0    3     4           context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
                  Name  Flags
      obj               
      depth             
      allowSideEffects  
      context           

  protected boolean isSlowArray(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
        start local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
         0: .line 775
            aload 1 /* thisObj */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSSlowArray.isJSSlowArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject thisObj
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;
            0    1     1  thisObj  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
         Name  Flags
      thisObj  

  public boolean usesOrdinaryGetOwnProperty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
         0: .line 780
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.js.runtime.builtins.JSAbstractArray this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/builtins/JSAbstractArray;

  private static void lambda$0(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object k
         0: .line 440
            getstatic com.oracle.truffle.js.runtime.builtins.JSAbstractArray.$assertionsDisabled:Z
            ifne 1
            aload 1 /* k */
            instanceof java.lang.String
            ifeq 1
            aload 1 /* k */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 441
      StackMap locals:
      StackMap stack:
            aload 1 /* k */
            instanceof java.lang.String
            ifeq 3
         2: .line 442
            aload 0
            aload 1 /* k */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 444
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     k  Ljava/lang/Object;

  private static void lambda$1(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object k
         0: .line 448
            aload 1 /* k */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 2
         1: .line 449
            aload 0
            aload 1 /* k */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 451
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     k  Ljava/lang/Object;

  private static void lambda$2(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object k
         0: .line 475
            aload 1 /* k */
            instanceof java.lang.String
            ifeq 2
            aload 1 /* k */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 476
            aload 0
            aload 1 /* k */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 478
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     k  Ljava/lang/Object;

  private static void lambda$3(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object k
         0: .line 491
            aload 1 /* k */
            instanceof java.lang.String
            ifeq 2
            aload 1 /* k */
            checkcast java.lang.String
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isArrayIndex:(Ljava/lang/String;)Z
            ifne 2
         1: .line 492
            aload 0
            aload 1 /* k */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 494
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     k  Ljava/lang/Object;

  private static void lambda$4(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object k
         0: .line 498
            aload 1 /* k */
            instanceof com.oracle.truffle.js.runtime.Symbol
            ifeq 2
         1: .line 499
            aload 0
            aload 1 /* k */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 501
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     k  Ljava/lang/Object;
}
SourceFile: "JSAbstractArray.java"
NestMembers:
  com.oracle.truffle.js.runtime.builtins.JSAbstractArray$1  com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayComparator  com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayDoubleComparator  com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayIntegerComparator
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  com.oracle.truffle.js.runtime.builtins.JSAbstractArray$1
  final DefaultJSArrayComparator = com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayComparator of com.oracle.truffle.js.runtime.builtins.JSAbstractArray
  final DefaultJSArrayDoubleComparator = com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayDoubleComparator of com.oracle.truffle.js.runtime.builtins.JSAbstractArray
  final DefaultJSArrayIntegerComparator = com.oracle.truffle.js.runtime.builtins.JSAbstractArray$DefaultJSArrayIntegerComparator of com.oracle.truffle.js.runtime.builtins.JSAbstractArray
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles