public class com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest extends com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest
  super_class: com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 70
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;

  public void testNoDoubleMaterializationReadElementNode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 73
            aload 0 /* this */
            ldc "var a = [1]; a[0];"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalAllTags:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 75
            aload 0 /* this */
            ldc "a"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.assertGlobalArrayLiteralDeclaration:(Ljava/lang/String;)V
         2: .line 77
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* readElementNodeList */
        start local 2 // java.util.List readElementNodeList
         3: .line 78
            aload 0 /* this */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationReadElementNodeCheck:(Ljava/util/List;)V
         4: .line 79
            aload 2 /* readElementNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 81
            new com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener
            dup
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.<init>:([Ljava/lang/Class;)V
            astore 3 /* listener */
        start local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
         6: .line 82
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            getstatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.ANY:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 3 /* listener */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         7: .line 84
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
         8: .line 86
            aload 0 /* this */
            ldc "a"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.assertGlobalArrayLiteralDeclaration:(Ljava/lang/String;)V
         9: .line 88
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* readElementNodeList2 */
        start local 4 // java.util.List readElementNodeList2
        10: .line 89
            aload 0 /* this */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationReadElementNodeCheck:(Ljava/util/List;)V
        11: .line 90
            aload 4 /* readElementNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        12: .line 92
            aload 3 /* listener */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        13: .line 93
            aload 3 /* listener */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        14: .line 94
            aload 3 /* listener */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        15: .line 95
            aload 3 /* listener */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        16: .line 97
            aload 2 /* readElementNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.getIndexNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        17: .line 98
            aload 2 /* readElementNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.getTarget:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        18: .line 99
            return
        end local 4 // java.util.List readElementNodeList2
        end local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        end local 2 // java.util.List readElementNodeList
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   19     0                  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1   19     1                source  Lorg/graalvm/polyglot/Source;
            3   19     2   readElementNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
            6   19     3              listener  Lcom/oracle/truffle/js/test/instrumentation/InstrumentedNodesExecutionEventListener;
           10   19     4  readElementNodeList2  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testNoDoubleMaterializationReadElementNodeCheck(java.util.List<com.oracle.truffle.js.nodes.access.ReadElementNode>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.util.List readElementNodeList
         0: .line 102
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aload 0 /* this */
            aload 1 /* readElementNodeList */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;Ljava/util/List;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$0(Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 109
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 110
            return
        end local 1 // java.util.List readElementNodeList
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1  readElementNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;)V
    MethodParameters:
                     Name  Flags
      readElementNodeList  

  public void testNoDoubleMaterializationReadElementNodeNoSourceSectionTargetAndIndex();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 114
            aload 0 /* this */
            ldc "var u=[2,4,6]; var p = 1; u[p] -= 42"
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithTag:(Ljava/lang/String;Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 116
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* readElementNodeList */
        start local 2 // java.util.List readElementNodeList
         2: .line 117
            aload 0 /* this */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationReadElementNodeNoSourceSectionTargetAndIndexCheck:(Ljava/util/List;)V
         3: .line 118
            aload 2 /* readElementNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 120
            new com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener
            dup
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.<init>:([Ljava/lang/Class;)V
            astore 3 /* listener */
        start local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
         5: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 3 /* listener */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         6: .line 123
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
         7: .line 125
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* readElementNodeList2 */
        start local 4 // java.util.List readElementNodeList2
         8: .line 126
            aload 0 /* this */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationReadElementNodeNoSourceSectionTargetAndIndexCheck:(Ljava/util/List;)V
         9: .line 127
            aload 4 /* readElementNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 129
            aload 3 /* listener */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        11: .line 130
            aload 3 /* listener */
            aload 2 /* readElementNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        12: .line 132
            aload 3 /* listener */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        13: .line 133
            aload 3 /* listener */
            aload 4 /* readElementNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        14: .line 135
            aload 2 /* readElementNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.getIndexNode:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        15: .line 136
            aload 2 /* readElementNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.getTarget:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        16: .line 137
            return
        end local 4 // java.util.List readElementNodeList2
        end local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        end local 2 // java.util.List readElementNodeList
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1   17     1                source  Lorg/graalvm/polyglot/Source;
            2   17     2   readElementNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
            5   17     3              listener  Lcom/oracle/truffle/js/test/instrumentation/InstrumentedNodesExecutionEventListener;
            8   17     4  readElementNodeList2  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testNoDoubleMaterializationReadElementNodeNoSourceSectionTargetAndIndexCheck(java.util.List<com.oracle.truffle.js.nodes.access.ReadElementNode>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.util.List readElementNodeList
         0: .line 140
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aload 1 /* readElementNodeList */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$1(Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 143
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 144
            return
        end local 1 // java.util.List readElementNodeList
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1  readElementNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/ReadElementNode;>;)V
    MethodParameters:
                     Name  Flags
      readElementNodeList  

  public void testNoDoubleMaterializationIfNode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 148
            aload 0 /* this */
            ldc "if (!true) {};"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalAllTags:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 150
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* ifNodeList */
        start local 2 // java.util.List ifNodeList
         2: .line 151
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* thenNodeList */
        start local 3 // java.util.List thenNodeList
         3: .line 152
            aload 0 /* this */
            aload 2 /* ifNodeList */
            aload 3 /* thenNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationIfNodeCheck:(Ljava/util/List;Ljava/util/List;)V
         4: .line 153
            aload 2 /* ifNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 154
            aload 3 /* thenNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         6: .line 156
            new com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener
            dup
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/control/IfNode;
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.<init>:([Ljava/lang/Class;)V
            astore 4 /* listener */
        start local 4 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
         7: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            getstatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.ANY:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 4 /* listener */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         8: .line 159
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
         9: .line 161
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* ifNodeList2 */
        start local 5 // java.util.List ifNodeList2
        10: .line 162
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* thenNodeList2 */
        start local 6 // java.util.List thenNodeList2
        11: .line 163
            aload 0 /* this */
            aload 5 /* ifNodeList2 */
            aload 6 /* thenNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationIfNodeCheck:(Ljava/util/List;Ljava/util/List;)V
        12: .line 164
            aload 5 /* ifNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        13: .line 165
            aload 6 /* thenNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        14: .line 167
            aload 4 /* listener */
            aload 2 /* ifNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        15: .line 168
            aload 4 /* listener */
            aload 2 /* ifNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        16: .line 169
            aload 4 /* listener */
            aload 5 /* ifNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        17: .line 170
            aload 4 /* listener */
            aload 5 /* ifNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        18: .line 172
            aload 2 /* ifNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.control.IfNode
            invokevirtual com.oracle.truffle.js.nodes.control.IfNode.getCondition:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        19: .line 173
            aload 2 /* ifNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.control.IfNode
            invokevirtual com.oracle.truffle.js.nodes.control.IfNode.getThenPart:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        20: .line 174
            return
        end local 6 // java.util.List thenNodeList2
        end local 5 // java.util.List ifNodeList2
        end local 4 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        end local 3 // java.util.List thenNodeList
        end local 2 // java.util.List ifNodeList
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1   21     1         source  Lorg/graalvm/polyglot/Source;
            2   21     2     ifNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/control/IfNode;>;
            3   21     3   thenNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/instrumentation/JSTaggedExecutionNode;>;
            7   21     4       listener  Lcom/oracle/truffle/js/test/instrumentation/InstrumentedNodesExecutionEventListener;
           10   21     5    ifNodeList2  Ljava/util/List<Lcom/oracle/truffle/js/nodes/control/IfNode;>;
           11   21     6  thenNodeList2  Ljava/util/List<Lcom/oracle/truffle/js/nodes/instrumentation/JSTaggedExecutionNode;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testNoDoubleMaterializationIfNodeCheck(java.util.List<com.oracle.truffle.js.nodes.control.IfNode>, java.util.List<com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.util.List ifNodeList
        start local 2 // java.util.List thenNodeList
         0: .line 177
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            aload 0 /* this */
            aload 1 /* ifNodeList */
            aload 2 /* thenNodeList */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;Ljava/util/List;Ljava/util/List;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$2(Ljava/util/List;Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 190
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 191
            return
        end local 2 // java.util.List thenNodeList
        end local 1 // java.util.List ifNodeList
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1    ifNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/control/IfNode;>;
            0    3     2  thenNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/instrumentation/JSTaggedExecutionNode;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/nodes/control/IfNode;>;Ljava/util/List<Lcom/oracle/truffle/js/nodes/instrumentation/JSTaggedExecutionNode;>;)V
    MethodParameters:
              Name  Flags
      ifNodeList    
      thenNodeList  

  public void testNoDoubleMaterializationWhileNode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 195
            aload 0 /* this */
            ldc "for (var a=0; a<3; a++) { 42;};"
            ldc Lcom/oracle/truffle/js/nodes/control/WhileNode;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationWhileOrForNode:(Ljava/lang/String;Ljava/lang/Class;)V
         1: .line 196
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNoDoubleMaterializationForNode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 200
            aload 0 /* this */
            ldc "for (let i = 0; i < 3; i++) { function dummy(){return i;} };"
            ldc Lcom/oracle/truffle/js/nodes/control/ForNode;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationWhileOrForNode:(Ljava/lang/String;Ljava/lang/Class;)V
         1: .line 201
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testNoDoubleMaterializationWhileOrForNode(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.lang.String src
        start local 2 // java.lang.Class whileOrForNodeClass
         0: .line 204
            aload 0 /* this */
            aload 1 /* src */
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
         1: .line 205
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            aastore
            dup
            iconst_1
         2: .line 206
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            aastore
            dup
            iconst_2
         3: .line 207
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;
            aastore
         4: .line 208
            iconst_0
            anewarray java.lang.Class
         5: .line 204
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithTags:(Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            astore 3 /* source */
        start local 3 // org.graalvm.polyglot.Source source
         6: .line 210
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* whileOrForNodeList */
        start local 4 // java.util.List whileOrForNodeList
         7: .line 211
            aload 0 /* this */
            aload 4 /* whileOrForNodeList */
            aload 2 /* whileOrForNodeClass */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationWhileOrForNodeCheck:(Ljava/util/List;Ljava/lang/Class;)V
         8: .line 212
            aload 4 /* whileOrForNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         9: .line 214
            new com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener
            dup
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 2 /* whileOrForNodeClass */
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.<init>:([Ljava/lang/Class;)V
            astore 5 /* listener */
        start local 5 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        10: .line 215
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            aastore
            dup
            iconst_1
        11: .line 216
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            aastore
            dup
            iconst_2
        12: .line 217
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;
            aastore
        13: .line 215
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
        14: .line 217
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 5 /* listener */
        15: .line 215
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
        16: .line 219
            aload 0 /* this */
            aload 3 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
        17: .line 221
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* whileOrForNodeList2 */
        start local 6 // java.util.List whileOrForNodeList2
        18: .line 222
            aload 0 /* this */
            aload 6 /* whileOrForNodeList2 */
            aload 2 /* whileOrForNodeClass */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationWhileOrForNodeCheck:(Ljava/util/List;Ljava/lang/Class;)V
        19: .line 223
            aload 6 /* whileOrForNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        20: .line 225
            aload 5 /* listener */
            aload 4 /* whileOrForNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        21: .line 226
            aload 5 /* listener */
            aload 4 /* whileOrForNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        22: .line 227
            aload 5 /* listener */
            aload 6 /* whileOrForNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        23: .line 228
            aload 5 /* listener */
            aload 4 /* whileOrForNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        24: .line 234
            aload 4 /* whileOrForNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findNodeChildren:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            instanceof com.oracle.truffle.api.nodes.LoopNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
        25: .line 235
            aload 4 /* whileOrForNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findNodeChildren:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LoopNode
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findNodeChildren:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
        26: .line 236
            aload 4 /* whileOrForNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findNodeChildren:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LoopNode
            invokevirtual com.oracle.truffle.api.nodes.LoopNode.getRepeatingNode:()Lcom/oracle/truffle/api/nodes/RepeatingNode;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findNodeChildren:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        27: .line 237
            return
        end local 6 // java.util.List whileOrForNodeList2
        end local 5 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        end local 4 // java.util.List whileOrForNodeList
        end local 3 // org.graalvm.polyglot.Source source
        end local 2 // java.lang.Class whileOrForNodeClass
        end local 1 // java.lang.String src
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   28     0                 this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0   28     1                  src  Ljava/lang/String;
            0   28     2  whileOrForNodeClass  Ljava/lang/Class<*>;
            6   28     3               source  Lorg/graalvm/polyglot/Source;
            7   28     4   whileOrForNodeList  Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
           10   28     5             listener  Lcom/oracle/truffle/js/test/instrumentation/InstrumentedNodesExecutionEventListener;
           18   28     6  whileOrForNodeList2  Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)V
    MethodParameters:
                     Name  Flags
      src                  
      whileOrForNodeClass  

  private void testNoDoubleMaterializationWhileOrForNodeCheck(java.util.List<com.oracle.truffle.api.nodes.Node>, java.lang.Class<?>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.util.List whileNodeList
        start local 2 // java.lang.Class whileOrForNodeClass
         0: .line 240
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
            aload 0 /* this */
            aload 2 /* whileOrForNodeClass */
            aload 1 /* whileNodeList */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;Ljava/lang/Class;Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$4(Ljava/lang/Class;Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/Consumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 248
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 249
            return
        end local 2 // java.lang.Class whileOrForNodeClass
        end local 1 // java.util.List whileNodeList
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1        whileNodeList  Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
            0    3     2  whileOrForNodeClass  Ljava/lang/Class<*>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;Ljava/lang/Class<*>;)V
    MethodParameters:
                     Name  Flags
      whileNodeList        
      whileOrForNodeClass  

  public void testNoDoubleMaterializationPropertyNode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 253
            aload 0 /* this */
            ldc "var a = {x:42}; a.x;"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalAllTags:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 255
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* propertyNodeList */
        start local 2 // java.util.List propertyNodeList
         2: .line 256
            aload 0 /* this */
            aload 2 /* propertyNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationPropertyNodeCheck:(Ljava/util/List;)V
         3: .line 257
            aload 2 /* propertyNodeList */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 259
            new com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener
            dup
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/access/PropertyNode;
            aastore
            invokespecial com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.<init>:([Ljava/lang/Class;)V
            astore 3 /* listener */
        start local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
         5: .line 260
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            getstatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.ANY:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 3 /* listener */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         6: .line 262
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
         7: .line 264
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* propertyNodeList2 */
        start local 4 // java.util.List propertyNodeList2
         8: .line 265
            aload 0 /* this */
            aload 4 /* propertyNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.testNoDoubleMaterializationPropertyNodeCheck:(Ljava/util/List;)V
         9: .line 266
            aload 4 /* propertyNodeList2 */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 268
            aload 3 /* listener */
            aload 2 /* propertyNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        11: .line 269
            aload 3 /* listener */
            aload 2 /* propertyNodeList */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        12: .line 270
            aload 3 /* listener */
            aload 4 /* propertyNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkEnteredNodes:(Ljava/util/List;)V
        13: .line 271
            aload 3 /* listener */
            aload 4 /* propertyNodeList2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener.checkExitedNodes:(Ljava/util/List;)V
        14: .line 273
            aload 2 /* propertyNodeList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.nodes.access.PropertyNode
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyNode.getTarget:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        15: .line 274
            return
        end local 4 // java.util.List propertyNodeList2
        end local 3 // com.oracle.truffle.js.test.instrumentation.InstrumentedNodesExecutionEventListener listener
        end local 2 // java.util.List propertyNodeList
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1   16     1             source  Lorg/graalvm/polyglot/Source;
            2   16     2   propertyNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/PropertyNode;>;
            5   16     3           listener  Lcom/oracle/truffle/js/test/instrumentation/InstrumentedNodesExecutionEventListener;
            8   16     4  propertyNodeList2  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/PropertyNode;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testNoDoubleMaterializationPropertyNodeCheck(java.util.List<com.oracle.truffle.js.nodes.access.PropertyNode>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // java.util.List propertyNodeList
         0: .line 278
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WritePropertyTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$5(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 284
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 286
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadPropertyTag;
            aload 0 /* this */
            aload 1 /* propertyNodeList */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$7(Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/Consumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         3: .line 290
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         4: .line 291
            return
        end local 1 // java.util.List propertyNodeList
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    5     1  propertyNodeList  Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/PropertyNode;>;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/js/nodes/access/PropertyNode;>;)V
    MethodParameters:
                  Name  Flags
      propertyNodeList  

  public void nestedInvokeReadsMultipleInstrumentation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 295
            aload 0 /* this */
            ldc "function setKey(obj, keys) { obj.a; keys.slice[0][1][2](0, -1).forEach(function(key) {});};var callable = { slice : [['',['','',function fakeslice() { return [1,2]; }]]]};setKey({}, callable);for (var i = 0; i < 2; i++) { setKey({ a: 1 }, callable);}"
         1: .line 307
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aastore
            dup
            iconst_1
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aastore
         2: .line 295
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithTags:(Ljava/lang/String;[Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         3: .line 309
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.nestedInvokeReadsMultipleInstrumentationCheck:()V
         4: .line 311
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            getstatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.ANY:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            new com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest$1.<init>:(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)V
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         5: .line 325
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithCurrentBinding:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Source;
            pop
         6: .line 327
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.nestedInvokeReadsMultipleInstrumentationCheck:()V
         7: .line 328
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            3    8     1  source  Lorg/graalvm/polyglot/Source;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void nestedInvokeReadsMultipleInstrumentationCheck();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 331
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 5
         2: .line 332
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$8(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         3: .line 355
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         4: .line 331
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            iconst_3
            if_icmplt 2
        end local 1 // int i
         6: .line 357
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1    6     1     i  I

  public void nestedInvokeReadsMultipleDifferentInstrumentation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 363
            aload 0 /* this */
            ldc "function setKey(obj, keys) { obj.a; keys.slice[0][1][2](0, -1).forEach(function(key) {});};var callable = { slice : [['',['','',function fakeslice() { return [1,2]; }]]]};setKey({}, callable);for (var i = 0; i < 2; i++) { setKey({ a: 1 }, callable);}"
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.eval:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 377
            aload 0 /* this */
            aload 1 /* source */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aastore
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithTags:(Lorg/graalvm/polyglot/Source;[Ljava/lang/Class;[Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            pop
         2: .line 379
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 380
      StackMap locals: org.graalvm.polyglot.Source int
      StackMap stack:
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$14(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         5: .line 385
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         6: .line 379
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iconst_3
            if_icmplt 4
        end local 2 // int i
         8: .line 388
            aload 0 /* this */
            aload 1 /* source */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aastore
            dup
            iconst_1
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aastore
            iconst_0
            anewarray java.lang.Class
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithNewTags:(Lorg/graalvm/polyglot/Source;[Ljava/lang/Class;[Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            pop
         9: .line 390
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.nestedInvokeReadsNoInputInstrumentationCheck:()V
        10: .line 391
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1   11     1  source  Lorg/graalvm/polyglot/Source;
            3    8     2       i  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void nestedInvokeReadsNoInputInstrumentation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 395
            aload 0 /* this */
            ldc "function setKey(obj, keys) { obj.a; keys.slice[0][1][2](0, -1).forEach(function(key) {});};var callable = { slice : [['',['','',function fakeslice() { return [1,2]; }]]]};setKey({}, callable);for (var i = 0; i < 2; i++) { setKey({ a: 1 }, callable);}"
         1: .line 407
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aastore
            dup
            iconst_1
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aastore
            iconst_0
            anewarray java.lang.Class
         2: .line 395
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.evalWithTags:(Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Class;)Lorg/graalvm/polyglot/Source;
            pop
         3: .line 409
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.nestedInvokeReadsNoInputInstrumentationCheck:()V
         4: .line 410
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void nestedInvokeReadsNoInputInstrumentationCheck();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
         0: .line 413
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 5
         2: .line 414
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$17(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         3: .line 429
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         4: .line 413
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            iconst_3
            if_icmplt 2
        end local 1 // int i
         6: .line 431
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            1    6     1     i  I

  private void lambda$0(java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
         0: .line 103
            aload 2 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.access.ReadElementNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 104
            aload 1
            aload 2 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 105
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadPropertyTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         3: .line 106
            aload 3 /* elem */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         4: .line 107
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         5: .line 108
            aload 3 /* elem */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         6: .line 109
            return
        end local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    7     2     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    7     3  elem  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$1(java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent b
         0: .line 141
            aload 1 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.access.ReadElementNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 142
            aload 0
            aload 1 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.ReadElementNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 143
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent b
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2     b  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$2(java.util.List, java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        start local 4 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent ifbody
         0: .line 178
            aload 3 /* e1 */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.control.IfNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 179
            aload 1
            aload 3 /* e1 */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.control.IfNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 181
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            aload 0 /* this */
            aload 2
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;Ljava/util/List;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$3(Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         3: .line 187
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         4: .line 188
            aload 4 /* ifbody */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         5: .line 190
            return
        end local 4 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent ifbody
        end local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    6     3      e1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    6     4  ifbody  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$4(java.lang.Class, java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event);
    descriptor: (Ljava/lang/Class;Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
         0: .line 241
            aload 1
            aload 3 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 242
            aload 2
            aload 3 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 243
            iconst_0
            istore 4 /* a */
        start local 4 // int a
         3: goto 7
         4: .line 244
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         5: .line 245
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         6: .line 243
            iinc 4 /* a */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* a */
            iconst_3
            if_icmplt 4
        end local 4 // int a
         8: .line 247
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         9: .line 248
            return
        end local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0   10     3     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            3    8     4     a  I

  private void lambda$5(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent write
         0: .line 279
            aload 2 /* write */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         1: .line 280
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$6(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/Consumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         2: .line 283
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         3: .line 284
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent write
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    4     1      e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    4     2  write  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$7(java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
         0: .line 287
            aload 2 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.access.PropertyNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 288
            aload 1
            aload 2 /* e */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.access.PropertyNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 289
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadPropertyTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         3: .line 290
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    4     2     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;

  private void lambda$8(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
         0: .line 333
            aload 2 /* elem */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         1: .line 334
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$9(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         2: .line 354
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         3: .line 355
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    4     1     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    4     2  elem  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$14(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
         0: .line 381
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$15(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 384
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 385
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2  elem  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$17(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
         0: .line 415
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$18(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 428
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 429
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1     e  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2  elem  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$3(java.util.List, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        start local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent ifstatement
         0: .line 182
            aload 2 /* e2 */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            instanceof com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 183
            aload 1
            aload 2 /* e2 */
            getfield com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event.instrumentedNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            checkcast com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 185
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         3: .line 186
            aload 3 /* ifstatement */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         4: .line 187
            return
        end local 3 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent ifstatement
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    5     2           e2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    5     3  ifstatement  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$6(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
         0: .line 282
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag;
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         1: .line 283
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    2     1    e2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;

  private void lambda$9(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
         0: .line 335
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$10(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 352
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 353
            aload 2 /* elem1 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         3: .line 354
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    4     1     e1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    4     2  elem1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$15(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
         0: .line 382
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$16(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 383
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 384
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1     e1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2  elem1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$18(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
         0: .line 416
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$19(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 427
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 428
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem1
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e1
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1     e1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2  elem1  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$10(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
         0: .line 337
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$11(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 342
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 344
            aload 2 /* elem2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         3: .line 346
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$13(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         4: .line 349
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         5: .line 351
            aload 2 /* elem2 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         6: .line 352
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    7     1     e2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    7     2  elem2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$16(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
         0: .line 383
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0     e2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    1     1  elem2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$19(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
         0: .line 418
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            aload 0 /* this */
            invokedynamic accept(Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$20(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (7)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 421
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 424
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$22(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         3: .line 425
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         4: .line 427
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem2
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e2
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    5     1     e2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    5     2  elem2  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$11(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
         0: .line 338
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$12(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 339
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 340
            aload 2 /* elem3 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         3: .line 341
            aload 2 /* elem3 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         4: .line 342
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    5     1     e3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    5     2  elem3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$13(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
         0: .line 347
            aload 1 /* elem3 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         1: .line 348
            aload 1 /* elem3 */
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.input:()Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
            pop
         2: .line 349
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0     e3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     1  elem3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private void lambda$20(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        start local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
         0: .line 419
            aload 0 /* this */
            ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest.lambda$21(Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V (6)
                  (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest.enter:(Ljava/lang/Class;Ljava/util/function/BiConsumer;)Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
         1: .line 420
            invokevirtual com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent.exit:()V
         2: .line 421
            return
        end local 2 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        end local 0 // com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/js/test/instrumentation/MaterializationCorrectnessTest;
            0    3     1     e3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    3     2  elem3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$22(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
         0: .line 425
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem3
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e3
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0     e3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    1     1  elem3  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$12(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e4
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem4
         0: .line 339
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem4
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e4
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0     e4  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    1     1  elem4  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;

  private static void lambda$21(com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event, com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent);
    descriptor: (Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e4
        start local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem4
         0: .line 420
            return
        end local 1 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent elem4
        end local 0 // com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event e4
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0     e4  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$Event;
            0    1     1  elem4  Lcom/oracle/truffle/js/test/instrumentation/FineGrainedAccessTest$AssertedEvent;
}
SourceFile: "MaterializationCorrectnessTest.java"
NestMembers:
  com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest$1
InnerClasses:
  public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final ControlFlowBlockTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBlockTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  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
  public final FunctionCallTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$FunctionCallTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final LiteralTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  public final ReadElementTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ReadElementTag 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 WritePropertyTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$WritePropertyTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
  AssertedEvent = com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$AssertedEvent of com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
  protected Event = com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest$Event of com.oracle.truffle.js.test.instrumentation.FineGrainedAccessTest
  com.oracle.truffle.js.test.instrumentation.MaterializationCorrectnessTest$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles