class com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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.FineGrainedAccessTest$1$1
  super_class: com.oracle.truffle.api.instrumentation.ExecutionEventNode
{
  final com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1 this$1;
    descriptor: Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$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.FineGrainedAccessTest$1, com.oracle.truffle.api.instrumentation.EventContext);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$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.FineGrainedAccessTest$1$1 this
         0: .line 281
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            aload 0 /* this */
            aload 2
            putfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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.FineGrainedAccessTest$1$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1$1;
    MethodParameters:
        Name  Flags
      this$0  final
      val$c   final

  public void onEnter(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 290
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.isInternal:()Z
            ifeq 2
         1: .line 291
            return
         2: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.isInternal:()Z
            ifne 4
         3: .line 300
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            iconst_1
            putfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
         4: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.inputEvents:Ljava/util/Deque;
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         5: .line 303
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.ENTER:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 304
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.stack:Ljava/util/Deque;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         7: .line 305
            return
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1$1;
            0    8     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  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=11, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // com.oracle.truffle.api.instrumentation.EventContext inputContext
        start local 3 // int inputIndex
        start local 4 // java.lang.Object inputValue
         0: .line 309
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
            ifne 2
         1: .line 310
            return
         2: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* frame */
            iload 3 /* inputIndex */
            aload 4 /* inputValue */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.saveInputValue:(Lcom/oracle/truffle/api/frame/VirtualFrame;ILjava/lang/Object;)V
         3: .line 313
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.INPUT:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            aload 4 /* inputValue */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* inputIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 314
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.inputEvents:Ljava/util/Deque;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.inputEvents:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         5: .line 316
            return
        end local 4 // java.lang.Object inputValue
        end local 3 // int inputIndex
        end local 2 // com.oracle.truffle.api.instrumentation.EventContext inputContext
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1$1;
            0    6     1         frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2  inputContext  Lcom/oracle/truffle/api/instrumentation/EventContext;
            0    6     3    inputIndex  I
            0    6     4    inputValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      frame         
      inputContext  
      inputIndex    
      inputValue    

  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=10, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object result
         0: .line 320
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
            ifne 2
         1: .line 321
            return
         2: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.getSavedInputValues:(Lcom/oracle/truffle/api/frame/VirtualFrame;)[Ljava/lang/Object;
            astore 3 /* values */
        start local 3 // java.lang.Object[] values
         3: .line 324
            aload 3 /* values */
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: java.lang.Object[]
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 326
            aload 3 /* values */
            arraylength
            ifle 12
         7: .line 327
            aload 3 /* values */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 4 /* newValues */
        start local 4 // java.lang.Object[] newValues
         8: .line 328
            aload 3 /* values */
            iconst_0
            aload 4 /* newValues */
            iconst_1
            aload 3 /* values */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 329
            aload 4 /* newValues */
            iconst_0
            aload 2 /* result */
            aastore
        10: .line 330
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.RETURN:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            aload 4 /* newValues */
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Object[] newValues
        11: .line 331
            goto 13
        12: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.RETURN:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* result */
            aastore
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
        14: .line 335
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.inputEvents:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* expectedEvents */
        start local 4 // int expectedEvents
        15: .line 336
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.hasTag:(Ljava/lang/Class;)Z
            ifne 18
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            invokevirtual com.oracle.truffle.api.instrumentation.EventContext.hasTag:(Ljava/lang/Class;)Z
            ifne 18
        16: .line 341
            iload 4 /* expectedEvents */
            aload 3 /* values */
            arraylength
            if_icmpeq 18
        17: .line 342
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.UNEXPECTED_STATE:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            new java.lang.StringBuilder
            dup
            iload 4 /* expectedEvents */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* values */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 345
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int expectedEvents
        end local 3 // java.lang.Object[] values
        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.FineGrainedAccessTest$1$1 this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1$1;
            0   19     1           frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   19     2          result  Ljava/lang/Object;
            3   19     3          values  [Ljava/lang/Object;
            8   11     4       newValues  [Ljava/lang/Object;
           15   19     4  expectedEvents  I
    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=8, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1 this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Throwable exception
         0: .line 349
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.collecting:Z
            ifne 2
         1: .line 350
            return
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.events:Ljava/util/List;
            new com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.val$c:Lcom/oracle/truffle/api/instrumentation/EventContext;
            getstatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$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
            aload 2 /* exception */
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.<init>:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event$Kind;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Object;[Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 353
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            invokestatic com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.access$0:(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
         4: .line 354
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1.this$1:Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1;
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.inputEvents:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            pop
         5: .line 355
            return
        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.FineGrainedAccessTest$1$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$1$1;
            0    6     1      frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0    6     2  exception  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      frame      
      exception  
}
SourceFile: "FineGrainedAccessTest.java"
EnclosingMethod: com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1.create:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
NestHost: com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
InnerClasses:
  public final ControlFlowBranchTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ControlFlowRootTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1
  com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$1$1
  protected Event = com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event of com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
  final Kind = com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event$Kind of com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event