public class org.graalvm.compiler.truffle.test.IndirectCallSiteTest extends org.graalvm.compiler.truffle.test.TestWithSynchronousCompiling
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.test.IndirectCallSiteTest
  super_class: org.graalvm.compiler.truffle.test.TestWithSynchronousCompiling
{
  private static final org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime runtime;
    descriptor: Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static final java.lang.String LOREM_IPSUM;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "Lorem ipsum!"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            checkcast org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime
            putstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
         1: .line 189
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
         0: .line 44
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.TestWithSynchronousCompiling.<init>:()V
         1: .line 90
            aload 0 /* this */
            iconst_1
            anewarray java.lang.Object
            putfield org.graalvm.compiler.truffle.test.IndirectCallSiteTest.globalState:[Ljava/lang/Object;
         2: .line 44
            return
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;

  public void before();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
         0: .line 51
            aload 0 /* this */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "engine.MultiTier"
            aastore
            dup
            iconst_1
            ldc "false"
            aastore
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.setupContext:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            pop
         1: .line 52
            return
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void testIndirectCallNodeDoesNotDeopOnFirstCall();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
         0: .line 56
            iconst_0
            anewarray java.lang.Object
            astore 1 /* noArguments */
        start local 1 // java.lang.Object[] noArguments
         1: .line 57
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$1
            dup
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$1.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;Lcom/oracle/truffle/api/TruffleLanguage;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 2 /* innerTarget */
        start local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget innerTarget
         2: .line 63
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$2
            dup
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$2.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;Lcom/oracle/truffle/api/TruffleLanguage;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 3 /* uninitializedInnerTarget */
        start local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget uninitializedInnerTarget
         3: .line 69
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$3
            dup
            aload 0 /* this */
            aconst_null
            aload 2 /* innerTarget */
            aload 1 /* noArguments */
            aload 3 /* uninitializedInnerTarget */
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$3.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;Lcom/oracle/truffle/api/TruffleLanguage;Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;[Ljava/lang/Object;Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 4 /* outerTarget */
        start local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget outerTarget
         4: .line 81
            aload 4 /* outerTarget */
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationThreshold:Lorg/graalvm/options/OptionKey;
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* compilationThreshold */
        start local 5 // int compilationThreshold
         5: .line 82
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 9
         7: .line 83
      StackMap locals: org.graalvm.compiler.truffle.test.IndirectCallSiteTest java.lang.Object[] org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int int
      StackMap stack:
            aload 4 /* outerTarget */
            aload 1 /* noArguments */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 82
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            iload 5 /* compilationThreshold */
            if_icmplt 7
        end local 6 // int i
        10: .line 85
            aload 4 /* outerTarget */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        11: .line 86
            aload 4 /* outerTarget */
            iconst_1
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 87
            aload 4 /* outerTarget */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        13: .line 88
            return
        end local 5 // int compilationThreshold
        end local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget outerTarget
        end local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget uninitializedInnerTarget
        end local 2 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget innerTarget
        end local 1 // java.lang.Object[] noArguments
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                      this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;
            1   14     1               noArguments  [Ljava/lang/Object;
            2   14     2               innerTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            3   14     3  uninitializedInnerTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            4   14     4               outerTarget  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            5   14     5      compilationThreshold  I
            6   10     6                         i  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  void assertDeoptimized(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
         0: .line 192
            aload 1 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            checkcast org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode
            astore 2 /* rootNode */
        start local 2 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode rootNode
         1: .line 193
            aload 2 /* rootNode */
            getfield org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode.deoptimized:Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         2: .line 194
            return
        end local 2 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode rootNode
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;
            0    3     1    target  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            1    3     2  rootNode  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest$DeoptimizeAwareRootNode;
    MethodParameters:
        Name  Flags
      target  

  void assertNotDeoptimized(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
    descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
         0: .line 197
            aload 1 /* target */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            checkcast org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode
            astore 2 /* rootNode */
        start local 2 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode rootNode
         1: .line 198
            aload 2 /* rootNode */
            getfield org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode.deoptimized:Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         2: .line 199
            return
        end local 2 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode rootNode
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget target
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;
            0    3     1    target  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            1    3     2  rootNode  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest$DeoptimizeAwareRootNode;
    MethodParameters:
        Name  Flags
      target  

  public void testIndirectCallNodeDoesNotDeoptOnTypeChangeWithInlining1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
         0: .line 208
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$WritesToGlobalState
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$WritesToGlobalState.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 1 /* toInterpreterOnString */
        start local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget toInterpreterOnString
         1: .line 209
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 2 /* directArguments */
        start local 2 // java.lang.Object[] directArguments
         2: .line 210
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DirectlyCallsTargetWithArguments
            dup
            aload 0 /* this */
            aload 1 /* toInterpreterOnString */
            aload 2 /* directArguments */
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DirectlyCallsTargetWithArguments.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;[Ljava/lang/Object;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 3 /* directCall */
        start local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget directCall
         3: .line 211
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DummyTarget
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DummyTarget.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 4 /* noOp */
        start local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget noOp
         4: .line 212
            getstatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            new org.graalvm.compiler.truffle.test.IndirectCallSiteTest$IndirectCallTargetFromArgument
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.truffle.test.IndirectCallSiteTest$IndirectCallTargetFromArgument.<init>:(Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;)V
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
            astore 5 /* indirectCall */
        start local 5 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget indirectCall
         5: .line 214
            aload 1 /* toInterpreterOnString */
            getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationThreshold:Lorg/graalvm/options/OptionKey;
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 6 /* compilationThreshold */
        start local 6 // int compilationThreshold
         6: .line 216
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 10
         8: .line 217
      StackMap locals: org.graalvm.compiler.truffle.test.IndirectCallSiteTest org.graalvm.compiler.truffle.runtime.OptimizedCallTarget java.lang.Object[] org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int int
      StackMap stack:
            aload 3 /* directCall */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 216
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            iload 6 /* compilationThreshold */
            if_icmplt 8
        end local 7 // int i
        11: .line 220
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        12: goto 15
        13: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* toInterpreterOnString */
            aconst_null
            aload 2 /* directArguments */
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect:(Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 220
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            iload 6 /* compilationThreshold */
            if_icmplt 13
        end local 7 // int i
        16: .line 223
            aload 3 /* directCall */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        17: .line 224
            aload 0 /* this */
            aload 3 /* directCall */
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotDeoptimized:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        18: .line 225
            aload 1 /* toInterpreterOnString */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        19: .line 226
            aload 0 /* this */
            aload 1 /* toInterpreterOnString */
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotDeoptimized:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        20: .line 228
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        21: goto 24
        22: .line 229
      StackMap locals:
      StackMap stack:
            aload 5 /* indirectCall */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* noOp */
            aastore
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 228
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            iload 6 /* compilationThreshold */
            if_icmplt 22
        end local 7 // int i
        25: .line 231
            aload 5 /* indirectCall */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        26: .line 232
            aload 0 /* this */
            aload 5 /* indirectCall */
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotDeoptimized:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        27: .line 234
            aload 5 /* indirectCall */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* toInterpreterOnString */
            aastore
            invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 235
            ldc "Global state not updated!"
            ldc "Lorem ipsum!"
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.IndirectCallSiteTest.globalState:[Ljava/lang/Object;
            iconst_0
            aaload
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        29: .line 237
            aload 5 /* indirectCall */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        30: .line 240
            aload 3 /* directCall */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        31: .line 241
            aload 0 /* this */
            aload 3 /* directCall */
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotDeoptimized:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        32: .line 244
            aload 1 /* toInterpreterOnString */
            invokestatic org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotCompiled:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        33: .line 245
            aload 0 /* this */
            aload 1 /* toInterpreterOnString */
            invokevirtual org.graalvm.compiler.truffle.test.IndirectCallSiteTest.assertNotDeoptimized:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
        34: .line 246
            return
        end local 6 // int compilationThreshold
        end local 5 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget indirectCall
        end local 4 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget noOp
        end local 3 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget directCall
        end local 2 // java.lang.Object[] directArguments
        end local 1 // org.graalvm.compiler.truffle.runtime.OptimizedCallTarget toInterpreterOnString
        end local 0 // org.graalvm.compiler.truffle.test.IndirectCallSiteTest this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   35     0                   this  Lorg/graalvm/compiler/truffle/test/IndirectCallSiteTest;
            1   35     1  toInterpreterOnString  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            2   35     2        directArguments  [Ljava/lang/Object;
            3   35     3             directCall  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            4   35     4                   noOp  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            5   35     5           indirectCall  Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
            6   35     6   compilationThreshold  I
            7   11     7                      i  I
           12   16     7                      i  I
           21   25     7                      i  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "IndirectCallSiteTest.java"
NestMembers:
  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$1  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$2  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$3  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DirectlyCallsTargetWithArguments  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DummyTarget  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$IndirectCallTargetFromArgument  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$WritesToGlobalState
InnerClasses:
  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$1
  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$2
  org.graalvm.compiler.truffle.test.IndirectCallSiteTest$3
  abstract DeoptimizeAwareRootNode = org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DeoptimizeAwareRootNode of org.graalvm.compiler.truffle.test.IndirectCallSiteTest
  DirectlyCallsTargetWithArguments = org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DirectlyCallsTargetWithArguments of org.graalvm.compiler.truffle.test.IndirectCallSiteTest
  DummyTarget = org.graalvm.compiler.truffle.test.IndirectCallSiteTest$DummyTarget of org.graalvm.compiler.truffle.test.IndirectCallSiteTest
  IndirectCallTargetFromArgument = org.graalvm.compiler.truffle.test.IndirectCallSiteTest$IndirectCallTargetFromArgument of org.graalvm.compiler.truffle.test.IndirectCallSiteTest
  WritesToGlobalState = org.graalvm.compiler.truffle.test.IndirectCallSiteTest$WritesToGlobalState of org.graalvm.compiler.truffle.test.IndirectCallSiteTest