public abstract class com.oracle.truffle.api.TruffleLanguage<C>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.TruffleLanguage
  super_class: java.lang.Object
{
  com.oracle.truffle.api.nodes.LanguageInfo languageInfo;
    descriptor: Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  com.oracle.truffle.api.TruffleLanguage$ContextReference<java.lang.Object> reference;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0000) 
    Signature: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  java.lang.Object polyglotLanguageInstance;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  java.util.List<com.oracle.truffle.api.ContextThreadLocal<?>> contextThreadLocals;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/ContextThreadLocal<*>;>;

  java.util.List<com.oracle.truffle.api.ContextLocal<?>> contextLocals;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/ContextLocal<*>;>;

  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 235
            ldc Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.TruffleLanguage.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 253
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 254
            return
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;

  protected boolean areOptionsCompatible(org.graalvm.options.OptionValues, org.graalvm.options.OptionValues);
    descriptor: (Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // org.graalvm.options.OptionValues firstOptions
        start local 2 // org.graalvm.options.OptionValues newOptions
         0: .line 535
            iconst_1
            ireturn
        end local 2 // org.graalvm.options.OptionValues newOptions
        end local 1 // org.graalvm.options.OptionValues firstOptions
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  firstOptions  Lorg/graalvm/options/OptionValues;
            0    1     2    newOptions  Lorg/graalvm/options/OptionValues;
    MethodParameters:
              Name  Flags
      firstOptions  
      newOptions    

  protected abstract C createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)TC;
    MethodParameters:
      Name  Flags
      env   

  protected void initializeContext();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 589
            return
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
    Exceptions:
      throws java.lang.Exception
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      context  

  protected void finalizeContext();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 619
            return
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      context  

  protected boolean initializeMultiContext();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 629
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected void initializeMultipleContexts();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 656
            return
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;

  protected void disposeContext();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 680
            return
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      context  

  protected com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$ParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
         0: .line 718
            new java.lang.UnsupportedOperationException
            dup
         1: .line 719
            ldc "Override parse method of %s, it will be made abstract in future version of Truffle API!"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         2: .line 718
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    3     1  request  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  protected com.oracle.truffle.api.nodes.ExecutableNode parse(com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
         0: .line 743
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  request  Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  protected org.graalvm.options.OptionDescriptors getOptionDescriptors();
    descriptor: ()Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 757
            getstatic org.graalvm.options.OptionDescriptors.EMPTY:Lorg/graalvm/options/OptionDescriptors;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;

  protected boolean patchContext(C, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
         0: .line 791
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2   newEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: (TC;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    MethodParameters:
         Name  Flags
      context  
      newEnv   

  protected  findExportedSymbol(C, java.lang.String, boolean);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Z)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.String globalName
        start local 3 // boolean onlyExplicit
         0: .line 957
            aconst_null
            areturn
        end local 3 // boolean onlyExplicit
        end local 2 // java.lang.String globalName
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1       context  TC;
            0    1     2    globalName  Ljava/lang/String;
            0    1     3  onlyExplicit  Z
    Signature: (TC;Ljava/lang/String;Z)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      context       
      globalName    
      onlyExplicit  

  protected boolean isThreadAccessAllowed(java.lang.Thread, boolean);
    descriptor: (Ljava/lang/Thread;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Thread thread
        start local 2 // boolean singleThreaded
         0: .line 977
            iload 2 /* singleThreaded */
            ireturn
        end local 2 // boolean singleThreaded
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1          thread  Ljava/lang/Thread;
            0    1     2  singleThreaded  Z
    MethodParameters:
                Name  Flags
      thread          
      singleThreaded  

  protected void initializeMultiThreading();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 996
            return
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      context  

  protected void initializeThread(C, java.lang.Thread);
    descriptor: (Ljava/lang/Object;Ljava/lang/Thread;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Thread thread
         0: .line 1021
            return
        end local 2 // java.lang.Thread thread
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2   thread  Ljava/lang/Thread;
    Signature: (TC;Ljava/lang/Thread;)V
    MethodParameters:
         Name  Flags
      context  
      thread   

  protected void disposeThread(C, java.lang.Thread);
    descriptor: (Ljava/lang/Object;Ljava/lang/Thread;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Thread thread
         0: .line 1037
            return
        end local 2 // java.lang.Thread thread
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2   thread  Ljava/lang/Thread;
    Signature: (TC;Ljava/lang/Thread;)V
    MethodParameters:
         Name  Flags
      context  
      thread   

  protected  getLanguageGlobal(C);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 1053
            aconst_null
            areturn
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
    Signature: (TC;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  

  protected boolean isObjectOfLanguage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object object
         0: .line 1068
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  object  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      object  

  protected java.lang.Iterable<com.oracle.truffle.api.Scope> findLocalScopes(C, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // com.oracle.truffle.api.frame.Frame frame
         0: .line 1101
            getstatic com.oracle.truffle.api.TruffleLanguage.$assertionsDisabled:Z
            ifne 1
            aload 2 /* node */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1102
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* node */
            aload 3 /* frame */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createDefaultLexicalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)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 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    2     1  context  TC;
            0    2     2     node  Lcom/oracle/truffle/api/nodes/Node;
            0    2     3    frame  Lcom/oracle/truffle/api/frame/Frame;
    Signature: (TC;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      node     
      frame    

  protected java.lang.Iterable<com.oracle.truffle.api.Scope> findTopScopes(C);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 1155
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.getLanguageGlobal:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* global */
        start local 2 // java.lang.Object global
         1: .line 1156
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* global */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createDefaultTopScope:(Ljava/lang/Object;)Ljava/lang/Iterable;
            areturn
        end local 2 // java.lang.Object global
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    2     1  context  TC;
            1    2     2   global  Ljava/lang/Object;
    Signature: (TC;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  

  protected  getScope(C);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
         0: .line 1205
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.api.TruffleLanguage.findTopScopes:(Ljava/lang/Object;)Ljava/lang/Iterable;
            astore 2 /* legacyScopes */
        start local 2 // java.lang.Iterable legacyScopes
         1: .line 1206
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aconst_null
            aload 2 /* legacyScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.legacyScopes2ScopeObject:(Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Iterable legacyScopes
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    2     1       context  TC;
            1    2     2  legacyScopes  Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    Signature: (TC;)Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  

  protected java.lang.String toString(C, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 1227
            aload 2 /* value */
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2    value  Ljava/lang/Object;
    Signature: (TC;Ljava/lang/Object;)Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      value    

  protected boolean isVisible(C, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 1259
            iconst_1
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2    value  Ljava/lang/Object;
    Signature: (TC;Ljava/lang/Object;)Z
    MethodParameters:
         Name  Flags
      context  
      value    

  protected  getLanguageView(C, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 1379
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2    value  Ljava/lang/Object;
    Signature: (TC;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      value    

  protected  getScopedView(C, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, );
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        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 1421
            aload 4 /* value */
            areturn
        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 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1   context  TC;
            0    1     2  location  Lcom/oracle/truffle/api/nodes/Node;
            0    1     3     frame  Lcom/oracle/truffle/api/frame/Frame;
            0    1     4     value  Ljava/lang/Object;
    Signature: (TC;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      context   
      location  
      frame     
      value     

  protected  findMetaObject(C, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 1455
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2    value  Ljava/lang/Object;
    Signature: (TC;Ljava/lang/Object;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      value    

  protected com.oracle.truffle.api.source.SourceSection findSourceLocation(C, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // java.lang.Object context
        start local 2 // java.lang.Object value
         0: .line 1473
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object context
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     1  context  TC;
            0    1     2    value  Ljava/lang/Object;
    Signature: (TC;Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      value    

  public final com.oracle.truffle.api.TruffleLanguage$ContextReference<C> getContextReference();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 1492
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.reference:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            ifnonnull 2
         1: .line 1493
            new java.lang.IllegalStateException
            dup
            ldc "TruffleLanguage instance is not initialized. Cannot get the current context reference."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.reference:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
    Signature: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<TC;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.source.Source, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // java.lang.String[] argumentNames
         0: .line 1499
            new com.oracle.truffle.api.TruffleLanguage$ParsingRequest
            dup
            aload 1 /* source */
            aload 2 /* argumentNames */
            invokespecial com.oracle.truffle.api.TruffleLanguage$ParsingRequest.<init>:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)V
            astore 3 /* request */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
         1: .line 1502
            aload 3 /* request */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.parse:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/CallTarget;
            astore 4 /* target */
        start local 4 // com.oracle.truffle.api.CallTarget target
         2: .line 1503
            goto 10
        end local 4 // com.oracle.truffle.api.CallTarget target
      StackMap locals: com.oracle.truffle.api.TruffleLanguage com.oracle.truffle.api.source.Source java.lang.String[] com.oracle.truffle.api.TruffleLanguage$ParsingRequest
      StackMap stack: java.lang.RuntimeException
         3: astore 5 /* ex */
        start local 5 // java.lang.RuntimeException ex
         4: .line 1504
            aload 5 /* ex */
            athrow
        end local 5 // java.lang.RuntimeException ex
         5: .line 1505
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* ex */
        start local 5 // java.lang.Exception ex
         6: .line 1506
            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
         7: .line 1507
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
         8: .line 1508
            aload 3 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.dispose:()V
         9: .line 1509
            aload 6
            athrow
        start local 4 // com.oracle.truffle.api.CallTarget target
        10: .line 1508
      StackMap locals: com.oracle.truffle.api.CallTarget
      StackMap stack:
            aload 3 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.dispose:()V
        11: .line 1510
            aload 4 /* target */
            areturn
        end local 4 // com.oracle.truffle.api.CallTarget target
        end local 3 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
        end local 2 // java.lang.String[] argumentNames
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0   12     1         source  Lcom/oracle/truffle/api/source/Source;
            0   12     2  argumentNames  [Ljava/lang/String;
            1   12     3        request  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
            2    3     4         target  Lcom/oracle/truffle/api/CallTarget;
           10   12     4         target  Lcom/oracle/truffle/api/CallTarget;
            4    5     5             ex  Ljava/lang/RuntimeException;
            6    7     5             ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
           1     2       5  Class java.lang.Exception
           1     7       7  any
    MethodParameters:
               Name  Flags
      source         
      argumentNames  

  com.oracle.truffle.api.nodes.ExecutableNode parseInline(com.oracle.truffle.api.source.Source, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.source.Source source
        start local 2 // com.oracle.truffle.api.nodes.Node context
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 1514
            getstatic com.oracle.truffle.api.TruffleLanguage.$assertionsDisabled:Z
            ifne 1
            aload 2 /* context */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1515
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest
            dup
            aload 1 /* source */
            aload 2 /* context */
            aload 3 /* frame */
            invokespecial com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.<init>:(Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
            astore 4 /* request */
        start local 4 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
         2: .line 1518
            aload 4 /* request */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.parse:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
            astore 5 /* snippet */
        start local 5 // com.oracle.truffle.api.nodes.ExecutableNode snippet
         3: .line 1519
            goto 11
        end local 5 // com.oracle.truffle.api.nodes.ExecutableNode snippet
      StackMap locals: com.oracle.truffle.api.TruffleLanguage com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest
      StackMap stack: java.lang.RuntimeException
         4: astore 6 /* ex */
        start local 6 // java.lang.RuntimeException ex
         5: .line 1520
            aload 6 /* ex */
            athrow
        end local 6 // java.lang.RuntimeException ex
         6: .line 1521
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* ex */
        start local 6 // java.lang.Exception ex
         7: .line 1522
            new java.lang.RuntimeException
            dup
            aload 6 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Exception ex
         8: .line 1523
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 1524
            aload 4 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.dispose:()V
        10: .line 1525
            aload 7
            athrow
        start local 5 // com.oracle.truffle.api.nodes.ExecutableNode snippet
        11: .line 1524
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode
      StackMap stack:
            aload 4 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.dispose:()V
        12: .line 1526
            aload 5 /* snippet */
            areturn
        end local 5 // com.oracle.truffle.api.nodes.ExecutableNode snippet
        end local 4 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // com.oracle.truffle.api.nodes.Node context
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0   13     1   source  Lcom/oracle/truffle/api/source/Source;
            0   13     2  context  Lcom/oracle/truffle/api/nodes/Node;
            0   13     3    frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            2   13     4  request  Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;
            3    4     5  snippet  Lcom/oracle/truffle/api/nodes/ExecutableNode;
           11   13     5  snippet  Lcom/oracle/truffle/api/nodes/ExecutableNode;
            5    6     6       ex  Ljava/lang/RuntimeException;
            7    8     6       ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException
           2     3       6  Class java.lang.Exception
           2     8       8  any
    MethodParameters:
         Name  Flags
      source   
      context  
      frame    

  protected static <T extends com.oracle.truffle.api.TruffleLanguage<?>> T getCurrentLanguage(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class languageClass
         0: .line 1544
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* languageClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentLanguage:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
         1: areturn
         2: .line 1545
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1546
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         4: .line 1547
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // java.lang.Class languageClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0  languageClass  Ljava/lang/Class<TT;>;
            3    5     1              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
               Name  Flags
      languageClass  

  protected static <C, T extends com.oracle.truffle.api.TruffleLanguage<C>> C getCurrentContext(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class languageClass
         0: .line 1567
            getstatic com.oracle.truffle.api.LanguageAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* languageClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
         1: areturn
         2: .line 1568
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1569
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         4: .line 1570
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // java.lang.Class languageClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0  languageClass  Ljava/lang/Class<TT;>;
            3    5     1              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: <C:Ljava/lang/Object;T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;>(Ljava/lang/Class<TT;>;)TC;
    MethodParameters:
               Name  Flags
      languageClass  

  protected final <T> com.oracle.truffle.api.ContextLocal<T> createContextLocal(com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory<C, T>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ContextLocalFactory;)Lcom/oracle/truffle/api/ContextLocal;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory factory
         0: .line 1631
            getstatic com.oracle.truffle.api.LanguageAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* factory */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createLanguageContextLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal;
            astore 2 /* local */
        start local 2 // com.oracle.truffle.api.ContextLocal local
         1: .line 1632
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
            ifnonnull 3
         2: .line 1633
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
         3: .line 1636
      StackMap locals: com.oracle.truffle.api.ContextLocal
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.contextLocals:Ljava/util/List;
            aload 2 /* local */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1637
            goto 7
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
         5: pop
         6: .line 1638
            new java.lang.IllegalStateException
            dup
            ldc "The set of context locals is frozen. Context locals can only be created during construction of the TruffleLanguage subclass."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1640
      StackMap locals:
      StackMap stack:
            aload 2 /* local */
            areturn
        end local 2 // com.oracle.truffle.api.ContextLocal local
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory factory
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    8     1  factory  Lcom/oracle/truffle/api/TruffleLanguage$ContextLocalFactory<TC;TT;>;
            1    8     2    local  Lcom/oracle/truffle/api/ContextLocal<TT;>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.UnsupportedOperationException
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage$ContextLocalFactory<TC;TT;>;)Lcom/oracle/truffle/api/ContextLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  protected final <T> com.oracle.truffle.api.ContextThreadLocal<T> createContextThreadLocal(com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory<C, T>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ContextThreadLocalFactory;)Lcom/oracle/truffle/api/ContextThreadLocal;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory factory
         0: .line 1703
            getstatic com.oracle.truffle.api.LanguageAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 1 /* factory */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createLanguageContextThreadLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal;
            astore 2 /* local */
        start local 2 // com.oracle.truffle.api.ContextThreadLocal local
         1: .line 1704
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
            ifnonnull 3
         2: .line 1705
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
         3: .line 1708
      StackMap locals: com.oracle.truffle.api.ContextThreadLocal
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.contextThreadLocals:Ljava/util/List;
            aload 2 /* local */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1709
            goto 7
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
         5: pop
         6: .line 1710
            new java.lang.IllegalStateException
            dup
            ldc "The set of context thread locals is frozen. Context thread locals can only be created during construction of the TruffleLanguage subclass."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1712
      StackMap locals:
      StackMap stack:
            aload 2 /* local */
            areturn
        end local 2 // com.oracle.truffle.api.ContextThreadLocal local
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory factory
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    8     1  factory  Lcom/oracle/truffle/api/TruffleLanguage$ContextThreadLocalFactory<TC;TT;>;
            1    8     2    local  Lcom/oracle/truffle/api/ContextThreadLocal<TT;>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.UnsupportedOperationException
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage$ContextThreadLocalFactory<TC;TT;>;)Lcom/oracle/truffle/api/ContextThreadLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  protected final java.lang.String getLanguageHome();
    descriptor: ()Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 1725
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            invokestatic com.oracle.truffle.api.LanguageAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLanguageHome:(Ljava/lang/Object;)Ljava/lang/String;
         1: areturn
         2: .line 1726
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1727
            aload 1 /* t */
            invokestatic com.oracle.truffle.api.TruffleLanguage$Env.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  protected final int getAsynchronousStackDepth();
    descriptor: ()I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage this
         0: .line 1745
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            invokestatic com.oracle.truffle.api.LanguageAccessor.nodesAccess:()Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLanguage.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getAsynchronousStackDepth:(Ljava/lang/Object;)I
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
}
Signature: <C:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "TruffleLanguage.java"
NestMembers:
  com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory  com.oracle.truffle.api.TruffleLanguage$ContextPolicy  com.oracle.truffle.api.TruffleLanguage$ContextReference  com.oracle.truffle.api.TruffleLanguage$ContextThreadLocalFactory  com.oracle.truffle.api.TruffleLanguage$Env  com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest  com.oracle.truffle.api.TruffleLanguage$LanguageReference  com.oracle.truffle.api.TruffleLanguage$ParsingRequest  com.oracle.truffle.api.TruffleLanguage$Provider  com.oracle.truffle.api.TruffleLanguage$Registration
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  protected abstract ContextLocalFactory = com.oracle.truffle.api.TruffleLanguage$ContextLocalFactory of com.oracle.truffle.api.TruffleLanguage
  public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy 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
  public final InlineParsingRequest = com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
  public final ParsingRequest = com.oracle.truffle.api.TruffleLanguage$ParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public abstract Provider = com.oracle.truffle.api.TruffleLanguage$Provider of com.oracle.truffle.api.TruffleLanguage
  public abstract Registration = com.oracle.truffle.api.TruffleLanguage$Registration of com.oracle.truffle.api.TruffleLanguage
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor