final class com.oracle.truffle.api.LanguageAccessor$LanguageImpl extends com.oracle.truffle.api.impl.Accessor$LanguageSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.LanguageAccessor$LanguageImpl
  super_class: com.oracle.truffle.api.impl.Accessor$LanguageSupport
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 117
            ldc Lcom/oracle/truffle/api/LanguageAccessor;
            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.LanguageAccessor$LanguageImpl.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
         0: .line 117
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.impl.Accessor$LanguageSupport.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;

  public boolean isTruffleStackTrace(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Throwable t
         0: .line 121
            aload 1 /* t */
            instanceof com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            ireturn
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.StackTraceElement[] getInternalStackTraceElements(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)[Ljava/lang/StackTraceElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Throwable t
         0: .line 126
            aload 1 /* t */
            checkcast com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace
            invokevirtual com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace.getInternalStackTrace:()Lcom/oracle/truffle/api/TruffleStackTrace;
            astore 2 /* trace */
        start local 2 // com.oracle.truffle.api.TruffleStackTrace trace
         1: .line 127
            aload 2 /* trace */
            ifnonnull 3
         2: .line 128
            iconst_0
            anewarray java.lang.StackTraceElement
            areturn
         3: .line 130
      StackMap locals: com.oracle.truffle.api.TruffleStackTrace
      StackMap stack:
            aload 2 /* trace */
            invokevirtual com.oracle.truffle.api.TruffleStackTrace.getInternalStackTrace:()[Ljava/lang/StackTraceElement;
            areturn
        end local 2 // com.oracle.truffle.api.TruffleStackTrace trace
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    4     1      t  Ljava/lang/Throwable;
            1    4     2  trace  Lcom/oracle/truffle/api/TruffleStackTrace;
    MethodParameters:
      Name  Flags
      t     

  public void materializeHostFrames(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Throwable original
         0: .line 136
            aload 1 /* original */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.materializeHostFrames:(Ljava/lang/Throwable;)V
         1: .line 137
            return
        end local 1 // java.lang.Throwable original
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1  original  Ljava/lang/Throwable;
    MethodParameters:
          Name  Flags
      original  

  public com.oracle.truffle.api.InstrumentInfo createInstrument(java.lang.Object, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/InstrumentInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // java.lang.String id
        start local 3 // java.lang.String name
        start local 4 // java.lang.String version
         0: .line 141
            new com.oracle.truffle.api.InstrumentInfo
            dup
            aload 1 /* polyglotInstrument */
            aload 2 /* id */
            aload 3 /* name */
            aload 4 /* version */
            invokespecial com.oracle.truffle.api.InstrumentInfo.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 4 // java.lang.String version
        end local 3 // java.lang.String name
        end local 2 // java.lang.String id
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  polyglotInstrument  Ljava/lang/Object;
            0    1     2                  id  Ljava/lang/String;
            0    1     3                name  Ljava/lang/String;
            0    1     4             version  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      id                  
      name                
      version             

  public java.lang.Object getPolyglotInstrument(com.oracle.truffle.api.InstrumentInfo);
    descriptor: (Lcom/oracle/truffle/api/InstrumentInfo;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.InstrumentInfo info
         0: .line 146
            aload 1 /* info */
            invokevirtual com.oracle.truffle.api.InstrumentInfo.getPolyglotInstrument:()Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.InstrumentInfo info
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  info  Lcom/oracle/truffle/api/InstrumentInfo;
    MethodParameters:
      Name  Flags
      info  

  public void initializeLanguage(com.oracle.truffle.api.TruffleLanguage<?>, com.oracle.truffle.api.nodes.LanguageInfo, , );
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage impl
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 3 // java.lang.Object polyglotLanguage
        start local 4 // java.lang.Object polyglotLanguageInstance
         0: .line 151
            aload 1 /* impl */
            aload 2 /* language */
            putfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
         1: .line 152
            aload 1 /* impl */
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 3 /* polyglotLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentContextReference:(Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            putfield com.oracle.truffle.api.TruffleLanguage.reference:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
         2: .line 153
            aload 1 /* impl */
            aload 4 /* polyglotLanguageInstance */
            putfield com.oracle.truffle.api.TruffleLanguage.polyglotLanguageInstance:Ljava/lang/Object;
         3: .line 154
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
            ifnonnull 6
         4: .line 155
            aload 1 /* impl */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
         5: .line 156
            goto 8
         6: .line 157
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.LanguageAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
            aload 4 /* polyglotLanguageInstance */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.initializeLanguageContextLocal:(Ljava/util/List;Ljava/lang/Object;)V
         7: .line 158
            aload 1 /* impl */
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
         8: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
            ifnonnull 11
         9: .line 161
            aload 1 /* impl */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
        10: .line 162
            goto 13
        11: .line 163
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.LanguageAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
            aload 4 /* polyglotLanguageInstance */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.initializeLanguageContextThreadLocal:(Ljava/util/List;Ljava/lang/Object;)V
        12: .line 164
            aload 1 /* impl */
            aload 1 /* impl */
            getfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
        13: .line 166
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object polyglotLanguageInstance
        end local 3 // java.lang.Object polyglotLanguage
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.api.TruffleLanguage impl
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0   14     1                      impl  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0   14     2                  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0   14     3          polyglotLanguage  Ljava/lang/Object;
            0   14     4  polyglotLanguageInstance  Ljava/lang/Object;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;Ljava/lang/Object;)V
    MethodParameters:
                          Name  Flags
      impl                      
      language                  
      polyglotLanguage          
      polyglotLanguageInstance  

  public boolean initializeMultiContext(com.oracle.truffle.api.TruffleLanguage<?>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
         0: .line 171
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.initializeMultipleContexts:()V
         1: .line 172
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.initializeMultiContext:()Z
            ireturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1  language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Z
    MethodParameters:
          Name  Flags
      language  

  public java.lang.Object getContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 177
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 2 /* c */
        start local 2 // java.lang.Object c
         1: .line 178
            aload 2 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpeq 3
         2: .line 179
            aload 2 /* c */
            areturn
         3: .line 181
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object c
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    4     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    4     2     c  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      env   

  public java.lang.Object getPolyglotLanguageContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 187
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPolyglotLanguageContext:()Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public java.lang.Object getFileSystemContext(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile file
         0: .line 192
            aload 1 /* file */
            invokevirtual com.oracle.truffle.api.TruffleFile.getFileSystemContext:()Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleFile file
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  file  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
      Name  Flags
      file  

  public java.lang.Object getLanguageView(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object value
         0: .line 197
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 3 /* c */
        start local 3 // java.lang.Object c
         1: .line 198
            aload 3 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpne 4
         2: .line 199
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         3: .line 200
            aconst_null
            areturn
         4: .line 202
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* c */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getLanguageView:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         5: .line 203
            aload 4 /* result */
            ifnonnull 7
         6: .line 204
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.spi:Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* c */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getDefaultLanguageView:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         7: .line 206
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // java.lang.Object c
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    8     1     env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     2   value  Ljava/lang/Object;
            1    8     3       c  Ljava/lang/Object;
            5    8     4  result  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      env    
      value  

  public java.lang.Object getLegacyScopedView(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.nodes.Node location
        start local 3 // com.oracle.truffle.api.frame.Frame frame
        start local 4 // java.lang.Object value
         0: .line 214
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 5 /* c */
        start local 5 // java.lang.Object c
         1: .line 215
            aload 5 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpne 4
         2: .line 216
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         3: .line 217
            aload 4 /* value */
            areturn
         4: .line 219
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 5 /* c */
            aload 2 /* location */
            aload 3 /* frame */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getScopedView:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object c
        end local 4 // java.lang.Object value
        end local 3 // com.oracle.truffle.api.frame.Frame frame
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    5     1       env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    5     2  location  Lcom/oracle/truffle/api/nodes/Node;
            0    5     3     frame  Lcom/oracle/truffle/api/frame/Frame;
            0    5     4     value  Ljava/lang/Object;
            1    5     5         c  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      env       
      location  
      frame     
      value     

  public java.lang.Object getScope(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 225
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getLanguageContext:()Ljava/lang/Object;
            astore 2 /* c */
        start local 2 // java.lang.Object c
         1: .line 226
            aload 2 /* c */
            getstatic com.oracle.truffle.api.TruffleLanguage$Env.UNSET_CONTEXT:Ljava/lang/Object;
            if_acmpne 4
         2: .line 227
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         3: .line 228
            aconst_null
            areturn
         4: .line 230
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* c */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getScope:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         5: .line 231
            getstatic com.oracle.truffle.api.LanguageAccessor$LanguageImpl.$assertionsDisabled:Z
            ifne 6
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.interopSupport:()Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
            aload 3 /* result */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.isScopeObject:(Ljava/lang/Object;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "%s is not a scope"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* result */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 232
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // java.lang.Object c
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    7     1     env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    7     2       c  Ljava/lang/Object;
            5    7     3  result  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      env   

  public java.lang.Object getPolyglotContext(com.oracle.truffle.api.TruffleContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleContext;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleContext context
         0: .line 238
            aload 1 /* context */
            getfield com.oracle.truffle.api.TruffleContext.polyglotContext:Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleContext context
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  context  Lcom/oracle/truffle/api/TruffleContext;
    MethodParameters:
         Name  Flags
      context  

  public java.lang.Object invokeContextLocalFactory(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object factory
        start local 2 // java.lang.Object contextImpl
         0: .line 244
            aload 1 /* factory */
            checkcast com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory
            aload 2 /* contextImpl */
            invokeinterface com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory.create:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         1: .line 245
            aload 3 /* result */
            ifnonnull 3
         2: .line 246
            new java.lang.IllegalStateException
            dup
            ldc "%s.create is not allowed to return null."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/TruffleLanguage$ContextLocalFactory;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 248
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // java.lang.Object contextImpl
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    4     1      factory  Ljava/lang/Object;
            0    4     2  contextImpl  Ljava/lang/Object;
            1    4     3       result  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      factory      
      contextImpl  

  public java.lang.Object invokeContextThreadLocalFactory(java.lang.Object, java.lang.Object, java.lang.Thread);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Thread;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object factory
        start local 2 // java.lang.Object contextImpl
        start local 3 // java.lang.Thread thread
         0: .line 254
            aload 1 /* factory */
            checkcast com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory
            aload 2 /* contextImpl */
            aload 3 /* thread */
            invokeinterface com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory.create:(Ljava/lang/Object;Ljava/lang/Thread;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         1: .line 255
            aload 4 /* result */
            ifnonnull 3
         2: .line 256
            new java.lang.IllegalStateException
            dup
            ldc "%s.create is not allowed to return null."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/TruffleLanguage$ContextThreadLocalFactory;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 258
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // java.lang.Thread thread
        end local 2 // java.lang.Object contextImpl
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    4     1      factory  Ljava/lang/Object;
            0    4     2  contextImpl  Ljava/lang/Object;
            0    4     3       thread  Ljava/lang/Thread;
            1    4     4       result  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      factory      
      contextImpl  
      thread       

  public com.oracle.truffle.api.TruffleLanguage<?> getSPI(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 263
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage<*>;
    MethodParameters:
      Name  Flags
      env   

  public com.oracle.truffle.api.TruffleLanguage$Env createEnv(, 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;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=12, args_size=9
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage language
        start local 3 // java.io.OutputStream stdOut
        start local 4 // java.io.OutputStream stdErr
        start local 5 // java.io.InputStream stdIn
        start local 6 // java.util.Map config
        start local 7 // org.graalvm.options.OptionValues options
        start local 8 // java.lang.String[] applicationArguments
         0: .line 269
            new com.oracle.truffle.api.TruffleLanguage$Env
            dup
            aload 1 /* polyglotLanguageContext */
            aload 2 /* language */
            aload 3 /* stdOut */
            aload 4 /* stdErr */
            aload 5 /* stdIn */
            aload 6 /* config */
            aload 7 /* options */
            aload 8 /* applicationArguments */
            invokespecial com.oracle.truffle.api.TruffleLanguage$Env.<init>:(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
            astore 9 /* env */
        start local 9 // com.oracle.truffle.api.TruffleLanguage$Env env
         1: .line 270
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 10 /* collectedServices */
        start local 10 // java.util.LinkedHashSet collectedServices
         2: .line 271
            aload 2 /* language */
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 11 /* info */
        start local 11 // com.oracle.truffle.api.nodes.LanguageInfo info
         3: .line 272
            invokestatic com.oracle.truffle.api.LanguageAccessor.instrumentAccess:()Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 10 /* collectedServices */
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 11 /* info */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            aload 2 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.collectEnvServices:(Ljava/util/Set;Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;)V
         4: .line 273
            aload 9 /* env */
            new java.util.ArrayList
            dup
            aload 10 /* collectedServices */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield com.oracle.truffle.api.TruffleLanguage$Env.services:Ljava/util/List;
         5: .line 274
            aload 9 /* env */
            areturn
        end local 11 // com.oracle.truffle.api.nodes.LanguageInfo info
        end local 10 // java.util.LinkedHashSet collectedServices
        end local 9 // com.oracle.truffle.api.TruffleLanguage$Env env
        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 stdIn
        end local 4 // java.io.OutputStream stdErr
        end local 3 // java.io.OutputStream stdOut
        end local 2 // com.oracle.truffle.api.TruffleLanguage language
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    6     1  polyglotLanguageContext  Ljava/lang/Object;
            0    6     2                 language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    6     3                   stdOut  Ljava/io/OutputStream;
            0    6     4                   stdErr  Ljava/io/OutputStream;
            0    6     5                    stdIn  Ljava/io/InputStream;
            0    6     6                   config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    6     7                  options  Lorg/graalvm/options/OptionValues;
            0    6     8     applicationArguments  [Ljava/lang/String;
            1    6     9                      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    6    10        collectedServices  Ljava/util/LinkedHashSet<Ljava/lang/Object;>;
            3    6    11                     info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    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;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      language                 
      stdOut                   
      stdErr                   
      stdIn                    
      config                   
      options                  
      applicationArguments     

  public  createEnvContext(com.oracle.truffle.api.TruffleLanguage$Env, java.util.List<java.lang.Object>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.util.List servicesCollector
         0: .line 279
            aload 1 /* env */
            aload 2 /* servicesCollector */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.languageServicesCollector:Ljava/util/List;
         1: .line 282
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.createContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            astore 3 /* context */
        start local 3 // java.lang.Object context
         2: .line 283
            goto 6
        end local 3 // java.lang.Object context
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 284
            aload 1 /* env */
            aconst_null
            putfield com.oracle.truffle.api.TruffleLanguage$Env.languageServicesCollector:Ljava/util/List;
         5: .line 285
            aload 4
            athrow
        start local 3 // java.lang.Object context
         6: .line 284
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* env */
            aconst_null
            putfield com.oracle.truffle.api.TruffleLanguage$Env.languageServicesCollector:Ljava/util/List;
         7: .line 286
            aload 1 /* env */
            aload 3 /* context */
            putfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
         8: .line 287
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.contextUnchangedAssumption:Lcom/oracle/truffle/api/Assumption;
            astore 4 /* contextUnchanged */
        start local 4 // com.oracle.truffle.api.Assumption contextUnchanged
         9: .line 288
            aload 1 /* env */
            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;
        10: .line 289
            aload 4 /* contextUnchanged */
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        11: .line 290
            aload 3 /* context */
            areturn
        end local 4 // com.oracle.truffle.api.Assumption contextUnchanged
        end local 3 // java.lang.Object context
        end local 2 // java.util.List servicesCollector
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0   12     1                env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   12     2  servicesCollector  Ljava/util/List<Ljava/lang/Object;>;
            2    3     3            context  Ljava/lang/Object;
            6   12     3            context  Ljava/lang/Object;
            9   12     4   contextUnchanged  Lcom/oracle/truffle/api/Assumption;
      Exception table:
        from    to  target  type
           1     3       3  any
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/util/List<Ljava/lang/Object;>;)Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      env                
      servicesCollector  

  public com.oracle.truffle.api.TruffleContext createTruffleContext(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object impl
        start local 2 // boolean creator
         0: .line 295
            new com.oracle.truffle.api.TruffleContext
            dup
            aload 1 /* impl */
            iload 2 /* creator */
            invokespecial com.oracle.truffle.api.TruffleContext.<init>:(Ljava/lang/Object;Z)V
            areturn
        end local 2 // boolean creator
        end local 1 // java.lang.Object impl
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1     impl  Ljava/lang/Object;
            0    1     2  creator  Z
    MethodParameters:
         Name  Flags
      impl     
      creator  

  public void postInitEnv(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 300
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.postInit:()V
         1: .line 301
            return
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public boolean isContextInitialized(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 305
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isInitialized:()Z
            ireturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.source.Source, com.oracle.truffle.api.nodes.Node, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.source.Source code
        start local 3 // com.oracle.truffle.api.nodes.Node context
        start local 4 // java.lang.String[] argumentNames
         0: .line 311
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* code */
            aload 4 /* argumentNames */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.parse:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 4 // java.lang.String[] argumentNames
        end local 3 // com.oracle.truffle.api.nodes.Node context
        end local 2 // com.oracle.truffle.api.source.Source code
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1            env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2           code  Lcom/oracle/truffle/api/source/Source;
            0    1     3        context  Lcom/oracle/truffle/api/nodes/Node;
            0    1     4  argumentNames  [Ljava/lang/String;
    MethodParameters:
               Name  Flags
      env            
      code           
      context        
      argumentNames  

  public com.oracle.truffle.api.nodes.ExecutableNode parseInline(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.source.Source, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.source.Source code
        start local 3 // com.oracle.truffle.api.nodes.Node context
        start local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 316
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* code */
            aload 3 /* context */
            aload 4 /* frame */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.parseInline:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
            areturn
        end local 4 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 3 // com.oracle.truffle.api.nodes.Node context
        end local 2 // com.oracle.truffle.api.source.Source code
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2     code  Lcom/oracle/truffle/api/source/Source;
            0    1     3  context  Lcom/oracle/truffle/api/nodes/Node;
            0    1     4    frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
    MethodParameters:
         Name  Flags
      env      
      code     
      context  
      frame    

  public com.oracle.truffle.api.nodes.LanguageInfo getLanguageInfo(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 321
            aload 1 /* env */
            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;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public void onThrowable(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.RootCallTarget, java.lang.Throwable, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/Frame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node callNode
        start local 2 // com.oracle.truffle.api.RootCallTarget root
        start local 3 // java.lang.Throwable e
        start local 4 // com.oracle.truffle.api.frame.Frame frame
         0: .line 326
            aload 1 /* callNode */
            aload 2 /* root */
            aload 3 /* e */
            aload 4 /* frame */
            invokestatic com.oracle.truffle.api.TruffleStackTrace.addStackFrameInfo:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/RootCallTarget;Ljava/lang/Throwable;Lcom/oracle/truffle/api/frame/Frame;)V
         1: .line 327
            return
        end local 4 // com.oracle.truffle.api.frame.Frame frame
        end local 3 // java.lang.Throwable e
        end local 2 // com.oracle.truffle.api.RootCallTarget root
        end local 1 // com.oracle.truffle.api.nodes.Node callNode
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1  callNode  Lcom/oracle/truffle/api/nodes/Node;
            0    2     2      root  Lcom/oracle/truffle/api/RootCallTarget;
            0    2     3         e  Ljava/lang/Throwable;
            0    2     4     frame  Lcom/oracle/truffle/api/frame/Frame;
    MethodParameters:
          Name  Flags
      callNode  
      root      
      e         
      frame     

  public void initializeThread(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Thread current
         0: .line 331
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            aload 2 /* current */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.initializeThread:(Ljava/lang/Object;Ljava/lang/Thread;)V
         1: .line 332
            return
        end local 2 // java.lang.Thread current
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    2     2  current  Ljava/lang/Thread;
    MethodParameters:
         Name  Flags
      env      
      current  

  public boolean isThreadAccessAllowed(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Thread, boolean);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env language
        start local 2 // java.lang.Thread thread
        start local 3 // boolean singleThread
         0: .line 336
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 2 /* thread */
            iload 3 /* singleThread */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.isThreadAccessAllowed:(Ljava/lang/Thread;Z)Z
            ireturn
        end local 3 // boolean singleThread
        end local 2 // java.lang.Thread thread
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1      language  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2        thread  Ljava/lang/Thread;
            0    1     3  singleThread  Z
    MethodParameters:
              Name  Flags
      language      
      thread        
      singleThread  

  public void initializeMultiThreading(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 341
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.TruffleLanguage.initializeMultiThreading:(Ljava/lang/Object;)V
         1: .line 342
            return
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public void finalizeContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 346
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.TruffleLanguage.finalizeContext:(Ljava/lang/Object;)V
         1: .line 347
            return
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public void disposeThread(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Thread current
         0: .line 351
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            aload 2 /* current */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.disposeThread:(Ljava/lang/Object;Ljava/lang/Thread;)V
         1: .line 352
            return
        end local 2 // java.lang.Thread current
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    2     2  current  Ljava/lang/Thread;
    MethodParameters:
         Name  Flags
      env      
      current  

  public java.lang.Object evalInContext(com.oracle.truffle.api.source.Source, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame mFrame
         0: .line 356
            getstatic com.oracle.truffle.api.LanguageAccessor.ACCESSOR:Lcom/oracle/truffle/api/LanguageAccessor;
            invokevirtual com.oracle.truffle.api.LanguageAccessor.nodeSupport:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getLanguage:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* source */
            iconst_0
            anewarray java.lang.String
            invokevirtual com.oracle.truffle.api.TruffleLanguage.parse:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            astore 4 /* target */
        start local 4 // com.oracle.truffle.api.CallTarget target
         1: .line 358
            aload 4 /* target */
            instanceof com.oracle.truffle.api.RootCallTarget
            ifeq 5
         2: .line 359
            aload 4 /* target */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 5 /* exec */
        start local 5 // com.oracle.truffle.api.nodes.RootNode exec
         3: .line 360
            aload 5 /* exec */
            aload 3 /* mFrame */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
         4: areturn
        end local 5 // com.oracle.truffle.api.nodes.RootNode exec
         5: .line 362
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 364
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* ex */
        start local 5 // java.lang.Exception ex
         7: .line 365
            aload 5 /* ex */
            instanceof java.lang.RuntimeException
            ifeq 9
         8: .line 366
            aload 5 /* ex */
            checkcast java.lang.RuntimeException
            athrow
         9: .line 368
      StackMap locals: java.lang.Exception
      StackMap stack:
            new java.lang.RuntimeException
            dup
            aload 5 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception ex
        end local 4 // com.oracle.truffle.api.CallTarget target
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame mFrame
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0   10     1  source  Lcom/oracle/truffle/api/source/Source;
            0   10     2    node  Lcom/oracle/truffle/api/nodes/Node;
            0   10     3  mFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            1   10     4  target  Lcom/oracle/truffle/api/CallTarget;
            3    5     5    exec  Lcom/oracle/truffle/api/nodes/RootNode;
            7   10     5      ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       6  Class java.lang.Exception
           5     6       6  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      source  
      node    
      mFrame  final

  public java.lang.Object findExportedSymbol(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.String, boolean);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;Z)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.String globalName
        start local 3 // boolean onlyExplicit
         0: .line 374
            aload 1 /* env */
            aload 2 /* globalName */
            iload 3 /* onlyExplicit */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findExportedSymbol:(Ljava/lang/String;Z)Ljava/lang/Object;
            areturn
        end local 3 // boolean onlyExplicit
        end local 2 // java.lang.String globalName
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1           env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2    globalName  Ljava/lang/String;
            0    1     3  onlyExplicit  Z
    MethodParameters:
              Name  Flags
      env           
      globalName    
      onlyExplicit  

  public com.oracle.truffle.api.nodes.LanguageInfo getLanguageInfo(com.oracle.truffle.api.TruffleLanguage<?>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
         0: .line 379
            aload 1 /* language */
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
          Name  Flags
      language  

  public  getPolyglotLanguageInstance(com.oracle.truffle.api.TruffleLanguage<?>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
         0: .line 384
            aload 1 /* language */
            ifnonnull 2
         1: .line 385
            aconst_null
            areturn
         2: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* language */
            getfield com.oracle.truffle.api.TruffleLanguage.polyglotLanguageInstance:Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    3     1  language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      language  

  public void dispose(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 392
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.dispose:()V
         1: .line 393
            return
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  public boolean isVisible(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object value
         0: .line 397
            aload 1 /* env */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isVisible:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1    env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      env    
      value  

  public java.lang.String legacyToString(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object value
         0: .line 402
            aload 1 /* env */
            aload 2 /* value */
            iconst_0
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.toStringIfVisible:(Ljava/lang/Object;Z)Ljava/lang/String;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1    env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      env    
      value  

  public java.lang.Object legacyFindMetaObject(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object obj
         0: .line 407
            aload 1 /* env */
            aload 2 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findMetaObjectImpl:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object obj
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      env   
      obj   

  public com.oracle.truffle.api.source.SourceSection legacyFindSourceLocation(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object obj
         0: .line 412
            aload 1 /* env */
            aload 2 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 2 // java.lang.Object obj
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      env   
      obj   

  public boolean isObjectOfLanguage(com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.Object value
         0: .line 417
            aload 1 /* env */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isObjectOfLanguage:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1    env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      env    
      value  

  public <C>  legacyFindMetaObject(com.oracle.truffle.api.TruffleLanguage<C>, C, );
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
        start local 2 // java.lang.Object context
        start local 3 // java.lang.Object value
         0: .line 423
            aload 1 /* language */
            aload 2 /* context */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findMetaObject:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object context
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  language  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     2   context  TC;
            0    1     3     value  Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage<TC;>;TC;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      language  
      context   
      value     

  public <C> com.oracle.truffle.api.source.SourceSection legacyFindSourceLocation(com.oracle.truffle.api.TruffleLanguage<C>, C, );
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
        start local 2 // java.lang.Object context
        start local 3 // java.lang.Object value
         0: .line 429
            aload 1 /* language */
            aload 2 /* context */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findSourceLocation:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object context
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  language  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     2   context  TC;
            0    1     3     value  Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage<TC;>;TC;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
          Name  Flags
      language  
      context   
      value     

  public <C> java.lang.String legacyToString(com.oracle.truffle.api.TruffleLanguage<C>, C, );
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
        start local 2 // java.lang.Object context
        start local 3 // java.lang.Object obj
         0: .line 435
            aload 1 /* language */
            aload 2 /* context */
            aload 3 /* obj */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.toString:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Object obj
        end local 2 // java.lang.Object context
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  language  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     2   context  TC;
            0    1     3       obj  Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage<TC;>;TC;Ljava/lang/Object;)Ljava/lang/String;
    MethodParameters:
          Name  Flags
      language  
      context   
      obj       

  public java.lang.Iterable<com.oracle.truffle.api.Scope> findLegacyLocalScopes(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // com.oracle.truffle.api.frame.Frame frame
         0: .line 441
            aload 1 /* env */
            aload 2 /* node */
            aload 3 /* frame */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findLocalScopes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
            areturn
        end local 3 // com.oracle.truffle.api.frame.Frame frame
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1    env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    1     2   node  Lcom/oracle/truffle/api/nodes/Node;
            0    1     3  frame  Lcom/oracle/truffle/api/frame/Frame;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
       Name  Flags
      env    
      node   
      frame  

  public java.lang.Iterable<com.oracle.truffle.api.Scope> findTopScopes(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 447
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findTopScopes:()Ljava/lang/Iterable;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
      Name  Flags
      env   

  public org.graalvm.options.OptionDescriptors describeOptions(com.oracle.truffle.api.TruffleLanguage<?>, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
        start local 2 // java.lang.String requiredGroup
         0: .line 452
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getOptionDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            astore 3 /* descriptors */
        start local 3 // org.graalvm.options.OptionDescriptors descriptors
         1: .line 453
            aload 3 /* descriptors */
            ifnonnull 3
         2: .line 454
            getstatic org.graalvm.options.OptionDescriptors.EMPTY:Lorg/graalvm/options/OptionDescriptors;
            areturn
         3: .line 456
      StackMap locals: org.graalvm.options.OptionDescriptors
      StackMap stack:
            getstatic com.oracle.truffle.api.LanguageAccessor$LanguageImpl.$assertionsDisabled:Z
            ifne 4
            aload 1 /* language */
            aload 2 /* requiredGroup */
            aload 3 /* descriptors */
            invokestatic com.oracle.truffle.api.LanguageAccessor$LanguageImpl.verifyDescriptors:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;Lorg/graalvm/options/OptionDescriptors;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 457
      StackMap locals:
      StackMap stack:
            aload 3 /* descriptors */
            areturn
        end local 3 // org.graalvm.options.OptionDescriptors descriptors
        end local 2 // java.lang.String requiredGroup
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    5     1       language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    5     2  requiredGroup  Ljava/lang/String;
            1    5     3    descriptors  Lorg/graalvm/options/OptionDescriptors;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptors;
    MethodParameters:
               Name  Flags
      language       
      requiredGroup  

  private static boolean verifyDescriptors(com.oracle.truffle.api.TruffleLanguage<?>, java.lang.String, org.graalvm.options.OptionDescriptors);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;Lorg/graalvm/options/OptionDescriptors;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage language
        start local 1 // java.lang.String requiredGroup
        start local 2 // org.graalvm.options.OptionDescriptors descriptors
         0: .line 461
            new java.lang.StringBuilder
            dup
            aload 1 /* requiredGroup */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* groupPlusDot */
        start local 3 // java.lang.String groupPlusDot
         1: .line 462
            aload 2 /* descriptors */
            invokeinterface org.graalvm.options.OptionDescriptors.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: com.oracle.truffle.api.TruffleLanguage java.lang.String org.graalvm.options.OptionDescriptors java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.options.OptionDescriptor
            astore 4 /* descriptor */
        start local 4 // org.graalvm.options.OptionDescriptor descriptor
         3: .line 463
            aload 4 /* descriptor */
            invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
            aload 1 /* requiredGroup */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            aload 4 /* descriptor */
            invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
            aload 3 /* groupPlusDot */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 7
         4: .line 464
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal option prefix in name '%s' specified for option described by language '%s'. The option prefix must match the id of the language '%s'."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 466
            aload 4 /* descriptor */
            invokevirtual org.graalvm.options.OptionDescriptor.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* language */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 1 /* requiredGroup */
            aastore
         6: .line 464
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // org.graalvm.options.OptionDescriptor descriptor
         7: .line 462
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 469
            iconst_1
            ireturn
        end local 3 // java.lang.String groupPlusDot
        end local 2 // org.graalvm.options.OptionDescriptors descriptors
        end local 1 // java.lang.String requiredGroup
        end local 0 // com.oracle.truffle.api.TruffleLanguage language
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0       language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    9     1  requiredGroup  Ljava/lang/String;
            0    9     2    descriptors  Lorg/graalvm/options/OptionDescriptors;
            1    9     3   groupPlusDot  Ljava/lang/String;
            3    7     4     descriptor  Lorg/graalvm/options/OptionDescriptor;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/String;Lorg/graalvm/options/OptionDescriptors;)Z
    MethodParameters:
               Name  Flags
      language       
      requiredGroup  
      descriptors    

  public com.oracle.truffle.api.TruffleLanguage$Env patchEnvContext(com.oracle.truffle.api.TruffleLanguage$Env, 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: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Lorg/graalvm/options/OptionValues;[Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=10, args_size=8
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.io.OutputStream stdOut
        start local 3 // java.io.OutputStream stdErr
        start local 4 // java.io.InputStream stdIn
        start local 5 // java.util.Map config
        start local 6 // org.graalvm.options.OptionValues options
        start local 7 // java.lang.String[] applicationArguments
         0: .line 475
            getstatic com.oracle.truffle.api.LanguageAccessor$LanguageImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.spi:Lcom/oracle/truffle/api/TruffleLanguage;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         2: .line 477
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.polyglotLanguageContext:Ljava/lang/Object;
         3: .line 478
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.spi:Lcom/oracle/truffle/api/TruffleLanguage;
         4: .line 479
            aload 2 /* stdOut */
         5: .line 480
            aload 3 /* stdErr */
         6: .line 481
            aload 4 /* stdIn */
         7: .line 482
            aload 5 /* config */
         8: .line 483
            aload 6 /* options */
         9: .line 484
            aload 7 /* applicationArguments */
        10: .line 476
            invokevirtual com.oracle.truffle.api.LanguageAccessor$LanguageImpl.createEnv:(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;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 8 /* newEnv */
        start local 8 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
        11: .line 486
            aload 8 /* newEnv */
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
            putfield com.oracle.truffle.api.TruffleLanguage$Env.initialized:Z
        12: .line 487
            aload 8 /* newEnv */
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            putfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
        13: .line 488
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            aload 1 /* env */
            getfield com.oracle.truffle.api.TruffleLanguage$Env.context:Ljava/lang/Object;
            aload 8 /* newEnv */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.patchContext:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
            istore 9 /* success */
        start local 9 // boolean success
        14: .line 489
            iload 9 /* success */
            ifeq 17
        15: .line 490
            aload 1 /* env */
            iconst_0
            putfield com.oracle.truffle.api.TruffleLanguage$Env.valid:Z
        16: .line 491
            aload 8 /* newEnv */
            areturn
        17: .line 493
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env int
      StackMap stack:
            aconst_null
            areturn
        end local 9 // boolean success
        end local 8 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
        end local 7 // java.lang.String[] applicationArguments
        end local 6 // org.graalvm.options.OptionValues options
        end local 5 // java.util.Map config
        end local 4 // java.io.InputStream stdIn
        end local 3 // java.io.OutputStream stdErr
        end local 2 // java.io.OutputStream stdOut
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   18     0                  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0   18     1                   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   18     2                stdOut  Ljava/io/OutputStream;
            0   18     3                stdErr  Ljava/io/OutputStream;
            0   18     4                 stdIn  Ljava/io/InputStream;
            0   18     5                config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0   18     6               options  Lorg/graalvm/options/OptionValues;
            0   18     7  applicationArguments  [Ljava/lang/String;
           11   18     8                newEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
           14   18     9               success  Z
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;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;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
                      Name  Flags
      env                   
      stdOut                
      stdErr                
      stdIn                 
      config                
      options               
      applicationArguments  

  public java.lang.Object createFileSystemContext(java.lang.Object, org.graalvm.polyglot.io.FileSystem);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/polyglot/io/FileSystem;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object engineFileSystemContext
        start local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
         0: .line 499
            new com.oracle.truffle.api.TruffleFile$FileSystemContext
            dup
            aload 1 /* engineFileSystemContext */
            aload 2 /* fileSystem */
            invokespecial com.oracle.truffle.api.TruffleFile$FileSystemContext.<init>:(Ljava/lang/Object;Lorg/graalvm/polyglot/io/FileSystem;)V
            areturn
        end local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        end local 1 // java.lang.Object engineFileSystemContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  engineFileSystemContext  Ljava/lang/Object;
            0    1     2               fileSystem  Lorg/graalvm/polyglot/io/FileSystem;
    MethodParameters:
                         Name  Flags
      engineFileSystemContext  
      fileSystem               

  public java.lang.Object getFileSystemEngineObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object fileSystemContext
         0: .line 504
            aload 1 /* fileSystemContext */
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.engineObject:Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object fileSystemContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  fileSystemContext  Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      fileSystemContext  

  public java.lang.String detectMimeType(com.oracle.truffle.api.TruffleFile, java.util.Set<java.lang.String>);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile file
        start local 2 // java.util.Set validMimeTypes
         0: .line 509
            aload 1 /* file */
            aload 2 /* validMimeTypes */
            invokevirtual com.oracle.truffle.api.TruffleFile.detectMimeType:(Ljava/util/Set;)Ljava/lang/String;
            areturn
        end local 2 // java.util.Set validMimeTypes
        end local 1 // com.oracle.truffle.api.TruffleFile file
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1            file  Lcom/oracle/truffle/api/TruffleFile;
            0    1     2  validMimeTypes  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Lcom/oracle/truffle/api/TruffleFile;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      file            
      validMimeTypes  

  public java.nio.charset.Charset detectEncoding(com.oracle.truffle.api.TruffleFile, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Ljava/nio/charset/Charset;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile file
        start local 2 // java.lang.String mimeType
         0: .line 514
            aload 2 /* mimeType */
            ifnonnull 1
            aload 1 /* file */
            invokevirtual com.oracle.truffle.api.TruffleFile.detectMimeType:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* mimeType */
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* useMimeType */
        start local 3 // java.lang.String useMimeType
         3: .line 515
            aload 3 /* useMimeType */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: aload 1 /* file */
            aload 3 /* useMimeType */
            invokevirtual com.oracle.truffle.api.TruffleFile.detectEncoding:(Ljava/lang/String;)Ljava/nio/charset/Charset;
      StackMap locals:
      StackMap stack: java.nio.charset.Charset
         5: areturn
        end local 3 // java.lang.String useMimeType
        end local 2 // java.lang.String mimeType
        end local 1 // com.oracle.truffle.api.TruffleFile file
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    6     1         file  Lcom/oracle/truffle/api/TruffleFile;
            0    6     2     mimeType  Ljava/lang/String;
            3    6     3  useMimeType  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      file      
      mimeType  

  public void configureLoggers(, java.util.Map<java.lang.String, java.util.logging.Level>, []);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object polyglotContext
        start local 2 // java.util.Map logLevels
        start local 3 // java.lang.Object[] loggers
         0: .line 520
            aload 3 /* loggers */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 7
      StackMap locals: com.oracle.truffle.api.LanguageAccessor$LanguageImpl java.lang.Object java.util.Map java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* loggerCache */
        start local 4 // java.lang.Object loggerCache
         2: .line 521
            aload 2 /* logLevels */
            ifnonnull 5
         3: .line 522
            aload 4 /* loggerCache */
            checkcast com.oracle.truffle.api.TruffleLogger$LoggerCache
            aload 1 /* polyglotContext */
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.removeLogLevelsForContext:(Ljava/lang/Object;)V
         4: .line 523
            goto 6
         5: .line 524
      StackMap locals: com.oracle.truffle.api.LanguageAccessor$LanguageImpl java.lang.Object java.util.Map java.lang.Object[] java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 4 /* loggerCache */
            checkcast com.oracle.truffle.api.TruffleLogger$LoggerCache
            aload 1 /* polyglotContext */
            aload 2 /* logLevels */
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.addLogLevelsForContext:(Ljava/lang/Object;Ljava/util/Map;)V
        end local 4 // java.lang.Object loggerCache
         6: .line 520
      StackMap locals: com.oracle.truffle.api.LanguageAccessor$LanguageImpl java.lang.Object java.util.Map java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         7: iload 5
            iload 6
            if_icmplt 1
         8: .line 527
            return
        end local 3 // java.lang.Object[] loggers
        end local 2 // java.util.Map logLevels
        end local 1 // java.lang.Object polyglotContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    9     1  polyglotContext  Ljava/lang/Object;
            0    9     2        logLevels  Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
            0    9     3          loggers  [Ljava/lang/Object;
            2    6     4      loggerCache  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;[Ljava/lang/Object;)V
    MethodParameters:
                 Name  Flags
      polyglotContext  
      logLevels        
      loggers          

  public boolean areOptionsCompatible(com.oracle.truffle.api.TruffleLanguage<?>, org.graalvm.options.OptionValues, org.graalvm.options.OptionValues);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage language
        start local 2 // org.graalvm.options.OptionValues firstContextOptions
        start local 3 // org.graalvm.options.OptionValues newContextOptions
         0: .line 531
            aload 1 /* language */
            aload 2 /* firstContextOptions */
            aload 3 /* newContextOptions */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.areOptionsCompatible:(Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
            ireturn
        end local 3 // org.graalvm.options.OptionValues newContextOptions
        end local 2 // org.graalvm.options.OptionValues firstContextOptions
        end local 1 // com.oracle.truffle.api.TruffleLanguage language
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1             language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    1     2  firstContextOptions  Lorg/graalvm/options/OptionValues;
            0    1     3    newContextOptions  Lorg/graalvm/options/OptionValues;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
    MethodParameters:
                     Name  Flags
      language             
      firstContextOptions  
      newContextOptions    

  public com.oracle.truffle.api.TruffleLanguage<?> getLanguage(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 536
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getSpi:()Lcom/oracle/truffle/api/TruffleLanguage;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage<*>;
    MethodParameters:
      Name  Flags
      env   

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.String path
        start local 2 // java.lang.Object fileSystemContext
         0: .line 541
            aload 2 /* fileSystemContext */
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            astore 3 /* ctx */
        start local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
         1: .line 542
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 3 /* ctx */
            aload 3 /* ctx */
            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
            areturn
        end local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
        end local 2 // java.lang.Object fileSystemContext
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1               path  Ljava/lang/String;
            0    2     2  fileSystemContext  Ljava/lang/Object;
            1    2     3                ctx  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
    MethodParameters:
                   Name  Flags
      path               
      fileSystemContext  

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.Object, java.net.URI);
    descriptor: (Ljava/lang/Object;Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object fileSystemContext
        start local 2 // java.net.URI uri
         0: .line 547
            aload 1 /* fileSystemContext */
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            astore 3 /* ctx */
        start local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
         1: .line 549
            new com.oracle.truffle.api.TruffleFile
            dup
            aload 3 /* ctx */
            aload 3 /* ctx */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            aload 2 /* 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
         2: areturn
         3: .line 550
      StackMap locals: com.oracle.truffle.api.LanguageAccessor$LanguageImpl java.lang.Object java.net.URI com.oracle.truffle.api.TruffleFile$FileSystemContext
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         4: .line 551
            new java.nio.file.FileSystemNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "FileSystem for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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
        end local 3 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
        end local 2 // java.net.URI uri
        end local 1 // java.lang.Object fileSystemContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    5     1  fileSystemContext  Ljava/lang/Object;
            0    5     2                uri  Ljava/net/URI;
            1    5     3                ctx  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.UnsupportedOperationException
    MethodParameters:
                   Name  Flags
      fileSystemContext  
      uri                

  public boolean hasAllAccess(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.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object fileSystemContext
         0: .line 557
            aload 1 /* fileSystemContext */
            checkcast com.oracle.truffle.api.TruffleFile$FileSystemContext
            astore 2 /* ctx */
        start local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
         1: .line 558
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* ctx */
            getfield com.oracle.truffle.api.TruffleFile$FileSystemContext.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.hasAllAccess:(Lorg/graalvm/polyglot/io/FileSystem;)Z
            ireturn
        end local 2 // com.oracle.truffle.api.TruffleFile$FileSystemContext ctx
        end local 1 // java.lang.Object fileSystemContext
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1  fileSystemContext  Ljava/lang/Object;
            1    2     2                ctx  Lcom/oracle/truffle/api/TruffleFile$FileSystemContext;
    MethodParameters:
                   Name  Flags
      fileSystemContext  

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.String path
         0: .line 563
            aload 0 /* this */
            aload 2 /* path */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.LanguageAccessor$LanguageImpl.getTruffleFile:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 2 // java.lang.String path
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  context  Ljava/lang/Object;
            0    1     2     path  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      path     

  public java.lang.Object getDefaultLoggers();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
         0: .line 568
            invokestatic com.oracle.truffle.api.TruffleLogger$LoggerCache.getInstance:()Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            areturn
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;

  public  createEngineLoggers(, java.util.Map<java.lang.String, java.util.logging.Level>);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object spi
        start local 2 // java.util.Map logLevels
         0: .line 573
            aload 1 /* spi */
            aload 2 /* logLevels */
            invokestatic com.oracle.truffle.api.TruffleLogger.createLoggerCache:(Ljava/lang/Object;Ljava/util/Map;)Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            areturn
        end local 2 // java.util.Map logLevels
        end local 1 // java.lang.Object spi
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1        spi  Ljava/lang/Object;
            0    1     2  logLevels  Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
    Signature: (Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;)Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      spi        
      logLevels  

  public void closeEngineLoggers(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.Object loggers
         0: .line 578
            aload 1 /* loggers */
            checkcast com.oracle.truffle.api.TruffleLogger$LoggerCache
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.close:()V
         1: .line 579
            return
        end local 1 // java.lang.Object loggers
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    2     1  loggers  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      loggers  

  public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // java.lang.String id
        start local 2 // java.lang.String loggerName
        start local 3 // java.lang.Object loggers
         0: .line 583
            aload 1 /* id */
            aload 2 /* loggerName */
            aload 3 /* loggers */
            checkcast com.oracle.truffle.api.TruffleLogger$LoggerCache
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 3 // java.lang.Object loggers
        end local 2 // java.lang.String loggerName
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1          id  Ljava/lang/String;
            0    1     2  loggerName  Ljava/lang/String;
            0    1     3     loggers  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      id          
      loggerName  
      loggers     

  public org.graalvm.polyglot.io.FileSystem getFileSystem(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 588
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.TruffleFile.getSPIFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
             Name  Flags
      truffleFile  

  public java.nio.file.Path getPath(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 593
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.TruffleFile.getSPIPath:()Ljava/nio/file/Path;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 0 // com.oracle.truffle.api.LanguageAccessor$LanguageImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/api/LanguageAccessor$LanguageImpl;
            0    1     1  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
             Name  Flags
      truffleFile  
}
SourceFile: "LanguageAccessor.java"
NestHost: com.oracle.truffle.api.LanguageAccessor
InnerClasses:
  final LanguageImpl = com.oracle.truffle.api.LanguageAccessor$LanguageImpl of com.oracle.truffle.api.LanguageAccessor
  final FileSystemContext = com.oracle.truffle.api.TruffleFile$FileSystemContext of com.oracle.truffle.api.TruffleFile
  protected abstract ContextLocalFactory = com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory of com.oracle.truffle.api.TruffleLanguage
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  protected abstract ContextThreadLocalFactory = com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory of com.oracle.truffle.api.TruffleLanguage
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  final LoggerCache = com.oracle.truffle.api.TruffleLogger$LoggerCache of com.oracle.truffle.api.TruffleLogger
  final LazyStackTrace = com.oracle.truffle.api.TruffleStackTrace$LazyStackTrace of com.oracle.truffle.api.TruffleStackTrace
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InteropSupport = com.oracle.truffle.api.impl.Accessor$InteropSupport of com.oracle.truffle.api.impl.Accessor
  public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
  public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor