final class com.oracle.truffle.polyglot.PolyglotLanguageContext implements com.oracle.truffle.polyglot.PolyglotImpl$VMObject
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.PolyglotLanguageContext
  super_class: java.lang.Object
{
  private static final com.oracle.truffle.api.TruffleLogger LOG;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  final com.oracle.truffle.polyglot.PolyglotContextImpl context;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.polyglot.PolyglotLanguage language;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0010) ACC_FINAL

  final boolean eventsEnabled;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  private volatile java.lang.Thread creatingThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean initialized;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  volatile boolean finalized;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  private volatile org.graalvm.polyglot.Value hostBindings;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

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

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

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 92
            ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            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.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
         3: .line 94
            ldc "engine"
            ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
            putstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
         0: .line 227
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 225
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
         2: .line 228
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
         3: .line 229
            aload 0 /* this */
            aload 2 /* language */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
         4: .line 230
            aload 0 /* this */
            aload 2 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isHost:()Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack: com.oracle.truffle.polyglot.PolyglotLanguageContext
         5: iconst_1
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack: com.oracle.truffle.polyglot.PolyglotLanguageContext int
         6: putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
         7: .line 231
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    8     1   context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    8     2  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
          Name  Flags
      context   
      language  

  boolean isPolyglotBindingsAccessAllowed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 234
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
            getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
            if_acmpne 2
         1: .line 235
            iconst_1
            ireturn
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getBindingsAccess:(Lorg/graalvm/polyglot/PolyglotAccess;)Lorg/graalvm/collections/UnmodifiableEconomicSet;
            astore 1 /* accessibleLanguages */
        start local 1 // org.graalvm.collections.UnmodifiableEconomicSet accessibleLanguages
         3: .line 239
            aload 1 /* accessibleLanguages */
            ifnonnull 5
         4: .line 240
            iconst_1
            ireturn
         5: .line 242
      StackMap locals: org.graalvm.collections.UnmodifiableEconomicSet
      StackMap stack:
            aload 1 /* accessibleLanguages */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.graalvm.collections.UnmodifiableEconomicSet accessibleLanguages
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3    6     1  accessibleLanguages  Lorg/graalvm/collections/UnmodifiableEconomicSet<Ljava/lang/String;>;

  boolean isPolyglotEvalAllowed(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.String targetLanguage
         0: .line 246
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
            getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
            if_acmpne 2
         1: .line 247
            iconst_1
            ireturn
         2: .line 248
      StackMap locals:
      StackMap stack:
            aload 1 /* targetLanguage */
            ifnull 4
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            aload 1 /* targetLanguage */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 249
            iconst_1
            ireturn
         4: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
         5: .line 252
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
         6: .line 251
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getEvalAccess:(Lorg/graalvm/polyglot/PolyglotAccess;Ljava/lang/String;)Lorg/graalvm/collections/UnmodifiableEconomicSet;
            astore 2 /* accessibleLanguages */
        start local 2 // org.graalvm.collections.UnmodifiableEconomicSet accessibleLanguages
         7: .line 253
            aload 2 /* accessibleLanguages */
            ifnull 8
            aload 2 /* accessibleLanguages */
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.isEmpty:()Z
            ifeq 9
         8: .line 254
      StackMap locals: org.graalvm.collections.UnmodifiableEconomicSet
      StackMap stack:
            iconst_0
            ireturn
         9: .line 255
      StackMap locals:
      StackMap stack:
            aload 2 /* accessibleLanguages */
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.size:()I
            iconst_1
            if_icmpgt 10
            aload 2 /* accessibleLanguages */
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        10: .line 256
      StackMap locals:
      StackMap stack:
            aload 1 /* targetLanguage */
            ifnull 11
            aload 2 /* accessibleLanguages */
            aload 1 /* targetLanguage */
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.contains:(Ljava/lang/Object;)Z
            ifne 11
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_1
            ireturn
        12: .line 258
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // org.graalvm.collections.UnmodifiableEconomicSet accessibleLanguages
        end local 1 // java.lang.String targetLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   13     1       targetLanguage  Ljava/lang/String;
            7   13     2  accessibleLanguages  Lorg/graalvm/collections/UnmodifiableEconomicSet<Ljava/lang/String;>;
    MethodParameters:
                Name  Flags
      targetLanguage  

  java.lang.Thread$UncaughtExceptionHandler getPolyglotExceptionHandler();
    descriptor: ()Ljava/lang/Thread$UncaughtExceptionHandler;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 262
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.uncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  java.util.Map<java.lang.Class<?>, com.oracle.truffle.polyglot.PolyglotValue> getValueCache();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 267
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: ()Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/polyglot/PolyglotValue;>;

  java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getAccessibleLanguages(boolean);
    descriptor: (Z)Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // boolean allowInternalAndDependent
         0: .line 272
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            astore 2 /* l */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
         1: .line 273
            aload 2 /* l */
            ifnull 5
         2: .line 274
            iload 1 /* allowInternalAndDependent */
            ifeq 4
         3: .line 275
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.accessibleInternalLanguages:Ljava/util/Map;
            areturn
         4: .line 277
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.accessiblePublicLanguages:Ljava/util/Map;
            areturn
         5: .line 280
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
        end local 1 // boolean allowInternalAndDependent
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    6     0                       this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    6     1  allowInternalAndDependent  Z
            1    6     2                          l  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
    Signature: (Z)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
    MethodParameters:
                           Name  Flags
      allowInternalAndDependent  

  com.oracle.truffle.polyglot.PolyglotLanguageInstance getLanguageInstanceOrNull();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 285
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            astore 1 /* l */
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
         1: .line 286
            aload 1 /* l */
            ifnonnull 3
         2: .line 287
            aconst_null
            areturn
         3: .line 289
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack:
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            1    4     1     l  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;

  com.oracle.truffle.polyglot.PolyglotLanguageInstance getLanguageInstance();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 293
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  private void checkThreadAccess(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
         0: .line 298
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
            istore 2 /* singleThreaded */
        start local 2 // boolean singleThreaded
         2: .line 300
            aconst_null
            astore 3 /* firstFailingThread */
        start local 3 // java.lang.Thread firstFailingThread
         3: .line 301
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env int java.lang.Thread top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 4 /* threadInfo */
        start local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         5: .line 302
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* localEnv */
            aload 4 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            iload 2 /* singleThreaded */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
            ifne 8
         6: .line 303
            aload 4 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            astore 3 /* firstFailingThread */
         7: .line 304
            goto 9
        end local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         8: .line 301
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 307
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env int java.lang.Thread
      StackMap stack:
            aload 3 /* firstFailingThread */
            ifnull 11
        10: .line 308
            aload 3 /* firstFailingThread */
            iload 2 /* singleThreaded */
            iconst_1
            anewarray com.oracle.truffle.polyglot.PolyglotLanguage
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
            athrow
        11: .line 310
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Thread firstFailingThread
        end local 2 // boolean singleThreaded
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   12     1            localEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2   12     2      singleThreaded  Z
            3   12     3  firstFailingThread  Ljava/lang/Thread;
            5    8     4          threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
          Name  Flags
      localEnv  

  java.lang.Object getContextImpl();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 313
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnull 2
         1: .line 314
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            areturn
         2: .line 316
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 317
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  java.lang.Object getPublicFileSystemContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 322
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            astore 1 /* l */
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
         1: .line 323
            aload 1 /* l */
            ifnull 3
         2: .line 324
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.publicFileSystemContext:Ljava/lang/Object;
            areturn
         3: .line 326
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            1    4     1     l  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;

  java.lang.Object getInternalFileSystemContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 331
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            astore 1 /* l */
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
         1: .line 332
            aload 1 /* l */
            ifnull 3
         2: .line 333
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.internalFileSystemContext:Ljava/lang/Object;
            areturn
         3: .line 335
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy l
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            1    4     1     l  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;

  org.graalvm.polyglot.Value getHostBindings();
    descriptor: ()Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 340
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
            ifnonnull 17
         2: .line 342
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         3: .line 343
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
            ifnonnull 13
         4: .line 344
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
            astore 2 /* prev */
        start local 2 // java.lang.Object prev
         5: .line 346
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getScope:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         6: .line 347
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 7
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            ldc "Scope object must have members."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 348
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* scope */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
        end local 3 // java.lang.Object scope
         8: .line 349
            goto 12
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack: java.lang.Throwable
         9: astore 4
        10: .line 350
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        11: .line 351
            aload 4
            athrow
        12: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 2 // java.lang.Object prev
        13: .line 342
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 1
            monitorexit
        16: athrow
        17: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.hostBindings:Lorg/graalvm/polyglot/Value;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            5   13     2   prev  Ljava/lang/Object;
            6    8     3  scope  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           5     9       9  any
           3    14      15  any
          15    16      15  any

  java.lang.Object getPolyglotGuestBindings();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 359
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.polyglotGuestBindings:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  boolean isInitialized();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 364
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  com.oracle.truffle.api.CallTarget parseCached(com.oracle.truffle.polyglot.PolyglotLanguage, com.oracle.truffle.api.source.Source, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        start local 2 // com.oracle.truffle.api.source.Source source
        start local 3 // java.lang.String[] argumentNames
         0: .line 368
            aload 0 /* this */
            aload 1 /* accessingLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
         1: .line 369
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.sourceCache:Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
            astore 4 /* cache */
        start local 4 // com.oracle.truffle.polyglot.PolyglotSourceCache cache
         2: .line 370
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 3
            aload 4 /* cache */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 371
      StackMap locals: com.oracle.truffle.polyglot.PolyglotSourceCache
      StackMap stack:
            aload 4 /* cache */
            aload 0 /* this */
            aload 2 /* source */
            aload 3 /* argumentNames */
            invokevirtual com.oracle.truffle.polyglot.PolyglotSourceCache.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotSourceCache cache
        end local 3 // java.lang.String[] argumentNames
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    4     1  accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            0    4     2             source  Lcom/oracle/truffle/api/source/Source;
            0    4     3      argumentNames  [Ljava/lang/String;
            2    4     4              cache  Lcom/oracle/truffle/polyglot/PolyglotSourceCache;
    Exceptions:
      throws java.lang.AssertionError
    MethodParameters:
                   Name  Flags
      accessingLanguage  
      source             
      argumentNames      

  com.oracle.truffle.api.TruffleLanguage$Env requireEnv();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 375
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 1 /* localEnv */
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
         1: .line 376
            aload 1 /* localEnv */
            ifnonnull 3
         2: .line 377
            ldc "No language context is active on this thread."
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 379
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            aload 1 /* localEnv */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            1    4     1  localEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;

  boolean finalizeContext(boolean);
    descriptor: (Z)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // boolean notifyInstruments
         0: .line 383
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
            ifne 6
         1: .line 384
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
         2: .line 385
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.finalizeContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
         3: .line 386
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 5
            iload 1 /* notifyInstruments */
            ifeq 5
         4: .line 387
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextFinalized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
         5: .line 389
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 391
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // boolean notifyInstruments
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    7     1  notifyInstruments  Z
    MethodParameters:
                   Name  Flags
      notifyInstruments  

  boolean dispose();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 395
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 1 /* localEnv */
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
         2: .line 397
            aload 1 /* localEnv */
            ifnull 17
         3: .line 398
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         4: .line 400
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The language did not complete all polyglot threads but should have: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 402
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* threadInfo */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         7: .line 403
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 8
            aload 2 /* threadInfo */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 404
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
      StackMap stack:
            aload 2 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            astore 4 /* thread */
        start local 4 // java.lang.Thread thread
         9: .line 405
            aload 4 /* thread */
            ifnonnull 11
        10: .line 406
            goto 14
        11: .line 408
      StackMap locals: java.lang.Thread
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 13
            aload 2 /* threadInfo */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
            ifeq 13
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Polyglot threads must no longer be active in TruffleLanguage.finalizeContext, but polyglot thread "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* thread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 409
            ldc " is still active."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 410
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* localEnv */
            aload 4 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.disposeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
        end local 4 // java.lang.Thread thread
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        14: .line 402
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        15: .line 412
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* localEnv */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.dispose:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
        16: .line 413
            iconst_1
            ireturn
        17: .line 415
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            2   18     1    localEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            7   14     2  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            9   14     4      thread  Ljava/lang/Thread;

  void notifyDisposed(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // boolean notifyInstruments
         0: .line 419
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 2
            iload 1 /* notifyInstruments */
            ifeq 2
         1: .line 420
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextDisposed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
         2: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
         3: .line 423
            return
        end local 1 // boolean notifyInstruments
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    4     1  notifyInstruments  Z
    MethodParameters:
                   Name  Flags
      notifyInstruments  

  com.oracle.truffle.polyglot.PolyglotContextImpl enterThread(com.oracle.truffle.polyglot.PolyglotThread);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThread;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotThread thread
         0: .line 426
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 427
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 2
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 1 /* thread */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 2
            monitorenter
         3: .line 429
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* prev */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
         4: .line 430
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
            aload 1 /* thread */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 431
            aload 3 /* prev */
            aload 2
            monitorexit
         6: areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
         7: .line 428
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // com.oracle.truffle.polyglot.PolyglotThread thread
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    9     1  thread  Lcom/oracle/truffle/polyglot/PolyglotThread;
            4    7     3    prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      thread  

  void leaveThread(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotThread);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotThread;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        start local 2 // com.oracle.truffle.polyglot.PolyglotThread thread
         0: .line 436
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 437
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 2
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* thread */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 3
            monitorenter
         3: .line 439
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
            astore 4 /* seenThreads */
        start local 4 // java.util.Map seenThreads
         4: .line 440
            aload 4 /* seenThreads */
            aload 2 /* thread */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 5 /* info */
        start local 5 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         5: .line 441
            aload 5 /* info */
            ifnonnull 8
         6: .line 443
            aload 3
            monitorexit
         7: return
         8: .line 445
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Map com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Map com.oracle.truffle.polyglot.PolyglotThreadInfo top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         9: aload 9
            iload 7
            aaload
            astore 6 /* languageContext */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        10: .line 446
            aload 6 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 12
        11: .line 447
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 6 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 2 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.disposeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        12: .line 445
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        13: iload 7
            iload 8
            if_icmplt 9
        14: .line 450
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.activePolyglotThreads:Ljava/util/Set;
            aload 2 /* thread */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        15: .line 451
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        16: .line 452
            aload 4 /* seenThreads */
            aload 2 /* thread */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 4 // java.util.Map seenThreads
        17: .line 438
            aload 3
            monitorexit
        18: goto 21
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThread com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 454
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 2 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadFinished:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
        22: .line 455
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotThread thread
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   23     1             prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   23     2           thread  Lcom/oracle/truffle/polyglot/PolyglotThread;
            4   17     4      seenThreads  Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;
            5   17     5             info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           10   12     6  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
      Exception table:
        from    to  target  type
           3     7      19  any
           8    18      19  any
          19    20      19  any
    MethodParameters:
        Name  Flags
      prev    
      thread  

  boolean isCreated();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 458
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  void ensureCreated(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=13, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
         0: .line 462
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 4
         1: .line 463
            ldc "Cyclic access to language context for language %s. The context is currently being created."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 464
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            aastore
         3: .line 463
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
            ifnull 19
         5: .line 467
            iconst_0
            istore 2 /* interrupted */
        start local 2 // boolean interrupted
         6: .line 468
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 3
            monitorenter
         7: .line 469
            goto 12
         8: .line 471
      StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual java.lang.Object.wait:()V
         9: .line 472
            goto 12
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        10: pop
        11: .line 474
            iconst_1
            istore 2 /* interrupted */
        12: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
            ifnonnull 8
        13: .line 468
            aload 3
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        17: .line 478
      StackMap locals:
      StackMap stack:
            iload 2 /* interrupted */
            ifeq 19
        18: .line 479
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 2 // boolean interrupted
        19: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            ifnonnull 78
        20: .line 484
            aload 0 /* this */
            aload 1 /* accessingLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
        21: .line 486
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            if_acmpne 22
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
            goto 23
      StackMap locals:
      StackMap stack:
        22: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
      StackMap locals:
      StackMap stack: java.util.Map
        23: astore 2 /* creatorConfig */
        start local 2 // java.util.Map creatorConfig
        24: .line 487
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            astore 3 /* envConfig */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextConfig envConfig
        25: .line 488
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 3 /* envConfig */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.allocateInstance:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            astore 4 /* lang */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance lang
        26: .line 490
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 5
            monitorenter
        27: .line 491
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            ifnonnull 68
        28: .line 492
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            aload 4 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
            aload 3 /* envConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
        29: .line 493
            aload 3 /* envConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.err:Ljava/io/OutputStream;
        30: .line 494
            aload 3 /* envConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.in:Ljava/io/InputStream;
        31: .line 495
            aload 2 /* creatorConfig */
        32: .line 496
            aload 3 /* envConfig */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
        33: .line 497
            aload 3 /* envConfig */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getApplicationArguments:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)[Ljava/lang/String;
        34: .line 492
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.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 6 /* localEnv */
        start local 6 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
        35: .line 498
            new com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
            dup
            aload 0 /* this */
            aload 4 /* lang */
            aload 3 /* envConfig */
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
            astore 7 /* localLazy */
        start local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy localLazy
        36: .line 499
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            aload 0 /* this */
            aload 7 /* localLazy */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.createDefaultValues:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
        37: .line 500
            aload 0 /* this */
            aload 6 /* localEnv */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkThreadAccess:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
        38: .line 503
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
        39: .line 504
            aload 0 /* this */
            aload 6 /* localEnv */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
        40: .line 505
            aload 0 /* this */
            aload 7 /* localLazy */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
        41: .line 506
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 42
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
            ifnonnull 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 509
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* languageServicesCollector */
        start local 8 // java.util.List languageServicesCollector
        43: .line 510
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 6 /* localEnv */
            aload 8 /* languageServicesCollector */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEnvContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/util/List;)Ljava/lang/Object;
            astore 9 /* contextImpl */
        start local 9 // java.lang.Object contextImpl
        44: .line 511
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 9 /* contextImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.initializeContextClass:(Ljava/lang/Object;)V
        45: .line 512
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
            aload 4 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
            aload 9 /* contextImpl */
            aastore
        46: .line 514
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            aload 8 /* languageServicesCollector */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getServices:()Ljava/util/Collection;
            invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.verifyServices:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List;Ljava/util/Collection;)Ljava/lang/String;
            astore 10 /* errorMessage */
        start local 10 // java.lang.String errorMessage
        47: .line 515
            aload 10 /* errorMessage */
            ifnull 49
        48: .line 516
            aload 10 /* errorMessage */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        49: .line 518
      StackMap locals: java.util.List java.lang.Object java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 8 /* languageServicesCollector */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
        50: .line 519
            aload 4 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.profile:Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
            aload 0 /* this */
            aload 6 /* localEnv */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile.notifyContextCreate:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
        51: .line 520
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 53
        52: .line 521
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        53: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
            aload 4 /* lang */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        54: .line 524
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            aload 4 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
        55: .line 525
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 4 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadLocalFactory:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
        56: .line 526
            aconst_null
            astore 4 /* lang */
        end local 10 // java.lang.String errorMessage
        end local 9 // java.lang.Object contextImpl
        end local 8 // java.util.List languageServicesCollector
        57: .line 527
            goto 66
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy
      StackMap stack: java.lang.Throwable
        58: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        59: .line 528
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
        60: .line 529
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
        61: .line 530
            aload 8 /* e */
            athrow
        end local 8 // java.lang.Throwable e
        62: .line 531
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        63: .line 532
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
        64: .line 533
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual java.lang.Object.notifyAll:()V
        65: .line 534
            aload 11
            athrow
        66: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.creatingThread:Ljava/lang/Thread;
        67: .line 533
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual java.lang.Object.notifyAll:()V
        end local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy localLazy
        end local 6 // com.oracle.truffle.api.TruffleLanguage$Env localEnv
        68: .line 490
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        69: goto 76
      StackMap locals:
      StackMap stack: java.lang.Throwable
        70: aload 5
            monitorexit
        71: athrow
        72: .line 537
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance
      StackMap stack: java.lang.Throwable
            astore 12
        73: .line 539
            aload 4 /* lang */
            ifnull 75
        74: .line 540
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 4 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
        75: .line 542
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 12
            athrow
        76: .line 539
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotLanguageInstance
      StackMap stack:
            aload 4 /* lang */
            ifnull 78
        77: .line 540
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 4 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance lang
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextConfig envConfig
        end local 2 // java.util.Map creatorConfig
        78: .line 544
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   79     0                       this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   79     1          accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            6   19     2                interrupted  Z
           24   78     2              creatorConfig  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           25   78     3                  envConfig  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
           26   78     4                       lang  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
           35   68     6                   localEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
           36   68     7                  localLazy  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
           43   57     8  languageServicesCollector  Ljava/util/List<Ljava/lang/Object;>;
           44   57     9                contextImpl  Ljava/lang/Object;
           47   57    10               errorMessage  Ljava/lang/String;
           59   62     8                          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.InterruptedException
           7    14      15  any
          15    16      15  any
          42    57      58  Class java.lang.Throwable
          42    62      62  any
          27    69      70  any
          70    71      70  any
          26    72      72  any
    MethodParameters:
                   Name  Flags
      accessingLanguage  

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 547
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
         2: .line 549
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
         3: .line 550
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  private static java.lang.String verifyServices(com.oracle.truffle.api.nodes.LanguageInfo, java.util.List<java.lang.Object>, java.util.Collection<java.lang.String>);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List;Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.LanguageInfo info
        start local 1 // java.util.List registeredServices
        start local 2 // java.util.Collection expectedServices
         0: .line 553
            aload 2 /* expectedServices */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* expectedService */
        start local 3 // java.lang.String expectedService
         2: .line 554
            iconst_0
            istore 5 /* found */
        start local 5 // boolean found
         3: .line 555
            aload 1 /* registeredServices */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection java.lang.String java.util.Iterator int top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* registeredService */
        start local 6 // java.lang.Object registeredService
         5: .line 556
            aload 6 /* registeredService */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* expectedService */
            invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifeq 8
         6: .line 557
            iconst_1
            istore 5 /* found */
         7: .line 558
            goto 9
        end local 6 // java.lang.Object registeredService
         8: .line 555
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 561
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection java.lang.String java.util.Iterator int
      StackMap stack:
            iload 5 /* found */
            ifne 11
        10: .line 562
            ldc "Language %s declares service %s but doesn't register it"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* info */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* expectedService */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 5 // boolean found
        end local 3 // java.lang.String expectedService
        11: .line 553
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo java.util.List java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        12: .line 565
            aconst_null
            areturn
        end local 2 // java.util.Collection expectedServices
        end local 1 // java.util.List registeredServices
        end local 0 // com.oracle.truffle.api.nodes.LanguageInfo info
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0   13     1  registeredServices  Ljava/util/List<Ljava/lang/Object;>;
            0   13     2    expectedServices  Ljava/util/Collection<Ljava/lang/String;>;
            2   11     3     expectedService  Ljava/lang/String;
            3   11     5               found  Z
            5    8     6   registeredService  Ljava/lang/Object;
    Signature: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/util/List<Ljava/lang/Object;>;Ljava/util/Collection<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      info                
      registeredServices  
      expectedServices    

  private static boolean isSubType(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.String serviceClass
         0: .line 569
            aload 0 /* clazz */
            ifnonnull 2
         1: .line 570
            iconst_0
            ireturn
         2: .line 572
      StackMap locals:
      StackMap stack:
            aload 1 /* serviceClass */
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 1 /* serviceClass */
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 573
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            aload 1 /* serviceClass */
            invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifeq 6
         5: .line 576
            iconst_1
            ireturn
         6: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: java.lang.Class java.lang.String top int int java.lang.Class[]
      StackMap stack:
         7: aload 5
            iload 3
            aaload
            astore 2 /* implementedInterface */
        start local 2 // java.lang.Class implementedInterface
         8: .line 579
            aload 2 /* implementedInterface */
            aload 1 /* serviceClass */
            invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.isSubType:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifeq 10
         9: .line 580
            iconst_1
            ireturn
        end local 2 // java.lang.Class implementedInterface
        10: .line 578
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 7
        12: .line 583
            iconst_0
            ireturn
        end local 1 // java.lang.String serviceClass
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   13     0                 clazz  Ljava/lang/Class<*>;
            0   13     1          serviceClass  Ljava/lang/String;
            8   10     2  implementedInterface  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Z
    MethodParameters:
              Name  Flags
      clazz         
      serviceClass  

  boolean ensureInitialized(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
         0: .line 587
            aload 0 /* this */
            aload 1 /* accessingLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         1: .line 588
            iconst_0
            istore 2 /* wasInitialized */
        start local 2 // boolean wasInitialized
         2: .line 589
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
            ifne 27
         3: .line 590
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 3
            monitorenter
         4: .line 591
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
            ifne 23
         5: .line 592
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
         6: .line 594
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
            ifne 8
         7: .line 595
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
         8: .line 597
      StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.postInitEnv:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
         9: .line 599
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
            ifne 11
        10: .line 600
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeMultiThreading:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
        11: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 4 /* threadInfo */
        start local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        13: .line 604
            aload 4 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            astore 6 /* thread */
        start local 6 // java.lang.Thread thread
        14: .line 605
            aload 6 /* thread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 16
        15: .line 606
            goto 17
        16: .line 608
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator java.lang.Thread
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 6 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
        end local 6 // java.lang.Thread thread
        end local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        17: .line 603
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        18: .line 611
            iconst_1
            istore 2 /* wasInitialized */
        19: .line 612
            goto 23
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        20: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        21: .line 615
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.initialized:Z
        22: .line 616
            aload 4 /* e */
            athrow
        end local 4 // java.lang.Throwable e
        23: .line 590
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 3
            monitorexit
        26: athrow
        27: .line 621
      StackMap locals:
      StackMap stack:
            iload 2 /* wasInitialized */
            ifeq 29
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 29
        28: .line 622
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextInitialized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        29: .line 624
      StackMap locals:
      StackMap stack:
            iload 2 /* wasInitialized */
            ireturn
        end local 2 // boolean wasInitialized
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   30     0               this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   30     1  accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   30     2     wasInitialized  Z
           13   17     4         threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           14   17     6             thread  Ljava/lang/Thread;
           21   23     4                  e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6    19      20  Class java.lang.Throwable
           4    24      25  any
          25    26      25  any
    MethodParameters:
                   Name  Flags
      accessingLanguage  

  void checkAccess(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
         0: .line 629
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
         1: .line 630
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
            ifeq 3
         2: .line 631
            ldc "The Context is already closed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         3: .line 633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            aload 1 /* accessingLanguage */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.isAccessPermitted:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            ifne 5
         4: .line 634
            ldc "Access to language '%s' is not permitted. "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         5: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.initError:Ljava/lang/RuntimeException;
            astore 2 /* initError */
        start local 2 // java.lang.RuntimeException initError
         6: .line 637
            aload 2 /* initError */
            ifnull 8
         7: .line 638
            ldc "Initialization error: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* initError */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* initError */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         8: .line 640
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            return
        end local 2 // java.lang.RuntimeException initError
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    9     1  accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            6    9     2          initError  Ljava/lang/RuntimeException;
    MethodParameters:
                   Name  Flags
      accessingLanguage  

  public com.oracle.truffle.polyglot.PolyglotEngineImpl getEngine();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 644
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  boolean patch(com.oracle.truffle.polyglot.PolyglotContextConfig);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
    flags: (0x0000) 
    Code:
      stack=9, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig newConfig
         0: .line 648
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifeq 16
         1: .line 650
            aload 1 /* newConfig */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getLanguageOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 2 /* newOptionValues */
        start local 2 // com.oracle.truffle.polyglot.OptionValuesImpl newOptionValues
         2: .line 651
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            aload 1 /* newConfig */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.computeAccessPermissions:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
         3: .line 652
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* newConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
            aload 1 /* newConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.err:Ljava/io/OutputStream;
            aload 1 /* newConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.in:Ljava/io/InputStream;
         4: .line 653
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            aload 2 /* newOptionValues */
            aload 1 /* newConfig */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getApplicationArguments:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)[Ljava/lang/String;
         5: .line 652
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.patchEnvContext:(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;
            astore 3 /* newEnv */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
         6: .line 654
            aload 3 /* newEnv */
            ifnull 11
         7: .line 655
            aload 0 /* this */
            aload 3 /* newEnv */
            putfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
         8: .line 656
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            aload 2 /* newOptionValues */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.patchFirstOptions:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
         9: .line 657
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Successfully patched context of language: {0}"
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 658
            iconst_1
            ireturn
        11: .line 660
      StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Failed to patch context of language: {0}"
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 661
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
        end local 2 // com.oracle.truffle.polyglot.OptionValuesImpl newOptionValues
        13: .line 662
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextConfig
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        14: .line 663
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Exception during patching context of language: {0}"
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 666
            ldc Ljava/lang/RuntimeException;
            aload 2 /* t */
            invokestatic com.oracle.truffle.polyglot.GuestToHostRootNode.silenceException:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        16: .line 669
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig newConfig
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   17     1        newConfig  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            2   13     2  newOptionValues  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            6   13     3           newEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
           14   16     2                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1    10      13  Class java.lang.Throwable
          11    12      13  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      newConfig  

  <S> S lookupService(java.lang.Class<S>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Class type
         0: .line 674
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.languageServices:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* languageService */
        start local 2 // java.lang.Object languageService
         2: .line 675
            aload 1 /* type */
            aload 2 /* languageService */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 676
            aload 1 /* type */
            aload 2 /* languageService */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object languageService
         4: .line 674
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 679
            aconst_null
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    6     1             type  Ljava/lang/Class<TS;>;
            2    4     2  languageService  Ljava/lang/Object;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;)TS;
    MethodParameters:
      Name  Flags
      type  

  org.graalvm.polyglot.Value asValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object guestValue
         0: .line 807
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 808
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 2
            aload 1 /* guestValue */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 809
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 3
            aload 1 /* guestValue */
            instanceof org.graalvm.polyglot.Value
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 810
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 4
            aload 1 /* guestValue */
            instanceof org.graalvm.polyglot.proxy.Proxy
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 811
      StackMap locals:
      StackMap stack:
            aload 1 /* guestValue */
            astore 2 /* receiver */
        start local 2 // java.lang.Object receiver
         5: .line 812
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
            aload 2 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotValue
            astore 3 /* cache */
        start local 3 // com.oracle.truffle.polyglot.PolyglotValue cache
         6: .line 813
            aload 3 /* cache */
            ifnonnull 14
         7: .line 814
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
            astore 4 /* prev */
        start local 4 // java.lang.Object prev
         8: .line 816
            aload 0 /* this */
            aload 1 /* guestValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.lookupValueCache:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotValue;
            astore 3 /* cache */
         9: .line 817
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object com.oracle.truffle.polyglot.PolyglotValue java.lang.Object
      StackMap stack: java.lang.Throwable
        10: astore 5
        11: .line 818
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 4 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        12: .line 819
            aload 5
            athrow
        13: .line 818
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 4 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 4 // java.lang.Object prev
        14: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* receiver */
            aload 3 /* cache */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotValue cache
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Object guestValue
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   15     1  guestValue  Ljava/lang/Object;
            5   15     2    receiver  Ljava/lang/Object;
            6   15     3       cache  Lcom/oracle/truffle/polyglot/PolyglotValue;
            8   14     4        prev  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           8    10      10  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      guestValue  

  synchronized com.oracle.truffle.polyglot.PolyglotValue lookupValueCache(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotValue;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object guestValue
         0: .line 825
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aconst_null
            aload 1 /* guestValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.toGuestValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
            aload 1 /* guestValue */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a valid guest value: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* guestValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ". Only interop values are allowed to be exported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enterIfNeeded:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
            astore 2 /* prev */
        start local 2 // java.lang.Object prev
         2: .line 828
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
            aload 1 /* guestValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            new com.oracle.truffle.polyglot.PolyglotLanguageContext$1
            dup
            aload 0 /* this */
            aload 1 /* guestValue */
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$1.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotValue
            astore 3 /* cache */
        start local 3 // com.oracle.truffle.polyglot.PolyglotValue cache
         3: .line 833
            aload 3 /* cache */
            astore 5
         4: .line 835
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         5: .line 833
            aload 5
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotValue cache
         6: .line 834
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 4
         7: .line 835
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leaveIfNeeded:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         8: .line 836
            aload 4
            athrow
        end local 2 // java.lang.Object prev
        end local 1 // java.lang.Object guestValue
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    9     1  guestValue  Ljava/lang/Object;
            2    9     2        prev  Ljava/lang/Object;
            3    6     3       cache  Lcom/oracle/truffle/polyglot/PolyglotValue;
      Exception table:
        from    to  target  type
           2     4       6  any
    MethodParameters:
            Name  Flags
      guestValue  

   toGuestValue(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Class receiver
         0: .line 901
            aload 1 /* receiver */
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.HostObject.forClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        end local 1 // java.lang.Class receiver
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    1     1  receiver  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  java.lang.Object toGuestValue(com.oracle.truffle.api.nodes.Node, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.api.nodes.Node parentNode
        start local 2 // java.lang.Object hostValue
         0: .line 905
            aload 2 /* hostValue */
            instanceof org.graalvm.polyglot.Value
            ifeq 10
         1: .line 906
            aload 2 /* hostValue */
            checkcast org.graalvm.polyglot.Value
            astore 3 /* receiverValue */
        start local 3 // org.graalvm.polyglot.Value receiverValue
         2: .line 907
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 3 /* receiverValue */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getImpl:(Lorg/graalvm/polyglot/Value;)Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;
            checkcast com.oracle.truffle.polyglot.PolyglotValue
            astore 4 /* valueImpl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotValue valueImpl
         3: .line 908
            aload 4 /* valueImpl */
            getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            ifnull 4
            aload 4 /* valueImpl */
            getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            goto 5
      StackMap locals: org.graalvm.polyglot.Value com.oracle.truffle.polyglot.PolyglotValue
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl
         5: astore 5 /* valueContext */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
         6: .line 909
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 3 /* receiverValue */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getReceiver:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
            astore 6 /* valueReceiver */
        start local 6 // java.lang.Object valueReceiver
         7: .line 910
            aload 5 /* valueContext */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            if_acmpeq 9
         8: .line 911
            aload 0 /* this */
            aload 1 /* parentNode */
            aload 6 /* valueReceiver */
            aload 5 /* valueContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
            astore 6 /* valueReceiver */
         9: .line 913
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
      StackMap stack:
            aload 6 /* valueReceiver */
            areturn
        end local 6 // java.lang.Object valueReceiver
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
        end local 4 // com.oracle.truffle.polyglot.PolyglotValue valueImpl
        end local 3 // org.graalvm.polyglot.Value receiverValue
        10: .line 914
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.nodes.Node java.lang.Object
      StackMap stack:
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 915
            aload 2 /* hostValue */
            areturn
        12: .line 916
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            instanceof org.graalvm.polyglot.proxy.Proxy
            ifeq 14
        13: .line 917
            aload 2 /* hostValue */
            checkcast org.graalvm.polyglot.proxy.Proxy
            invokestatic com.oracle.truffle.polyglot.PolyglotProxy.toProxyGuestObject:(Lorg/graalvm/polyglot/proxy/Proxy;)Lcom/oracle/truffle/api/interop/TruffleObject;
            areturn
        14: .line 918
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifeq 16
        15: .line 919
            aload 2 /* hostValue */
            areturn
        16: .line 920
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            instanceof java.lang.Class
            ifeq 18
        17: .line 921
            aload 2 /* hostValue */
            checkcast java.lang.Class
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.HostObject.forClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        18: .line 922
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            ifnonnull 20
        19: .line 923
            getstatic com.oracle.truffle.polyglot.HostObject.NULL:Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        20: .line 924
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 22
        21: .line 925
            aload 2 /* hostValue */
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.HostObject.forObject:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        22: .line 926
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.isInstance:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 927
            aload 0 /* this */
            aload 1 /* parentNode */
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.asInstance:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostWrapper;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateHostWrapper:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/HostWrapper;)Ljava/lang/Object;
            areturn
        24: .line 929
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.HostInteropReflect.asTruffleViaReflection:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object hostValue
        end local 1 // com.oracle.truffle.api.nodes.Node parentNode
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   25     1     parentNode  Lcom/oracle/truffle/api/nodes/Node;
            0   25     2      hostValue  Ljava/lang/Object;
            2   10     3  receiverValue  Lorg/graalvm/polyglot/Value;
            3   10     4      valueImpl  Lcom/oracle/truffle/polyglot/PolyglotValue;
            6   10     5   valueContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7   10     6  valueReceiver  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      parentNode  
      hostValue   

  private java.lang.Object migrateValue(com.oracle.truffle.api.nodes.Node, java.lang.Object, com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.api.nodes.Node parentNode
        start local 2 // java.lang.Object value
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
         0: .line 944
            aload 2 /* value */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 946
            aload 2 /* value */
            areturn
         2: .line 947
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic com.oracle.truffle.polyglot.HostObject.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 948
            aload 2 /* value */
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.HostObject.withContext:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            areturn
         4: .line 949
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic com.oracle.truffle.polyglot.PolyglotProxy.isProxyGuestObject:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 950
            aload 2 /* value */
            areturn
         6: .line 951
      StackMap locals:
      StackMap stack:
            aload 3 /* valueContext */
            ifnonnull 9
         7: .line 956
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 8
            aload 2 /* value */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 957
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
         9: .line 959
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        10: .line 960
            aload 1 /* parentNode */
            astore 4 /* nodeContext */
        start local 4 // com.oracle.truffle.api.nodes.Node nodeContext
        11: .line 961
            aload 4 /* nodeContext */
            ifnull 12
            aload 4 /* nodeContext */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            ifnonnull 13
        12: .line 962
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
            invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.get:()Lcom/oracle/truffle/api/nodes/Node;
            astore 4 /* nodeContext */
        13: .line 964
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException
            dup
            ldc "The value '%s' cannot be passed from one context to another. The current context is 0x%x and the argument value originates from context 0x%x."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 966
            aconst_null
            aload 2 /* value */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.getValueInfo:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* valueContext */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        15: .line 964
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        16: .line 966
            aload 4 /* nodeContext */
        17: .line 964
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)V
            athrow
        end local 4 // com.oracle.truffle.api.nodes.Node nodeContext
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.Node parentNode
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   18     1    parentNode  Lcom/oracle/truffle/api/nodes/Node;
            0   18     2         value  Ljava/lang/Object;
            0   18     3  valueContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           11   18     4   nodeContext  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
              Name  Flags
      parentNode    
      value         
      valueContext  

  private java.lang.Object migrateHostWrapper(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.polyglot.HostWrapper);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/HostWrapper;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.api.nodes.Node parentNode
        start local 2 // com.oracle.truffle.polyglot.HostWrapper wrapper
         0: .line 971
            aload 2 /* wrapper */
            invokeinterface com.oracle.truffle.polyglot.HostWrapper.getGuestObject:()Ljava/lang/Object;
            astore 3 /* wrapped */
        start local 3 // java.lang.Object wrapped
         1: .line 972
            aload 2 /* wrapper */
            invokeinterface com.oracle.truffle.polyglot.HostWrapper.getContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 4 /* valueContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
         2: .line 973
            aload 4 /* valueContext */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            if_acmpeq 4
         3: .line 975
            aload 0 /* this */
            aload 1 /* parentNode */
            aload 3 /* wrapped */
            aload 4 /* valueContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.migrateValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
            astore 3 /* wrapped */
         4: .line 977
      StackMap locals: java.lang.Object com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 3 /* wrapped */
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl valueContext
        end local 3 // java.lang.Object wrapped
        end local 2 // com.oracle.truffle.polyglot.HostWrapper wrapper
        end local 1 // com.oracle.truffle.api.nodes.Node parentNode
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    5     1    parentNode  Lcom/oracle/truffle/api/nodes/Node;
            0    5     2       wrapper  Lcom/oracle/truffle/polyglot/HostWrapper;
            1    5     3       wrapped  Ljava/lang/Object;
            2    5     4  valueContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
            Name  Flags
      parentNode  
      wrapper     

  org.graalvm.polyglot.Value[] toHostValues(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)[Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object[] values
        start local 2 // int startIndex
         0: .line 982
            aload 1 /* values */
            arraylength
            iload 2 /* startIndex */
            isub
            anewarray org.graalvm.polyglot.Value
            astore 3 /* args */
        start local 3 // org.graalvm.polyglot.Value[] args
         1: .line 983
            iload 2 /* startIndex */
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 984
      StackMap locals: org.graalvm.polyglot.Value[] int
      StackMap stack:
            aload 3 /* args */
            iload 4 /* i */
            iload 2 /* startIndex */
            isub
            aload 0 /* this */
            aload 1 /* values */
            iload 4 /* i */
            aaload
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            aastore
         4: .line 983
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            aload 1 /* values */
            arraylength
            if_icmplt 3
        end local 4 // int i
         6: .line 986
            aload 3 /* args */
            areturn
        end local 3 // org.graalvm.polyglot.Value[] args
        end local 2 // int startIndex
        end local 1 // java.lang.Object[] values
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    7     1      values  [Ljava/lang/Object;
            0    7     2  startIndex  I
            1    7     3        args  [Lorg/graalvm/polyglot/Value;
            2    6     4           i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      values      
      startIndex  

  org.graalvm.polyglot.Value[] toHostValues(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object[] values
         0: .line 991
            aload 1 /* values */
            arraylength
            anewarray org.graalvm.polyglot.Value
            astore 2 /* args */
        start local 2 // org.graalvm.polyglot.Value[] args
         1: .line 992
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 993
      StackMap locals: org.graalvm.polyglot.Value[] int
      StackMap stack:
            aload 2 /* args */
            iload 3 /* i */
            aload 0 /* this */
            aload 1 /* values */
            iload 3 /* i */
            aaload
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            aastore
         4: .line 992
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 2 /* args */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 995
            aload 2 /* args */
            areturn
        end local 2 // org.graalvm.polyglot.Value[] args
        end local 1 // java.lang.Object[] values
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    7     1  values  [Ljava/lang/Object;
            1    7     2    args  [Lorg/graalvm/polyglot/Value;
            2    6     3       i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      values  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
         0: .line 1000
            new java.lang.StringBuilder
            dup
            ldc "PolyglotLanguageContext [language="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", initialized="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         1: iconst_0
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack: java.lang.StringBuilder int
         2: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;

  public java.lang.Object getLanguageView(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object receiver
         0: .line 1023
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INTEROP:Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.checkInteropType:(Ljava/lang/Object;)V
         1: .line 1024
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 2 /* lib */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
         2: .line 1025
            aload 2 /* lib */
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 10
         3: .line 1027
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifne 5
         4: .line 1028
            ldc "Language not yet created. Initialize the language first to request a language view."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         5: .line 1030
      StackMap locals: com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack:
            aload 2 /* lib */
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.languageInstance:Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.spi:Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 10
         6: .line 1031
            aload 1 /* receiver */
         7: areturn
         8: .line 1033
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         9: .line 1034
            aload 3 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
        10: .line 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageViewNoCheck:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   11     1  receiver  Ljava/lang/Object;
            2   11     2       lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            9   10     3         e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           3     7       8  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
          Name  Flags
      receiver  

  private boolean validLanguageView(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object result
         0: .line 1041
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 2 /* lib */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
         1: .line 1042
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 3 /* languageClass */
        start local 3 // java.lang.Class languageClass
         2: .line 1044
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 9
            aload 2 /* lib */
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1045
            aload 2 /* lib */
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            aload 3 /* languageClass */
            if_acmpeq 9
      StackMap locals: com.oracle.truffle.api.interop.InteropLibrary java.lang.Class
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            ldc "The returned language view of language '%s' must return the class '%s' for InteropLibrary.getLanguage.Fix the implementation of %s.getLanguageView to resolve this."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 1046
            aload 3 /* languageClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* languageClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 3 /* languageClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
         6: .line 1045
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 1047
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 4 /* e */
        start local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         8: .line 1048
            aload 4 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         9: .line 1050
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Class languageClass
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 1 // java.lang.Object result
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   10     1         result  Ljava/lang/Object;
            1   10     2            lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            2   10     3  languageClass  Ljava/lang/Class<*>;
            8    9     4              e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     7       7  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      result  

  private boolean validScopedView(java.lang.Object, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object result
        start local 2 // com.oracle.truffle.api.nodes.Node location
         0: .line 1054
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 3 /* lib */
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary lib
         1: .line 1055
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* languageClass */
        start local 4 // java.lang.Class languageClass
         2: .line 1057
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 9
            aload 3 /* lib */
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1058
            aload 3 /* lib */
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            aload 4 /* languageClass */
            if_acmpeq 9
      StackMap locals: com.oracle.truffle.api.interop.InteropLibrary java.lang.Class
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            ldc "The returned scoped view of language '%s' must return the class '%s' for InteropLibrary.getLanguage.Fix the implementation of %s.getView to resolve this."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 1059
            aload 4 /* languageClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* languageClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* location */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
         6: .line 1058
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 1060
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 5 /* e */
        start local 5 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         8: .line 1061
            aload 5 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         9: .line 1063
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.Class languageClass
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // java.lang.Object result
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   10     1         result  Ljava/lang/Object;
            0   10     2       location  Lcom/oracle/truffle/api/nodes/Node;
            1   10     3            lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            2   10     4  languageClass  Ljava/lang/Class<*>;
            8    9     5              e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     7       7  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
          Name  Flags
      result    
      location  

  public java.lang.Object getLanguageViewNoCheck(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // java.lang.Object receiver
         0: .line 1067
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* receiver */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageView:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object result
         1: .line 1068
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            aload 2 /* result */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.validLanguageView:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1069
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Object result
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    3     1  receiver  Ljava/lang/Object;
            1    3     2    result  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  

  public java.lang.Object getScopedView(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
        start local 1 // com.oracle.truffle.api.nodes.Node location
        start local 2 // com.oracle.truffle.api.frame.Frame frame
        start local 3 // java.lang.Object value
         0: .line 1073
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            aload 1 /* location */
            aload 2 /* frame */
            invokestatic com.oracle.truffle.polyglot.PolyglotLanguageContext.validateLocationAndFrame:(Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)V
         1: .line 1074
            aload 0 /* this */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageView:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* languageView */
        start local 4 // java.lang.Object languageView
         2: .line 1075
            invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
            aload 1 /* location */
            aload 2 /* frame */
            aload 4 /* languageView */
            invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getView:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
         3: .line 1076
            getstatic com.oracle.truffle.polyglot.PolyglotLanguageContext.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            aload 5 /* result */
            aload 1 /* location */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.validScopedView:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1077
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 5 /* result */
            areturn
        end local 5 // java.lang.Object result
        end local 4 // java.lang.Object languageView
        end local 3 // java.lang.Object value
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.Node location
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    5     1      location  Lcom/oracle/truffle/api/nodes/Node;
            0    5     2         frame  Lcom/oracle/truffle/api/frame/Frame;
            0    5     3         value  Ljava/lang/Object;
            2    5     4  languageView  Ljava/lang/Object;
            3    5     5        result  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      location  
      frame     
      value     

  private static void validateLocationAndFrame(com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
        start local 1 // com.oracle.truffle.api.nodes.Node location
        start local 2 // com.oracle.truffle.api.frame.Frame frame
         0: .line 1081
            aload 1 /* location */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* rootNode */
        start local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 1082
            aload 3 /* rootNode */
            ifnonnull 3
         2: .line 1083
            ldc "The location '%s' does not have a RootNode."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* location */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         3: .line 1085
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 3 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 4 /* nodeLocation */
        start local 4 // com.oracle.truffle.api.nodes.LanguageInfo nodeLocation
         4: .line 1086
            aload 4 /* nodeLocation */
            ifnonnull 6
         5: .line 1087
            ldc "The location '%s' does not have a language associated."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* location */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         6: .line 1089
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 4 /* nodeLocation */
            aload 0 /* viewLanguage */
            if_acmpeq 8
         7: .line 1090
            ldc "The view language '%s' must match the language of the location %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* viewLanguage */
            aastore
            dup
            iconst_1
            aload 4 /* nodeLocation */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         8: .line 1092
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* location */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.isInstrumentable:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 10
         9: .line 1093
            ldc "The location '%s' is not instrumentable but must be to request scoped views."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* location */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        10: .line 1095
      StackMap locals:
      StackMap stack:
            aload 3 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 2 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 14
        11: .line 1096
            ldc "The frame provided does not originate from the location. Expected frame descriptor '%s' but was '%s'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 1097
            aload 3 /* rootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aastore
            dup
            iconst_1
            aload 2 /* frame */
            invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aastore
        13: .line 1096
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        14: .line 1099
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.nodes.LanguageInfo nodeLocation
        end local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.Node location
        end local 0 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0  viewLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0   15     1      location  Lcom/oracle/truffle/api/nodes/Node;
            0   15     2         frame  Lcom/oracle/truffle/api/frame/Frame;
            1   15     3      rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            4   15     4  nodeLocation  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
              Name  Flags
      viewLanguage  
      location      
      frame         
}
SourceFile: "PolyglotLanguageContext.java"
NestMembers:
  com.oracle.truffle.polyglot.PolyglotLanguageContext$1  com.oracle.truffle.polyglot.PolyglotLanguageContext$Generic  com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy  com.oracle.truffle.polyglot.PolyglotLanguageContext$PolyglotUncaughtExceptionHandler  com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode  com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValuesNode  com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode  com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  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
  ContextWeakReference = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference of com.oracle.truffle.polyglot.PolyglotContextImpl
  abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
  final ContextProfile = com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile of com.oracle.truffle.polyglot.PolyglotLanguage
  com.oracle.truffle.polyglot.PolyglotLanguageContext$1
  final Generic = com.oracle.truffle.polyglot.PolyglotLanguageContext$Generic of com.oracle.truffle.polyglot.PolyglotLanguageContext
  final Lazy = com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy of com.oracle.truffle.polyglot.PolyglotLanguageContext
  private PolyglotUncaughtExceptionHandler = com.oracle.truffle.polyglot.PolyglotLanguageContext$PolyglotUncaughtExceptionHandler of com.oracle.truffle.polyglot.PolyglotLanguageContext
  abstract ToGuestValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
  final ToGuestValuesNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValuesNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
  final ToHostValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
  final ValueMigrationException = com.oracle.truffle.polyglot.PolyglotLanguageContext$ValueMigrationException of com.oracle.truffle.polyglot.PolyglotLanguageContext
  abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
  public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl