public class com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState
  super_class: java.lang.Object
{
  final com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$AbstractRootNode[] rootNodes;
    descriptor: [Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$AbstractRootNode;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget[] callTargets;
    descriptor: [Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.nodes.DirectCallNode[] directCallNodes;
    descriptor: [Lcom/oracle/truffle/api/nodes/DirectCallNode;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.nodes.IndirectCallNode indirectCall;
    descriptor: Lcom/oracle/truffle/api/nodes/IndirectCallNode;
    flags: (0x0010) ACC_FINAL

  final java.lang.Object[] singleArg;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.frame.VirtualFrame frame;
    descriptor: Lcom/oracle/truffle/api/frame/VirtualFrame;
    flags: (0x0010) ACC_FINAL

  final org.graalvm.polyglot.Context context;
    descriptor: Lorg/graalvm/polyglot/Context;
    flags: (0x0010) ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState this
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.singleArg:[Ljava/lang/Object;
         2: .line 83
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            instanceof com.oracle.truffle.api.impl.DefaultTruffleRuntime
            ifeq 5
         3: .line 84
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.context:Lorg/graalvm/polyglot/Context;
         4: .line 85
            goto 6
         5: .line 86
      StackMap locals: com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState
      StackMap stack:
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
            ldc "engine.Compilation"
            ldc "false"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.context:Lorg/graalvm/polyglot/Context;
         6: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.enter:()V
         7: .line 89
            aload 0 /* this */
            getstatic com.oracle.truffle.api.benchmark.InterpreterCallBenchmark.ROOT_CLASSES:[Ljava/lang/Class;
            arraylength
            anewarray com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$AbstractRootNode
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.rootNodes:[Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$AbstractRootNode;
         8: .line 90
            aload 0 /* this */
            getstatic com.oracle.truffle.api.benchmark.InterpreterCallBenchmark.ROOT_CLASSES:[Ljava/lang/Class;
            arraylength
            anewarray com.oracle.truffle.api.CallTarget
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.callTargets:[Lcom/oracle/truffle/api/CallTarget;
         9: .line 91
            aload 0 /* this */
            getstatic com.oracle.truffle.api.benchmark.InterpreterCallBenchmark.ROOT_CLASSES:[Ljava/lang/Class;
            arraylength
            anewarray com.oracle.truffle.api.nodes.DirectCallNode
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.directCallNodes:[Lcom/oracle/truffle/api/nodes/DirectCallNode;
        10: .line 93
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        11: goto 20
        12: .line 94
      StackMap locals: int
      StackMap stack:
            getstatic com.oracle.truffle.api.benchmark.InterpreterCallBenchmark.ROOT_CLASSES:[Ljava/lang/Class;
            iload 1 /* i */
            aaload
            astore 2 /* rootClass */
        start local 2 // java.lang.Class rootClass
        13: .line 96
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.rootNodes:[Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$AbstractRootNode;
            iload 1 /* i */
            aload 2 /* rootClass */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$AbstractRootNode
            aastore
        14: .line 97
            goto 17
      StackMap locals: com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState int java.lang.Class
      StackMap stack: java.lang.Exception
        15: astore 3 /* e */
        start local 3 // java.lang.Exception e
        16: .line 98
            new java.lang.AssertionError
            dup
            aload 3 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.Exception e
        17: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.callTargets:[Lcom/oracle/truffle/api/CallTarget;
            iload 1 /* i */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.rootNodes:[Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$AbstractRootNode;
            iload 1 /* i */
            aaload
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            aastore
        18: .line 101
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.directCallNodes:[Lcom/oracle/truffle/api/nodes/DirectCallNode;
            iload 1 /* i */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.callTargets:[Lcom/oracle/truffle/api/CallTarget;
            iload 1 /* i */
            aaload
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
            aastore
        end local 2 // java.lang.Class rootClass
        19: .line 93
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 1 /* i */
            getstatic com.oracle.truffle.api.benchmark.InterpreterCallBenchmark.ROOT_CLASSES:[Ljava/lang/Class;
            arraylength
            if_icmplt 12
        end local 1 // int i
        21: .line 104
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.singleArg:[Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.rootNodes:[Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$AbstractRootNode;
            iconst_0
            aaload
            invokevirtual com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$AbstractRootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createVirtualFrame:([Ljava/lang/Object;Lcom/oracle/truffle/api/frame/FrameDescriptor;)Lcom/oracle/truffle/api/frame/VirtualFrame;
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.frame:Lcom/oracle/truffle/api/frame/VirtualFrame;
        22: .line 105
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createIndirectCallNode:()Lcom/oracle/truffle/api/nodes/IndirectCallNode;
            putfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.indirectCall:Lcom/oracle/truffle/api/nodes/IndirectCallNode;
        23: .line 74
            return
        end local 0 // com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$BenchmarkState;
           11   21     1          i  I
           13   19     2  rootClass  Ljava/lang/Class<*>;
           16   17     3          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.InstantiationException
          13    14      15  Class java.lang.IllegalAccessException
          13    14      15  Class java.lang.IllegalArgumentException
          13    14      15  Class java.lang.reflect.InvocationTargetException
          13    14      15  Class java.lang.NoSuchMethodException
          13    14      15  Class java.lang.SecurityException

  public void tearDown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState this
         0: .line 110
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.leave:()V
         1: .line 111
            aload 0 /* this */
            getfield com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.close:()V
         2: .line 112
            return
        end local 0 // com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/benchmark/InterpreterCallBenchmark$BenchmarkState;
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.TearDown()
}
SourceFile: "InterpreterCallBenchmark.java"
NestHost: com.oracle.truffle.api.benchmark.InterpreterCallBenchmark
InnerClasses:
  public abstract AbstractRootNode = com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$AbstractRootNode of com.oracle.truffle.api.benchmark.InterpreterCallBenchmark
  public BenchmarkState = com.oracle.truffle.api.benchmark.InterpreterCallBenchmark$BenchmarkState of com.oracle.truffle.api.benchmark.InterpreterCallBenchmark
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
    RuntimeVisibleAnnotations: 
      org.openjdk.jmh.annotations.State(value = org.openjdk.jmh.annotations.Scope.Thread:Lorg/openjdk/jmh/annotations/Scope;)