public class com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode extends com.oracle.truffle.api.nodes.Node implements com.oracle.truffle.api.instrumentation.InstrumentableNode
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode
  super_class: com.oracle.truffle.api.nodes.Node
{
  private final com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage language;
    descriptor: Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.source.Source source;
    descriptor: Lcom/oracle/truffle/api/source/Source;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.api.CallTarget statementCall;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0002) ACC_PRIVATE

  void <init>(com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage, com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;Lcom/oracle/truffle/api/source/Source;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage language
        start local 2 // com.oracle.truffle.api.source.Source source
         0: .line 259
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
         1: .line 260
            aload 0 /* this */
            aload 1 /* language */
            putfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
         2: .line 261
            aload 0 /* this */
            aload 2 /* source */
            putfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
         3: .line 262
            return
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage language
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
            0    4     1  language  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
            0    4     2    source  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
          Name  Flags
      language  
      source    

  void <init>(com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode copy
         0: .line 264
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
         1: .line 265
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
            putfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
         2: .line 266
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
            putfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
         3: .line 267
            return
        end local 1 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode copy
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
            0    4     1  copy  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
    MethodParameters:
      Name  Flags
      copy  

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/CharSequence;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.CharSequence code
         0: .line 270
            aload 2 /* code */
            invokestatic com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.toUpper:(Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.CharSequence code
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    1     2   code  Ljava/lang/CharSequence;
    MethodParameters:
       Name  Flags
      frame  
      code   

  private static java.lang.String toUpper(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.CharSequence code
         0: .line 275
            aload 0 /* code */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.CharSequence code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  code  Ljava/lang/CharSequence;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      code  

  public boolean isInstrumentable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
         0: .line 280
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;

  public com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode createWrapper(com.oracle.truffle.api.instrumentation.ProbeNode);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ProbeNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
         0: .line 285
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tStatementNodeWrapper cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
    MethodParameters:
       Name  Flags
      probe  

  public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
        start local 1 // java.lang.Class tag
         0: .line 290
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
            0    1     1   tag  Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
    MethodParameters:
      Name  Flags
      tag   

  public com.oracle.truffle.api.source.SourceSection getSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
         0: .line 295
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
            ifnull 2
         1: .line 296
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
            iconst_1
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(I)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
         2: .line 298
      StackMap locals:
      StackMap stack:
            ldc "truffle-locking-test-language"
            ldc ""
            ldc "materialized"
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.createUnavailableSection:()Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;

  public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
        start local 1 // java.util.Set materializedTags
         0: .line 304
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.statementCall:Lcom/oracle/truffle/api/CallTarget;
            ifnonnull 10
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
            ifnull 10
         1: .line 305
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage.materializationLatch:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         2: .line 306
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.source:Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            astore 2 /* sourceCharacters */
        start local 2 // java.lang.CharSequence sourceCharacters
         3: .line 307
            new com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
            aload 2 /* sourceCharacters */
            invokespecial com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode$1.<init>:(Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/CharSequence;)V
            astore 3 /* codeExecRoot */
        start local 3 // com.oracle.truffle.api.nodes.RootNode codeExecRoot
         4: .line 322
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.language:Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage;
            getfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage.lock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         5: .line 323
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 3 /* codeExecRoot */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            putfield com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode.statementCall:Lcom/oracle/truffle/api/CallTarget;
         6: .line 322
            aload 4
            monitorexit
         7: goto 10
      StackMap locals: com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode java.util.Set java.lang.CharSequence com.oracle.truffle.api.nodes.RootNode java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        end local 3 // com.oracle.truffle.api.nodes.RootNode codeExecRoot
        end local 2 // java.lang.CharSequence sourceCharacters
        10: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lcom/oracle/truffle/api/instrumentation/test/DeadlockTest$LockingLanguage$StatementNode;
            0   11     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            3   10     2  sourceCharacters  Ljava/lang/CharSequence;
            4   10     3      codeExecRoot  Lcom/oracle/truffle/api/nodes/RootNode;
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    MethodParameters:
                  Name  Flags
      materializedTags  
}
SourceFile: "DeadlockTest.java"
NestHost: com.oracle.truffle.api.instrumentation.test.DeadlockTest
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public LockingLanguage = com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage of com.oracle.truffle.api.instrumentation.test.DeadlockTest
  public StatementNode = com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode of com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage
  com.oracle.truffle.api.instrumentation.test.DeadlockTest$LockingLanguage$StatementNode$1
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.instrumentation.GenerateWrapper()