public final class com.oracle.truffle.api.TruffleLanguage$Env
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.TruffleLanguage$Env
  super_class: java.lang.Object
{
  static final java.lang.Object UNSET_CONTEXT;
    descriptor: Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  final java.lang.Object polyglotLanguageContext;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.TruffleLanguage<java.lang.Object> spi;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;

  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 java.util.Map<java.lang.String, java.lang.Object> config;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private final org.graalvm.options.OptionValues options;
    descriptor: Lorg/graalvm/options/OptionValues;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] applicationArguments;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  volatile java.util.List<java.lang.Object> services;
    descriptor: Ljava/util/List;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/List<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  volatile java.lang.Object context;
    descriptor: Ljava/lang/Object;
    flags: (0x0040) ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  volatile com.oracle.truffle.api.Assumption contextUnchangedAssumption;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0040) ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  volatile boolean initialized;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile com.oracle.truffle.api.Assumption initializedUnchangedAssumption;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  volatile boolean valid;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  volatile java.util.List<java.lang.Object> languageServicesCollector;
    descriptor: Ljava/util/List;
    flags: (0x0040) ACC_VOLATILE
    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=2, locals=0, args_size=0
         0: .line 1802
            ldc Lcom/oracle/truffle/api/TruffleLanguage;
            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.TruffleLanguage$Env.$assertionsDisabled:Z
         3: .line 1804
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(, com.oracle.truffle.api.TruffleLanguage<?>, java.io.OutputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, java.lang.Object>, org.graalvm.options.OptionValues, java.lang.String[]);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Lorg/graalvm/options/OptionValues;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=9
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage language
        start local 3 // java.io.OutputStream out
        start local 4 // java.io.OutputStream err
        start local 5 // java.io.InputStream in
        start local 6 // java.util.Map config
        start local 7 // org.graalvm.options.OptionValues options
        start local 8 // java.lang.String[] applicationArguments
         0: .line 1824
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1816
            aload 0 /* this */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
         2: .line 1817
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Language context unchanged"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.contextUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
         3: .line 1818
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
         4: .line 1819
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Language context initialized unchanged"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
         5: .line 1826
            aload 0 /* this */
            aload 1 /* polyglotLanguageContext */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
         6: .line 1827
            aload 0 /* this */
            aload 2 /* language */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.spi:Lcom/oracle/truffle/api/TruffleLanguage;
         7: .line 1828
            aload 0 /* this */
            aload 5 /* in */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.in:Ljava/io/InputStream;
         8: .line 1829
            aload 0 /* this */
            aload 4 /* err */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.err:Ljava/io/OutputStream;
         9: .line 1830
            aload 0 /* this */
            aload 3 /* out */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.out:Ljava/io/OutputStream;
        10: .line 1831
            aload 0 /* this */
            aload 6 /* config */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.config:Ljava/util/Map;
        11: .line 1832
            aload 0 /* this */
            aload 7 /* options */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.options:Lorg/graalvm/options/OptionValues;
        12: .line 1833
            aload 0 /* this */
            aload 8 /* applicationArguments */
            ifnonnull 13
            iconst_0
            anewarray java.lang.String
            goto 14
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.Object com.oracle.truffle.api.TruffleLanguage java.io.OutputStream java.io.OutputStream java.io.InputStream java.util.Map org.graalvm.options.OptionValues java.lang.String[]
      StackMap stack: com.oracle.truffle.api.TruffleLanguage$Env
        13: aload 8 /* applicationArguments */
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.Object com.oracle.truffle.api.TruffleLanguage java.io.OutputStream java.io.OutputStream java.io.InputStream java.util.Map org.graalvm.options.OptionValues java.lang.String[]
      StackMap stack: com.oracle.truffle.api.TruffleLanguage$Env java.lang.String[]
        14: putfield com.oracle.truffle.api.TruffleLanguage$Env.applicationArguments:[Ljava/lang/String;
        15: .line 1834
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.TruffleLanguage$Env.valid:Z
        16: .line 1835
            return
        end local 8 // java.lang.String[] applicationArguments
        end local 7 // org.graalvm.options.OptionValues options
        end local 6 // java.util.Map config
        end local 5 // java.io.InputStream in
        end local 4 // java.io.OutputStream err
        end local 3 // java.io.OutputStream out
        end local 2 // com.oracle.truffle.api.TruffleLanguage language
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   17     0                     this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   17     1  polyglotLanguageContext  Ljava/lang/Object;
            0   17     2                 language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0   17     3                      out  Ljava/io/OutputStream;
            0   17     4                      err  Ljava/io/OutputStream;
            0   17     5                       in  Ljava/io/InputStream;
            0   17     6                   config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0   17     7                  options  Lorg/graalvm/options/OptionValues;
            0   17     8     applicationArguments  [Ljava/lang/String;
    Signature: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lorg/graalvm/options/OptionValues;[Ljava/lang/String;)V
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      language                 
      out                      
      err                      
      in                       
      config                   
      options                  
      applicationArguments     

  com.oracle.truffle.api.TruffleFile$FileSystemContext getPublicFileSystemContext();
    descriptor: ()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1838
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getPublicFileSystemContext:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  com.oracle.truffle.api.TruffleFile$FileSystemContext getInternalFileSystemContext();
    descriptor: ()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1842
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInternalFileSystemContext:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

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

  com.oracle.truffle.api.TruffleLanguage<java.lang.Object> getSpi();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1850
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.spi:Lcom/oracle/truffle/api/TruffleLanguage;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: ()Lcom/oracle/truffle/api/TruffleLanguage<Ljava/lang/Object;>;

  void checkDisposed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1854
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isDisposed:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1855
            new java.lang.IllegalStateException
            dup
            ldc "Language environment is already disposed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.valid:Z
            ifne 4
         3: .line 1858
            new java.lang.IllegalStateException
            dup
            ldc "Language environment is already invalidated."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1860
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  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.TruffleLanguage$Env this
         0: .line 1870
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.options:Lorg/graalvm/options/OptionValues;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  public java.lang.String[] getApplicationArguments();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1881
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.applicationArguments:[Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  public boolean isCreateThreadAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1893
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isCreateThreadAllowed:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 1894
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1895
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public java.lang.Thread createThread(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Runnable runnable
         0: .line 1909
            aload 0 /* this */
            aload 1 /* runnable */
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Thread;
            areturn
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1  runnable  Ljava/lang/Runnable;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      runnable  

  public java.lang.Thread createThread(java.lang.Runnable, com.oracle.truffle.api.TruffleContext);
    descriptor: (Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Runnable runnable
        start local 2 // com.oracle.truffle.api.TruffleContext context
         0: .line 1924
            aload 0 /* this */
            aload 1 /* runnable */
            aload 2 /* context */
            aconst_null
            lconst_0
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/ThreadGroup;J)Ljava/lang/Thread;
            areturn
        end local 2 // com.oracle.truffle.api.TruffleContext context
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1  runnable  Ljava/lang/Runnable;
            0    1     2   context  Lcom/oracle/truffle/api/TruffleContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      runnable  
      context   

  public java.lang.Thread createThread(java.lang.Runnable, com.oracle.truffle.api.TruffleContext, java.lang.ThreadGroup);
    descriptor: (Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/ThreadGroup;)Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Runnable runnable
        start local 2 // com.oracle.truffle.api.TruffleContext context
        start local 3 // java.lang.ThreadGroup group
         0: .line 1938
            aload 0 /* this */
            aload 1 /* runnable */
            aload 2 /* context */
            aload 3 /* group */
            lconst_0
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/ThreadGroup;J)Ljava/lang/Thread;
            areturn
        end local 3 // java.lang.ThreadGroup group
        end local 2 // com.oracle.truffle.api.TruffleContext context
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1  runnable  Ljava/lang/Runnable;
            0    1     2   context  Lcom/oracle/truffle/api/TruffleContext;
            0    1     3     group  Ljava/lang/ThreadGroup;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      runnable  
      context   
      group     

  public java.lang.Thread createThread(java.lang.Runnable, com.oracle.truffle.api.TruffleContext, java.lang.ThreadGroup, long);
    descriptor: (Ljava/lang/Runnable;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/ThreadGroup;J)Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Runnable runnable
        start local 2 // com.oracle.truffle.api.TruffleContext context
        start local 3 // java.lang.ThreadGroup group
        start local 4 // long stackSize
         0: .line 1980
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* runnable */
            aload 2 /* context */
            ifnull 1
            aload 2 /* context */
            getfield com.oracle.truffle.api.TruffleContext.polyglotContext:Ljava/lang/Object;
            goto 2
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.Runnable com.oracle.truffle.api.TruffleContext java.lang.ThreadGroup long
      StackMap stack: com.oracle.truffle.api.impl.Accessor$EngineSupport java.lang.Object java.lang.Runnable
         1: aconst_null
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.Runnable com.oracle.truffle.api.TruffleContext java.lang.ThreadGroup long
      StackMap stack: com.oracle.truffle.api.impl.Accessor$EngineSupport java.lang.Object java.lang.Runnable java.lang.Object
         2: aload 3 /* group */
            lload 4 /* stackSize */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createThread:(Ljava/lang/Object;Ljava/lang/Runnable;Ljava/lang/Object;Ljava/lang/ThreadGroup;J)Ljava/lang/Thread;
         3: areturn
         4: .line 1981
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         5: .line 1982
            aload 6 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.Throwable t
        end local 4 // long stackSize
        end local 3 // java.lang.ThreadGroup group
        end local 2 // com.oracle.truffle.api.TruffleContext context
        end local 1 // java.lang.Runnable runnable
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1   runnable  Ljava/lang/Runnable;
            0    6     2    context  Lcom/oracle/truffle/api/TruffleContext;
            0    6     3      group  Ljava/lang/ThreadGroup;
            0    6     4  stackSize  J
            5    6     6          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      runnable   
      context    
      group      
      stackSize  

  public com.oracle.truffle.api.TruffleContext$Builder newContextBuilder();
    descriptor: ()Lcom/oracle/truffle/api/TruffleContext$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 1993
            new com.oracle.truffle.api.TruffleContext$Builder
            dup
            getstatic com.oracle.truffle.api.TruffleContext.EMPTY:Lcom/oracle/truffle/api/TruffleContext;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.TruffleContext$Builder.<init>:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  public java.lang.Object getPolyglotBindings();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2011
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPolyglotBindingsAccessAllowed:()Z
            ifne 2
         1: .line 2012
            new java.lang.SecurityException
            dup
            ldc "Polyglot bindings are not accessible for this language. Use --polyglot or allowPolyglotAccess when building the context."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2014
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getPolyglotBindingsForLanguage:(Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 2015
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         5: .line 2016
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            5    6     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.lang.Object importSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String symbolName
         0: .line 2041
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPolyglotBindingsAccessAllowed:()Z
            ifne 2
         1: .line 2042
            new java.lang.SecurityException
            dup
            ldc "Polyglot bindings are not accessible for this language. Use --polyglot or allowPolyglotAccess when building the context."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2044
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 0 /* this */
            aload 1 /* symbolName */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.importSymbol:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;)Ljava/lang/Object;
         3: areturn
         4: .line 2045
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 2046
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String symbolName
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1  symbolName  Ljava/lang/String;
            5    6     2           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      symbolName  

  public void exportSymbol(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String symbolName
        start local 2 // java.lang.Object value
         0: .line 2073
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPolyglotBindingsAccessAllowed:()Z
            ifne 2
         1: .line 2074
            new java.lang.SecurityException
            dup
            ldc "Polyglot bindings are not accessible for this language. Use --polyglot or allowPolyglotAccess when building the context."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2076
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* symbolName */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.exportSymbol:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 2077
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 2078
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
         6: .line 2080
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String symbolName
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1  symbolName  Ljava/lang/String;
            0    7     2       value  Ljava/lang/Object;
            5    6     3           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      symbolName  
      value       

  public boolean isHostLookupAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2094
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostAccessAllowed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
         1: ireturn
         2: .line 2095
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2096
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public void addToHostClassPath(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.TruffleFile entry
         0: .line 2112
            aload 1 /* entry */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 2113
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* entry */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.addToHostClassPath:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleFile;)V
         2: .line 2114
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 2115
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
         5: .line 2117
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.TruffleFile entry
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1  entry  Lcom/oracle/truffle/api/TruffleFile;
            4    5     2      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
      entry  

  public java.lang.Object lookupHostSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String symbolName
         0: .line 2132
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 0 /* this */
            aload 1 /* symbolName */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookupHostSymbol:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;)Ljava/lang/Object;
         1: areturn
         2: .line 2133
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2134
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String symbolName
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  symbolName  Ljava/lang/String;
            3    4     2           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      symbolName  

  public boolean isHostObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
         0: .line 2148
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostObject:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2149
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2150
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  value  Ljava/lang/Object;
            3    4     2      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object asHostObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
         0: .line 2162
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 2163
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 2164
            new java.lang.ClassCastException
            dup
            invokespecial java.lang.ClassCastException.<init>:()V
            athrow
         3: .line 2167
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
         4: areturn
         5: .line 2168
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         6: .line 2169
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1  value  Ljava/lang/Object;
            6    7     2      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object asGuestValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object hostObject
         0: .line 2191
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* hostObject */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.toGuestValue:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 2192
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2193
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Object hostObject
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  hostObject  Ljava/lang/Object;
            3    4     2           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      hostObject  

  public java.lang.Object asBoxedGuestValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object guestObject
         0: .line 2214
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* guestObject */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.asBoxedGuestValue:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 2215
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2216
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Object guestObject
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  guestObject  Ljava/lang/Object;
            3    4     2            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      guestObject  

  public boolean isHostFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
         0: .line 2229
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostFunction:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2230
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2231
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  value  Ljava/lang/Object;
            3    4     2      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      value  

  public java.lang.Object findMetaObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
         0: .line 2250
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.findMetaObjectForLanguage:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 2251
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2252
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  value  Ljava/lang/Object;
            3    4     2      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      value  

  public boolean isHostException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Throwable exception
         0: .line 2272
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* exception */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostException:(Ljava/lang/Throwable;)Z
         1: ireturn
         2: .line 2273
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2274
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  exception  Ljava/lang/Throwable;
            3    4     2          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Throwable asHostException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Throwable exception
         0: .line 2293
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* exception */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.asHostException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
         1: areturn
         2: .line 2294
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2295
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  exception  Ljava/lang/Throwable;
            3    4     2          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      exception  

  public boolean isHostSymbol(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object guestObject
         0: .line 2309
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* guestObject */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isHostSymbol:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2310
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2311
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Object guestObject
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  guestObject  Ljava/lang/Object;
            3    4     2            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      guestObject  

  public  asHostSymbol(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class symbolClass
         0: .line 2326
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* symbolClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.asHostSymbol:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
         1: areturn
         2: .line 2327
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         3: .line 2328
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Class symbolClass
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  symbolClass  Ljava/lang/Class<*>;
            3    4     2            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
             Name  Flags
      symbolClass  

  public boolean isNativeAccessAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2341
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isNativeAccessAllowed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
         1: ireturn
         2: .line 2342
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2343
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public boolean isPolyglotAccessAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2354
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPolyglotEvalAllowed:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPolyglotBindingsAccessAllowed:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isPolyglotEvalAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2371
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isPolyglotEvalAllowed:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2372
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2373
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public boolean isPolyglotBindingsAccessAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2390
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isPolyglotBindingsAccessAllowed:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2391
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2392
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public boolean isMimeTypeSupported(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String mimeType
         0: .line 2408
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2410
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* mimeType */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isMimeTypeSupported:(Ljava/lang/Object;Ljava/lang/String;)Z
         2: ireturn
         3: .line 2411
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 2412
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String mimeType
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    5     1  mimeType  Ljava/lang/String;
            4    5     2         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      mimeType  

  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.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // java.lang.String[] argumentNames
         0: .line 2426
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 2427
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         2: .line 2429
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* source */
            aload 2 /* argumentNames */
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.parseForLanguage:(Ljava/lang/Object;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;Z)Lcom/oracle/truffle/api/CallTarget;
         3: areturn
         4: .line 2430
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 2431
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1         source  Lcom/oracle/truffle/api/source/Source;
            0    6     2  argumentNames  [Ljava/lang/String;
            5    6     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      source         
      argumentNames  

  public com.oracle.truffle.api.CallTarget parseInternal(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.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // java.lang.String[] argumentNames
         0: .line 2468
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 2469
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         2: .line 2471
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* source */
            aload 2 /* argumentNames */
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.parseForLanguage:(Ljava/lang/Object;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;Z)Lcom/oracle/truffle/api/CallTarget;
         3: areturn
         4: .line 2472
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 2473
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1         source  Lcom/oracle/truffle/api/source/Source;
            0    6     2  argumentNames  [Ljava/lang/String;
            5    6     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      source         
      argumentNames  

  public com.oracle.truffle.api.CallTarget parsePublic(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.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // java.lang.String[] argumentNames
         0: .line 2511
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 2512
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         2: .line 2514
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* source */
            aload 2 /* argumentNames */
            iconst_0
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.parseForLanguage:(Ljava/lang/Object;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;Z)Lcom/oracle/truffle/api/CallTarget;
         3: areturn
         4: .line 2515
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 2516
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1         source  Lcom/oracle/truffle/api/source/Source;
            0    6     2  argumentNames  [Ljava/lang/String;
            5    6     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      source         
      argumentNames  

  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.TruffleLanguage$Env this
         0: .line 2529
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2530
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.in:Ljava/io/InputStream;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  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.TruffleLanguage$Env this
         0: .line 2543
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2544
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.out:Ljava/io/OutputStream;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  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.TruffleLanguage$Env this
         0: .line 2557
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2558
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.err:Ljava/io/OutputStream;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public <T> T lookup(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class type
         0: .line 2577
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2578
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.services:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.Class top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* obj */
        start local 2 // java.lang.Object obj
         3: .line 2579
            aload 1 /* type */
            aload 2 /* obj */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 2580
            aload 1 /* type */
            aload 2 /* obj */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object obj
         5: .line 2578
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 2583
            aconst_null
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1  type  Ljava/lang/Class<TT;>;
            3    5     2   obj  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      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.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.InstrumentInfo instrument
        start local 2 // java.lang.Class type
         0: .line 2601
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isPreInitialization:()Z
            ifeq 2
         1: .line 2602
            new java.lang.IllegalStateException
            dup
            ldc "Instrument lookup is not allowed during context pre-initialization."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2605
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.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;
         3: areturn
         4: .line 2606
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 2607
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1  instrument  Lcom/oracle/truffle/api/InstrumentInfo;
            0    6     2        type  Ljava/lang/Class<TS;>;
            5    6     3           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class<TS;>;)TS;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      instrument  
      type        

  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=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 2 // java.lang.Class type
         0: .line 2627
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            aload 1 /* language */
            if_acmpne 2
         1: .line 2628
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot request services from the current language."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2631
      StackMap locals:
      StackMap stack:
            aload 1 /* language */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2632
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* language */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            aload 2 /* type */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookupService:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class;)Ljava/lang/Object;
         4: areturn
         5: .line 2633
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         6: .line 2634
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    7     2      type  Ljava/lang/Class<TS;>;
            6    7     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.Throwable
    Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class<TS;>;)TS;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      language  
      type      

  public boolean initializeLanguage(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo targetLanguage
         0: .line 2649
            aload 1 /* targetLanguage */
            ldc "TargetLanguage must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 2651
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* targetLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.initializeLanguage:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
         2: ireturn
         3: .line 2652
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 2653
            aload 2 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo targetLanguage
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    5     1  targetLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            4    5     2               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      targetLanguage  

  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.TruffleLanguage$Env this
         0: .line 2665
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInternalLanguages:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 2666
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2667
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$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;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getInternalLanguages();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2685
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInternalLanguages:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 2686
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2687
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$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;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getPublicLanguages();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2704
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getPublicLanguages:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 2705
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2706
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$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;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  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.TruffleLanguage$Env this
         0: .line 2720
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getInstruments:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 2721
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2722
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$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;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.time.ZoneId getTimeZone();
    descriptor: ()Ljava/time/ZoneId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2735
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2737
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getTimeZone:(Ljava/lang/Object;)Ljava/time/ZoneId;
         2: areturn
         3: .line 2738
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 2739
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public java.util.Map<java.lang.String, java.lang.Object> getConfig();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2754
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2755
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.config:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public com.oracle.truffle.api.TruffleContext getContext();
    descriptor: ()Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2766
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getTruffleContext:(Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleContext;
         1: areturn
         2: .line 2767
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2768
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public boolean isPreInitialization();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2784
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.inContextPreInitialization:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 2785
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 2786
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  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=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String path
         0: .line 2804
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1  path  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
      java.lang.Deprecated()
    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=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.net.URI uri
         0: .line 2821
            aload 0 /* this */
            aload 1 /* uri */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalTruffleFile:(Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1   uri  Ljava/net/URI;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      uri   

  public com.oracle.truffle.api.TruffleFile getPublicTruffleFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String path
         0: .line 2837
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2838
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fs */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 2840
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 2 /* fs */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* path */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
         3: areturn
         4: .line 2841
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.UnsupportedOperationException
            astore 3 /* e */
        start local 3 // java.lang.UnsupportedOperationException e
         5: .line 2842
            aload 3 /* e */
            athrow
        end local 3 // java.lang.UnsupportedOperationException e
         6: .line 2843
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 2844
            aload 3 /* t */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     1  path  Ljava/lang/String;
            2    8     2    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            5    6     3     e  Ljava/lang/UnsupportedOperationException;
            7    8     3     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.UnsupportedOperationException
           2     3       6  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      path  

  public com.oracle.truffle.api.TruffleFile getPublicTruffleFile(java.net.URI);
    descriptor: (Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.net.URI uri
         0: .line 2861
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2862
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fs */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 2864
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 2 /* fs */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* uri */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/net/URI;)Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
         3: areturn
         4: .line 2865
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.net.URI com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         5: .line 2866
            new java.nio.file.FileSystemNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "FileSystem for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " scheme is not supported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.nio.file.FileSystemNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 2867
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 2868
            aload 3 /* t */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     1   uri  Ljava/net/URI;
            2    8     2    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            7    8     3     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.UnsupportedOperationException
           2     3       6  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      uri   

  public com.oracle.truffle.api.TruffleFile getInternalTruffleFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String path
         0: .line 2889
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2890
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fs */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 2892
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 2 /* fs */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* path */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
         3: areturn
         4: .line 2893
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.UnsupportedOperationException
            astore 3 /* e */
        start local 3 // java.lang.UnsupportedOperationException e
         5: .line 2894
            aload 3 /* e */
            athrow
        end local 3 // java.lang.UnsupportedOperationException e
         6: .line 2895
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 2896
            aload 3 /* t */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     1  path  Ljava/lang/String;
            2    8     2    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            5    6     3     e  Ljava/lang/UnsupportedOperationException;
            7    8     3     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.UnsupportedOperationException
           2     3       6  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      path  

  public com.oracle.truffle.api.TruffleFile getInternalTruffleFile(java.net.URI);
    descriptor: (Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.net.URI uri
         0: .line 2917
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2918
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fs */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 2920
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 2 /* fs */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* uri */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/net/URI;)Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
         3: areturn
         4: .line 2921
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.net.URI com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         5: .line 2922
            new java.nio.file.FileSystemNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "FileSystem for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " scheme is not supported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.nio.file.FileSystemNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 2923
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 2924
            aload 3 /* t */
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     1   uri  Ljava/net/URI;
            2    8     2    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            7    8     3     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.UnsupportedOperationException
           2     3       6  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      uri   

  public com.oracle.truffle.api.TruffleFile getCurrentWorkingDirectory();
    descriptor: ()Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2939
            aload 0 /* this */
            ldc ""
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokevirtual com.oracle.truffle.api.TruffleFile.getAbsoluteFile:()Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public void setCurrentWorkingDirectory(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.TruffleFile currentWorkingDirectory
         0: .line 2956
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2957
            aload 1 /* currentWorkingDirectory */
            ldc "Current working directory must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 2958
            aload 1 /* currentWorkingDirectory */
            invokevirtual com.oracle.truffle.api.TruffleFile.isAbsolute:()Z
            ifne 4
         3: .line 2959
            new java.lang.IllegalArgumentException
            dup
            ldc "Current working directory must be absolute."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2961
      StackMap locals:
      StackMap stack:
            aload 1 /* currentWorkingDirectory */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.isDirectory:([Ljava/nio/file/LinkOption;)Z
            ifne 6
         5: .line 2962
            new java.lang.IllegalArgumentException
            dup
            ldc "Current working directory must be directory."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 2964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fileSystemContext */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fileSystemContext
         7: .line 2965
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 3 /* internalFileSystemContext */
        start local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext internalFileSystemContext
         8: .line 2967
            aload 2 /* fileSystemContext */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* currentWorkingDirectory */
            invokevirtual com.oracle.truffle.api.TruffleFile.getSPIPath:()Ljava/nio/file/Path;
            invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
         9: .line 2968
            aload 2 /* fileSystemContext */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 3 /* internalFileSystemContext */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            if_acmpeq 16
        10: .line 2969
            aload 3 /* internalFileSystemContext */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 1 /* currentWorkingDirectory */
            invokevirtual com.oracle.truffle.api.TruffleFile.getSPIPath:()Ljava/nio/file/Path;
            invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
        11: .line 2971
            goto 16
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile$FileSystemContext com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.RuntimeException
        12: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        13: .line 2972
            aload 4 /* e */
            athrow
        end local 4 // java.lang.RuntimeException e
        14: .line 2973
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
        15: .line 2974
            aload 4 /* t */
            aload 2 /* fileSystemContext */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable t
        16: .line 2976
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext internalFileSystemContext
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fileSystemContext
        end local 1 // com.oracle.truffle.api.TruffleFile currentWorkingDirectory
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   17     0                       this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   17     1    currentWorkingDirectory  Lcom/oracle/truffle/api/TruffleFile;
            7   17     2          fileSystemContext  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            8   17     3  internalFileSystemContext  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
           13   14     4                          e  Ljava/lang/RuntimeException;
           15   16     4                          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.UnsupportedOperationException
           8    11      12  Class java.lang.IllegalArgumentException
           8    11      12  Class java.lang.SecurityException
           8    11      14  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                         Name  Flags
      currentWorkingDirectory  

  public java.lang.String getFileNameSeparator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 2986
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 2987
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 1 /* fs */
        start local 1 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 2989
            aload 1 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokeinterface org.graalvm.polyglot.io.FileSystem.getSeparator:()Ljava/lang/String;
         3: areturn
         4: .line 2990
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 2991
            aload 2 /* t */
            aload 1 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    6     1    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            5    6     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public java.lang.String getPathSeparator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3004
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 3005
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 1 /* fs */
        start local 1 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         2: .line 3007
            aload 1 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokeinterface org.graalvm.polyglot.io.FileSystem.getPathSeparator:()Ljava/lang/String;
         3: areturn
         4: .line 3008
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 3009
            aload 2 /* t */
            aload 1 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    6     1    fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            5    6     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public void registerService(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object service
         0: .line 3033
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.languageServicesCollector:Ljava/util/List;
            ifnonnull 2
         1: .line 3034
            new java.lang.IllegalStateException
            dup
            ldc "The registerService method can only be called during the execution of the Env.createContext method."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3036
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.languageServicesCollector:Ljava/util/List;
            aload 1 /* service */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 3037
            return
        end local 1 // java.lang.Object service
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  service  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      service  

  public boolean isCreateProcessAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3048
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isCreateProcessAllowed:(Ljava/lang/Object;)Z
         1: ireturn
         2: .line 3049
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 3050
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public com.oracle.truffle.api.io.TruffleProcessBuilder newProcessBuilder(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lcom/oracle/truffle/api/io/TruffleProcessBuilder;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String[] command
         0: .line 3063
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isCreateProcessAllowed:()Z
            ifne 2
         1: .line 3064
            new java.lang.SecurityException
            dup
            ldc "Process creation is not allowed, to enable it set Context.Builder.allowCreateProcess(true)."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3066
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 2 /* fs */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         3: .line 3067
            new java.util.ArrayList
            dup
            aload 1 /* command */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* cmd */
        start local 3 // java.util.List cmd
         4: .line 3068
            aload 3 /* cmd */
            aload 1 /* command */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 3069
            invokestatic com.oracle.truffle.api.LanguageAccessor.ioAccess:()Lcom/oracle/truffle/api/impl/Accessor$IOSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 2 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 3 /* cmd */
            invokevirtual com.oracle.truffle.api.impl.Accessor$IOSupport.createProcessBuilder:(Ljava/lang/Object;Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/List;)Lcom/oracle/truffle/api/io/TruffleProcessBuilder;
            areturn
        end local 3 // java.util.List cmd
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 1 // java.lang.String[] command
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     1  command  [Ljava/lang/String;
            3    6     2       fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            4    6     3      cmd  Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      command  

  public java.util.Map<java.lang.String, java.lang.String> getEnvironment();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3085
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getProcessEnvironment:(Ljava/lang/Object;)Ljava/util/Map;
         1: areturn
         2: .line 3086
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 3087
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$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/String;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public com.oracle.truffle.api.TruffleFile createTempFile(com.oracle.truffle.api.TruffleFile, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.TruffleFile dir
        start local 2 // java.lang.String prefix
        start local 3 // java.lang.String suffix
        start local 4 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 3121
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 5 /* fs */
        start local 5 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         1: .line 3123
            aload 1 /* dir */
            ifnonnull 2
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 5 /* fs */
            aload 5 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokeinterface org.graalvm.polyglot.io.FileSystem.getTempDirectory:()Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
            goto 3
      StackMap locals: com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack:
         2: aload 1 /* dir */
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.TruffleFile
         3: astore 6 /* useDir */
        start local 6 // com.oracle.truffle.api.TruffleFile useDir
         4: .line 3124
            aload 6 /* useDir */
            aload 2 /* prefix */
            aload 3 /* suffix */
            iconst_0
            aload 4 /* attrs */
            invokestatic com.oracle.truffle.api.TruffleFile.createTempFile:(Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;Ljava/lang/String;Z[Ljava/nio/file/attribute/FileAttribute;)Lcom/oracle/truffle/api/TruffleFile;
         5: areturn
        end local 6 // com.oracle.truffle.api.TruffleFile useDir
         6: .line 3125
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
         7: .line 3126
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Exception e
         8: .line 3127
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         9: .line 3128
            aload 6 /* t */
            aload 5 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.Throwable t
        end local 5 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 4 // java.nio.file.attribute.FileAttribute[] attrs
        end local 3 // java.lang.String suffix
        end local 2 // java.lang.String prefix
        end local 1 // com.oracle.truffle.api.TruffleFile dir
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   10     1     dir  Lcom/oracle/truffle/api/TruffleFile;
            0   10     2  prefix  Ljava/lang/String;
            0   10     3  suffix  Ljava/lang/String;
            0   10     4   attrs  [Ljava/nio/file/attribute/FileAttribute;
            1   10     5      fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            4    6     6  useDir  Lcom/oracle/truffle/api/TruffleFile;
            7    8     6       e  Ljava/lang/Exception;
            9   10     6       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.UnsupportedOperationException
           1     5       6  Class java.lang.IllegalArgumentException
           1     5       6  Class java.io.IOException
           1     5       6  Class java.lang.SecurityException
           1     5       8  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute<*>;)Lcom/oracle/truffle/api/TruffleFile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      dir     
      prefix  
      suffix  
      attrs   

  public com.oracle.truffle.api.TruffleFile createTempDirectory(com.oracle.truffle.api.TruffleFile, java.lang.String, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.TruffleFile dir
        start local 2 // java.lang.String prefix
        start local 3 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 3157
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            astore 4 /* fs */
        start local 4 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
         1: .line 3159
            aload 1 /* dir */
            ifnonnull 2
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 4 /* fs */
            aload 4 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokeinterface org.graalvm.polyglot.io.FileSystem.getTempDirectory:()Ljava/nio/file/Path;
            invokespecial com.oracle.truffle.api.TruffleFile.<init>:(Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;Ljava/nio/file/Path;)V
            goto 3
      StackMap locals: com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack:
         2: aload 1 /* dir */
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.TruffleFile
         3: astore 5 /* useDir */
        start local 5 // com.oracle.truffle.api.TruffleFile useDir
         4: .line 3160
            aload 5 /* useDir */
            aload 2 /* prefix */
            aconst_null
            iconst_1
            aload 3 /* attrs */
            invokestatic com.oracle.truffle.api.TruffleFile.createTempFile:(Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;Ljava/lang/String;Z[Ljava/nio/file/attribute/FileAttribute;)Lcom/oracle/truffle/api/TruffleFile;
         5: areturn
        end local 5 // com.oracle.truffle.api.TruffleFile useDir
         6: .line 3161
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
         7: .line 3162
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Exception e
         8: .line 3163
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
         9: .line 3164
            aload 5 /* t */
            aload 4 /* fs */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokestatic com.oracle.truffle.api.TruffleFile.wrapHostException:(Ljava/lang/Throwable;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Throwable t
        end local 4 // com.oracle.truffle.api.TruffleFile$FileSystemContext fs
        end local 3 // java.nio.file.attribute.FileAttribute[] attrs
        end local 2 // java.lang.String prefix
        end local 1 // com.oracle.truffle.api.TruffleFile dir
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   10     1     dir  Lcom/oracle/truffle/api/TruffleFile;
            0   10     2  prefix  Ljava/lang/String;
            0   10     3   attrs  [Ljava/nio/file/attribute/FileAttribute;
            1   10     4      fs  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            4    6     5  useDir  Lcom/oracle/truffle/api/TruffleFile;
            7    8     5       e  Ljava/lang/Exception;
            9   10     5       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.UnsupportedOperationException
           1     5       6  Class java.lang.IllegalArgumentException
           1     5       6  Class java.io.IOException
           1     5       6  Class java.lang.SecurityException
           1     5       8  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute<*>;)Lcom/oracle/truffle/api/TruffleFile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      dir     
      prefix  
      attrs   

  public  createHostAdapterClass(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class[] types
         0: .line 3265
            aload 1 /* types */
            ldc "types"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 3266
            aload 0 /* this */
            aload 1 /* types */
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createHostAdapterClassImpl:([Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class[] types
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    2     1  types  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      types  

  public  createHostAdapterClassWithStaticOverrides(java.lang.Class<?>[], );
    descriptor: ([Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class[] types
        start local 2 // java.lang.Object classOverrides
         0: .line 3307
            aload 1 /* types */
            ldc "types"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 3308
            aload 2 /* classOverrides */
            ldc "classOverrides"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 3309
            aload 0 /* this */
            aload 1 /* types */
            aload 2 /* classOverrides */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createHostAdapterClassImpl:([Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object classOverrides
        end local 1 // java.lang.Class[] types
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    3     1           types  [Ljava/lang/Class;
            0    3     2  classOverrides  Ljava/lang/Object;
    Signature: ([Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      types           
      classOverrides  

  private  createHostAdapterClassImpl(java.lang.Class<?>[], );
    descriptor: ([Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class[] types
        start local 2 // java.lang.Object classOverrides
         0: .line 3313
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 3315
            aload 1 /* types */
            arraylength
            ifne 3
         2: .line 3316
            new java.lang.IllegalArgumentException
            dup
            ldc "Expected at least one type."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3318
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
            aload 1 /* types */
            aload 2 /* classOverrides */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createHostAdapterClass:(Ljava/lang/Object;[Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
         4: areturn
         5: .line 3319
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         6: .line 3320
            aload 3 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Object classOverrides
        end local 1 // java.lang.Class[] types
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1           types  [Ljava/lang/Class;
            0    7     2  classOverrides  Ljava/lang/Object;
            6    7     3               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable
    Signature: ([Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      types           
      classOverrides  

  <E extends com.oracle.truffle.api.TruffleLanguage> E getLanguage(java.lang.Class<E>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Class languageClass
         0: .line 3327
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.checkDisposed:()V
         1: .line 3328
            aload 1 /* languageClass */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 3
         2: .line 3329
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid access to language "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* languageClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            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 3331
      StackMap locals:
      StackMap stack:
            aload 1 /* languageClass */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLanguage
            areturn
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  languageClass  Ljava/lang/Class<TE;>;
    Signature: <E:Lcom/oracle/truffle/api/TruffleLanguage;>(Ljava/lang/Class<TE;>;)TE;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      languageClass  

  java.lang.Object findExportedSymbol(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.String globalName
        start local 2 // boolean onlyExplicit
         0: .line 3335
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 3 /* c */
        start local 3 // java.lang.Object c
         1: .line 3336
            aload 3 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 3337
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* c */
            aload 1 /* globalName */
            iload 2 /* onlyExplicit */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findExportedSymbol:(Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object;
            areturn
         3: .line 3339
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object c
        end local 2 // boolean onlyExplicit
        end local 1 // java.lang.String globalName
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1    globalName  Ljava/lang/String;
            0    4     2  onlyExplicit  Z
            1    4     3             c  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      globalName    
      onlyExplicit  

  java.lang.Object getLanguageGlobal();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3344
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 1 /* c */
        start local 1 // java.lang.Object c
         1: .line 3345
            aload 1 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 3346
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* c */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getLanguageGlobal:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         3: .line 3348
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object c
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    4     1     c  Ljava/lang/Object;

  java.lang.Object findMetaObjectImpl(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object obj
         0: .line 3353
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 2 /* c */
        start local 2 // java.lang.Object c
         1: .line 3354
            aload 2 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 3355
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* c */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findMetaObject:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         3: .line 3357
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object c
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1   obj  Ljava/lang/Object;
            1    4     2     c  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  com.oracle.truffle.api.source.SourceSection findSourceLocation(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object obj
         0: .line 3362
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 2 /* c */
        start local 2 // java.lang.Object c
         1: .line 3363
            aload 2 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 3364
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* c */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findSourceLocation:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
         3: .line 3366
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object c
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1   obj  Ljava/lang/Object;
            1    4     2     c  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  boolean isObjectOfLanguage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object obj
         0: .line 3371
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.isObjectOfLanguage:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  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: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.Frame frame
         0: .line 3376
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.$assertionsDisabled:Z
            ifne 1
            aload 1 /* node */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findLocalScopes:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
            areturn
        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.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    2     1   node  Lcom/oracle/truffle/api/nodes/Node;
            0    2     2  frame  Lcom/oracle/truffle/api/frame/Frame;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
       Name  Flags
      node   
      frame  

  java.lang.Iterable<com.oracle.truffle.api.Scope> findTopScopes();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3382
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findTopScopes:(Ljava/lang/Object;)Ljava/lang/Iterable;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: ()Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;

  void dispose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3386
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 1 /* c */
        start local 1 // java.lang.Object c
         1: .line 3387
            aload 1 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 4
         2: .line 3388
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* c */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.disposeContext:(Ljava/lang/Object;)V
         3: .line 3389
            goto 5
         4: .line 3390
      StackMap locals: java.lang.Object
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Disposing while context has not been set yet."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 3392
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object c
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    6     1     c  Ljava/lang/Object;

  void postInit();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3397
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.TruffleLanguage.initializeContext:(Ljava/lang/Object;)V
         1: .line 3398
            goto 12
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         2: astore 1 /* ex */
        start local 1 // java.lang.RuntimeException ex
         3: .line 3399
            aload 1 /* ex */
            athrow
        end local 1 // java.lang.RuntimeException ex
         4: .line 3400
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* ex */
        start local 1 // java.lang.Exception ex
         5: .line 3401
            new java.lang.RuntimeException
            dup
            aload 1 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception ex
         6: .line 3402
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         7: .line 3403
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
         8: .line 3404
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
            astore 3 /* old */
        start local 3 // com.oracle.truffle.api.Assumption old
         9: .line 3405
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Language context initialized unchanged"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
        10: .line 3406
            aload 3 /* old */
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        end local 3 // com.oracle.truffle.api.Assumption old
        11: .line 3407
            aload 2
            athrow
        12: .line 3403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
        13: .line 3404
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
            astore 3 /* old */
        start local 3 // com.oracle.truffle.api.Assumption old
        14: .line 3405
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Language context initialized unchanged"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
        15: .line 3406
            aload 3 /* old */
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        end local 3 // com.oracle.truffle.api.Assumption old
        16: .line 3408
            return
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            3    4     1    ex  Ljava/lang/RuntimeException;
            5    6     1    ex  Ljava/lang/Exception;
            9   11     3   old  Lcom/oracle/truffle/api/Assumption;
           14   16     3   old  Lcom/oracle/truffle/api/Assumption;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
           0     1       4  Class java.lang.Exception
           0     6       6  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  boolean isInitialized();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3411
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 3412
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
            istore 1 /* localInitialized */
        start local 1 // boolean localInitialized
         2: .line 3413
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initializedUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 4
         3: .line 3414
            iload 1 /* localInitialized */
            ireturn
         4: .line 3416
      StackMap locals: int
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 3417
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
            ireturn
        end local 1 // boolean localInitialized
         6: .line 3420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    6     1  localInitialized  Z

  boolean isVisible(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
         0: .line 3425
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 2 /* c */
        start local 2 // java.lang.Object c
         1: .line 3426
            aload 2 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 3427
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* c */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.isVisible:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
         3: .line 3429
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object c
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     1  value  Ljava/lang/Object;
            1    4     2      c  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  java.lang.String toStringIfVisible(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
        start local 1 // java.lang.Object value
        start local 2 // boolean checkVisibility
         0: .line 3434
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 3 /* c */
        start local 3 // java.lang.Object c
         1: .line 3435
            aload 3 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 6
         2: .line 3436
            iload 2 /* checkVisibility */
            ifeq 5
         3: .line 3437
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* c */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.isVisible:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 5
         4: .line 3438
            aconst_null
            areturn
         5: .line 3441
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* c */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.toString:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
            areturn
         6: .line 3443
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object c
        end local 2 // boolean checkVisibility
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    7     1            value  Ljava/lang/Object;
            0    7     2  checkVisibility  Z
            1    7     3                c  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      value            
      checkVisibility  

  java.lang.Object getLanguageContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
         0: .line 3448
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 6
         1: .line 3449
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            astore 1 /* languageContext */
        start local 1 // java.lang.Object languageContext
         2: .line 3450
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.contextUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 4
         3: .line 3451
            aload 1 /* languageContext */
            areturn
         4: .line 3453
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 3454
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object languageContext
         6: .line 3457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    6     1  languageContext  Ljava/lang/Object;

  static <T extends java.lang.RuntimeException> java.lang.RuntimeException engineToLanguageException(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 3464
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.engineToLanguageException:(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     
}
SourceFile: "TruffleLanguage.java"
NestHost: com.oracle.truffle.api.TruffleLanguage
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Builder = com.oracle.truffle.api.TruffleContext$Builder of com.oracle.truffle.api.TruffleContext
  final FileSystemContext = com.oracle.truffle.api.TruffleFile$FileSystemContext of com.oracle.truffle.api.TruffleFile
  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 IOSupport = com.oracle.truffle.api.impl.Accessor$IOSupport of com.oracle.truffle.api.impl.Accessor