public class org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest extends org.graalvm.compiler.truffle.test.PartialEvaluationTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  super_class: org.graalvm.compiler.truffle.test.PartialEvaluationTest
{
  private static final java.lang.String VAR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "var"

  private com.oracle.truffle.api.test.polyglot.ProxyLanguage language;
    descriptor: Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
    flags: (0x0002) ACC_PRIVATE

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

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
         0: .line 74
            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.compiler.truffle.test.NodeLibraryCompilerTest.setupContext:(Lorg/graalvm/polyglot/Context$Builder;)V
         1: .line 75
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.getContext:()Lorg/graalvm/polyglot/Context;
            ldc "proxyLanguage"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         2: .line 76
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.getContext:()Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokestatic org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.doInstrument:(Lorg/graalvm/polyglot/Engine;)V
         3: .line 77
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.getCurrentLanguage:()Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            putfield org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.language:Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
         4: .line 78
            return
        end local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void testScopeRead();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
         0: .line 82
            new com.oracle.truffle.api.frame.FrameDescriptor
            dup
            invokespecial com.oracle.truffle.api.frame.FrameDescriptor.<init>:()V
            astore 1 /* frameDescriptor */
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
         1: .line 83
            aload 1 /* frameDescriptor */
            ldc "var"
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.addFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
            astore 2 /* varSlot */
        start local 2 // com.oracle.truffle.api.frame.FrameSlot varSlot
         2: .line 84
            aload 1 /* frameDescriptor */
            aload 2 /* varSlot */
            getstatic com.oracle.truffle.api.frame.FrameSlotKind.Long:Lcom/oracle/truffle/api/frame/FrameSlotKind;
            invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.setFrameSlotKind:(Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/api/frame/FrameSlotKind;)V
         3: .line 85
            aload 0 /* this */
            aload 1 /* frameDescriptor */
            new org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarNode
            dup
            aload 2 /* varSlot */
            invokespecial org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarNode.<init>:(Lcom/oracle/truffle/api/frame/FrameSlot;)V
            aload 2 /* varSlot */
            iconst_0
            invokevirtual org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.createRoot:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode;Lcom/oracle/truffle/api/frame/FrameSlot;Z)Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* expectedRootNode */
        start local 3 // com.oracle.truffle.api.nodes.RootNode expectedRootNode
         4: .line 86
            aload 0 /* this */
            aload 1 /* frameDescriptor */
            new org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$DummyInstrumentableNode
            dup
            aload 2 /* varSlot */
            invokespecial org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$DummyInstrumentableNode.<init>:(Lcom/oracle/truffle/api/frame/FrameSlot;)V
            aload 2 /* varSlot */
            iconst_1
            invokevirtual org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.createRoot:(Lcom/oracle/truffle/api/frame/FrameDescriptor;Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode;Lcom/oracle/truffle/api/frame/FrameSlot;Z)Lcom/oracle/truffle/api/nodes/RootNode;
            astore 4 /* instrumentedRootNode */
        start local 4 // com.oracle.truffle.api.nodes.RootNode instrumentedRootNode
         5: .line 87
            aload 0 /* this */
            aload 3 /* expectedRootNode */
            aload 4 /* instrumentedRootNode */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.assertPartialEvalEquals:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/RootNode;[Ljava/lang/Object;)V
         6: .line 88
            return
        end local 4 // com.oracle.truffle.api.nodes.RootNode instrumentedRootNode
        end local 3 // com.oracle.truffle.api.nodes.RootNode expectedRootNode
        end local 2 // com.oracle.truffle.api.frame.FrameSlot varSlot
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest;
            1    7     1       frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            2    7     2               varSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            4    7     3      expectedRootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            5    7     4  instrumentedRootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private com.oracle.truffle.api.nodes.RootNode createRoot(com.oracle.truffle.api.frame.FrameDescriptor, org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode, com.oracle.truffle.api.frame.FrameSlot, boolean);
    descriptor: (Lcom/oracle/truffle/api/frame/FrameDescriptor;Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode;Lcom/oracle/truffle/api/frame/FrameSlot;Z)Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
        start local 1 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        start local 2 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode node
        start local 3 // com.oracle.truffle.api.frame.FrameSlot varSlot
        start local 4 // boolean allowInstrumentation
         0: .line 91
            new org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest.language:Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            aload 1 /* frameDescriptor */
            aload 2 /* node */
            iload 4 /* allowInstrumentation */
            aload 3 /* varSlot */
            invokespecial org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$1.<init>:(Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest;Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/frame/FrameDescriptor;Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode;ZLcom/oracle/truffle/api/frame/FrameSlot;)V
            areturn
        end local 4 // boolean allowInstrumentation
        end local 3 // com.oracle.truffle.api.frame.FrameSlot varSlot
        end local 2 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode node
        end local 1 // com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor
        end local 0 // org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0                  this  Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest;
            0    1     1       frameDescriptor  Lcom/oracle/truffle/api/frame/FrameDescriptor;
            0    1     2                  node  Lorg/graalvm/compiler/truffle/test/NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode;
            0    1     3               varSlot  Lcom/oracle/truffle/api/frame/FrameSlot;
            0    1     4  allowInstrumentation  Z
    MethodParameters:
                      Name  Flags
      frameDescriptor       
      node                  
      varSlot               
      allowInstrumentation  

  private static void doInstrument(org.graalvm.polyglot.Engine);
    descriptor: (Lorg/graalvm/polyglot/Engine;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.polyglot.Engine engine
         0: .line 254
            new com.oracle.truffle.api.test.polyglot.ProxyInstrument
            dup
            invokespecial com.oracle.truffle.api.test.polyglot.ProxyInstrument.<init>:()V
            astore 1 /* instrument */
        start local 1 // com.oracle.truffle.api.test.polyglot.ProxyInstrument instrument
         1: .line 255
            aload 1 /* instrument */
            invokestatic com.oracle.truffle.api.test.polyglot.ProxyInstrument.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyInstrument;)Lcom/oracle/truffle/api/test/polyglot/ProxyInstrument;
            pop
         2: .line 256
            aload 1 /* instrument */
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  org/graalvm/compiler/truffle/test/NodeLibraryCompilerTest.lambda$0(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V (6)
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
            invokevirtual com.oracle.truffle.api.test.polyglot.ProxyInstrument.setOnCreate:(Ljava/util/function/Consumer;)V
         3: .line 261
            aload 0 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "proxyInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/api/test/polyglot/ProxyInstrument$Initialize;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            pop
         4: .line 262
            return
        end local 1 // com.oracle.truffle.api.test.polyglot.ProxyInstrument instrument
        end local 0 // org.graalvm.polyglot.Engine engine
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      engine  Lorg/graalvm/polyglot/Engine;
            1    5     1  instrument  Lcom/oracle/truffle/api/test/polyglot/ProxyInstrument;
    MethodParameters:
        Name  Flags
      engine  

  private static void lambda$0(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
         0: .line 257
            aload 0 /* env */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
         1: .line 258
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 259
            invokedynamic create()Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;
              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:
                  (Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
                  org/graalvm/compiler/truffle/test/NodeLibraryCompilerTest.lambda$1(Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode; (6)
                  (Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
         3: .line 257
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventFactory:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         4: .line 260
            return
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  private static com.oracle.truffle.api.instrumentation.ExecutionEventNode lambda$1(com.oracle.truffle.api.instrumentation.EventContext);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventContext context
         0: .line 259
            new org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarExecNode
            dup
            aload 0 /* context */
            invokespecial org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarExecNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;)V
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.EventContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/api/instrumentation/EventContext;
}
SourceFile: "NodeLibraryCompilerTest.java"
NestMembers:
  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$1  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$DummyInstrumentableNode  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarExecNode  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarNode  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ScopeVariables
InnerClasses:
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  public abstract Initialize = com.oracle.truffle.api.test.polyglot.ProxyInstrument$Initialize of com.oracle.truffle.api.test.polyglot.ProxyInstrument
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$1
  final DummyInstrumentableNode = org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$DummyInstrumentableNode of org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  abstract InstrumentationCompilerTestScopeNode = org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$InstrumentationCompilerTestScopeNode of org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  private final ReadVarExecNode = org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarExecNode of org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  final ReadVarNode = org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ReadVarNode of org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  final ScopeVariables = org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest$ScopeVariables of org.graalvm.compiler.truffle.test.NodeLibraryCompilerTest
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context