final class com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor implements com.oracle.truffle.api.nodes.NodeVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
  super_class: java.lang.Object
{
  com.oracle.truffle.api.nodes.RootNode root;
    descriptor: Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0000) 

  com.oracle.truffle.api.source.SourceSection rootSourceSection;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0000) 

  java.util.Set<java.lang.Class<?>> providedTags;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  java.util.Set<?> materializeLimitedTags;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<*>;

  boolean firstExecution;
    descriptor: Z
    flags: (0x0000) 

  boolean setExecutedRootNodeBit;
    descriptor: Z
    flags: (0x0000) 

  int rootBits;
    descriptor: I
    flags: (0x0000) 

  int computingRootNodeBits;
    descriptor: I
    flags: (0x0000) 

  boolean visitingRetiredNodes;
    descriptor: Z
    flags: (0x0000) 

  boolean visitingMaterialized;
    descriptor: Z
    flags: (0x0000) 

  private final boolean shouldMaterializeSyntaxNodes;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> materializeTags;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;

  private final java.util.List<com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation> operations;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;

  private final boolean singleBindingOptimization;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean singleBindingOptimizationPass;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean onlyAlwaysPerformOperationsActive;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.nodes.Node savedParent;
    descriptor: Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.api.source.SourceSection savedParentSourceSection;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0002) ACC_PRIVATE

  final com.oracle.truffle.api.instrumentation.InstrumentationHandler this$0;
    descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1570
            ldc Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(boolean, java.util.List<com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation>);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;ZLjava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=14, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 2 // boolean shouldMaterializeSyntaxNodes
        start local 3 // java.util.List operations
         0: .line 1613
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1576
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
         2: .line 1577
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
         3: .line 1614
            aload 0 /* this */
            iload 2 /* shouldMaterializeSyntaxNodes */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldMaterializeSyntaxNodes:Z
         4: .line 1615
            aload 0 /* this */
            aload 3 /* operations */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
         5: .line 1616
            iconst_0
            istore 4 /* singleBindingOperations */
        start local 4 // int singleBindingOperations
         6: .line 1617
            iconst_0
            istore 5 /* multiBindingOriginalTreeOperations */
        start local 5 // int multiBindingOriginalTreeOperations
         7: .line 1618
            aload 3 /* operations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 6 /* operation */
        start local 6 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         9: .line 1623
            aload 6 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
            ifne 15
        10: .line 1624
            aload 6 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
            ifeq 13
        11: .line 1625
            iinc 4 /* singleBindingOperations */ 1
        12: .line 1626
            goto 15
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack:
        13: aload 6 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpeq 14
            aload 6 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpne 15
        14: .line 1627
      StackMap locals:
      StackMap stack:
            iinc 5 /* multiBindingOriginalTreeOperations */ 1
        end local 6 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        15: .line 1618
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        16: .line 1631
            aload 0 /* this */
            aload 3 /* operations */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 17
            iload 4 /* singleBindingOperations */
            iconst_1
            if_icmpeq 19
        17: .line 1632
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
            iload 4 /* singleBindingOperations */
            iconst_1
            if_icmpne 18
            iload 5 /* multiBindingOriginalTreeOperations */
            ifeq 19
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
        18: iconst_0
            goto 20
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
        19: iconst_1
        20: .line 1631
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor int
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
        21: .line 1634
            aconst_null
            astore 6 /* compoundTags */
        start local 6 // java.util.Set compoundTags
        22: .line 1635
            aload 3 /* operations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 36
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set top java.util.Iterator
      StackMap stack:
        23: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 7 /* operation */
        start local 7 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        24: .line 1639
            aload 7 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
            ifne 36
        25: .line 1640
            aload 7 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.bindingsAtConstructionTime:[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 35
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack:
        26: aload 12
            iload 10
            aaload
            astore 9 /* sourceBinding */
        start local 9 // com.oracle.truffle.api.instrumentation.EventBinding$Source sourceBinding
        27: .line 1641
            aload 9 /* sourceBinding */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getLimitedTags:()Ljava/util/Set;
            astore 13 /* limitedTags */
        start local 13 // java.util.Set limitedTags
        28: .line 1642
            aload 13 /* limitedTags */
            ifnonnull 31
        29: .line 1643
            aconst_null
            astore 6 /* compoundTags */
        30: .line 1644
            goto 37
        31: .line 1646
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[] java.util.Set
      StackMap stack:
            aload 6 /* compoundTags */
            ifnonnull 33
        32: .line 1647
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* compoundTags */
        33: .line 1649
      StackMap locals:
      StackMap stack:
            aload 6 /* compoundTags */
            aload 13 /* limitedTags */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 13 // java.util.Set limitedTags
        end local 9 // com.oracle.truffle.api.instrumentation.EventBinding$Source sourceBinding
        34: .line 1640
            iinc 10 1
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack:
        35: iload 10
            iload 11
            if_icmplt 26
        end local 7 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        36: .line 1635
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        37: .line 1655
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 6 /* compoundTags */
            ifnull 38
            aload 6 /* compoundTags */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            goto 39
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
        38: aconst_null
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.instrumentation.InstrumentationHandler int java.util.List int int java.util.Set
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor java.util.Set
        39: putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
        40: .line 1656
            return
        end local 6 // java.util.Set compoundTags
        end local 5 // int multiBindingOriginalTreeOperations
        end local 4 // int singleBindingOperations
        end local 3 // java.util.List operations
        end local 2 // boolean shouldMaterializeSyntaxNodes
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0   41     0                                this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   41     2        shouldMaterializeSyntaxNodes  Z
            0   41     3                          operations  Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;
            6   41     4             singleBindingOperations  I
            7   41     5  multiBindingOriginalTreeOperations  I
            9   15     6                           operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
           22   41     6                        compoundTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
           24   36     7                           operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
           27   34     9                       sourceBinding  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
           28   34    13                         limitedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
    Signature: (ZLjava/util/List<Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;>;)V
    MethodParameters:
                              Name  Flags
      this$0                        final
      shouldMaterializeSyntaxNodes  
      operations                    

  boolean shouldVisit();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
         0: .line 1659
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 1660
            iconst_0
            ireturn
         2: .line 1662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
            astore 1 /* localRoot */
        start local 1 // com.oracle.truffle.api.nodes.RootNode localRoot
         3: .line 1663
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* localRootSourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection localRootSourceSection
         4: .line 1664
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
            istore 3 /* localRootBits */
        start local 3 // int localRootBits
         5: .line 1666
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 4 /* operation */
        start local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         7: .line 1667
            aload 4 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
            ifne 14
         8: .line 1677
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
            ifeq 9
            aload 4 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
            ifeq 14
         9: .line 1678
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack:
            aload 4 /* operation */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 1 /* localRoot */
            aload 2 /* localRootSourceSection */
            iload 3 /* localRootBits */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.shouldVisit:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
            istore 6 /* pass */
        start local 6 // boolean pass
        10: .line 1679
            iload 6 /* pass */
            ifeq 14
        11: .line 1680
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
            ifeq 13
        12: .line 1681
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimizationPass:Z
        13: .line 1683
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // boolean pass
        end local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        14: .line 1666
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        15: .line 1688
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
        16: .line 1689
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals:
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 4 /* operation */
        start local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        18: .line 1690
            aload 4 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
            ifeq 22
        19: .line 1696
            aload 4 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpeq 22
        20: .line 1697
            aload 4 /* operation */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 1 /* localRoot */
            aload 2 /* localRootSourceSection */
            iload 3 /* localRootBits */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.shouldVisit:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
            ifeq 22
        21: .line 1698
            iconst_1
            ireturn
        end local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        22: .line 1689
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        23: .line 1703
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
        24: .line 1704
            iconst_0
            ireturn
        end local 3 // int localRootBits
        end local 2 // com.oracle.truffle.api.source.SourceSection localRootSourceSection
        end local 1 // com.oracle.truffle.api.nodes.RootNode localRoot
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   25     0                    this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            3   25     1               localRoot  Lcom/oracle/truffle/api/nodes/RootNode;
            4   25     2  localRootSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            5   25     3           localRootBits  I
            7   14     4               operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
           10   14     6                    pass  Z
           18   22     4               operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;

  private void computeRootBits(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 1708
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
            istore 2 /* bits */
        start local 2 // int bits
         1: .line 1709
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isUninitialized:(I)Z
            ifeq 3
         2: .line 1710
            return
         3: .line 1713
      StackMap locals: int
      StackMap stack:
            aload 1 /* sourceSection */
            ifnull 16
         4: .line 1714
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isNoSourceSection:(I)Z
            ifeq 6
         5: .line 1715
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasSourceSection:(I)I
            istore 2 /* bits */
         6: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            ifnull 14
         7: .line 1718
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isSourceSectionsHierachical:(I)Z
            ifeq 11
         8: .line 1719
            aload 1 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
            if_icmplt 10
         9: .line 1720
            aload 1 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
            if_icmple 11
        10: .line 1721
      StackMap locals:
      StackMap stack:
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setSourceSectionsUnstructured:(I)I
            istore 2 /* bits */
        11: .line 1724
      StackMap locals:
      StackMap stack:
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.isSameSource:(I)Z
            ifeq 16
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            aload 1 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            if_acmpeq 16
        12: .line 1725
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasDifferentSource:(I)I
            istore 2 /* bits */
        13: .line 1727
            goto 16
        14: .line 1728
      StackMap locals:
      StackMap stack:
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setSourceSectionsUnstructured:(I)I
            istore 2 /* bits */
        15: .line 1729
            iload 2 /* bits */
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.setHasDifferentSource:(I)I
            istore 2 /* bits */
        16: .line 1732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* bits */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computingRootNodeBits:I
        17: .line 1733
            return
        end local 2 // int bits
        end local 1 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   18     1  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            1   18     2           bits  I
    MethodParameters:
               Name  Flags
      sourceSection  

  public boolean visit(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node originalNode
         0: .line 1739
            aload 1 /* originalNode */
            astore 2 /* node */
        start local 2 // com.oracle.truffle.api.nodes.Node node
         1: .line 1740
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* sourceSection */
        start local 3 // com.oracle.truffle.api.source.SourceSection sourceSection
         2: .line 1741
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            istore 4 /* instrumentable */
        start local 4 // boolean instrumentable
         3: .line 1742
            aconst_null
            astore 5 /* previousParent */
        start local 5 // com.oracle.truffle.api.nodes.Node previousParent
         4: .line 1743
            aconst_null
            astore 6 /* previousParentSourceSection */
        start local 6 // com.oracle.truffle.api.source.SourceSection previousParentSourceSection
         5: .line 1744
            iload 4 /* instrumentable */
            ifeq 19
         6: .line 1745
            aload 0 /* this */
            aload 3 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.computeRootBits:(Lcom/oracle/truffle/api/source/SourceSection;)V
         7: .line 1746
            aload 0 /* this */
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitPreviouslyRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)Z
            istore 7 /* hasRetiredNodes */
        start local 7 // boolean hasRetiredNodes
         8: .line 1747
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
            ifne 14
         9: .line 1748
            aload 0 /* this */
            aload 2 /* node */
            aload 3 /* sourceSection */
            aload 1 /* originalNode */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materialize:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* node */
        10: .line 1749
            aload 0 /* this */
            aload 2 /* node */
            aload 3 /* sourceSection */
            aload 1 /* originalNode */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.saveAndVisitNewlyRetiredNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 12
        11: .line 1750
            iconst_1
            istore 7 /* hasRetiredNodes */
        12: .line 1752
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
      StackMap stack:
            iload 7 /* hasRetiredNodes */
            ifne 14
        13: .line 1753
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.clearRetiredNodeReference:(Lcom/oracle/truffle/api/nodes/Node;)V
        14: .line 1756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            aload 2 /* node */
            aload 3 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitInstrumentable:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
        15: .line 1758
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
            astore 5 /* previousParent */
        16: .line 1759
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            astore 6 /* previousParentSourceSection */
        17: .line 1760
            aload 0 /* this */
            aload 2 /* node */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
        18: .line 1761
            aload 0 /* this */
            aload 3 /* sourceSection */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
        end local 7 // boolean hasRetiredNodes
        19: .line 1770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
            istore 7 /* wasVisitingMaterialized */
        start local 7 // boolean wasVisitingMaterialized
        20: .line 1771
            aload 2 /* node */
            aload 1 /* originalNode */
            if_acmpeq 22
        21: .line 1772
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
        22: .line 1775
      StackMap locals: int
      StackMap stack:
            aload 2 /* node */
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            pop
        23: .line 1776
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 8
        25: .line 1777
            aload 0 /* this */
            iload 7 /* wasVisitingMaterialized */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
        26: .line 1778
            iload 4 /* instrumentable */
            ifeq 29
        27: .line 1779
            aload 0 /* this */
            aload 5 /* previousParent */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
        28: .line 1780
            aload 0 /* this */
            aload 6 /* previousParentSourceSection */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
        29: .line 1782
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        30: .line 1777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 7 /* wasVisitingMaterialized */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
        31: .line 1778
            iload 4 /* instrumentable */
            ifeq 34
        32: .line 1779
            aload 0 /* this */
            aload 5 /* previousParent */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParent:Lcom/oracle/truffle/api/nodes/Node;
        33: .line 1780
            aload 0 /* this */
            aload 6 /* previousParentSourceSection */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.savedParentSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
        34: .line 1783
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // boolean wasVisitingMaterialized
        end local 6 // com.oracle.truffle.api.source.SourceSection previousParentSourceSection
        end local 5 // com.oracle.truffle.api.nodes.Node previousParent
        end local 4 // boolean instrumentable
        end local 3 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.nodes.Node originalNode
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   35     0                         this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   35     1                 originalNode  Lcom/oracle/truffle/api/nodes/Node;
            1   35     2                         node  Lcom/oracle/truffle/api/nodes/Node;
            2   35     3                sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            3   35     4               instrumentable  Z
            4   35     5               previousParent  Lcom/oracle/truffle/api/nodes/Node;
            5   35     6  previousParentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            8   19     7              hasRetiredNodes  Z
           20   35     7      wasVisitingMaterialized  Z
      Exception table:
        from    to  target  type
          22    24      24  any
    MethodParameters:
              Name  Flags
      originalNode  

  private com.oracle.truffle.api.nodes.Node materialize(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        start local 3 // com.oracle.truffle.api.nodes.Node originalNode
         0: .line 1787
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeSyntaxNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
            astore 4 /* materializedNode */
        start local 4 // com.oracle.truffle.api.nodes.Node materializedNode
         1: .line 1788
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
            ifeq 2
            aload 4 /* materializedNode */
            aload 3 /* originalNode */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            ldc "New tree should be fully materialized!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1789
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 3
            aload 4 /* materializedNode */
            aload 0 /* this */
            aload 4 /* materializedNode */
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeSyntaxNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            ldc "Node must not be materialized multiple times for the same set of tags!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 1790
      StackMap locals:
      StackMap stack:
            aload 4 /* materializedNode */
            areturn
        end local 4 // com.oracle.truffle.api.nodes.Node materializedNode
        end local 3 // com.oracle.truffle.api.nodes.Node originalNode
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0    4     1              node  Lcom/oracle/truffle/api/nodes/Node;
            0    4     2     sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0    4     3      originalNode  Lcom/oracle/truffle/api/nodes/Node;
            1    4     4  materializedNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
               Name  Flags
      node           
      sourceSection  
      originalNode   

  private boolean saveAndVisitNewlyRetiredNode(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        start local 3 // com.oracle.truffle.api.nodes.Node originalNode
         0: .line 1794
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
            ifne 10
            aload 1 /* node */
            aload 3 /* originalNode */
            if_acmpeq 10
         1: .line 1795
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "Materialize tags must not be null when materialization happened."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1802
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
            astore 4 /* wrapperNode */
        start local 4 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
         3: .line 1803
            aload 4 /* wrapperNode */
            ifnonnull 5
         4: .line 1804
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            aload 1 /* node */
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.insertWrapper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
         5: .line 1806
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
      StackMap stack:
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
            astore 4 /* wrapperNode */
         6: .line 1807
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 7
            aload 4 /* wrapperNode */
            ifnonnull 7
            new java.lang.AssertionError
            dup
            ldc "Node must have an instrumentation wrapper at this point!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 1808
      StackMap locals:
      StackMap stack:
            aload 4 /* wrapperNode */
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
            aload 3 /* originalNode */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
            invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.setRetiredNode:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;)V
         8: .line 1817
            aload 0 /* this */
            aload 3 /* originalNode */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)V
         9: .line 1818
            iconst_1
            ireturn
        end local 4 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
        10: .line 1820
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.api.nodes.Node originalNode
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   11     1           node  Lcom/oracle/truffle/api/nodes/Node;
            0   11     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0   11     3   originalNode  Lcom/oracle/truffle/api/nodes/Node;
            3   10     4    wrapperNode  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
    MethodParameters:
               Name  Flags
      node           
      sourceSection  
      originalNode   

  private boolean visitPreviouslyRetiredNodes(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 1828
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
            ifne 15
         1: .line 1829
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNode:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
            astore 2 /* wrapperNode */
        start local 2 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
         2: .line 1830
            aload 2 /* wrapperNode */
            ifnull 3
            aload 2 /* wrapperNode */
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
            invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getRetiredNodeReference:()Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
            goto 4
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
         4: astore 3 /* retiredNodeReference */
        start local 3 // com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference retiredNodeReference
         5: .line 1831
            aload 3 /* retiredNodeReference */
            ifnull 15
         6: .line 1832
            iconst_0
            istore 4 /* hasRetiredNodes */
        start local 4 // boolean hasRetiredNodes
         7: .line 1833
            goto 13
         8: .line 1834
      StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference int
      StackMap stack:
            aload 3 /* retiredNodeReference */
            invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.getNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 5 /* nodeRefNode */
        start local 5 // com.oracle.truffle.api.nodes.Node nodeRefNode
         9: .line 1835
            aload 5 /* nodeRefNode */
            ifnull 12
        10: .line 1836
            iconst_1
            istore 4 /* hasRetiredNodes */
        11: .line 1837
            aload 0 /* this */
            aload 5 /* nodeRefNode */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitRetiredNodes:(Lcom/oracle/truffle/api/nodes/Node;)V
        12: .line 1839
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 3 /* retiredNodeReference */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.next:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
            astore 3 /* retiredNodeReference */
        end local 5 // com.oracle.truffle.api.nodes.Node nodeRefNode
        13: .line 1833
      StackMap locals:
      StackMap stack:
            aload 3 /* retiredNodeReference */
            ifnonnull 8
        14: .line 1841
            iload 4 /* hasRetiredNodes */
            ireturn
        end local 4 // boolean hasRetiredNodes
        end local 3 // com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference retiredNodeReference
        end local 2 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
        15: .line 1844
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   16     1                  node  Lcom/oracle/truffle/api/nodes/Node;
            2   15     2           wrapperNode  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
            5   15     3  retiredNodeReference  Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
            7   15     4       hasRetiredNodes  Z
            9   13     5           nodeRefNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  private void visitRetiredNodes(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node retiredSubtreeRoot
         0: .line 1853
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
            istore 2 /* wasVisitingRetiredNodes */
        start local 2 // boolean wasVisitingRetiredNodes
         1: .line 1854
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
         2: .line 1856
            aload 1 /* retiredSubtreeRoot */
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            pop
         3: .line 1857
            goto 7
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node int
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 1858
            aload 0 /* this */
            iload 2 /* wasVisitingRetiredNodes */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
         6: .line 1859
            aload 3
            athrow
         7: .line 1858
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* wasVisitingRetiredNodes */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingRetiredNodes:Z
         8: .line 1860
            return
        end local 2 // boolean wasVisitingRetiredNodes
        end local 1 // com.oracle.truffle.api.nodes.Node retiredSubtreeRoot
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    9     0                     this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0    9     1       retiredSubtreeRoot  Lcom/oracle/truffle/api/nodes/Node;
            1    9     2  wasVisitingRetiredNodes  Z
      Exception table:
        from    to  target  type
           2     4       4  any
    MethodParameters:
                    Name  Flags
      retiredSubtreeRoot  

  private com.oracle.truffle.api.nodes.Node materializeSyntaxNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node instrumentableNode
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 1863
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldMaterializeSyntaxNodes:Z
            ifne 2
         1: .line 1864
            aload 1 /* instrumentableNode */
            areturn
         2: .line 1866
      StackMap locals:
      StackMap stack:
            aload 1 /* instrumentableNode */
            instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
            ifeq 25
         3: .line 1867
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            ldc "Materialize tags must not be null before materialization."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 1868
      StackMap locals:
      StackMap stack:
            aload 1 /* instrumentableNode */
            checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode
            astore 3 /* currentNode */
        start local 3 // com.oracle.truffle.api.instrumentation.InstrumentableNode currentNode
         5: .line 1869
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 6
            aload 3 /* currentNode */
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.isInstrumentable:()Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 1870
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode
      StackMap stack:
            aload 3 /* currentNode */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
            astore 4 /* materializedNode */
        start local 4 // com.oracle.truffle.api.instrumentation.InstrumentableNode materializedNode
         7: .line 1871
            aload 3 /* currentNode */
            aload 4 /* materializedNode */
            if_acmpeq 25
         8: .line 1872
            aload 4 /* materializedNode */
            instanceof com.oracle.truffle.api.nodes.Node
            ifne 10
         9: .line 1873
            new java.lang.IllegalStateException
            dup
            ldc "The returned materialized syntax node is not a Truffle Node."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1875
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentableNode
      StackMap stack:
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            ifnull 12
        11: .line 1876
            new java.lang.IllegalStateException
            dup
            ldc "The returned materialized syntax node is already adopted."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1878
      StackMap locals:
      StackMap stack:
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 5 /* newSourceSection */
        start local 5 // com.oracle.truffle.api.source.SourceSection newSourceSection
        13: .line 1879
            aload 2 /* sourceSection */
            aload 5 /* newSourceSection */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 17
        14: .line 1880
            new java.lang.IllegalStateException
            dup
            ldc "The source section of the materialized syntax node must match the source section of the original node. %s != %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* sourceSection */
            aastore
            dup
            iconst_1
        15: .line 1881
            aload 5 /* newSourceSection */
            aastore
        16: .line 1880
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1884
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 3 /* currentNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 6 /* currentParent */
        start local 6 // com.oracle.truffle.api.nodes.Node currentParent
        18: .line 1886
            aload 6 /* currentParent */
            instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
            ifeq 24
            aload 6 /* currentParent */
            aload 1 /* instrumentableNode */
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 24
        19: .line 1887
            aload 6 /* currentParent */
            checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
            astore 7 /* probe */
        start local 7 // com.oracle.truffle.api.instrumentation.ProbeNode probe
        20: .line 1888
            aload 4 /* materializedNode */
            aload 7 /* probe */
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode.createWrapper:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
            astore 8 /* wrapper */
        start local 8 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapper
        21: .line 1889
            aload 8 /* wrapper */
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            aload 6 /* currentParent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.getWrapperNodeChecked:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            astore 9 /* wrapperNode */
        start local 9 // com.oracle.truffle.api.nodes.Node wrapperNode
        22: .line 1890
            aload 6 /* currentParent */
            aload 9 /* wrapperNode */
            ldc "Insert instrumentation wrapper node."
            invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
            pop
        23: .line 1891
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            areturn
        end local 9 // com.oracle.truffle.api.nodes.Node wrapperNode
        end local 8 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapper
        end local 7 // com.oracle.truffle.api.instrumentation.ProbeNode probe
        24: .line 1893
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 3 /* currentNode */
            checkcast com.oracle.truffle.api.nodes.Node
            aload 4 /* materializedNode */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 6 // com.oracle.truffle.api.nodes.Node currentParent
        end local 5 // com.oracle.truffle.api.source.SourceSection newSourceSection
        end local 4 // com.oracle.truffle.api.instrumentation.InstrumentableNode materializedNode
        end local 3 // com.oracle.truffle.api.instrumentation.InstrumentableNode currentNode
        25: .line 1897
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 1 /* instrumentableNode */
            areturn
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node instrumentableNode
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   26     0                this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   26     1  instrumentableNode  Lcom/oracle/truffle/api/nodes/Node;
            0   26     2       sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            5   25     3         currentNode  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
            7   25     4    materializedNode  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
           13   25     5    newSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
           18   25     6       currentParent  Lcom/oracle/truffle/api/nodes/Node;
           20   24     7               probe  Lcom/oracle/truffle/api/instrumentation/ProbeNode;
           21   24     8             wrapper  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
           22   24     9         wrapperNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
                    Name  Flags
      instrumentableNode  
      sourceSection       

  void preVisit(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node, boolean);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.RootNode r
        start local 2 // com.oracle.truffle.api.nodes.Node visitRoot
        start local 3 // boolean firstExec
         0: .line 1902
            aload 0 /* this */
            iload 3 /* firstExec */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.firstExecution:Z
         1: .line 1903
            aload 0 /* this */
            aload 1 /* r */
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
         2: .line 1904
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            aload 1 /* r */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
         3: .line 1905
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
         4: .line 1906
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
            ifnonnull 5
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            goto 6
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor
         5: aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeLimitedTags:Ljava/util/Set;
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor java.util.Set
         6: putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.materializeTags:Ljava/util/Set;
         7: .line 1908
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 4 /* operation */
        start local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         9: .line 1909
            aload 4 /* operation */
            aload 1 /* r */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
            ifne 10
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
            ifne 10
            iconst_0
            goto 11
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection
        10: iconst_1
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.source.SourceSection int
        11: aload 2 /* visitRoot */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.preVisit:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;ZLcom/oracle/truffle/api/nodes/Node;)V
        end local 4 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        12: .line 1908
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.nodes.Node int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        13: .line 1911
            return
        end local 3 // boolean firstExec
        end local 2 // com.oracle.truffle.api.nodes.Node visitRoot
        end local 1 // com.oracle.truffle.api.nodes.RootNode r
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   14     1          r  Lcom/oracle/truffle/api/nodes/RootNode;
            0   14     2  visitRoot  Lcom/oracle/truffle/api/nodes/Node;
            0   14     3  firstExec  Z
            9   12     4  operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
    MethodParameters:
           Name  Flags
      r          
      visitRoot  
      firstExec  

  void postVisit();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
         0: .line 1914
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 1 /* operation */
        start local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         2: .line 1915
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.postVisitCleanup:()V
        end local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         3: .line 1914
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1917
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 1 /* operation */
        start local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         6: .line 1918
            aload 1 /* operation */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.postVisitNotifications:()V
        end local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         7: .line 1917
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 1920
            return
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            2    3     1  operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
            6    7     1  operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;

  boolean shouldPerformForBinding(com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    flags: (0x0000) 
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        start local 2 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
        start local 3 // com.oracle.truffle.api.nodes.Node parentInstrumentable
        start local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        start local 5 // com.oracle.truffle.api.nodes.Node instrumentableNode
        start local 6 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 1924
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimization:Z
            ifeq 7
            aload 1 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.singleBindingOperation:Z
            ifeq 7
         1: .line 1925
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.singleBindingOptimizationPass:Z
            ifeq 6
         2: .line 1926
            aload 2 /* binding */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 5 /* instrumentableNode */
            aload 6 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedLeaf:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifne 5
         3: .line 1927
            aload 2 /* binding */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
            aload 3 /* parentInstrumentable */
            aload 4 /* parentSourceSection */
            aload 5 /* instrumentableNode */
            aload 6 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedLeaf:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifne 5
         4: .line 1926
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
         6: .line 1929
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 1932
      StackMap locals:
      StackMap stack:
            aload 2 /* binding */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
            aload 5 /* instrumentableNode */
            aload 6 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifne 10
         8: .line 1933
            aload 2 /* binding */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.providedTags:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.root:Lcom/oracle/truffle/api/nodes/RootNode;
            aload 3 /* parentInstrumentable */
            aload 4 /* parentSourceSection */
            aload 5 /* instrumentableNode */
            aload 6 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifne 10
         9: .line 1932
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_1
            ireturn
        end local 6 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 5 // com.oracle.truffle.api.nodes.Node instrumentableNode
        end local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        end local 3 // com.oracle.truffle.api.nodes.Node parentInstrumentable
        end local 2 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
        end local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   11     1             operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
            0   11     2               binding  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
            0   11     3  parentInstrumentable  Lcom/oracle/truffle/api/nodes/Node;
            0   11     4   parentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0   11     5    instrumentableNode  Lcom/oracle/truffle/api/nodes/Node;
            0   11     6         sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    MethodParameters:
                      Name  Flags
      operation             
      binding               
      parentInstrumentable  
      parentSourceSection   
      instrumentableNode    
      sourceSection         

  void visitInstrumentable(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=5
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
        start local 1 // com.oracle.truffle.api.nodes.Node parentInstrumentable
        start local 2 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        start local 3 // com.oracle.truffle.api.nodes.Node instrumentableNode
        start local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 1938
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.operations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 27
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
            astore 5 /* operation */
        start local 5 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
         2: .line 1939
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ALL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpeq 5
         3: .line 1940
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
            ifne 4
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_ORIGINAL:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpeq 5
         4: .line 1941
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.visitingMaterialized:Z
            ifeq 27
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.scope:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope.ONLY_MATERIALIZED:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation$Scope;
            if_acmpne 27
         5: .line 1942
      StackMap locals:
      StackMap stack:
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.alwaysPerform:Z
            ifne 22
         6: .line 1943
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.bindingsAtConstructionTime:[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 20
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack:
         7: aload 10
            iload 8
            aaload
            astore 7 /* binding */
        start local 7 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
         8: .line 1944
            aload 0 /* this */
            aload 5 /* operation */
            aload 7 /* binding */
            aload 1 /* parentInstrumentable */
            aload 2 /* parentSourceSection */
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.shouldPerformForBinding:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifeq 17
         9: .line 1945
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.onlyAlwaysPerformOperationsActive:Z
            ifeq 10
            new java.lang.AssertionError
            dup
            ldc "No operation that depends on bindings should be performed here!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 1946
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
            ifeq 12
        11: .line 1947
            ldc "hit"
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
        12: .line 1949
      StackMap locals:
      StackMap stack:
            aload 5 /* operation */
            aload 7 /* binding */
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
            ifne 13
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
            ifne 13
            iconst_0
            goto 14
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
        13: iconst_1
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator com.oracle.truffle.api.instrumentation.EventBinding$Source int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
        14: invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.perform:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Z)V
        15: .line 1950
            aload 5 /* operation */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.performForEachBinding:Z
            ifne 19
        16: .line 1951
            goto 27
        17: .line 1954
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
            ifeq 19
        18: .line 1955
            ldc "miss"
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
        end local 7 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
        19: .line 1943
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator top int int com.oracle.truffle.api.instrumentation.EventBinding$Source[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        20: iload 8
            iload 9
            if_icmplt 7
        21: .line 1959
            goto 27
        22: .line 1960
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
            ifeq 24
        23: .line 1961
            ldc "hit"
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.traceFilterCheck:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
        24: .line 1963
      StackMap locals:
      StackMap stack:
            aload 5 /* operation */
            aconst_null
            aload 3 /* instrumentableNode */
            aload 4 /* sourceSection */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.setExecutedRootNodeBit:Z
            ifne 25
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor.rootBits:I
            invokestatic com.oracle.truffle.api.instrumentation.RootNodeBits.wasExecuted:(I)Z
            ifne 25
            iconst_0
            goto 26
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation null com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection
        25: iconst_1
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation java.util.Iterator
      StackMap stack: com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation null com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection int
        26: invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation.perform:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Z)V
        end local 5 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation operation
        27: .line 1938
      StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        28: .line 1967
            return
        end local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 3 // com.oracle.truffle.api.nodes.Node instrumentableNode
        end local 2 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node parentInstrumentable
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   29     0                  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$Visitor;
            0   29     1  parentInstrumentable  Lcom/oracle/truffle/api/nodes/Node;
            0   29     2   parentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0   29     3    instrumentableNode  Lcom/oracle/truffle/api/nodes/Node;
            0   29     4         sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            2   27     5             operation  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$VisitOperation;
            8   19     7               binding  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
    MethodParameters:
                      Name  Flags
      parentInstrumentable  
      parentSourceSection   
      instrumentableNode    
      sourceSection         
}
SourceFile: "InstrumentationHandler.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentationHandler
InnerClasses:
  final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
  public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
  private abstract VisitOperation = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation of com.oracle.truffle.api.instrumentation.InstrumentationHandler
  final Scope = com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation$Scope of com.oracle.truffle.api.instrumentation.InstrumentationHandler$VisitOperation
  private final Visitor = com.oracle.truffle.api.instrumentation.InstrumentationHandler$Visitor of com.oracle.truffle.api.instrumentation.InstrumentationHandler
  RetiredNodeReference = com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference of com.oracle.truffle.api.instrumentation.ProbeNode