public abstract class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode extends com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode implements com.oracle.truffle.api.instrumentation.InstrumentableNode, com.oracle.truffle.api.interop.TruffleObject
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
  super_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
{
  private static final java.lang.String THIS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "THIS"

  final com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children;
    descriptor: [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
    flags: (0x0010) ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
         0: .line 757
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode.<init>:()V
         1: .line 758
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
         2: .line 759
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;

  public void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[]);
    descriptor: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
         0: .line 761
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode.<init>:()V
         1: .line 762
            aload 0 /* this */
            aload 1 /* children */
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
         2: .line 763
            return
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    3     1  children  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
    MethodParameters:
          Name  Flags
      children  

  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.InstrumentationTestLanguage$InstrumentedNode this
         0: .line 767
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;

  public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 774
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Null.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$Null;
            astore 2 /* returnValue */
        start local 2 // java.lang.Object returnValue
         1: .line 775
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object top int int com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* child */
        start local 3 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode child
         3: .line 776
            aload 3 /* child */
            ifnull 7
         4: .line 777
            aload 3 /* child */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 7 /* value */
        start local 7 // java.lang.Object value
         5: .line 778
            aload 7 /* value */
            ifnull 7
            aload 7 /* value */
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Null.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$Null;
            if_acmpeq 7
         6: .line 779
            aload 7 /* value */
            astore 2 /* returnValue */
        end local 7 // java.lang.Object value
        end local 3 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode child
         7: .line 775
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 2
         9: .line 783
            aload 2 /* returnValue */
            areturn
        end local 2 // java.lang.Object returnValue
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0   10     1        frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   10     2  returnValue  Ljava/lang/Object;
            3    7     3        child  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            5    7     7        value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
      com.oracle.truffle.api.library.ExportMessage$Ignore()
    MethodParameters:
       Name  Flags
      frame  

  boolean hasMembers();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
         0: .line 788
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()

  final java.lang.Object getMembers(boolean);
    descriptor: (Z)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // boolean includeInternal
         0: .line 793
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode
            ifeq 2
         1: .line 794
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject
            dup
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "simpleName"
            aastore
            dup
            iconst_1
            ldc "constant"
            aastore
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject.<init>:([Ljava/lang/String;)V
            areturn
         2: .line 796
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject
            dup
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "simpleName"
            aastore
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject.<init>:([Ljava/lang/String;)V
            areturn
        end local 1 // boolean includeInternal
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    3     1  includeInternal  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
                 Name  Flags
      includeInternal  

  final boolean isMemberReadable(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // java.lang.String member
         0: .line 802
            iconst_1
            ireturn
        end local 1 // java.lang.String member
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    1     1  member  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
        Name  Flags
      member  

  java.lang.Object readMember(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // java.lang.String key
         0: .line 807
            aload 1 /* key */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 1
          -1431767203: 1
              default: 3
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "simpleName"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            goto 3
         2: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            areturn
         3: .line 811
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode
            ifeq 7
         4: .line 812
            aload 1 /* key */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 1
           -567811164: 5
              default: 7
          }
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode java.lang.String top java.lang.String
      StackMap stack:
         5: aload 3
            ldc "constant"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 7
         6: .line 814
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode.constant:Ljava/lang/Object;
            areturn
         7: .line 817
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode java.lang.String
      StackMap stack:
            aload 1 /* key */
            invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
            athrow
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    8     1   key  Ljava/lang/String;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
      Name  Flags
      key   

  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.InstrumentationTestLanguage$InstrumentedNode this
         0: .line 822
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tInstrumentedNodeWrapper 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.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
    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.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // java.lang.Class tag
         0: .line 827
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            if_acmpne 2
         1: .line 828
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode
            ireturn
         2: .line 829
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            if_acmpne 6
         3: .line 830
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionBodyNode
            ifne 5
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode
            ifeq 4
            aload 0 /* this */
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode.hasBodyNode:Z
            ifeq 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
         6: .line 831
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$CallTag;
            if_acmpne 9
         7: .line 832
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallNode
            ifne 8
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$RecursiveCallNode
            ifne 8
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallWithNode
            ifne 8
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_1
            ireturn
         9: .line 833
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            if_acmpne 11
        10: .line 834
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$StatementNode
            ireturn
        11: .line 835
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            if_acmpne 13
        12: .line 836
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ExpressionNode
            ireturn
        13: .line 837
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$TryBlockTag;
            if_acmpne 15
        14: .line 838
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryNode
            ireturn
        15: .line 839
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.LOOP:Ljava/lang/Class;
            if_acmpne 17
        16: .line 840
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode
            ireturn
        17: .line 841
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.BLOCK:Ljava/lang/Class;
            if_acmpne 19
        18: .line 842
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode
            ireturn
        19: .line 843
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.DEFINE:Ljava/lang/Class;
            if_acmpne 21
        20: .line 844
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineNode
            ireturn
        21: .line 845
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.CONSTANT:Ljava/lang/Class;
            if_acmpne 23
        22: .line 846
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode
            ireturn
        23: .line 848
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0   24     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 java.lang.Object getNodeObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
         0: .line 853
            aload 0 /* this */
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;

  public static boolean isInstance(com.oracle.truffle.api.interop.TruffleObject);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.interop.TruffleObject o
         0: .line 857
            aload 0 /* o */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
            ireturn
        end local 0 // com.oracle.truffle.api.interop.TruffleObject o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     o  Lcom/oracle/truffle/api/interop/TruffleObject;
    MethodParameters:
      Name  Flags
      o     

  final boolean hasScope(com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 864
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/Frame;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
       Name  Flags
      frame  

  final java.lang.Object getScope(com.oracle.truffle.api.frame.Frame, boolean);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;Z)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
        start local 2 // boolean nodeEnter
         0: .line 871
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode
            ifeq 9
         1: .line 874
            aload 1 /* frame */
            ifnull 7
         2: .line 875
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
            astore 3 /* arguments */
        start local 3 // java.lang.Object[] arguments
         3: .line 876
            aload 3 /* arguments */
            arraylength
            ifle 8
            aload 3 /* arguments */
            iconst_0
            aaload
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            ifeq 8
         4: .line 877
            aload 3 /* arguments */
            aload 3 /* arguments */
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 3 /* arguments */
         5: .line 878
            aload 3 /* arguments */
            iconst_0
            aload 3 /* arguments */
            iconst_0
            aaload
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg.thisElement:Ljava/lang/Object;
            aastore
         6: .line 880
            goto 8
        end local 3 // java.lang.Object[] arguments
         7: .line 881
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray java.lang.Object
            astore 3 /* arguments */
        start local 3 // java.lang.Object[] arguments
         8: .line 883
      StackMap locals: java.lang.Object[]
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest$TestAccessor.ACCESSOR:Lcom/oracle/truffle/api/instrumentation/test/AbstractInstrumentationTest$TestAccessor;
            invokevirtual com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest$TestAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 3 /* arguments */
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getDefaultArguments:([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object[] arguments
         9: .line 885
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest$TestAccessor.ACCESSOR:Lcom/oracle/truffle/api/instrumentation/test/AbstractInstrumentationTest$TestAccessor;
            invokevirtual com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest$TestAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            aload 1 /* frame */
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getDefaultVariables:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* variables */
        start local 3 // java.lang.Object variables
        10: .line 887
            aload 1 /* frame */
            ifnull 13
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
            dup
            astore 4 /* arguments */
        start local 4 // java.lang.Object[] arguments
        11: ifnull 13
            aload 4 /* arguments */
            arraylength
            ifle 13
            aload 4 /* arguments */
            iconst_0
            aaload
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            ifeq 13
        12: .line 888
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode$VariablesWithThis
            dup
            aload 3 /* variables */
            aload 4 /* arguments */
            iconst_0
            aaload
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg.thisElement:Ljava/lang/Object;
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode$VariablesWithThis.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            astore 3 /* variables */
        end local 4 // java.lang.Object[] arguments
        13: .line 890
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* variables */
            areturn
        end local 3 // java.lang.Object variables
        end local 2 // boolean nodeEnter
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0   14     1      frame  Lcom/oracle/truffle/api/frame/Frame;
            0   14     2  nodeEnter  Z
            3    7     3  arguments  [Ljava/lang/Object;
            8    9     3  arguments  [Ljava/lang/Object;
           10   14     3  variables  Ljava/lang/Object;
           11   13     4  arguments  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      frame      
      nodeEnter  

  final boolean hasReceiverMember(com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 896
            aload 1 /* frame */
            ifnonnull 2
         1: .line 897
            iconst_0
            ireturn
         2: .line 899
      StackMap locals:
      StackMap stack:
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
            astore 2 /* args */
        start local 2 // java.lang.Object[] args
         3: .line 900
            aload 2 /* args */
            arraylength
            ifle 4
            aload 2 /* args */
            iconst_0
            aaload
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: java.lang.Object[]
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // java.lang.Object[] args
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    5     1  frame  Lcom/oracle/truffle/api/frame/Frame;
            3    5     2   args  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
       Name  Flags
      frame  

  final java.lang.Object getReceiverMember(com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 905
            aload 1 /* frame */
            ifnull 4
         1: .line 906
            aload 1 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
            astore 2 /* args */
        start local 2 // java.lang.Object[] args
         2: .line 907
            aload 2 /* args */
            arraylength
            ifle 4
            aload 2 /* args */
            iconst_0
            aaload
            instanceof com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg
            ifeq 4
         3: .line 908
            ldc "THIS"
            areturn
        end local 2 // java.lang.Object[] args
         4: .line 911
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            athrow
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    5     1  frame  Lcom/oracle/truffle/api/frame/Frame;
            2    4     2   args  [Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
       Name  Flags
      frame  

  final boolean hasRootInstance(com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 916
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/Frame;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
    MethodParameters:
       Name  Flags
      frame  

  final java.lang.Object getRootInstance(com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
        start local 1 // com.oracle.truffle.api.frame.Frame frame
         0: .line 922
            aload 0 /* this */
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.lookupContextReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            astore 2 /* context */
        start local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
         1: .line 923
            aload 2 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.callFunctions:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$FunctionsObject;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionsObject.findFunction:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/TruffleObject;
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 1 // com.oracle.truffle.api.frame.Frame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$InstrumentedNode;
            0    2     1    frame  Lcom/oracle/truffle/api/frame/Frame;
            1    2     2  context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportMessage()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      frame  
}
SourceFile: "InstrumentationTestLanguage.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
  public final CallTag = com.oracle.truffle.api.instrumentation.StandardTags$CallTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final TryBlockTag = com.oracle.truffle.api.instrumentation.StandardTags$TryBlockTag of com.oracle.truffle.api.instrumentation.StandardTags
  final TestAccessor = com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest$TestAccessor of com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest
  public abstract BaseNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  BlockNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private CallNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private CallWithNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallWithNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private ConstantNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  DefineNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  ExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final FunctionBodyNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionBodyNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final FunctionRootNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  FunctionsObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionsObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public abstract InstrumentedNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final VariablesWithThis = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode$VariablesWithThis of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode
  KeysObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public final Null = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Null of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private RecursiveCallNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$RecursiveCallNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  StatementNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$StatementNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final ThisArg = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  TryNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final WhileLoopNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public abstract Repeat = com.oracle.truffle.api.library.ExportLibrary$Repeat of com.oracle.truffle.api.library.ExportLibrary
  public abstract Ignore = com.oracle.truffle.api.library.ExportMessage$Ignore of com.oracle.truffle.api.library.ExportMessage
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.library.ExportLibrary$Repeat(value = {com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;), com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/NodeLibrary;)})
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.instrumentation.GenerateWrapper()