final class com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter extends com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter
  super_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
{
  final com.oracle.truffle.api.instrumentation.InstrumentationHandler this$0;
    descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.truffle.api.instrumentation.InstrumentationHandler);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
         0: .line 2112
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            aload 0 /* this */
            aload 1
            invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
            return
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
    MethodParameters:
        Name  Flags
      this$0  final

  void doFinalize();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
         0: .line 2116
            return
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;

  void dispose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
         0: .line 2120
            return
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;

  <T> T lookup(com.oracle.truffle.api.instrumentation.InstrumentationHandler, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler handler
        start local 2 // java.lang.Class type
         0: .line 2124
            aconst_null
            areturn
        end local 2 // java.lang.Class type
        end local 1 // com.oracle.truffle.api.instrumentation.InstrumentationHandler handler
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  handler  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
            0    1     2     type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
         Name  Flags
      handler  
      type     

  boolean isInstrumentableRoot(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
         0: .line 2129
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
          Name  Flags
      rootNode  

  boolean isInstrumentableSource(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Z
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 2134
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  source  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
        Name  Flags
      source  

  void verifyFilter(com.oracle.truffle.api.instrumentation.SourceSectionFilter);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
    flags: (0x0000) 
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filter
         0: .line 2139
            return
        end local 1 // com.oracle.truffle.api.instrumentation.SourceSectionFilter filter
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  filter  Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
    MethodParameters:
        Name  Flags
      filter  

  public java.util.Set<java.lang.Class<?>> queryTags(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 2143
            aload 0 /* this */
            aload 1 /* node */
            aconst_null
            invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter.queryTagsImpl:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/Set;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  node  Lcom/oracle/truffle/api/nodes/Node;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set<Ljava/lang/Class<*>;>;
    MethodParameters:
      Name  Flags
      node  

  public <T extends com.oracle.truffle.api.instrumentation.ContextsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachContextsListener(T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ContextsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.ContextsListener listener
        start local 2 // boolean includeActiveContexts
         0: .line 2148
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported in engine instrumenter."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // boolean includeActiveContexts
        end local 1 // com.oracle.truffle.api.instrumentation.ContextsListener listener
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0                   this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1               listener  TT;
            0    1     2  includeActiveContexts  Z
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ContextsListener;>(TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                       Name  Flags
      listener               
      includeActiveContexts  

  public <T extends com.oracle.truffle.api.instrumentation.ThreadsListener> com.oracle.truffle.api.instrumentation.EventBinding<T> attachThreadsListener(T, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.ThreadsListener listener
        start local 2 // boolean includeStartedThreads
         0: .line 2153
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported in engine instrumenter."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // boolean includeStartedThreads
        end local 1 // com.oracle.truffle.api.instrumentation.ThreadsListener listener
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0                   this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1               listener  TT;
            0    1     2  includeStartedThreads  Z
    Signature: <T::Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>(TT;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TT;>;
    MethodParameters:
                       Name  Flags
      listener               
      includeStartedThreads  

  public com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ThreadsActivationListener> attachThreadsActivationListener(com.oracle.truffle.api.instrumentation.ThreadsActivationListener);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
        start local 1 // com.oracle.truffle.api.instrumentation.ThreadsActivationListener listener
         0: .line 2158
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not supported in engine instrumenter."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.truffle.api.instrumentation.ThreadsActivationListener listener
        end local 0 // com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$EngineInstrumenter;
            0    1     1  listener  Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
    Signature: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;
    MethodParameters:
          Name  Flags
      listener  
}
SourceFile: "InstrumentationHandler.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentationHandler
InnerClasses:
  abstract AbstractInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
  final EngineInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler