public final class com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
  super_class: java.lang.Object
{
  private static final com.oracle.truffle.api.interop.InteropLibrary INTEROP;
    descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.Object polyglotInstrument;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.InputStream in;
    descriptor: Ljava/io/InputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.OutputStream err;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.OutputStream out;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.polyglot.io.MessageTransport messageTransport;
    descriptor: Lorg/graalvm/polyglot/io/MessageTransport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  org.graalvm.options.OptionValues options;
    descriptor: Lorg/graalvm/options/OptionValues;
    flags: (0x0000) 

  com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter instrumenter;
    descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
    flags: (0x0000) 

  private java.util.List<java.lang.Object> services;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Object;>;

  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 448
            ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
            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.TruffleInstrument$Env.$assertionsDisabled:Z
         3: .line 450
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            putstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Object, java.io.OutputStream, java.io.OutputStream, java.io.InputStream, org.graalvm.polyglot.io.MessageTransport);
    descriptor: (Ljava/lang/Object;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // java.io.OutputStream out
        start local 3 // java.io.OutputStream err
        start local 4 // java.io.InputStream in
        start local 5 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
         0: .line 461
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 462
            aload 0 /* this */
            aload 1 /* polyglotInstrument */
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
         2: .line 463
            aload 0 /* this */
            aload 4 /* in */
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.in:Ljava/io/InputStream;
         3: .line 464
            aload 0 /* this */
            aload 3 /* err */
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.err:Ljava/io/OutputStream;
         4: .line 465
            aload 0 /* this */
            aload 2 /* out */
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.out:Ljava/io/OutputStream;
         5: .line 466
            aload 0 /* this */
            aload 5 /* messageInterceptor */
            ifnull 6
            new com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$MessageTransportProxy
            dup
            aload 5 /* messageInterceptor */
            invokespecial com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$MessageTransportProxy.<init>:(Lorg/graalvm/polyglot/io/MessageTransport;)V
            goto 7
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object java.io.OutputStream java.io.OutputStream java.io.InputStream org.graalvm.polyglot.io.MessageTransport
      StackMap stack: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
         6: aconst_null
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object java.io.OutputStream java.io.OutputStream java.io.InputStream org.graalvm.polyglot.io.MessageTransport
      StackMap stack: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$MessageTransportProxy
         7: putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.messageTransport:Lorg/graalvm/polyglot/io/MessageTransport;
         8: .line 467
            return
        end local 5 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
        end local 4 // java.io.InputStream in
        end local 3 // java.io.OutputStream err
        end local 2 // java.io.OutputStream out
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    9     1  polyglotInstrument  Ljava/lang/Object;
            0    9     2                 out  Ljava/io/OutputStream;
            0    9     3                 err  Ljava/io/OutputStream;
            0    9     4                  in  Ljava/io/InputStream;
            0    9     5  messageInterceptor  Lorg/graalvm/polyglot/io/MessageTransport;
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      out                 
      err                 
      in                  
      messageInterceptor  

  java.lang.Object getPolyglotInstrument();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 470
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public com.oracle.truffle.api.instrumentation.Instrumenter getInstrumenter();
    descriptor: ()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 480
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.instrumenter:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public java.io.InputStream in();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 491
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.in:Ljava/io/InputStream;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public java.io.OutputStream out();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 502
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.out:Ljava/io/OutputStream;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public java.io.OutputStream err();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 513
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.err:Ljava/io/OutputStream;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public org.graalvm.polyglot.io.MessageEndpoint startServer(java.net.URI, org.graalvm.polyglot.io.MessageEndpoint);
    descriptor: (Ljava/net/URI;Lorg/graalvm/polyglot/io/MessageEndpoint;)Lorg/graalvm/polyglot/io/MessageEndpoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.net.URI uri
        start local 2 // org.graalvm.polyglot.io.MessageEndpoint server
         0: .line 541
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.messageTransport:Lorg/graalvm/polyglot/io/MessageTransport;
            ifnonnull 2
         1: .line 542
            aconst_null
            areturn
         2: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.messageTransport:Lorg/graalvm/polyglot/io/MessageTransport;
            aload 1 /* uri */
            aload 2 /* server */
            invokeinterface org.graalvm.polyglot.io.MessageTransport.open:(Ljava/net/URI;Lorg/graalvm/polyglot/io/MessageEndpoint;)Lorg/graalvm/polyglot/io/MessageEndpoint;
            areturn
        end local 2 // org.graalvm.polyglot.io.MessageEndpoint server
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    3     1     uri  Ljava/net/URI;
            0    3     2  server  Lorg/graalvm/polyglot/io/MessageEndpoint;
    Exceptions:
      throws java.io.IOException, org.graalvm.polyglot.io.MessageTransport$VetoException
    MethodParameters:
        Name  Flags
      uri     
      server  

  public void registerService(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.Object service
         0: .line 565
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.services:Ljava/util/List;
            ifnonnull 2
         1: .line 566
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.services:Ljava/util/List;
            aload 1 /* service */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 569
            return
        end local 1 // java.lang.Object service
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1  service  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      service  

  static <T extends java.lang.RuntimeException> java.lang.RuntimeException engineToInstrumentException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 574
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            areturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Throwable;
    Signature: <T:Ljava/lang/RuntimeException;>(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      t     

  public <S> S lookup(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Class<S>);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Class type
         0: .line 591
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* language */
            aload 2 /* type */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookup:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class;)Ljava/lang/Object;
         1: areturn
         2: .line 592
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         3: .line 593
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Class type
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    4     2      type  Ljava/lang/Class<TS;>;
            3    4     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class<TS;>;)TS;
    MethodParameters:
          Name  Flags
      language  
      type      

  public <S> S lookup(com.oracle.truffle.api.InstrumentInfo, java.lang.Class<S>);
    descriptor: (Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.InstrumentInfo instrument
        start local 2 // java.lang.Class type
         0: .line 612
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPolyglotInstrument:(Lcom/oracle/truffle/api/InstrumentInfo;)Ljava/lang/Object;
            astore 3 /* vm */
        start local 3 // java.lang.Object vm
         1: .line 613
            aload 3 /* vm */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            if_acmpne 3
         2: .line 614
            new java.lang.IllegalArgumentException
            dup
            ldc "Not allowed to lookup services from the currrent instrument."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 616
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* instrument */
            aload 2 /* type */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookup:(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class;)Ljava/lang/Object;
         4: areturn
        end local 3 // java.lang.Object vm
         5: .line 617
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.InstrumentInfo java.lang.Class
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         6: .line 618
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Class type
        end local 1 // com.oracle.truffle.api.InstrumentInfo instrument
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    7     1  instrument  Lcom/oracle/truffle/api/InstrumentInfo;
            0    7     2        type  Ljava/lang/Class<TS;>;
            1    5     3          vm  Ljava/lang/Object;
            6    7     3           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Throwable
    Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class<TS;>;)TS;
    MethodParameters:
            Name  Flags
      instrument  
      type        

  public java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getLanguages();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 630
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInternalLanguages:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 631
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 632
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;

  public java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo> getInstruments();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 644
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstruments:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 645
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 646
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;

  java.lang.Object[] onCreate(com.oracle.truffle.api.instrumentation.TruffleInstrument);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;)[Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument instrument
         0: .line 651
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* arr */
        start local 2 // java.util.List arr
         1: .line 652
            aload 0 /* this */
            aload 2 /* arr */
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.services:Ljava/util/List;
         2: .line 654
            aload 1 /* instrument */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument.onCreate:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
         3: .line 655
            goto 7
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.instrumentation.TruffleInstrument java.util.List
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 656
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.services:Ljava/util/List;
         6: .line 657
            aload 3
            athrow
         7: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.services:Ljava/util/List;
         8: .line 658
            aload 2 /* arr */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            areturn
        end local 2 // java.util.List arr
        end local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument instrument
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    9     1  instrument  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
            1    9     2         arr  Ljava/util/List<Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           2     4       4  any
    MethodParameters:
            Name  Flags
      instrument  

  public org.graalvm.options.OptionValues getOptions();
    descriptor: ()Lorg/graalvm/options/OptionValues;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 671
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.options:Lorg/graalvm/options/OptionValues;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  public org.graalvm.options.OptionValues getOptions(com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;)Lorg/graalvm/options/OptionValues;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.TruffleContext context
         0: .line 685
            aload 1 /* context */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 686
            getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPolyglotContext:(Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstrumentContextOptions:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/options/OptionValues;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    2     1  context  Lcom/oracle/truffle/api/TruffleContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      context  

  public com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.source.Source, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // java.lang.String[] argumentNames
         0: .line 705
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getLanguage:()Ljava/lang/String;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getMimeType:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getEnvForInstrument:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 3 /* env */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         1: .line 706
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 3 /* env */
            aload 1 /* source */
            aconst_null
            aload 2 /* argumentNames */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.parse:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
         2: areturn
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         3: .line 707
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         4: .line 708
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.String[] argumentNames
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     1         source  Lcom/oracle/truffle/api/source/Source;
            0    5     2  argumentNames  [Ljava/lang/String;
            1    3     3            env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            4    5     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      source         
      argumentNames  

  public com.oracle.truffle.api.nodes.ExecutableNode parseInline(com.oracle.truffle.api.source.Source, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 727
            aload 2 /* node */
            ifnonnull 2
         1: .line 728
            new java.lang.IllegalArgumentException
            dup
            ldc "Node must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 730
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getLanguage:()Ljava/lang/String;
            aload 1 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getMimeType:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getEnvForInstrument:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 4 /* env */
        start local 4 // com.oracle.truffle.api.TruffleLanguage$Env env
         3: .line 732
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.$assertionsDisabled:Z
            ifne 4
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageInfo:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            if_acmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 733
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* env */
            aload 1 /* source */
            aload 2 /* node */
            aload 3 /* frame */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.parseInline:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
            astore 5 /* fragment */
        start local 5 // com.oracle.truffle.api.nodes.ExecutableNode fragment
         5: .line 734
            aload 5 /* fragment */
            ifnull 8
         6: .line 735
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getSPI:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
            astore 6 /* languageSPI */
        start local 6 // com.oracle.truffle.api.TruffleLanguage languageSPI
         7: .line 736
            new com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$GuardedExecutableNode
            dup
            aload 6 /* languageSPI */
            aload 5 /* fragment */
            aload 3 /* frame */
            invokespecial com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$GuardedExecutableNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/nodes/ExecutableNode;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
            astore 5 /* fragment */
        end local 6 // com.oracle.truffle.api.TruffleLanguage languageSPI
         8: .line 738
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode
      StackMap stack:
            aload 5 /* fragment */
         9: areturn
        end local 5 // com.oracle.truffle.api.nodes.ExecutableNode fragment
        end local 4 // com.oracle.truffle.api.TruffleLanguage$Env env
        10: .line 739
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
        11: .line 740
            aload 4 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable t
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   12     1       source  Lcom/oracle/truffle/api/source/Source;
            0   12     2         node  Lcom/oracle/truffle/api/nodes/Node;
            0   12     3        frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            3   10     4          env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            5   10     5     fragment  Lcom/oracle/truffle/api/nodes/ExecutableNode;
            7    8     6  languageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
           11   12     4            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      source  
      node    
      frame   

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.String path
         0: .line 754
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* path */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
         1: areturn
         2: .line 755
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 756
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1  path  Ljava/lang/String;
            3    4     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      path  

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.net.URI);
    descriptor: (Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.net.URI uri
         0: .line 770
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* uri */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getTruffleFile:(Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
         1: areturn
         2: .line 771
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 772
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1   uri  Ljava/net/URI;
            3    4     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      uri   

  public com.oracle.truffle.api.TruffleContext getEnteredContext();
    descriptor: ()Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 782
            getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentCreatorTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;

  private static boolean checkNullOrInterop(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 814
            aload 0 /* obj */
            ifnonnull 2
         1: .line 815
            iconst_1
            ireturn
         2: .line 817
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.interopAccess:()Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
            aload 0 /* obj */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.checkInteropType:(Ljava/lang/Object;)V
         3: .line 818
            iconst_1
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isEngineRoot(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.RootNode root
         0: .line 835
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* root */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isEvalRoot:(Lcom/oracle/truffle/api/nodes/RootNode;)Z
         1: ireturn
         2: .line 836
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 837
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.nodes.RootNode root
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1  root  Lcom/oracle/truffle/api/nodes/RootNode;
            3    4     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      root  

  public void setAsynchronousStackDepth(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // int depth
         0: .line 858
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            iload 1 /* depth */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.setAsynchronousStackDepth:(Ljava/lang/Object;I)V
         1: .line 859
            return
        end local 1 // int depth
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    2     1  depth  I
    MethodParameters:
       Name  Flags
      depth  

  public com.oracle.truffle.api.nodes.LanguageInfo getLanguageInfo(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.Class languageClass
         0: .line 878
            aload 1 /* languageClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 879
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLanguageInfo:(Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
         2: areturn
         3: .line 880
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 881
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     1  languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
            4    5     2              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      languageClass  

  public java.lang.Object getLanguageView(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Object value
         0: .line 911
            aload 1 /* language */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 912
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* language */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLanguageView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
         3: .line 913
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         4: .line 914
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    5     2     value  Ljava/lang/Object;
            4    5     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      language  
      value     

  public java.lang.Object getScopedView(com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // com.oracle.truffle.api.nodes.Node location
        start local 3 // com.oracle.truffle.api.frame.Frame frame
        start local 4 // java.lang.Object value
         0: .line 958
            aload 1 /* language */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 959
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* language */
            aload 2 /* location */
            aload 3 /* frame */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getScopedView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
         3: .line 960
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
         4: .line 961
            aload 5 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Throwable t
        end local 4 // java.lang.Object value
        end local 3 // com.oracle.truffle.api.frame.Frame frame
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    5     2  location  Lcom/oracle/truffle/api/nodes/Node;
            0    5     3     frame  Lcom/oracle/truffle/api/frame/Frame;
            0    5     4     value  Ljava/lang/Object;
            4    5     5         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      language  
      location  
      frame     
      value     

  public java.lang.String toString(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Object value
         0: .line 982
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* this */
            aload 1 /* language */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguageView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* displayString */
        start local 3 // java.lang.Object displayString
         1: .line 984
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* displayString */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
         2: areturn
         3: .line 985
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.LanguageInfo java.lang.Object java.lang.Object
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         4: .line 986
            new java.lang.AssertionError
            dup
            ldc "Message toDisplayResult does not return a value string."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.Object displayString
         5: .line 988
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.LanguageInfo java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         6: .line 989
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    7     1       language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    7     2          value  Ljava/lang/Object;
            1    5     3  displayString  Ljava/lang/Object;
            6    7     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           0     2       5  Class java.lang.Throwable
           3     5       5  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      language  
      value     

  public java.lang.Object findMetaObject(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Object value
         0: .line 1013
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.interopAccess:()Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.checkInteropType:(Ljava/lang/Object;)V
         1: .line 1015
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* this */
            aload 1 /* language */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguageView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
         3: .line 1016
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         4: .line 1017
            aconst_null
            areturn
         5: .line 1019
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         6: .line 1020
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    7     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    7     2     value  Ljava/lang/Object;
            6    7     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           0     2       5  Class java.lang.Throwable
           3     4       5  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      language  
      value     

  public com.oracle.truffle.api.source.SourceSection findSourceLocation(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Object value
         0: .line 1042
            aload 0 /* this */
            aload 1 /* language */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguageView:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* view */
        start local 3 // java.lang.Object view
         1: .line 1043
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* view */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 1044
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* view */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
         3: areturn
        end local 3 // java.lang.Object view
         4: .line 1046
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         5: .line 1048
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         6: .line 1049
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 1050
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    8     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    8     2     value  Ljava/lang/Object;
            1    4     3      view  Ljava/lang/Object;
            7    8     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           0     3       6  Class java.lang.Throwable
           4     5       6  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      language  
      value     

  public com.oracle.truffle.api.nodes.LanguageInfo findLanguage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.Object value
         0: .line 1069
            aconst_null
            astore 2 /* language */
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         1: .line 1070
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 7
         2: .line 1072
            aload 0 /* this */
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguageInfo:(Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 2 /* language */
         3: .line 1073
            goto 7
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
         4: astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         5: .line 1074
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         6: .line 1075
            new java.lang.AssertionError
            dup
            aload 3 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         7: .line 1078
      StackMap locals:
      StackMap stack:
            aload 2 /* language */
         8: areturn
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
         9: .line 1079
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        10: .line 1080
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   11     1     value  Ljava/lang/Object;
            1    9     2  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            5    7     3         e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
           10   11     2         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           0     8       9  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  

  public java.util.Map<java.lang.String, ? extends java.lang.Object> getExportedSymbols();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 1094
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getExportedSymbols:()Ljava/util/Map;
         1: areturn
         2: .line 1095
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1096
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: ()Ljava/util/Map<Ljava/lang/String;+Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.Object getPolyglotBindings();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
         0: .line 1109
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getPolyglotBindingsObject:()Ljava/lang/Object;
         1: areturn
         2: .line 1110
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1111
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public java.lang.Iterable<com.oracle.truffle.api.Scope> findLocalScopes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.Frame frame
         0: .line 1141
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* rootNode */
        start local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 1142
            aload 3 /* rootNode */
            ifnonnull 3
         2: .line 1143
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* node */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have a RootNode."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1145
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 3 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 4 /* languageInfo */
        start local 4 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         4: .line 1146
            aload 4 /* languageInfo */
            ifnonnull 6
         5: .line 1147
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The root node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* rootNode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have a language associated."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1149
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.findLibraryLocalScopesToLegacy:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
            astore 5 /* langScopes */
        start local 5 // java.lang.Iterable langScopes
         7: .line 1150
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.$assertionsDisabled:Z
            ifne 8
            aload 5 /* langScopes */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            aload 4 /* languageInfo */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 1151
      StackMap locals: java.lang.Iterable
      StackMap stack:
            aload 5 /* langScopes */
         9: areturn
        end local 5 // java.lang.Iterable langScopes
        end local 4 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
        10: .line 1152
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.Frame
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        11: .line 1153
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   12     1          node  Lcom/oracle/truffle/api/nodes/Node;
            0   12     2         frame  Lcom/oracle/truffle/api/frame/Frame;
            1   10     3      rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            4   10     4  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            7   10     5    langScopes  Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
           11   12     3             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Throwable
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      node   
      frame  

  public java.lang.Iterable<com.oracle.truffle.api.Scope> findTopScopes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.String languageId
         0: .line 1171
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
            aload 1 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 2 /* languageInfo */
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         1: .line 1172
            aload 2 /* languageInfo */
            ifnonnull 3
         2: .line 1173
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown language: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* languageId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Known languages are: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1175
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 0 /* this */
            aload 2 /* languageInfo */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getScope:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         4: .line 1176
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 3 /* scope */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.topScopesToLegacy:(Ljava/lang/Object;)Ljava/lang/Iterable;
            areturn
        end local 3 // java.lang.Object scope
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    5     1    languageId  Ljava/lang/String;
            1    5     2  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            4    5     3         scope  Ljava/lang/Object;
    Signature: (Ljava/lang/String;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      languageId  

  public java.lang.Object getScope(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 1191
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.$assertionsDisabled:Z
            ifne 1
            aload 1 /* language */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1193
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getEnvForInstrument:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 2 /* env */
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
         2: .line 1194
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 2 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getScope:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
         3: areturn
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
         4: .line 1195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 1196
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    6     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            2    4     2       env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            5    6     2         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Throwable
    MethodParameters:
          Name  Flags
      language  

  public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.String loggerName
         0: .line 1224
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.polyglotInstrument:Ljava/lang/Object;
            aload 1 /* loggerName */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLogger:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
         1: areturn
         2: .line 1225
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 1226
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String loggerName
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    4     1  loggerName  Ljava/lang/String;
            3    4     2           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      loggerName  

  public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
        start local 1 // java.lang.Class forClass
         0: .line 1254
            aload 0 /* this */
            aload 1 /* forClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLogger:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 1 // java.lang.Class forClass
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0    1     1  forClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
          Name  Flags
      forClass  

  static java.lang.Iterable<com.oracle.truffle.api.Scope> findTopScopes(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Iterable;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 1259
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.findTopScopes:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Iterable;
            astore 1 /* langScopes */
        start local 1 // java.lang.Iterable langScopes
         1: .line 1260
            getstatic com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.$assertionsDisabled:Z
            ifne 2
            aload 1 /* langScopes */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageInfo:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1261
      StackMap locals: java.lang.Iterable
      StackMap stack:
            aload 1 /* langScopes */
            areturn
        end local 1 // java.lang.Iterable langScopes
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0         env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    3     1  langScopes  Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
      Name  Flags
      env   
}
SourceFile: "TruffleInstrument.java"
NestHost: com.oracle.truffle.api.instrumentation.TruffleInstrument
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InteropSupport = com.oracle.truffle.api.impl.Accessor$InteropSupport of com.oracle.truffle.api.impl.Accessor
  public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
  final InstrumentClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  private GuardedExecutableNode = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$GuardedExecutableNode of com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
  private MessageTransportProxy = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env$MessageTransportProxy of com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
  public final VetoException = org.graalvm.polyglot.io.MessageTransport$VetoException of org.graalvm.polyglot.io.MessageTransport