class com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 extends com.oracle.truffle.api.instrumentation.ExecutionEventNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1
  super_class: com.oracle.truffle.api.instrumentation.ExecutionEventNode
{
  final com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1 this$1;
    descriptor: Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final com.oracle.truffle.api.instrumentation.EventContext val$c;
    descriptor: Lcom/oracle/truffle/api/instrumentation/EventContext;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1, com.oracle.truffle.api.instrumentation.EventContext);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;Lcom/oracle/truffle/api/instrumentation/EventContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
         0: .line 117
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
            aload 0 /* this */
            aload 2
            putfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.instrumentation.ExecutionEventNode.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
    MethodParameters:
        Name  Flags
      this$0  final
      val$c   final

  private void log(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // java.lang.String s
         0: .line 120
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
            istore 3 /* d */
        start local 3 // int d
         2: .line 122
            goto 4
         3: .line 123
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* sb */
            ldc "    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 122
      StackMap locals:
      StackMap stack:
            iload 3 /* d */
            iinc 3 /* d */ -1
            ifgt 3
         5: .line 125
            aload 2 /* sb */
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 126
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 127
            return
        end local 3 // int d
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String s
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    8     1     s  Ljava/lang/String;
            1    8     2    sb  Ljava/lang/StringBuilder;
            2    8     3     d  I
    MethodParameters:
      Name  Flags
      s     

  private java.lang.String getValueDescription(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // java.lang.Object inputValue
         0: .line 130
            aload 1 /* inputValue */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 131
            new java.lang.StringBuilder
            dup
            ldc "JSFunction:'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* inputValue */
            checkcast com.oracle.truffle.api.object.DynamicObject
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getName:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* inputValue */
            ifnull 3
            aload 1 /* inputValue */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc "null"
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
        end local 1 // java.lang.Object inputValue
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    5     1  inputValue  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      inputValue  

  protected void onInputValue(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.EventContext, int, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventContext;ILjava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // com.oracle.truffle.api.instrumentation.EventContext i
        start local 3 // int inputIndex
        start local 4 // java.lang.Object inputValue
         0: .line 138
            ldc "%-7s|tag: %-20s @ %-20s|val: %-25s|from: %-20s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            new java.lang.StringBuilder
            dup
            ldc "IN "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iconst_1
            iload 3 /* inputIndex */
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getInputCount:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         1: .line 139
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.getTagNames:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         2: .line 140
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            aload 4 /* inputValue */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getValueDescription:(Ljava/lang/Object;)Ljava/lang/String;
            aastore
            dup
            iconst_4
            aload 2 /* i */
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
         3: .line 138
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* format */
        start local 5 // java.lang.String format
         4: .line 141
            aload 0 /* this */
            aload 5 /* format */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.log:(Ljava/lang/String;)V
         5: .line 142
            return
        end local 5 // java.lang.String format
        end local 4 // java.lang.Object inputValue
        end local 3 // int inputIndex
        end local 2 // com.oracle.truffle.api.instrumentation.EventContext i
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    6     1       frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2           i  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0    6     3  inputIndex  I
            0    6     4  inputValue  Ljava/lang/Object;
            4    6     5      format  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      frame       
      i           
      inputIndex  
      inputValue  

  public void onEnter(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 146
            ldc "%-7s|tag: %-20s @ %-20s |attr: %-20s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "ENTER"
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.getTagNames:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         1: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributesDescription:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Ljava/lang/String;
            aastore
         2: .line 146
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* format */
        start local 2 // java.lang.String format
         3: .line 148
            aload 0 /* this */
            aload 2 /* format */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.log:(Ljava/lang/String;)V
         4: .line 149
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
            dup
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
            iconst_1
            iadd
            putfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
         5: .line 150
            return
        end local 2 // java.lang.String format
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    6     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            3    6     2  format  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      frame  

  protected void onReturnValue(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object result
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
            dup
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
            iconst_1
            isub
            putfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
         1: .line 155
            ldc "%-7s|tag: %-20s @ %-20s |rval: %-20s |attr: %-20s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "RETURN"
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.getTagNames:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         2: .line 156
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 2 /* result */
            aastore
            dup
            iconst_4
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributesDescription:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Ljava/lang/String;
            aastore
         3: .line 155
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* format */
        start local 3 // java.lang.String format
         4: .line 157
            aload 0 /* this */
            aload 3 /* format */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.log:(Ljava/lang/String;)V
         5: .line 158
            return
        end local 3 // java.lang.String format
        end local 2 // java.lang.Object result
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    6     1   frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2  result  Ljava/lang/Object;
            4    6     3  format  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      frame   
      result  

  protected void onReturnExceptional(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Throwable exception
         0: .line 162
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1;
            dup
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
            iconst_1
            isub
            putfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.depth:I
         1: .line 163
            ldc "%-7s|tag: %-20s @ %-20s |rval: %-20s |attr: %-20s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "RET-EXC"
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.getTagNames:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         2: .line 164
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 2 /* exception */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributesDescription:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Ljava/lang/String;
            aastore
         3: .line 163
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* format */
        start local 3 // java.lang.String format
         4: .line 165
            aload 0 /* this */
            aload 3 /* format */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.log:(Ljava/lang/String;)V
         5: .line 166
            return
        end local 3 // java.lang.String format
        end local 2 // java.lang.Throwable exception
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    6     1      frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2  exception  Ljava/lang/Throwable;
            4    6     3     format  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      frame      
      exception  

  private java.lang.String getAttributeFrom(com.oracle.truffle.api.instrumentation.EventContext, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext cx
        start local 2 // java.lang.String name
         0: .line 170
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            aload 1 /* cx */
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.getNodeObject:()Ljava/lang/Object;
            aload 2 /* name */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
         1: areturn
         2: .line 171
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.InteropException
            astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.InteropException e
         3: .line 172
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // com.oracle.truffle.api.interop.InteropException e
        end local 2 // java.lang.String name
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext cx
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0    4     1    cx  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0    4     2  name  Ljava/lang/String;
            3    4     3     e  Lcom/oracle/truffle/api/interop/InteropException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.interop.UnknownIdentifierException
           0     1       2  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
      Name  Flags
      cx    
      name  

  private java.lang.String getAttributesDescription(com.oracle.truffle.api.instrumentation.EventContext);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
        start local 1 // com.oracle.truffle.api.instrumentation.EventContext cx
         0: .line 177
            ldc ""
            astore 2 /* extra */
        start local 2 // java.lang.String extra
         1: .line 178
            aload 1 /* cx */
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.JavaScriptNode
            astore 3 /* n */
        start local 3 // com.oracle.truffle.js.nodes.JavaScriptNode n
         2: .line 179
            aload 3 /* n */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$BuiltinRootTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 5
         3: .line 180
            aload 0 /* this */
            aload 1 /* cx */
            ldc "name"
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributeFrom:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* tagAttribute */
        start local 4 // java.lang.String tagAttribute
         4: .line 181
            new java.lang.StringBuilder
            dup
            aload 2 /* extra */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tagAttribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* extra */
        end local 4 // java.lang.String tagAttribute
         5: .line 183
      StackMap locals: java.lang.String com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 3 /* n */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadPropertyTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 8
         6: .line 184
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* cx */
            ldc "key"
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributeFrom:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* tagAttribute */
        start local 4 // java.lang.String tagAttribute
         7: .line 185
            new java.lang.StringBuilder
            dup
            aload 2 /* extra */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tagAttribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* extra */
        end local 4 // java.lang.String tagAttribute
         8: .line 187
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadVariableTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 11
         9: .line 188
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* cx */
            ldc "name"
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributeFrom:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* tagAttribute */
        start local 4 // java.lang.String tagAttribute
        10: .line 189
            new java.lang.StringBuilder
            dup
            aload 2 /* extra */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tagAttribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* extra */
        end local 4 // java.lang.String tagAttribute
        11: .line 191
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WritePropertyTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 14
        12: .line 192
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* cx */
            ldc "key"
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributeFrom:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* tagAttribute */
        start local 4 // java.lang.String tagAttribute
        13: .line 193
            new java.lang.StringBuilder
            dup
            aload 2 /* extra */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tagAttribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* extra */
        end local 4 // java.lang.String tagAttribute
        14: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* n */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WriteVariableTag;
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
            ifeq 17
        15: .line 196
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* cx */
            ldc "name"
            invokevirtual com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1.getAttributeFrom:(Lcom/oracle/truffle/api/instrumentation/EventContext;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* tagAttribute */
        start local 4 // java.lang.String tagAttribute
        16: .line 197
            new java.lang.StringBuilder
            dup
            aload 2 /* extra */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* tagAttribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* extra */
        end local 4 // java.lang.String tagAttribute
        17: .line 199
      StackMap locals:
      StackMap stack:
            aload 2 /* extra */
            areturn
        end local 3 // com.oracle.truffle.js.nodes.JavaScriptNode n
        end local 2 // java.lang.String extra
        end local 1 // com.oracle.truffle.api.instrumentation.EventContext cx
        end local 0 // com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lcom/oracle/truffle/js/test/instrumentation/FullExecutionTracerInstrument$1$1;
            0   18     1            cx  Lcom/oracle/truffle/api/instrumentation/EventContext;
            1   18     2         extra  Ljava/lang/String;
            2   18     3             n  Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            4    5     4  tagAttribute  Ljava/lang/String;
            7    8     4  tagAttribute  Ljava/lang/String;
           10   11     4  tagAttribute  Ljava/lang/String;
           13   14     4  tagAttribute  Ljava/lang/String;
           16   17     4  tagAttribute  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cx    
}
SourceFile: "FullExecutionTracerInstrument.java"
EnclosingMethod: com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1.create:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
NestHost: com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument
InnerClasses:
  public final BuiltinRootTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$BuiltinRootTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ReadPropertyTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ReadPropertyTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ReadVariableTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ReadVariableTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final WritePropertyTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$WritePropertyTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final WriteVariableTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$WriteVariableTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1
  com.oracle.truffle.js.test.instrumentation.FullExecutionTracerInstrument$1$1