class com.oracle.truffle.tck.TruffleTestInvoker$1 extends org.junit.runners.model.Statement
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.tck.TruffleTestInvoker$1
  super_class: org.junit.runners.model.Statement
{
  final com.oracle.truffle.tck.TruffleTestInvoker this$0;
    descriptor: Lcom/oracle/truffle/tck/TruffleTestInvoker;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final java.lang.String val$testName;
    descriptor: Ljava/lang/String;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final com.oracle.truffle.api.nodes.RootNode[] val$testNodes;
    descriptor: [Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod val$truffleMethod;
    descriptor: Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final java.lang.Object val$test;
    descriptor: Ljava/lang/Object;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.truffle.tck.TruffleTestInvoker, java.lang.String, com.oracle.truffle.api.nodes.RootNode[], com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/tck/TruffleTestInvoker;Ljava/lang/String;[Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // com.oracle.truffle.tck.TruffleTestInvoker$1 this
         0: .line 205
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.tck.TruffleTestInvoker$1.this$0:Lcom/oracle/truffle/tck/TruffleTestInvoker;
            aload 0 /* this */
            aload 2
            putfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$testName:Ljava/lang/String;
            aload 0 /* this */
            aload 3
            putfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$testNodes:[Lcom/oracle/truffle/api/nodes/RootNode;
            aload 0 /* this */
            aload 4
            putfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$truffleMethod:Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;
            aload 0 /* this */
            aload 5
            putfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$test:Ljava/lang/Object;
            aload 0 /* this */
            invokespecial org.junit.runners.model.Statement.<init>:()V
            return
        end local 0 // com.oracle.truffle.tck.TruffleTestInvoker$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/tck/TruffleTestInvoker$1;
    MethodParameters:
                   Name  Flags
      this$0             final
      val$testName       final
      val$testNodes      final
      val$truffleMethod  final
      val$test           final

  public void evaluate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // com.oracle.truffle.tck.TruffleTestInvoker$1 this
         0: .line 209
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.this$0:Lcom/oracle/truffle/tck/TruffleTestInvoker;
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$testName:Ljava/lang/String;
            invokestatic com.oracle.truffle.tck.TruffleTestInvoker.access$0:(Lcom/oracle/truffle/tck/TruffleTestInvoker;Ljava/lang/String;)Ljava/io/Closeable;
            astore 3 /* testContext */
        start local 3 // java.io.Closeable testContext
         2: .line 210
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$testNodes:[Lcom/oracle/truffle/api/nodes/RootNode;
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* callTargets */
        start local 4 // java.util.ArrayList callTargets
         3: .line 211
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$testNodes:[Lcom/oracle/truffle/api/nodes/RootNode;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable java.util.ArrayList top int int com.oracle.truffle.api.nodes.RootNode[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* testNode */
        start local 5 // com.oracle.truffle.api.nodes.RootNode testNode
         5: .line 212
            aload 5 /* testNode */
            ifnull 8
         6: .line 213
            aload 4 /* callTargets */
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.this$0:Lcom/oracle/truffle/tck/TruffleTestInvoker;
            aload 3 /* testContext */
            aload 5 /* testNode */
            invokestatic com.oracle.truffle.tck.TruffleTestInvoker.access$1:(Lcom/oracle/truffle/tck/TruffleTestInvoker;Ljava/io/Closeable;Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/CallTarget;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 214
            goto 9
         8: .line 215
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable java.util.ArrayList com.oracle.truffle.api.nodes.RootNode int int com.oracle.truffle.api.nodes.RootNode[]
      StackMap stack:
            aload 4 /* callTargets */
            aconst_null
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.truffle.api.nodes.RootNode testNode
         9: .line 211
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable java.util.ArrayList top int int com.oracle.truffle.api.nodes.RootNode[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 4
        11: .line 219
            aload 4 /* callTargets */
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            astore 5 /* args */
        start local 5 // java.lang.Object[] args
        12: .line 220
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 16
        14: .line 221
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable java.util.ArrayList java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$truffleMethod:Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$test:Ljava/lang/Object;
            aload 5 /* args */
            invokevirtual com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod.invokeExplosively:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 220
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$truffleMethod:Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;
            getfield com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod.warmupIterations:I
            if_icmplt 14
        end local 6 // int i
        17: .line 224
            aload 4 /* callTargets */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable java.util.ArrayList java.lang.Object[] top java.util.Iterator
      StackMap stack:
        18: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.CallTarget
            astore 6 /* callTarget */
        start local 6 // com.oracle.truffle.api.CallTarget callTarget
        19: .line 225
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.this$0:Lcom/oracle/truffle/tck/TruffleTestInvoker;
            aload 3 /* testContext */
            aload 6 /* callTarget */
            invokestatic com.oracle.truffle.tck.TruffleTestInvoker.access$2:(Lcom/oracle/truffle/tck/TruffleTestInvoker;Ljava/io/Closeable;Lcom/oracle/truffle/api/CallTarget;)V
        end local 6 // com.oracle.truffle.api.CallTarget callTarget
        20: .line 224
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 227
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$truffleMethod:Lcom/oracle/truffle/tck/TruffleTestInvoker$TruffleFrameworkMethod;
            aload 0 /* this */
            getfield com.oracle.truffle.tck.TruffleTestInvoker$1.val$test:Ljava/lang/Object;
            aload 5 /* args */
            invokevirtual com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod.invokeExplosively:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.Object[] args
        end local 4 // java.util.ArrayList callTargets
        22: .line 228
            aload 3 /* testContext */
            ifnull 28
            aload 3 /* testContext */
            invokeinterface java.io.Closeable.close:()V
            goto 28
      StackMap locals: com.oracle.truffle.tck.TruffleTestInvoker$1 java.lang.Throwable java.lang.Throwable java.io.Closeable
      StackMap stack: java.lang.Throwable
        23: astore 1
            aload 3 /* testContext */
            ifnull 24
            aload 3 /* testContext */
            invokeinterface java.io.Closeable.close:()V
        end local 3 // java.io.Closeable testContext
      StackMap locals:
      StackMap stack:
        24: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 2
            aload 1
            ifnonnull 26
            aload 2
            astore 1
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 1
            aload 2
            if_acmpeq 27
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 1
            athrow
        28: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.tck.TruffleTestInvoker$1 this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lcom/oracle/truffle/tck/TruffleTestInvoker$1;
            2   24     3  testContext  TC;
            3   22     4  callTargets  Ljava/util/ArrayList<TT;>;
            5    9     5     testNode  Lcom/oracle/truffle/api/nodes/RootNode;
           12   22     5         args  [Ljava/lang/Object;
           13   17     6            i  I
           19   20     6   callTarget  TT;
      Exception table:
        from    to  target  type
           2    22      23  any
           1    25      25  any
    Exceptions:
      throws java.lang.Throwable
}
SourceFile: "TruffleTestInvoker.java"
EnclosingMethod: com.oracle.truffle.tck.TruffleTestInvoker.createStatement:(Ljava/lang/String;Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;)Lorg/junit/runners/model/Statement;
NestHost: com.oracle.truffle.tck.TruffleTestInvoker
InnerClasses:
  com.oracle.truffle.tck.TruffleTestInvoker$1
  private TruffleFrameworkMethod = com.oracle.truffle.tck.TruffleTestInvoker$TruffleFrameworkMethod of com.oracle.truffle.tck.TruffleTestInvoker