final class com.oracle.truffle.api.instrumentation.EventBinding$Source<T> extends com.oracle.truffle.api.instrumentation.EventBinding<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.EventBinding$Source
  super_class: com.oracle.truffle.api.instrumentation.EventBinding
{
  private final com.oracle.truffle.api.instrumentation.SourceSectionFilter filterSourceSection;
    descriptor: Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.instrumentation.SourceSectionFilter inputFilter;
    descriptor: Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  void <init>(com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, com.oracle.truffle.api.instrumentation.SourceSectionFilter, T, );
    descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Ljava/lang/Object;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter instrumenter
        start local 2 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filterSourceSection
        start local 3 // com.oracle.truffle.api.instrumentation.SourceSectionFilter inputFilter
        start local 4 // java.lang.Object element
        start local 5 // boolean isExecutionEvent
         0: .line 140
            aload 0 /* this */
            aload 1 /* instrumenter */
            aload 4 /* element */
            invokespecial com.oracle.truffle.api.instrumentation.EventBinding.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Ljava/lang/Object;)V
         1: .line 141
            aload 0 /* this */
            aload 3 /* inputFilter */
            putfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 142
            aload 0 /* this */
            aload 2 /* filterSourceSection */
            putfield com.oracle.truffle.api.instrumentation.EventBinding$Source.filterSourceSection:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         3: .line 143
            aload 0 /* this */
            iload 5 /* isExecutionEvent */
            putfield com.oracle.truffle.api.instrumentation.EventBinding$Source.isExecutionEvent:Z
         4: .line 144
            return
        end local 5 // boolean isExecutionEvent
        end local 4 // java.lang.Object element
        end local 3 // com.oracle.truffle.api.instrumentation.SourceSectionFilter inputFilter
        end local 2 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filterSourceSection
        end local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter instrumenter
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    5     1         instrumenter  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
            0    5     2  filterSourceSection  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            0    5     3          inputFilter  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            0    5     4              element  TT;
            0    5     5     isExecutionEvent  Z
    Signature: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;TT;Z)V
    MethodParameters:
                     Name  Flags
      instrumenter         
      filterSourceSection  
      inputFilter          
      element              
      isExecutionEvent     

  com.oracle.truffle.api.instrumentation.SourceSectionFilter getInputFilter();
    descriptor: ()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
         0: .line 147
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;

  java.util.Set<java.lang.Class<?>> getLimitedTags();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
         0: .line 151
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.filterSourceSection:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.getLimitedTags:()Ljava/util/Set;
            astore 1 /* tags */
        start local 1 // java.util.Set tags
         1: .line 152
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            ifnull 13
         2: .line 153
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.getLimitedTags:()Ljava/util/Set;
            astore 2 /* inputTags */
        start local 2 // java.util.Set inputTags
         3: .line 154
            aload 1 /* tags */
            ifnonnull 5
         4: .line 155
            aload 2 /* inputTags */
            areturn
         5: .line 157
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            aload 2 /* inputTags */
            ifnonnull 7
         6: .line 158
            aload 1 /* tags */
            areturn
         7: .line 160
      StackMap locals:
      StackMap stack:
            aload 2 /* inputTags */
            aload 1 /* tags */
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 161
            aload 1 /* tags */
            areturn
         9: .line 163
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* compoundTags */
        start local 3 // java.util.Set compoundTags
        10: .line 164
            aload 3 /* compoundTags */
            aload 1 /* tags */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        11: .line 165
            aload 3 /* compoundTags */
            aload 2 /* inputTags */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        12: .line 166
            aload 3 /* compoundTags */
            areturn
        end local 3 // java.util.Set compoundTags
        end local 2 // java.util.Set inputTags
        13: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* tags */
            areturn
        end local 1 // java.util.Set tags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            1   14     1          tags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            3   13     2     inputTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
           10   13     3  compoundTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
    Signature: ()Ljava/util/Set<Ljava/lang/Class<*>;>;

  public com.oracle.truffle.api.instrumentation.SourceSectionFilter getFilter();
    descriptor: ()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
         0: .line 176
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.filterSourceSection:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;

  boolean isInstrumentedFull(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 3 // com.oracle.truffle.api.nodes.Node node
        start local 4 // com.oracle.truffle.api.source.SourceSection nodeSourceSection
         0: .line 180
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 3 /* node */
            aload 4 /* nodeSourceSection */
            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
            ifeq 4
         1: .line 181
            aload 2 /* rootNode */
            ifnonnull 3
         2: .line 182
            iconst_0
            ireturn
         3: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 2 /* rootNode */
            aload 2 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            iconst_0
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedRoot:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
            ireturn
         4: .line 186
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.oracle.truffle.api.source.SourceSection nodeSourceSection
        end local 3 // com.oracle.truffle.api.nodes.Node node
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    5     1       providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    5     2           rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    5     3               node  Lcom/oracle/truffle/api/nodes/Node;
            0    5     4  nodeSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    MethodParameters:
                   Name  Flags
      providedTags       
      rootNode           
      node               
      nodeSourceSection  

  boolean isChildInstrumentedFull(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.RootNode, 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: (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
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 3 // com.oracle.truffle.api.nodes.Node parent
        start local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        start local 5 // com.oracle.truffle.api.nodes.Node current
        start local 6 // com.oracle.truffle.api.source.SourceSection currentSourceSection
         0: .line 195
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            ifnonnull 2
         1: .line 196
            iconst_0
            ireturn
         2: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* rootNode */
            ifnonnull 4
         3: .line 198
            iconst_0
            ireturn
         4: .line 199
      StackMap locals:
      StackMap stack:
            aload 3 /* parent */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 6
         5: .line 200
            iconst_0
            ireturn
         6: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 3 /* parent */
            aload 4 /* parentSourceSection */
            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
            ifeq 8
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 5 /* current */
            aload 6 /* currentSourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedNodeWithInputFilter:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifeq 8
         7: .line 204
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 2 /* rootNode */
            aload 2 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            iconst_0
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedRoot:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
            ireturn
         8: .line 206
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // com.oracle.truffle.api.source.SourceSection currentSourceSection
        end local 5 // com.oracle.truffle.api.nodes.Node current
        end local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        end local 3 // com.oracle.truffle.api.nodes.Node parent
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    9     1          providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    9     2              rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    9     3                parent  Lcom/oracle/truffle/api/nodes/Node;
            0    9     4   parentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0    9     5               current  Lcom/oracle/truffle/api/nodes/Node;
            0    9     6  currentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;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
    MethodParameters:
                      Name  Flags
      providedTags          
      rootNode              
      parent                
      parentSourceSection   
      current               
      currentSourceSection  

  boolean isChildInstrumentedLeaf(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.RootNode, 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: (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
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 3 // com.oracle.truffle.api.nodes.Node parent
        start local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        start local 5 // com.oracle.truffle.api.nodes.Node current
        start local 6 // com.oracle.truffle.api.source.SourceSection currentSourceSection
         0: .line 215
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            ifnonnull 2
         1: .line 216
            iconst_0
            ireturn
         2: .line 217
      StackMap locals:
      StackMap stack:
            aload 2 /* rootNode */
            ifnonnull 4
         3: .line 218
            iconst_0
            ireturn
         4: .line 219
      StackMap locals:
      StackMap stack:
            aload 3 /* parent */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 6
         5: .line 220
            iconst_0
            ireturn
         6: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 3 /* parent */
            aload 4 /* parentSourceSection */
            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
            ifeq 8
            aload 0 /* this */
            aload 1 /* providedTags */
            aload 5 /* current */
            aload 6 /* currentSourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isInstrumentedNodeWithInputFilter:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifeq 8
         7: .line 223
            iconst_1
            ireturn
         8: .line 225
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // com.oracle.truffle.api.source.SourceSection currentSourceSection
        end local 5 // com.oracle.truffle.api.nodes.Node current
        end local 4 // com.oracle.truffle.api.source.SourceSection parentSourceSection
        end local 3 // com.oracle.truffle.api.nodes.Node parent
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    9     1          providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    9     2              rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    9     3                parent  Lcom/oracle/truffle/api/nodes/Node;
            0    9     4   parentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0    9     5               current  Lcom/oracle/truffle/api/nodes/Node;
            0    9     6  currentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;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
    MethodParameters:
                      Name  Flags
      providedTags          
      rootNode              
      parent                
      parentSourceSection   
      current               
      currentSourceSection  

  private boolean isInstrumentedNodeWithInputFilter(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.Node current
        start local 3 // com.oracle.truffle.api.source.SourceSection currentSourceSection
         0: .line 230
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 1 /* providedTags */
            aload 2 /* current */
            aload 3 /* currentSourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.isInstrumentedNode:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
         1: ireturn
         2: .line 231
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
         3: .line 232
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
            ifeq 5
         4: .line 233
            aload 4 /* t */
            athrow
         5: .line 235
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.inputFilter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.toString:()Ljava/lang/String;
            aload 4 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
         6: .line 236
            iconst_0
            ireturn
        end local 4 // java.lang.Throwable t
        end local 3 // com.oracle.truffle.api.source.SourceSection currentSourceSection
        end local 2 // com.oracle.truffle.api.nodes.Node current
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    7     1          providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    7     2               current  Lcom/oracle/truffle/api/nodes/Node;
            0    7     3  currentSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            3    7     4                     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    MethodParameters:
                      Name  Flags
      providedTags          
      current               
      currentSourceSection  

  boolean isInstrumentedRoot(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.source.SourceSection, );
    descriptor: (Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 3 // com.oracle.truffle.api.source.SourceSection rootSourceSection
        start local 4 // int rootNodeBits
         0: .line 242
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
            aload 2 /* rootNode */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.isInstrumentableRoot:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
            ifne 2
         1: .line 243
            iconst_0
            ireturn
         2: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 1 /* providedTags */
            aload 3 /* rootSourceSection */
            aload 2 /* rootNode */
            iload 4 /* rootNodeBits */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.isInstrumentedRoot:(Ljava/util/Set;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/RootNode;I)Z
         3: ireturn
         4: .line 247
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
         5: .line 248
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
            ifeq 7
         6: .line 249
            aload 5 /* t */
            athrow
         7: .line 251
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.toString:()Ljava/lang/String;
            aload 5 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 252
            iconst_0
            ireturn
        end local 5 // java.lang.Throwable t
        end local 4 // int rootNodeBits
        end local 3 // com.oracle.truffle.api.source.SourceSection rootSourceSection
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    9     1       providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    9     2           rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    9     3  rootSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            0    9     4       rootNodeBits  I
            5    9     5                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;I)Z
    MethodParameters:
                   Name  Flags
      providedTags       
      rootNode           
      rootSourceSection  
      rootNodeBits       

  boolean isInstrumentedLeaf(java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // java.util.Set providedTags
        start local 2 // com.oracle.truffle.api.nodes.Node instrumentedNode
        start local 3 // com.oracle.truffle.api.source.SourceSection section
         0: .line 259
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 1 /* providedTags */
            aload 2 /* instrumentedNode */
            aload 3 /* section */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.isInstrumentedNode:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
         1: ireturn
         2: .line 260
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
         3: .line 261
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
            ifeq 5
         4: .line 262
            aload 4 /* t */
            athrow
         5: .line 264
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.toString:()Ljava/lang/String;
            aload 4 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
         6: .line 265
            iconst_0
            ireturn
        end local 4 // java.lang.Throwable t
        end local 3 // com.oracle.truffle.api.source.SourceSection section
        end local 2 // com.oracle.truffle.api.nodes.Node instrumentedNode
        end local 1 // java.util.Set providedTags
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    7     1      providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    7     2  instrumentedNode  Lcom/oracle/truffle/api/nodes/Node;
            0    7     3           section  Lcom/oracle/truffle/api/source/SourceSection;
            3    7     4                 t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
    MethodParameters:
                  Name  Flags
      providedTags      
      instrumentedNode  
      section           

  boolean isInstrumentedSource(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 271
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.isInstrumentableSource:(Lcom/oracle/truffle/api/source/Source;)Z
            ifne 2
         1: .line 272
            iconst_0
            ireturn
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.isInstrumentedSource:(Lcom/oracle/truffle/api/source/Source;)Z
         3: ireturn
         4: .line 276
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 277
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
            ifeq 7
         6: .line 278
            aload 2 /* t */
            athrow
         7: .line 280
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.toString:()Ljava/lang/String;
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 281
            iconst_0
            ireturn
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
            0    9     1  source  Lcom/oracle/truffle/api/source/Source;
            5    9     2       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      source  

  boolean isExecutionEvent();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
         0: .line 287
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.EventBinding$Source.isExecutionEvent:Z
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;

  boolean isLanguageBinding();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
         0: .line 291
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
            instanceof com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.EventBinding$Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<TT;>;
}
Signature: <T:Ljava/lang/Object;>Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
SourceFile: "EventBinding.java"
NestHost: com.oracle.truffle.api.instrumentation.EventBinding
InnerClasses:
  final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
  abstract AbstractInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
  final LanguageClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler