public class org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest extends org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest
  super_class: org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
{
  static jdk.vm.ci.code.stack.StackIntrospection stackIntrospection;
    descriptor: Ljdk/vm/ci/code/stack/StackIntrospection;
    flags: (0x0008) ACC_STATIC

  static volatile int v;
    descriptor: I
    flags: (0x0048) ACC_STATIC, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 45
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getStackIntrospection:()Ljdk/vm/ci/code/stack/StackIntrospection;
            putstatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.stackIntrospection:Ljdk/vm/ci/code/stack/StackIntrospection;
         1: .line 46
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
         0: .line 43
            aload 0 /* this */
            invokespecial org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest;

  public static void testSynchronizedSnippet(java.util.function.Function<java.lang.Void, java.lang.Void>);
    descriptor: (Ljava/util/function/Function;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.function.Function f
         0: .line 49
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            astore 1 /* a */
        start local 1 // java.lang.Object a
         1: .line 50
            aload 1 /* a */
            dup
            astore 2
            monitorenter
         2: .line 51
            aload 1 /* a */
            aload 1 /* a */
            aload 0 /* f */
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.forceFrameState:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            aload 1 /* a */
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.testOnStack:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 53
            aload 1 /* a */
            invokevirtual java.lang.Object.notify:()V
         4: .line 50
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: java.util.function.Function java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 55
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object a
        end local 0 // java.util.function.Function f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0     f  Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;
            1    9     1     a  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Signature: (Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;)V
    MethodParameters:
      Name  Flags
      f     

  public static void testSnippet(java.util.function.Function<java.lang.Void, java.lang.Void>);
    descriptor: (Ljava/util/function/Function;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.function.Function f
         0: .line 58
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            astore 1 /* a */
        start local 1 // java.lang.Object a
         1: .line 59
            aload 1 /* a */
            aload 1 /* a */
            aload 0 /* f */
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.forceFrameState:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            aload 1 /* a */
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.testOnStack:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 60
            return
        end local 1 // java.lang.Object a
        end local 0 // java.util.function.Function f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     f  Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;
            1    3     1     a  Ljava/lang/Object;
    Signature: (Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;)V
    MethodParameters:
      Name  Flags
      f     

  private static void testOnStack(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.Object a
        start local 1 // java.lang.Object a2
        start local 2 // java.lang.Object a3
         0: .line 63
            aload 0 /* a */
            aload 1 /* a2 */
            if_acmpne 1
            aload 0 /* a */
            aload 2 /* a3 */
            if_acmpeq 2
         1: .line 64
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
         2: .line 66
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object a3
        end local 1 // java.lang.Object a2
        end local 0 // java.lang.Object a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Ljava/lang/Object;
            0    3     1    a2  Ljava/lang/Object;
            0    3     2    a3  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     
      a2    
      a3    

  private static  forceFrameState(, java.util.function.Function<java.lang.Void, java.lang.Void>);
    descriptor: (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object a
        start local 1 // java.util.function.Function f
         0: .line 70
            getstatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.v:I
            iconst_1
            iadd
            putstatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.v:I
         1: .line 71
            aload 1 /* f */
            aconst_null
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 72
            aload 0 /* a */
            areturn
        end local 1 // java.util.function.Function f
        end local 0 // java.lang.Object a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Ljava/lang/Object;
            0    3     1     f  Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;
    Signature: (Ljava/lang/Object;Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;)Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     
      f     

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
         0: .line 75
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tTest cannot be resolved to a type\n\tAssume cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeInvisibleAnnotations: 
      Test()

  public void runSynchronized();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
         0: .line 82
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tTest cannot be resolved to a type\n\tAssume cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeInvisibleAnnotations: 
      Test()

  private void test(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
        start local 1 // java.lang.String name
         0: .line 90
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.getMethod:(Ljava/lang/String;)Ljava/lang/reflect/Method;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 2 /* method */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
         1: .line 91
            aload 2 /* method */
            invokedynamic apply(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest.lambda$0(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Void;)Ljava/lang/Void; (6)
                  (Ljava/lang/Void;)Ljava/lang/Void;
            astore 3 /* f */
        start local 3 // java.util.function.Function f
         2: .line 100
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/InstalledCode;
            astore 4 /* code */
        start local 4 // jdk.vm.ci.code.InstalledCode code
         3: .line 101
            aload 4 /* code */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* f */
            aastore
            invokevirtual jdk.vm.ci.code.InstalledCode.executeVarargs:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 102
            return
        end local 4 // jdk.vm.ci.code.InstalledCode code
        end local 3 // java.util.function.Function f
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest;
            0    5     1    name  Ljava/lang/String;
            1    5     2  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2    5     3       f  Ljava/util/function/Function<Ljava/lang/Void;Ljava/lang/Void;>;
            3    5     4    code  Ljdk/vm/ci/code/InstalledCode;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.Void lambda$0(jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.Void);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 1 // java.lang.Void o
         0: .line 92
            getstatic org.graalvm.compiler.hotspot.test.HotSpotStackIntrospectionTest.stackIntrospection:Ljdk/vm/ci/code/stack/StackIntrospection;
            aconst_null
            aconst_null
            iconst_0
            aload 0
            invokedynamic visitFrame(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/stack/InspectedFrameVisitor;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljdk/vm/ci/code/stack/InspectedFrame;)Ljava/lang/Object;
                  org/graalvm/compiler/hotspot/test/HotSpotStackIntrospectionTest.lambda$1(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/code/stack/InspectedFrame;)Ljava/lang/Object; (6)
                  (Ljdk/vm/ci/code/stack/InspectedFrame;)Ljava/lang/Object;
            invokeinterface jdk.vm.ci.code.stack.StackIntrospection.iterateFrames:([Ljdk/vm/ci/meta/ResolvedJavaMethod;[Ljdk/vm/ci/meta/ResolvedJavaMethod;ILjdk/vm/ci/code/stack/InspectedFrameVisitor;)Ljava/lang/Object;
            pop
         1: .line 98
            aconst_null
            areturn
        end local 1 // java.lang.Void o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     o  Ljava/lang/Void;

  private static java.lang.Object lambda$1(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.code.stack.InspectedFrame);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/code/stack/InspectedFrame;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.vm.ci.code.stack.InspectedFrame frame
         0: .line 93
            aload 1 /* frame */
            invokeinterface jdk.vm.ci.code.stack.InspectedFrame.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 0
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 94
            aload 1 /* frame */
            iconst_1
            invokeinterface jdk.vm.ci.code.stack.InspectedFrame.materializeVirtualObjects:(Z)V
         2: .line 96
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // jdk.vm.ci.code.stack.InspectedFrame frame
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     1  frame  Ljdk/vm/ci/code/stack/InspectedFrame;
}
SourceFile: "HotSpotStackIntrospectionTest.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles