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

  protected final boolean nullOrUndefinedAsEmptyArray;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

  protected void <init>(com.oracle.truffle.js.runtime.JSContext, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
        start local 2 // boolean nullOrUndefinedAsEmptyArray
         0: .line 88
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 89
            aload 0 /* this */
            aload 1 /* context */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.JSContext
            putfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         2: .line 90
            aload 0 /* this */
            iload 2 /* nullOrUndefinedAsEmptyArray */
            putfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.nullOrUndefinedAsEmptyArray:Z
         3: .line 91
            return
        end local 2 // boolean nullOrUndefinedAsEmptyArray
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    4     0                         this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    4     1                      context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     2  nullOrUndefinedAsEmptyArray  Z
    MethodParameters:
                             Name  Flags
      context                      
      nullOrUndefinedAsEmptyArray  

  public abstract java.lang.Object[] executeObjectArray(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  public static com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode create(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 96
            aload 0 /* context */
            iconst_0
            invokestatic com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;Z)Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

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

  public static com.oracle.truffle.js.nodes.JavaScriptNode create(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.JavaScriptNode);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode operand
         0: .line 126
            new com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode$1Unary
            dup
            aload 1 /* operand */
            aload 0 /* context */
            invokespecial com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode$1Unary.<init>:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
            areturn
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode operand
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
            0    1     1  operand  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
         Name  Flags
      context  
      operand  

  protected java.lang.Object[] toArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.nodes.array.JSGetLengthNode, com.oracle.truffle.js.nodes.access.ReadElementNode);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/array/JSGetLengthNode;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // com.oracle.truffle.js.nodes.array.JSGetLengthNode getLengthNode
        start local 3 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
         0: .line 133
            aload 2 /* getLengthNode */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.js.nodes.array.JSGetLengthNode.executeLong:(Ljava/lang/Object;)J
            lstore 4 /* len */
        start local 4 // long len
         1: .line 134
            lload 4 /* len */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getMaxApplyArgumentLength:()I
            i2l
            lcmp
            ifle 4
         2: .line 135
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         3: .line 136
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorTooManyArguments:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         4: .line 138
      StackMap locals: long
      StackMap stack:
            lload 4 /* len */
            l2i
            istore 6 /* iLen */
        start local 6 // int iLen
         5: .line 139
            getstatic com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.$assertionsDisabled:Z
            ifne 6
            lload 4 /* len */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 141
      StackMap locals: int
      StackMap stack:
            iload 6 /* iLen */
            anewarray java.lang.Object
            astore 7 /* arr */
        start local 7 // java.lang.Object[] arr
         7: .line 142
            iconst_0
            istore 8 /* index */
        start local 8 // int index
         8: goto 12
         9: .line 143
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* readNode */
            aload 1 /* obj */
            iload 8 /* index */
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndex:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 9 /* value */
        start local 9 // java.lang.Object value
        10: .line 144
            aload 7 /* arr */
            iload 8 /* index */
            aload 9 /* value */
            aastore
        end local 9 // java.lang.Object value
        11: .line 142
            iinc 8 /* index */ 1
      StackMap locals:
      StackMap stack:
        12: iload 8 /* index */
            iload 6 /* iLen */
            if_icmplt 9
        end local 8 // int index
        13: .line 146
            aload 7 /* arr */
            areturn
        end local 7 // java.lang.Object[] arr
        end local 6 // int iLen
        end local 4 // long len
        end local 3 // com.oracle.truffle.js.nodes.access.ReadElementNode readNode
        end local 2 // com.oracle.truffle.js.nodes.array.JSGetLengthNode getLengthNode
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0   14     1            obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   14     2  getLengthNode  Lcom/oracle/truffle/js/nodes/array/JSGetLengthNode;
            0   14     3       readNode  Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            1   14     4            len  J
            5   14     6           iLen  I
            7   14     7            arr  [Ljava/lang/Object;
            8   13     8          index  I
           10   11     9          value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isJSObject(obj)"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
      2:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
    MethodParameters:
               Name  Flags
      obj            
      getLengthNode  
      readNode       

  protected java.lang.Object[] doUndefined(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 151
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.emptyArrayOrObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isUndefined(value)"})
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] doNull(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 156
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.emptyArrayOrObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isJSNull(value)"})
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] toArrayString(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.CharSequence value
         0: .line 161
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.CharSequence value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  Ljava/lang/CharSequence;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] toArrayInt(int);
    descriptor: (I)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // int value
         0: .line 166
            aload 0 /* this */
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // int value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] toArrayDouble(double);
    descriptor: (D)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // double value
         0: .line 171
            aload 0 /* this */
            dload 1 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // double value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  D
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] toArrayBoolean(boolean);
    descriptor: (Z)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // boolean value
         0: .line 176
            aload 0 /* this */
            iload 1 /* value */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // boolean value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    1     1  value  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      value  

  private java.lang.Object[] emptyArrayOrObjectError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 180
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.nullOrUndefinedAsEmptyArray:Z
            ifeq 2
         1: .line 181
            getstatic com.oracle.truffle.js.runtime.array.ScriptArray.EMPTY_OBJECT_ARRAY:[Ljava/lang/Object;
            areturn
         2: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    3     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  private java.lang.Object[] notAnObjectError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 187
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionNashornCompatibilityMode:()Z
            ifeq 2
         1: .line 188
            ldc "Function.prototype.apply expects an Array for second argument"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotAnObject:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    3     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] passArray(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object[] array
         0: .line 196
            aload 1 /* array */
            arraylength
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getMaxApplyArgumentLength:()I
            if_icmple 3
         1: .line 197
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         2: .line 198
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorTooManyArguments:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         3: .line 200
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            areturn
        end local 1 // java.lang.Object[] array
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    4     1  array  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      array  

  protected java.lang.Object[] doList(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 206
            aload 1 /* value */
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 207
            aload 2 /* list */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getMaxApplyArgumentLength:()I
            if_icmple 4
         2: .line 208
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         3: .line 209
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorTooManyArguments:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         4: .line 211
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* list */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            areturn
        end local 2 // java.util.List list
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    5     1  value  Ljava/lang/Object;
            1    5     2   list  Ljava/util/List<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
      com.oracle.truffle.api.dsl.Specialization(guards = {"isList(value)"})
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object[] doForeignObject(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.js.nodes.interop.ImportValueNode);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object obj
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        start local 3 // com.oracle.truffle.api.profiles.BranchProfile hasPropertiesBranch
        start local 4 // com.oracle.truffle.js.nodes.interop.ImportValueNode foreignConvertNode
         0: .line 220
            aload 2 /* interop */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 221
            ldc "foreign Object reports not to have a SIZE"
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 224
      StackMap locals:
      StackMap stack:
            aload 2 /* interop */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            lstore 5 /* len */
        start local 5 // long len
         3: .line 225
            lload 5 /* len */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getMaxApplyArgumentLength:()I
            i2l
            lcmp
            ifle 6
         4: .line 226
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         5: .line 227
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeErrorTooManyArguments:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         6: .line 229
      StackMap locals: long
      StackMap stack:
            lload 5 /* len */
            l2i
            istore 7 /* iLen */
        start local 7 // int iLen
         7: .line 230
            iload 7 /* iLen */
            anewarray java.lang.Object
            astore 8 /* arr */
        start local 8 // java.lang.Object[] arr
         8: .line 231
            lload 5 /* len */
            lconst_0
            lcmp
            ifle 15
         9: .line 232
            aload 3 /* hasPropertiesBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        10: .line 233
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        11: goto 14
        12: .line 234
      StackMap locals: int java.lang.Object[] int
      StackMap stack:
            aload 8 /* arr */
            iload 9 /* i */
            aload 4 /* foreignConvertNode */
            aload 2 /* interop */
            aload 1 /* obj */
            iload 9 /* i */
            i2l
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.js.nodes.interop.ImportValueNode.executeWithTarget:(Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        13: .line 233
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 9 /* i */
            iload 7 /* iLen */
            if_icmplt 12
        end local 9 // int i
        15: .line 237
      StackMap locals:
      StackMap stack:
            aload 8 /* arr */
        16: areturn
        end local 8 // java.lang.Object[] arr
        end local 7 // int iLen
        end local 5 // long len
        17: .line 238
      StackMap locals: com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode java.lang.Object com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.js.nodes.interop.ImportValueNode
      StackMap stack: com.oracle.truffle.api.interop.InteropException
            pop
        18: .line 239
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorNotAnObject:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 4 // com.oracle.truffle.js.nodes.interop.ImportValueNode foreignConvertNode
        end local 3 // com.oracle.truffle.api.profiles.BranchProfile hasPropertiesBranch
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0   19     1                  obj  Ljava/lang/Object;
            0   19     2              interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            0   19     3  hasPropertiesBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   19     4   foreignConvertNode  Lcom/oracle/truffle/js/nodes/interop/ImportValueNode;
            3   17     5                  len  J
            7   17     7                 iLen  I
            8   17     8                  arr  [Ljava/lang/Object;
           11   15     9                    i  I
      Exception table:
        from    to  target  type
           0    16      17  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
           0    16      17  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isForeignObject(obj)"}, limit = "InteropLibraryLimit")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.library.CachedLibrary(value = "obj")
      2:
        com.oracle.truffle.api.dsl.Cached(value = "create()")
      3:
        com.oracle.truffle.api.dsl.Cached(value = "create()")
    MethodParameters:
                     Name  Flags
      obj                  
      interop              
      hasPropertiesBranch  
      foreignConvertNode   

  protected java.lang.Object[] doFallback(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
        start local 1 // java.lang.Object value
         0: .line 245
            getstatic com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.$assertionsDisabled:Z
            ifne 1
            aload 1 /* value */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.notAnObjectError:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            0    2     1  value  Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.Fallback()
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "JSToObjectArrayNode.java"
NestMembers:
  com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode$1Unary
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  Unary = com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode$1Unary
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/JSConfig;})