public class org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest extends org.graalvm.compiler.core.test.GraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  private final java.lang.Class<?> type;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final int length;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean shouldDeopt;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox box;
    descriptor: Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static java.lang.Iterable<java.lang.Object[]> data();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=0
         0: .line 42
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* parameters */
        start local 0 // java.util.ArrayList parameters
         1: .line 43
            bipush 8
            anewarray java.lang.Class
            dup
            iconst_0
         2: .line 44
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
         3: .line 45
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
         4: .line 46
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_3
         5: .line 47
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_4
         6: .line 48
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_5
         7: .line 49
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            bipush 6
         8: .line 50
            ldc Ljava/lang/Void;
            aastore
            dup
            bipush 7
         9: .line 51
            ldc Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest;
            aastore
        10: .line 43
            astore 1 /* classesToTest */
        start local 1 // java.lang.Class[] classesToTest
        11: .line 53
            aload 1 /* classesToTest */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 17
      StackMap locals: java.util.ArrayList java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        12: aload 5
            iload 3
            aaload
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
        13: .line 55
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* clazz */
            aastore
            dup
            iconst_1
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        14: .line 56
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* clazz */
            aastore
            dup
            iconst_1
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        15: .line 57
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* clazz */
            aastore
            dup
            iconst_1
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Class clazz
        16: .line 53
            iinc 3 1
      StackMap locals:
      StackMap stack:
        17: iload 3
            iload 4
            if_icmplt 12
        18: .line 60
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        19: .line 61
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        20: .line 62
            aload 0 /* parameters */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 63
            aload 0 /* parameters */
            areturn
        end local 1 // java.lang.Class[] classesToTest
        end local 0 // java.util.ArrayList parameters
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1   22     0     parameters  Ljava/util/ArrayList<[Ljava/lang/Object;>;
           11   22     1  classesToTest  [Ljava/lang/Class;
           13   16     2          clazz  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Iterable<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{index}: class {0} length {1}")

  public void <init>(java.lang.Class<?>, int, );
    descriptor: (Ljava/lang/Class;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
        start local 1 // java.lang.Class type
        start local 2 // int length
        start local 3 // boolean shouldDeopt
         0: .line 72
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
         1: .line 69
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox
            dup
            invokespecial org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox.<init>:()V
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.box:Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
         2: .line 73
            aload 0 /* this */
            aload 1 /* type */
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.type:Ljava/lang/Class;
         3: .line 74
            aload 0 /* this */
            iload 2 /* length */
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.length:I
         4: .line 75
            aload 0 /* this */
            iload 3 /* shouldDeopt */
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.shouldDeopt:Z
         5: .line 76
            return
        end local 3 // boolean shouldDeopt
        end local 2 // int length
        end local 1 // java.lang.Class type
        end local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest;
            0    6     1         type  Ljava/lang/Class<*>;
            0    6     2       length  I
            0    6     3  shouldDeopt  Z
    Signature: (Ljava/lang/Class<*>;IZ)V
    MethodParameters:
             Name  Flags
      type         
      length       
      shouldDeopt  

  public static  newArray(java.lang.Class<?>, int, org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox);
    descriptor: (Ljava/lang/Class;ILorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.Class klass
        start local 1 // int length
        start local 2 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox box
         0: .line 79
            aload 0 /* klass */
            iload 1 /* length */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         1: .line 80
            aload 2 /* box */
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.inCompiledCode:()Z
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox.inCompiledCode:Z
         2: .line 81
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox box
        end local 1 // int length
        end local 0 // java.lang.Class klass
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   klass  Ljava/lang/Class<*>;
            0    3     1  length  I
            0    3     2     box  Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            1    3     3  result  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;ILorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;)Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      klass   
      length  
      box     

  public void testNewArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
         0: .line 86
            aload 0 /* this */
            ldc "newArray"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.type:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.length:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.box:Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 87
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.box:Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox.inCompiledCode:Z
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.shouldDeopt:Z
            ixor
            invokestatic org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.assertTrue:(Z)V
         2: .line 88
            return
        end local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static  newArrayInLoop(java.lang.Class<?>, int, int, org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox);
    descriptor: (Ljava/lang/Class;IILorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // java.lang.Class klass
        start local 1 // int length
        start local 2 // int iterations
        start local 3 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox box
         0: .line 91
            aconst_null
            astore 4 /* o */
        start local 4 // java.lang.Object o
         1: .line 92
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 5
         3: .line 93
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* klass */
            iload 1 /* length */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 4 /* o */
         4: .line 92
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* i */
            iload 2 /* iterations */
            if_icmplt 3
        end local 5 // int i
         6: .line 95
            aload 3 /* box */
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.inCompiledCode:()Z
            putfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox.inCompiledCode:Z
         7: .line 96
            aload 4 /* o */
            areturn
        end local 4 // java.lang.Object o
        end local 3 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox box
        end local 2 // int iterations
        end local 1 // int length
        end local 0 // java.lang.Class klass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0       klass  Ljava/lang/Class<*>;
            0    8     1      length  I
            0    8     2  iterations  I
            0    8     3         box  Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            1    8     4           o  Ljava/lang/Object;
            2    6     5           i  I
    Signature: (Ljava/lang/Class<*>;IILorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;)Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      klass       
      length      
      iterations  
      box         

  public void testNewArrayInLoop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
         0: .line 101
            aload 0 /* this */
            ldc "newArrayInLoop"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.type:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.length:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.box:Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 102
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.box:Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest$DeoptimizationBox;
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox.inCompiledCode:Z
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.shouldDeopt:Z
            ixor
            invokestatic org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest.assertTrue:(Z)V
         2: .line 103
            return
        end local 0 // org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/hotspot/test/ArrayNewInstanceTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ArrayNewInstanceTest.java"
NestMembers:
  org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox
InnerClasses:
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  private DeoptimizationBox = org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest$DeoptimizationBox of org.graalvm.compiler.hotspot.test.ArrayNewInstanceTest
  public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)