final class com.oracle.truffle.polyglot.PolyglotContextImpl extends org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl 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.PolyglotContextImpl
  super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl
{
  private static final com.oracle.truffle.api.TruffleLogger LOG;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.truffle.api.interop.InteropLibrary UNCACHED;
    descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState singleContextState;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
    flags: (0x0008) ACC_STATIC
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  final com.oracle.truffle.api.Assumption singleThreaded;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0010) ACC_FINAL

  private final java.util.Map<java.lang.Thread, com.oracle.truffle.polyglot.PolyglotThreadInfo> threads;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;

  volatile com.oracle.truffle.polyglot.PolyglotThreadInfo currentThreadInfo;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0040) ACC_VOLATILE

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

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

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

  volatile java.lang.String invalidMessage;
    descriptor: Ljava/lang/String;
    flags: (0x0040) ACC_VOLATILE

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

  volatile java.lang.Thread closingThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0040) ACC_VOLATILE

  private final java.util.concurrent.locks.ReentrantLock closingLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  final com.oracle.truffle.polyglot.PolyglotLanguageContext[] contexts;
    descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0010) ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)

  final java.lang.Object[] contextImpls;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)

  org.graalvm.polyglot.Context creatorApi;
    descriptor: Lorg/graalvm/polyglot/Context;
    flags: (0x0000) 

  org.graalvm.polyglot.Context currentApi;
    descriptor: Lorg/graalvm/polyglot/Context;
    flags: (0x0000) 

  final com.oracle.truffle.api.TruffleContext creatorTruffleContext;
    descriptor: Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.TruffleContext currentTruffleContext;
    descriptor: Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0010) ACC_FINAL

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

  volatile java.util.Map<java.lang.String, org.graalvm.polyglot.Value> polyglotBindings;
    descriptor: Ljava/util/Map;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;

  volatile org.graalvm.polyglot.Value polyglotHostBindings;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0040) ACC_VOLATILE

  private final com.oracle.truffle.polyglot.PolyglotBindings polyglotBindingsObject;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotBindings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  final java.util.Map<java.lang.String, java.lang.Object> creatorArguments;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

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

  final java.util.Set<com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator> subProcesses;
    descriptor: Ljava/util/Set;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Set<Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;>;

  com.oracle.truffle.polyglot.PolyglotContextConfig config;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

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

  private final java.util.List<com.oracle.truffle.polyglot.PolyglotContextImpl> childContexts;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;

  boolean inContextPreInitialization;
    descriptor: Z
    flags: (0x0000) 

  java.util.List<com.oracle.truffle.api.source.Source> sourcesToInvalidate;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/source/Source;>;

  final java.util.concurrent.atomic.AtomicLong volatileStatementCounter;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0010) ACC_FINAL

  long statementCounter;
    descriptor: J
    flags: (0x0000) 

  final long statementLimit;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  java.lang.Object[] contextLocals;
    descriptor: [Ljava/lang/Object;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)

  private java.lang.Object[] singleThreadContextLocals;
    descriptor: [Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)

  private long currentThreadLocalSingleThreadID;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL contextThreadLocals;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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=3, locals=0, args_size=0
         0: .line 99
            ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            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.PolyglotContextImpl.$assertionsDisabled:Z
         3: .line 101
            ldc "engine"
            ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
            putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
         4: .line 102
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
         5: .line 134
            new com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
            dup
            aconst_null
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.lang.Object resetSingleContextState(boolean);
    descriptor: (Z)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // boolean reuse
         0: .line 141
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 1 /* prev */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState prev
         1: .line 142
            new com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
            dup
            iload 0 /* reuse */
            ifeq 2
            aload 1 /* prev */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            goto 3
      StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack: new 1 new 1
         2: aconst_null
      StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack: new 1 new 1 com.oracle.truffle.polyglot.PolyglotContextImpl
         3: invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
         4: .line 143
            aload 1 /* prev */
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState prev
        end local 0 // boolean reuse
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  reuse  Z
            1    5     1   prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
    MethodParameters:
       Name  Flags
      reuse  

  static com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState getSingleContextState();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 147
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void restoreSingleContextState(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object state
         0: .line 155
            aload 0 /* state */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
            putstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
         1: .line 156
            return
        end local 0 // java.lang.Object state
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  state  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      state  

  static boolean isSingleContextAssumptionValid();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 163
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 236
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
         1: .line 166
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single threaded"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
         2: .line 167
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
         3: .line 169
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         4: .line 170
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         5: .line 182
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 202
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotBindings
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
         7: .line 213
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
         8: .line 217
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
         9: .line 231
            aload 0 /* this */
            ldc -1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
        10: .line 232
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
        11: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
        12: .line 238
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
        13: .line 239
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
        14: .line 240
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        15: .line 241
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        16: .line 242
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
        17: .line 243
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
        18: .line 244
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
        19: .line 245
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
        20: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
        21: .line 247
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
        22: .line 248
            aload 0 /* this */
            lconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
        23: .line 249
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
        24: .line 250
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotContextConfig);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextConfig config
         0: .line 256
            aload 0 /* this */
            aload 1 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
         1: .line 166
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single threaded"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
         2: .line 167
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
         3: .line 169
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         4: .line 170
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         5: .line 182
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 202
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotBindings
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
         7: .line 213
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
         8: .line 217
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
         9: .line 231
            aload 0 /* this */
            ldc -1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
        10: .line 232
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
        11: .line 257
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
        12: .line 258
            aload 0 /* this */
            aload 1 /* engine */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
        13: .line 259
            aload 0 /* this */
            aload 2 /* config */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
        14: .line 260
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
        15: .line 261
            aload 0 /* this */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
        16: .line 262
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        17: .line 263
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        18: .line 264
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
        19: .line 265
            aload 0 /* this */
            aload 1 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            anewarray java.lang.Object
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
        20: .line 266
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createContextArray:()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
        21: .line 267
            aload 2 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 23
        22: .line 268
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            aload 2 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            aload 1 /* engine */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
        23: .line 270
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig
      StackMap stack:
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
        24: .line 271
            aload 0 /* this */
            aload 2 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            ifnull 25
            aload 2 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
            lconst_0
            lcmp
            ifeq 25
            aload 2 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            getfield com.oracle.truffle.polyglot.PolyglotLimits.statementLimit:J
            goto 26
      StackMap locals:
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl
        25: ldc 9223372036854775806
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl long
        26: putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
        27: .line 272
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
        28: .line 273
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
            invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
        29: .line 275
            aload 2 /* config */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getConfiguredInstruments:()Ljava/util/Collection;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
        30: .line 277
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyContextCreated:()V
        31: .line 278
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        32: .line 280
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   33     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   33     1  engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   33     2  config  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
    MethodParameters:
        Name  Flags
      engine  
      config  

  void <init>(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext creator
        start local 2 // java.util.Map langConfig
         0: .line 287
            aload 0 /* this */
            aload 1 /* creator */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
         1: .line 166
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single threaded"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
         2: .line 167
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
         3: .line 169
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         4: .line 170
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         5: .line 182
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 202
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotBindings
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
         7: .line 213
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
         8: .line 217
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
         9: .line 231
            aload 0 /* this */
            ldc -1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
        10: .line 232
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
        11: .line 288
            aload 1 /* creator */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* parent */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl parent
        12: .line 289
            aload 0 /* this */
            aload 3 /* parent */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
        13: .line 290
            aload 0 /* this */
            aload 3 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
        14: .line 291
            aload 0 /* this */
            aload 3 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
        15: .line 292
            aload 0 /* this */
            aload 1 /* creator */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creator:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
        16: .line 293
            aload 0 /* this */
            aload 2 /* langConfig */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorArguments:Ljava/util/Map;
        17: .line 294
            aload 0 /* this */
            lconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
        18: .line 295
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
        19: .line 296
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.addChildContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        20: .line 297
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        21: .line 298
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createTruffleContext:(Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
        22: .line 299
            aload 0 /* this */
            aload 3 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
        23: .line 300
            aload 3 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 25
        24: .line 301
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            aload 3 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
        25: .line 303
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.util.Map com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            anewarray java.lang.Object
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
        26: .line 304
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createContextArray:()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
        27: .line 305
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
        28: .line 307
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        29: .line 308
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        30: .line 309
            return
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl parent
        end local 2 // java.util.Map langConfig
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext creator
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   31     1     creator  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   31     2  langConfig  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           12   31     3      parent  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
            Name  Flags
      creator     
      langConfig  

  org.graalvm.options.OptionValues getInstrumentContextOptions(com.oracle.truffle.polyglot.PolyglotInstrument);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lorg/graalvm/options/OptionValues;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         0: .line 312
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getInstrumentOptionValues:(Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1  instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    MethodParameters:
            Name  Flags
      instrument  

  public void resetLimits();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 317
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotLimits.reset:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         1: .line 318
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextResetLimit:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
         2: .line 319
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  private com.oracle.truffle.polyglot.PolyglotLanguageContext[] createContextArray();
    descriptor: ()[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 322
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            astore 1 /* languages */
        start local 1 // java.util.Collection languages
         1: .line 323
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            anewarray com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 2 /* newContexts */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext[] newContexts
         2: .line 324
            aload 1 /* languages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* languageIterator */
        start local 3 // java.util.Iterator languageIterator
         3: .line 325
            new com.oracle.truffle.polyglot.PolyglotLanguageContext
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
            astore 4 /* hostContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext hostContext
         4: .line 326
            aload 2 /* newContexts */
            iconst_0
            aload 4 /* hostContext */
            aastore
         5: .line 327
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         6: goto 10
         7: .line 328
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Collection com.oracle.truffle.polyglot.PolyglotLanguageContext[] java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguageContext int
      StackMap stack:
            aload 3 /* languageIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 6 /* language */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguage language
         8: .line 329
            aload 2 /* newContexts */
            iload 5 /* i */
            new com.oracle.truffle.polyglot.PolyglotLanguageContext
            dup
            aload 0 /* this */
            aload 6 /* language */
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
            aastore
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguage language
         9: .line 327
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            if_icmplt 7
        end local 5 // int i
        11: .line 331
            aload 4 /* hostContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
        12: .line 332
            aload 4 /* hostContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getContextImpl:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.HostLanguage$HostContext
            aload 4 /* hostContext */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.initializeInternal:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
        13: .line 333
            aload 2 /* newContexts */
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext hostContext
        end local 3 // java.util.Iterator languageIterator
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext[] newContexts
        end local 1 // java.util.Collection languages
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   14     1         languages  Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            2   14     2       newContexts  [Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3   14     3  languageIterator  Ljava/util/Iterator<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            4   14     4       hostContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            6   11     5                 i  I
            8    9     6          language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;

  static void initializeStaticContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 340
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 1 /* state */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
         1: .line 341
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 13
         2: .line 342
            aload 1 /* state */
            dup
            astore 2
            monitorenter
         3: .line 343
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 9
         4: .line 344
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnull 8
         5: .line 345
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         6: .line 346
            aload 1 /* state */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
         7: .line 347
            goto 9
         8: .line 348
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack:
            aload 1 /* state */
            aload 0 /* context */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
         9: .line 342
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 353
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   14     1    state  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
      Exception table:
        from    to  target  type
           3    10      11  any
          11    12      11  any
    MethodParameters:
         Name  Flags
      context  

  static void disposeStaticContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 360
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 1 /* state */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
         1: .line 361
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 10
         2: .line 362
            aload 1 /* state */
            dup
            astore 2
            monitorenter
         3: .line 363
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 6
         4: .line 364
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 5
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 0 /* context */
            if_acmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 365
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack:
            aload 1 /* state */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
         6: .line 362
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 369
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   11     1    state  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
    MethodParameters:
         Name  Flags
      context  

  static void invalidateStaticContextAssumption();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 375
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 0 /* state */
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
         1: .line 376
            aload 0 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 10
         2: .line 377
            aload 0 /* state */
            dup
            astore 1
            monitorenter
         3: .line 378
            aload 0 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 6
         4: .line 379
            aload 0 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         5: .line 380
            aload 0 /* state */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
         6: .line 377
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack:
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 384
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1   11     0  state  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  com.oracle.truffle.polyglot.PolyglotLanguageContext getContext(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
         0: .line 387
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
            aaload
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
          Name  Flags
      language  

  java.lang.Object getContextImpl(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
         0: .line 391
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
            arraylength
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 393
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.inInterpreter:()Z
            ifeq 4
         2: .line 394
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
            aaload
            astore 2 /* contextImpl */
        start local 2 // java.lang.Object contextImpl
         3: .line 395
            goto 10
        end local 2 // java.lang.Object contextImpl
         4: .line 396
      StackMap locals:
      StackMap stack:
            aload 1 /* language */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         5: .line 398
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.castArrayFixedLength:([Ljava/lang/Object;I)[Ljava/lang/Object;
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
            aaload
            astore 2 /* contextImpl */
        start local 2 // java.lang.Object contextImpl
         6: .line 399
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
            astore 3 /* castClass */
        start local 3 // java.lang.Class castClass
         7: .line 400
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 2 /* contextImpl */
            aload 3 /* castClass */
            iconst_1
            aload 3 /* castClass */
            ldc Ljava/lang/Void;
            if_acmpeq 8
            iconst_1
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object java.lang.Class
      StackMap stack: com.oracle.truffle.api.impl.Accessor$RuntimeSupport java.lang.Object java.lang.Class int
         8: iconst_0
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object java.lang.Class
      StackMap stack: com.oracle.truffle.api.impl.Accessor$RuntimeSupport java.lang.Object java.lang.Class int int
         9: iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
            astore 2 /* contextImpl */
        end local 3 // java.lang.Class castClass
        10: .line 402
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 17
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
            aload 2 /* contextImpl */
            ifnonnull 11
            ldc Ljava/lang/Void;
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Class
        11: aload 2 /* contextImpl */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
      StackMap stack: java.lang.Class java.lang.Class
        12: if_acmpeq 17
        13: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Instable context class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.contextClass:Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " vs. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 403
            aload 2 /* contextImpl */
            ifnonnull 15
            ldc Ljava/lang/Void;
            goto 16
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
      StackMap stack: new 13 new 13 java.lang.StringBuilder
        15: aload 2 /* contextImpl */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLanguage java.lang.Object
      StackMap stack: new 13 new 13 java.lang.StringBuilder java.lang.Class
        16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 404
      StackMap locals:
      StackMap stack:
            aload 2 /* contextImpl */
            areturn
        end local 2 // java.lang.Object contextImpl
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   18     1     language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            3    4     2  contextImpl  Ljava/lang/Object;
            6   18     2  contextImpl  Ljava/lang/Object;
            7   10     3    castClass  Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      language  

  com.oracle.truffle.polyglot.PolyglotLanguageContext getContextInitialized(com.oracle.truffle.polyglot.PolyglotLanguage, com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
         0: .line 408
            aload 0 /* this */
            aload 1 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 409
            aload 3 /* context */
            aload 2 /* accessingLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
         2: .line 410
            aload 3 /* context */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage accessingLanguage
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    3     1           language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            0    3     2  accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            1    3     3            context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                   Name  Flags
      language           
      accessingLanguage  

  void notifyContextCreated();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 414
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
         1: .line 415
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  private synchronized void addChildContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl child
         0: .line 418
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            ifnull 2
         1: .line 419
            ldc "Adding child context into a closing context."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         2: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 1 /* child */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 422
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl child
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    4     1  child  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
       Name  Flags
      child  

  static com.oracle.truffle.polyglot.PolyglotContextImpl currentNotEntered();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 425
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 0 /* singleContext */
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState singleContext
         1: .line 426
            aload 0 /* singleContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 6
         2: .line 427
            aload 0 /* singleContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.isSet:()Z
            ifeq 4
         3: .line 428
            aload 0 /* singleContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            areturn
         4: .line 430
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 431
            aconst_null
            areturn
         6: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* singleContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState singleContext
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1    7     0  singleContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;

  static com.oracle.truffle.polyglot.PolyglotContextImpl currentEntered(com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl enteredInEngine
         0: .line 439
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* enteredInEngine */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* enteredInEngine */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         2: .line 441
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            astore 1 /* state */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
         3: .line 443
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContextAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 6
         4: .line 444
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.singleContext:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* context */
        start local 2 // java.lang.Object context
         5: .line 445
            goto 7
        end local 2 // java.lang.Object context
         6: .line 446
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
      StackMap stack:
            aload 1 /* state */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.getEntered:()Ljava/lang/Object;
            astore 2 /* context */
        start local 2 // java.lang.Object context
         7: .line 448
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.inCompiledCode:()Z
            ifeq 9
         8: .line 449
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 2 /* context */
            ldc Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            iconst_1
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            areturn
         9: .line 451
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            areturn
        end local 2 // java.lang.Object context
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState state
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl enteredInEngine
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0  enteredInEngine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            3   10     1            state  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            5    6     2          context  Ljava/lang/Object;
            7   10     2          context  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      enteredInEngine  

  static com.oracle.truffle.polyglot.PolyglotContextImpl requireContext();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 461
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 0 /* context */
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 462
            aload 0 /* context */
            ifnonnull 4
         2: .line 463
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 464
            ldc "There is no current context available."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 466
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* context */
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    5     0  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  public synchronized void explicitEnter(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context sourceContext
         0: .line 472
            aload 0 /* this */
            aload 1 /* sourceContext */
            ldc "entered"
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
         1: .line 473
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* prev */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
         2: .line 474
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 3 /* current */
        start local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo current
         3: .line 475
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 4
            aload 3 /* current */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 476
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 3 /* current */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            aload 2 /* prev */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
        end local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo current
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
         5: .line 477
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         6: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         7: .line 478
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 2 // java.lang.Throwable t
         8: .line 480
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.Context sourceContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    9     1  sourceContext  Lorg/graalvm/polyglot/Context;
            2    5     2           prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3    5     3        current  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            7    8     2              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      sourceContext  

  public synchronized void explicitLeave(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context sourceContext
         0: .line 484
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 2
         1: .line 487
      StackMap locals:
      StackMap stack:
            return
         2: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sourceContext */
            ldc "left"
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
         3: .line 491
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 2 /* current */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo current
         4: .line 492
            aload 2 /* current */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            astore 3 /* stack */
        start local 3 // java.util.LinkedList stack
         5: .line 493
            aload 3 /* stack */
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 6
            aload 2 /* current */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            ifnonnull 7
         6: .line 494
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.LinkedList
      StackMap stack:
            ldc "The context is not entered explicity. A context can only be left if it was previously entered."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         7: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 3 /* stack */
            invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 3 // java.util.LinkedList stack
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo current
         8: .line 497
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         9: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        10: .line 498
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 2 // java.lang.Throwable t
        11: .line 500
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.Context sourceContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   12     1  sourceContext  Lorg/graalvm/polyglot/Context;
            4    8     2        current  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            5    8     3          stack  Ljava/util/LinkedList<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           10   11     2              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     8       9  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      sourceContext  

  private void checkCreatorAccess(org.graalvm.polyglot.Context, java.lang.String);
    descriptor: (Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context context
        start local 2 // java.lang.String operation
         0: .line 503
            aload 1 /* context */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
            if_acmpeq 2
         1: .line 504
            ldc "Context instances that were received using Context.get() cannot be %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* operation */
            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
         2: .line 506
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String operation
        end local 1 // org.graalvm.polyglot.Context context
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    3     1    context  Lorg/graalvm/polyglot/Context;
            0    3     2  operation  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      context    
      operation  

  com.oracle.truffle.polyglot.PolyglotContextImpl enterThreadChanged();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 510
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* current */
        start local 1 // java.lang.Thread current
         1: .line 512
            iconst_0
            istore 3 /* needsInitialization */
        start local 3 // boolean needsInitialization
         2: .line 513
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 514
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 5 /* threadInfo */
        start local 5 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         4: .line 515
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
         5: .line 516
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 6
            aload 5 /* threadInfo */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 518
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 1 /* current */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 5 /* threadInfo */
         7: .line 519
            aload 5 /* threadInfo */
            ifnonnull 12
         8: .line 520
            aload 0 /* this */
            aload 1 /* current */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createThreadInfo:(Ljava/lang/Thread;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 5 /* threadInfo */
         9: .line 521
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 3 /* needsInitialization */
        12: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 13
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* transitionToMultiThreading */
        start local 6 // boolean transitionToMultiThreading
        15: .line 524
            iload 6 /* transitionToMultiThreading */
            ifeq 17
        16: .line 526
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkAllThreadAccesses:(Ljava/lang/Thread;Z)V
        17: .line 529
      StackMap locals: int
      StackMap stack:
            iload 6 /* transitionToMultiThreading */
            ifeq 19
        18: .line 534
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        19: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            astore 7 /* closing */
        start local 7 // java.lang.Thread closing
        20: .line 538
            iload 3 /* needsInitialization */
            ifeq 24
        21: .line 539
            aload 7 /* closing */
            ifnull 23
            aload 7 /* closing */
            aload 1 /* current */
            if_acmpeq 23
        22: .line 540
            ldc "Can not create new threads in closing context."
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;Z)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        23: .line 542
      StackMap locals: java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 1 /* current */
            aload 5 /* threadInfo */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 545
      StackMap locals:
      StackMap stack:
            iload 3 /* needsInitialization */
            ifeq 26
        25: .line 550
            aload 0 /* this */
            aload 5 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        26: .line 554
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.contextThreadLocal:Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.setReturnParent:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* prev */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        27: .line 556
            aload 5 /* threadInfo */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.enter:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        28: .line 557
            goto 32
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo int java.lang.Thread
      StackMap stack: java.lang.Throwable
        29: astore 8 /* t */
        start local 8 // java.lang.Throwable t
        30: .line 558
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            aload 2 /* prev */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
        31: .line 559
            aload 8 /* t */
            athrow
        end local 8 // java.lang.Throwable t
        32: .line 562
      StackMap locals:
      StackMap stack:
            iload 6 /* transitionToMultiThreading */
            ifeq 34
        33: .line 565
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.transitionToMultiThreaded:()V
        34: .line 568
      StackMap locals:
      StackMap stack:
            iload 3 /* needsInitialization */
            ifeq 36
        35: .line 569
            aload 0 /* this */
            aload 1 /* current */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeNewThread:(Ljava/lang/Thread;)V
        36: .line 573
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        end local 7 // java.lang.Thread closing
        end local 6 // boolean transitionToMultiThreading
        end local 5 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        37: .line 513
            aload 4
            monitorexit
        38: goto 41
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        39: aload 4
            monitorexit
        40: athrow
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        41: .line 576
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotContextImpl int
      StackMap stack:
            iload 3 /* needsInitialization */
            ifeq 43
        42: .line 577
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 1 /* current */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadStarted:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
        43: .line 579
      StackMap locals:
      StackMap stack:
            aload 2 /* prev */
            areturn
        end local 3 // boolean needsInitialization
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        end local 1 // java.lang.Thread current
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   44     0                        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   44     1                     current  Ljava/lang/Thread;
           27   39     2                        prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           41   44     2                        prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2   44     3         needsInitialization  Z
            4   37     5                  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           15   37     6  transitionToMultiThreading  Z
           20   37     7                     closing  Ljava/lang/Thread;
           30   32     8                           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          27    28      29  Class java.lang.Throwable
           3    38      39  any
          39    40      39  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  void setCachedThreadInfo(com.oracle.truffle.polyglot.PolyglotThreadInfo);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         0: .line 583
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            ifnonnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifeq 4
         2: .line 586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         3: .line 587
            goto 7
         4: .line 588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* info */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         5: .line 589
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 7
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 7
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 7
         6: .line 590
            aload 0 /* this */
            aload 1 /* info */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
         7: .line 593
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    8     1  info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
      Name  Flags
      info  

  synchronized void checkMultiThreadedAccess(com.oracle.truffle.polyglot.PolyglotThread);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThread;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotThread newThread
         0: .line 596
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActiveNotCancelled:()Z
            ifeq 1
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         1: iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* singleThread */
        start local 2 // boolean singleThread
         4: .line 597
            aload 0 /* this */
            aload 1 /* newThread */
            iload 2 /* singleThread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkAllThreadAccesses:(Ljava/lang/Thread;Z)V
         5: .line 598
            return
        end local 2 // boolean singleThread
        end local 1 // com.oracle.truffle.polyglot.PolyglotThread newThread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    6     1     newThread  Lcom/oracle/truffle/polyglot/PolyglotThread;
            4    6     2  singleThread  Z
    MethodParameters:
           Name  Flags
      newThread  

  private void checkAllThreadAccesses(java.lang.Thread, boolean);
    descriptor: (Ljava/lang/Thread;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread enteringThread
        start local 2 // boolean singleThread
         0: .line 601
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 602
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* deniedLanguages */
        start local 3 // java.util.List deniedLanguages
         2: .line 603
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 21
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         4: .line 604
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 6
         5: .line 605
            goto 20
         6: .line 607
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            iconst_1
            istore 8 /* accessAllowed */
        start local 8 // boolean accessAllowed
         7: .line 608
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* enteringThread */
            iload 2 /* singleThread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
            ifne 9
         8: .line 609
            iconst_0
            istore 8 /* accessAllowed */
         9: .line 611
      StackMap locals: int
      StackMap stack:
            iload 8 /* accessAllowed */
            ifeq 16
        10: .line 612
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 15
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[] int top java.util.Iterator
      StackMap stack:
        11: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 9 /* seenThread */
        start local 9 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenThread
        12: .line 613
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 9 /* seenThread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            iload 2 /* singleThread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
            ifne 15
        13: .line 614
            iconst_0
            istore 8 /* accessAllowed */
        14: .line 615
            goto 16
        end local 9 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenThread
        15: .line 612
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 619
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[] int
      StackMap stack:
            iload 8 /* accessAllowed */
            ifne 20
        17: .line 620
            aload 3 /* deniedLanguages */
            ifnonnull 19
        18: .line 621
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* deniedLanguages */
        19: .line 623
      StackMap locals:
      StackMap stack:
            aload 3 /* deniedLanguages */
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // boolean accessAllowed
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        20: .line 603
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        21: iload 5
            iload 6
            if_icmplt 3
        22: .line 626
            aload 3 /* deniedLanguages */
            ifnull 24
        23: .line 627
            aload 1 /* enteringThread */
            iload 2 /* singleThread */
            aload 3 /* deniedLanguages */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
            athrow
        24: .line 629
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread int java.util.List
      StackMap stack:
            return
        end local 3 // java.util.List deniedLanguages
        end local 2 // boolean singleThread
        end local 1 // java.lang.Thread enteringThread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   25     1   enteringThread  Ljava/lang/Thread;
            0   25     2     singleThread  Z
            2   25     3  deniedLanguages  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            4   20     4          context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            7   20     8    accessAllowed  Z
           12   15     9       seenThread  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
                Name  Flags
      enteringThread  
      singleThread    

  com.oracle.truffle.polyglot.PolyglotThreadInfo leaveThreadChanged();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 634
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 635
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 3 /* current */
        start local 3 // java.lang.Thread current
         2: .line 636
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
         3: .line 638
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 3 /* current */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 4 /* threadInfo */
        start local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         4: .line 639
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 5
            aload 4 /* threadInfo */
            ifnonnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 640
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 4 /* threadInfo */
            astore 1 /* info */
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         6: .line 641
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
            ifeq 8
            aload 1 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isLastActive:()Z
            ifeq 8
         7: .line 642
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyThreadClosed:()V
         8: .line 644
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 1 /* info */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.leave:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         9: .line 645
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 11
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
            ifne 11
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifne 11
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifne 11
        10: .line 646
            aload 0 /* this */
            aload 4 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        11: .line 648
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifeq 14
            aload 1 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
            ifne 14
        12: .line 649
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        13: .line 650
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        end local 4 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        end local 3 // java.lang.Thread current
        14: .line 634
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        15: goto 18
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        16: aload 2
            monitorexit
        17: athrow
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        18: .line 653
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 1 /* info */
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            6   16     1        info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           18   19     1        info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            2   14     3     current  Ljava/lang/Thread;
            4   14     4  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
      Exception table:
        from    to  target  type
           1    15      16  any
          16    17      16  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  private void initializeNewThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread thread
         0: .line 657
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         2: .line 658
            aload 2 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 4
         3: .line 659
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.initializeThread:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;)V
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         4: .line 657
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 662
            return
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    7     1   thread  Ljava/lang/Thread;
            2    4     2  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
        Name  Flags
      thread  

  long getStatementsExecuted();
    descriptor: ()J
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 666
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 3
         1: .line 667
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
            lstore 1 /* count */
        start local 1 // long count
         2: .line 668
            goto 4
        end local 1 // long count
         3: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 1 /* count */
        start local 1 // long count
         4: .line 671
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
            lload 1 /* count */
            lsub
            lreturn
        end local 1 // long count
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    3     1  count  J
            4    5     1  count  J

  private void transitionToMultiThreaded();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 675
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 676
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 7
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         3: aload 4
            iload 2
            aaload
            astore 1 /* context */
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         4: .line 679
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 6
         5: .line 680
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* context */
            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
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         6: .line 678
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         7: iload 2
            iload 3
            if_icmplt 3
         8: .line 683
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         9: .line 685
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementLimit:J
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.statementCounter:J
            lsub
            lstore 1 /* statementsExecuted */
        start local 1 // long statementsExecuted
        10: .line 686
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.volatileStatementCounter:Ljava/util/concurrent/atomic/AtomicLong;
            lload 1 /* statementsExecuted */
            lneg
            invokevirtual java.util.concurrent.atomic.AtomicLong.getAndAdd:(J)J
            pop2
        11: .line 687
            return
        end local 1 // long statementsExecuted
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    6     1             context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           10   12     1  statementsExecuted  J

  private com.oracle.truffle.polyglot.PolyglotThreadInfo createThreadInfo(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread current
         0: .line 690
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 691
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotThreadInfo
            dup
            aload 0 /* this */
            aload 1 /* current */
            invokespecial com.oracle.truffle.polyglot.PolyglotThreadInfo.<init>:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)V
            astore 2 /* threadInfo */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         2: .line 693
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isSingleThreaded:()Z
            istore 3 /* singleThread */
        start local 3 // boolean singleThread
         3: .line 694
            aconst_null
            astore 4 /* deniedLanguages */
        start local 4 // java.util.List deniedLanguages
         4: .line 695
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 12
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         5: aload 8
            iload 6
            aaload
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         6: .line 696
            aload 5 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 11
         7: .line 697
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* current */
            iload 3 /* singleThread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isThreadAccessAllowed:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Thread;Z)Z
            ifne 11
         8: .line 698
            aload 4 /* deniedLanguages */
            ifnonnull 10
         9: .line 699
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* deniedLanguages */
        10: .line 701
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            aload 4 /* deniedLanguages */
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        11: .line 695
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        12: iload 6
            iload 7
            if_icmplt 5
        13: .line 706
            aload 4 /* deniedLanguages */
            ifnull 15
        14: .line 707
            aload 1 /* current */
            iload 3 /* singleThread */
            aload 4 /* deniedLanguages */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.throwDeniedThreadAccess:(Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
            athrow
        15: .line 710
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Thread com.oracle.truffle.polyglot.PolyglotThreadInfo int java.util.List
      StackMap stack:
            aload 2 /* threadInfo */
            areturn
        end local 4 // java.util.List deniedLanguages
        end local 3 // boolean singleThread
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        end local 1 // java.lang.Thread current
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   16     1          current  Ljava/lang/Thread;
            2   16     2       threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            3   16     3     singleThread  Z
            4   16     4  deniedLanguages  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            6   11     5          context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
         Name  Flags
      current  

  static java.lang.RuntimeException throwDeniedThreadAccess(java.lang.Thread, boolean, java.util.List<com.oracle.truffle.polyglot.PolyglotLanguage>);
    descriptor: (Ljava/lang/Thread;ZLjava/util/List;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.lang.Thread current
        start local 1 // boolean accessSingleThreaded
        start local 2 // java.util.List deniedLanguages
         0: .line 715
            new java.lang.StringBuilder
            dup
            ldc ""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* languagesString */
        start local 4 // java.lang.StringBuilder languagesString
         1: .line 716
            aload 2 /* deniedLanguages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 5 /* language */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguage language
         3: .line 717
            aload 4 /* languagesString */
            invokevirtual java.lang.StringBuilder.length:()I
            ifeq 5
         4: .line 718
            aload 4 /* languagesString */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 720
      StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder com.oracle.truffle.polyglot.PolyglotLanguage java.util.Iterator
      StackMap stack:
            aload 4 /* languagesString */
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguage language
         6: .line 716
      StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 722
            iload 1 /* accessSingleThreaded */
            ifeq 10
         8: .line 723
            ldc "Single threaded access requested by thread %s but is not allowed for language(s) %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* current */
            aastore
            dup
            iconst_1
            aload 4 /* languagesString */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         9: .line 724
            goto 11
        end local 3 // java.lang.String message
        10: .line 725
      StackMap locals: java.lang.Thread int java.util.List top java.lang.StringBuilder
      StackMap stack:
            ldc "Multi threaded access requested by thread %s but is not allowed for language(s) %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* current */
            aastore
            dup
            iconst_1
            aload 4 /* languagesString */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
        11: .line 727
      StackMap locals: java.lang.Thread int java.util.List java.lang.String java.lang.StringBuilder
      StackMap stack:
            aload 3 /* message */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        end local 4 // java.lang.StringBuilder languagesString
        end local 3 // java.lang.String message
        end local 2 // java.util.List deniedLanguages
        end local 1 // boolean accessSingleThreaded
        end local 0 // java.lang.Thread current
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0               current  Ljava/lang/Thread;
            0   12     1  accessSingleThreaded  Z
            0   12     2       deniedLanguages  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            9   10     3               message  Ljava/lang/String;
           11   12     3               message  Ljava/lang/String;
            1   12     4       languagesString  Ljava/lang/StringBuilder;
            3    6     5              language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    Signature: (Ljava/lang/Thread;ZLjava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;)Ljava/lang/RuntimeException;
    MethodParameters:
                      Name  Flags
      current               
      accessSingleThreaded  
      deniedLanguages       

  org.graalvm.polyglot.Value findLegacyExportedSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String symbolName
         0: .line 731
            aload 0 /* this */
            aload 1 /* symbolName */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLegacyExportedSymbol:(Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
            astore 2 /* legacySymbol */
        start local 2 // org.graalvm.polyglot.Value legacySymbol
         1: .line 732
            aload 2 /* legacySymbol */
            ifnull 3
         2: .line 733
            aload 2 /* legacySymbol */
            areturn
         3: .line 735
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 0 /* this */
            aload 1 /* symbolName */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLegacyExportedSymbol:(Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
            areturn
        end local 2 // org.graalvm.polyglot.Value legacySymbol
        end local 1 // java.lang.String symbolName
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    4     1    symbolName  Ljava/lang/String;
            1    4     2  legacySymbol  Lorg/graalvm/polyglot/Value;
    MethodParameters:
            Name  Flags
      symbolName  

  private org.graalvm.polyglot.Value findLegacyExportedSymbol(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/graalvm/polyglot/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String name
        start local 2 // boolean onlyExplicit
         0: .line 739
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String int top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 740
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 6
         3: .line 741
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 3 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* name */
            iload 2 /* onlyExplicit */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.findExportedSymbol:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;Z)Ljava/lang/Object;
            astore 7 /* s */
        start local 7 // java.lang.Object s
         4: .line 742
            aload 7 /* s */
            ifnull 6
         5: .line 743
            aload 3 /* languageContext */
            aload 7 /* s */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 7 // java.lang.Object s
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         6: .line 739
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 1
         8: .line 747
            aconst_null
            areturn
        end local 2 // boolean onlyExplicit
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    9     1             name  Ljava/lang/String;
            0    9     2     onlyExplicit  Z
            2    6     3  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4    6     7                s  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      name          
      onlyExplicit  

  public org.graalvm.polyglot.Value getBindings(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String languageId
         0: .line 752
            aload 0 /* this */
            aload 1 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 2 /* language */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 753
            aload 0 /* this */
            aload 2 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 754
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 3
            aload 3 /* languageContext */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 755
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 3 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            astore 4 /* prev */
        start local 4 // java.lang.Object prev
         4: .line 757
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 6
         5: .line 758
            aload 3 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
         6: .line 760
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getHostBindings:()Lorg/graalvm/polyglot/Value;
            astore 7
         7: .line 764
            aload 3 /* languageContext */
            aload 4 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
         8: .line 760
            aload 7
            areturn
         9: .line 761
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
        10: .line 762
            aload 3 /* languageContext */
            aload 5 /* e */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 5 // java.lang.Throwable e
        11: .line 763
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        12: .line 764
            aload 3 /* languageContext */
            aload 4 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        13: .line 765
            aload 6
            athrow
        end local 4 // java.lang.Object prev
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   14     1       languageId  Ljava/lang/String;
            1   14     2         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   14     3  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4   14     4             prev  Ljava/lang/Object;
           10   11     5                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     7       9  Class java.lang.Throwable
           4     7      11  any
           9    11      11  any
    MethodParameters:
            Name  Flags
      languageId  

  public org.graalvm.polyglot.Value getPolyglotBindings();
    descriptor: ()Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 771
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
         1: .line 772
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
            astore 1 /* bindings */
        start local 1 // org.graalvm.polyglot.Value bindings
         2: .line 773
            aload 1 /* bindings */
            ifnonnull 5
         3: .line 774
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initPolyglotBindings:()V
         4: .line 775
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
            astore 1 /* bindings */
         5: .line 777
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 1 /* bindings */
         6: areturn
        end local 1 // org.graalvm.polyglot.Value bindings
         7: .line 778
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            astore 1 /* e */
        start local 1 // java.lang.Throwable e
         8: .line 779
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* e */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    7     1  bindings  Lorg/graalvm/polyglot/Value;
            8    9     1         e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Throwable

  public java.util.Map<java.lang.String, org.graalvm.polyglot.Value> getPolyglotGuestBindings();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 784
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
            astore 1 /* bindings */
        start local 1 // java.util.Map bindings
         1: .line 785
            aload 1 /* bindings */
            ifnonnull 4
         2: .line 786
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initPolyglotBindings:()V
         3: .line 787
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
            astore 1 /* bindings */
         4: .line 789
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* bindings */
            areturn
        end local 1 // java.util.Map bindings
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1    5     1  bindings  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Value;>;

  private void initPolyglotBindings();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 793
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 794
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
            ifnonnull 5
         2: .line 795
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
         3: .line 796
            new com.oracle.truffle.polyglot.PolyglotBindings
            dup
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokespecial com.oracle.truffle.polyglot.PolyglotBindings.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
            astore 2 /* bindings */
        start local 2 // com.oracle.truffle.polyglot.PolyglotBindings bindings
         4: .line 797
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* bindings */
            new com.oracle.truffle.polyglot.PolyglotBindingsValue
            dup
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 2 /* bindings */
            invokespecial com.oracle.truffle.polyglot.PolyglotBindingsValue.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotBindings;)V
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotHostBindings:Lorg/graalvm/polyglot/Value;
        end local 2 // com.oracle.truffle.polyglot.PolyglotBindings bindings
         5: .line 793
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 800
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    5     2  bindings  Lcom/oracle/truffle/polyglot/PolyglotBindings;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any

  public java.lang.Object getPolyglotBindingsObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 803
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindingsObject:Lcom/oracle/truffle/polyglot/PolyglotBindings;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  void checkClosed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 807
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 2
         1: .line 809
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createCancelException:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelExecution;
            athrow
         2: .line 811
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifeq 4
         3: .line 812
            ldc "The Context is already closed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 814
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  com.oracle.truffle.polyglot.PolyglotLanguageContext getHostContext();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 817
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            iconst_0
            aaload
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  com.oracle.truffle.polyglot.HostLanguage$HostContext getHostContextImpl();
    descriptor: ()Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 821
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getContextImpl:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.HostLanguage$HostContext
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  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.PolyglotContextImpl this
         0: .line 826
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContext(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 833
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 834
            aload 0 /* this */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextImpl:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            areturn
         2: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextBoundary:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            areturn
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    3     1  languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
               Name  Flags
      languageClass  

  private com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContextBoundary(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 842
            aload 0 /* this */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContextImpl:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            areturn
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1  languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      languageClass  

  com.oracle.truffle.polyglot.PolyglotLanguageContext findLanguageContext(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Class languageClazz
         0: .line 847
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* languageClazz */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 2 /* directLanguage */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage directLanguage
         1: .line 848
            aload 2 /* directLanguage */
            ifnull 3
         2: .line 849
            aload 0 /* this */
            aload 2 /* directLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            areturn
         3: .line 853
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Class com.oracle.truffle.polyglot.PolyglotLanguage top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* lang */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext lang
         5: .line 854
            aload 3 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 9
         6: .line 855
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 3 /* lang */
            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;
            astore 7 /* language */
        start local 7 // com.oracle.truffle.api.TruffleLanguage language
         7: .line 856
            aload 1 /* languageClazz */
            ldc Lcom/oracle/truffle/api/TruffleLanguage;
            if_acmpeq 9
            aload 1 /* languageClazz */
            aload 7 /* language */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 857
            aload 3 /* lang */
            areturn
        end local 7 // com.oracle.truffle.api.TruffleLanguage language
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext lang
         9: .line 853
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 4
        11: .line 861
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* languageNames */
        start local 3 // java.util.Set languageNames
        12: .line 862
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Class com.oracle.truffle.polyglot.PolyglotLanguage java.util.Set top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
        13: aload 7
            iload 5
            aaload
            astore 4 /* lang */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext lang
        14: .line 863
            aload 4 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 16
        15: .line 864
            aload 3 /* languageNames */
            aload 4 /* lang */
            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.getClassName:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext lang
        16: .line 862
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        17: iload 5
            iload 6
            if_icmplt 13
        18: .line 867
            new java.lang.StringBuilder
            dup
            ldc "Cannot find language "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* languageClazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " among "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* languageNames */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        end local 3 // java.util.Set languageNames
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage directLanguage
        end local 1 // java.lang.Class languageClazz
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   19     1   languageClazz  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage;>;
            1   19     2  directLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            5    9     3            lang  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            7    9     7        language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
           12   19     3   languageNames  Ljava/util/Set<Ljava/lang/String;>;
           14   16     4            lang  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
               Name  Flags
      languageClazz  

  private com.oracle.truffle.polyglot.PolyglotLanguageContext getLanguageContextImpl(java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 872
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
            astore 2 /* map */
        start local 2 // com.oracle.truffle.polyglot.FinalIntMap map
         1: .line 873
            aload 2 /* map */
            ifnull 2
            aload 2 /* map */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.FinalIntMap.get:(Ljava/lang/Object;)I
            goto 3
      StackMap locals: com.oracle.truffle.polyglot.FinalIntMap
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* indexValue */
        start local 3 // int indexValue
         4: .line 874
            iload 3 /* indexValue */
            iconst_m1
            if_icmpne 18
         5: .line 875
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         6: .line 876
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         7: .line 877
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
            ifnonnull 9
         8: .line 878
            aload 0 /* this */
            new com.oracle.truffle.polyglot.FinalIntMap
            dup
            invokespecial com.oracle.truffle.polyglot.FinalIntMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
         9: .line 880
      StackMap locals: int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.FinalIntMap.get:(Ljava/lang/Object;)I
            istore 3 /* indexValue */
        10: .line 881
            iload 3 /* indexValue */
            iconst_m1
            if_icmpne 14
        11: .line 882
            aload 0 /* this */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLanguageContext:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        12: .line 883
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.index:I
            istore 3 /* indexValue */
        13: .line 884
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.languageIndexMap:Lcom/oracle/truffle/polyglot/FinalIntMap;
            aload 1 /* languageClass */
            iload 3 /* indexValue */
            invokevirtual com.oracle.truffle.polyglot.FinalIntMap.put:(Ljava/lang/Object;I)V
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        14: .line 876
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 4
            monitorexit
        17: athrow
        18: .line 888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            iload 3 /* indexValue */
            aaload
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        19: .line 889
            aload 4 /* context */
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 3 // int indexValue
        end local 2 // com.oracle.truffle.polyglot.FinalIntMap map
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   20     1  languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
            1   20     2            map  Lcom/oracle/truffle/polyglot/FinalIntMap;
            4   20     3     indexValue  I
           12   14     5        context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           19   20     4        context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
      Exception table:
        from    to  target  type
           7    15      16  any
          16    17      16  any
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
               Name  Flags
      languageClass  

  public boolean initializeLanguage(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String languageId
         0: .line 894
            aload 0 /* this */
            aload 1 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 2 /* language */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 895
            aload 0 /* this */
            aload 2 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 896
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 3
            aload 3 /* languageContext */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 897
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 3 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            astore 4 /* prev */
        start local 4 // java.lang.Object prev
         4: .line 899
            aload 3 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         5: .line 900
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 14
         6: .line 901
            aload 3 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            istore 7
         7: .line 906
            aload 3 /* languageContext */
            aload 4 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
         8: .line 901
            iload 7
            ireturn
         9: .line 903
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        10: .line 904
            aload 3 /* languageContext */
            aload 5 /* t */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 5 // java.lang.Throwable t
        11: .line 905
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        12: .line 906
            aload 3 /* languageContext */
            aload 4 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        13: .line 907
            aload 6
            athrow
        14: .line 906
      StackMap locals:
      StackMap stack:
            aload 3 /* languageContext */
            aload 4 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        15: .line 908
            iconst_0
            ireturn
        end local 4 // java.lang.Object prev
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   16     1       languageId  Ljava/lang/String;
            1   16     2         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   16     3  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4   16     4             prev  Ljava/lang/Object;
           10   11     5                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     7       9  Class java.lang.Throwable
           4     7      11  any
           9    11      11  any
    MethodParameters:
            Name  Flags
      languageId  

  public org.graalvm.polyglot.Value parse(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String languageId
        start local 2 // java.lang.Object sourceImpl
         0: .line 913
            aload 0 /* this */
            aload 1 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 914
            aload 0 /* this */
            aload 3 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* languageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 915
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 3
            aload 4 /* languageContext */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 916
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 4 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            astore 5 /* prev */
        start local 5 // java.lang.Object prev
         4: .line 918
            aload 2 /* sourceImpl */
            checkcast com.oracle.truffle.api.source.Source
            astore 6 /* source */
        start local 6 // com.oracle.truffle.api.source.Source source
         5: .line 919
            aload 4 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         6: .line 920
            aload 4 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
         7: .line 921
            aload 4 /* languageContext */
            aconst_null
            aload 6 /* source */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.api.CallTarget target
         8: .line 922
            aload 4 /* languageContext */
            new com.oracle.truffle.polyglot.PolyglotParsedEval
            dup
            aload 4 /* languageContext */
            aload 6 /* source */
            aload 7 /* target */
            invokespecial com.oracle.truffle.polyglot.PolyglotParsedEval.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/CallTarget;)V
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 9
         9: .line 926
            aload 4 /* languageContext */
            aload 5 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        10: .line 922
            aload 9
            areturn
        end local 7 // com.oracle.truffle.api.CallTarget target
        end local 6 // com.oracle.truffle.api.source.Source source
        11: .line 923
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        12: .line 924
            aload 4 /* languageContext */
            aload 6 /* e */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 6 // java.lang.Throwable e
        13: .line 925
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        14: .line 926
            aload 4 /* languageContext */
            aload 5 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        15: .line 927
            aload 8
            athrow
        end local 5 // java.lang.Object prev
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // java.lang.Object sourceImpl
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   16     1       languageId  Ljava/lang/String;
            0   16     2       sourceImpl  Ljava/lang/Object;
            1   16     3         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   16     4  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4   16     5             prev  Ljava/lang/Object;
            5   11     6           source  Lcom/oracle/truffle/api/source/Source;
            8   11     7           target  Lcom/oracle/truffle/api/CallTarget;
           12   13     6                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     9      11  Class java.lang.Throwable
           4     9      13  any
          11    13      13  any
    MethodParameters:
            Name  Flags
      languageId  
      sourceImpl  

  public org.graalvm.polyglot.Value eval(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=13, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String languageId
        start local 2 // java.lang.Object sourceImpl
         0: .line 932
            aload 0 /* this */
            aload 1 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.requirePublicLanguage:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 933
            aload 0 /* this */
            aload 3 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* languageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 934
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 3
            aload 4 /* languageContext */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 935
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 4 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            astore 5 /* prev */
        start local 5 // java.lang.Object prev
         4: .line 937
            aload 2 /* sourceImpl */
            checkcast com.oracle.truffle.api.source.Source
            astore 6 /* source */
        start local 6 // com.oracle.truffle.api.source.Source source
         5: .line 938
            aload 4 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         6: .line 939
            aload 4 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            pop
         7: .line 940
            aload 4 /* languageContext */
            aconst_null
            aload 6 /* source */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            astore 7 /* target */
        start local 7 // com.oracle.truffle.api.CallTarget target
         8: .line 941
            aload 7 /* target */
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.EMPTY_ARGS:[Ljava/lang/Object;
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* result */
        start local 8 // java.lang.Object result
         9: .line 944
            aload 4 /* languageContext */
            aload 8 /* result */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 9 /* hostValue */
        start local 9 // org.graalvm.polyglot.Value hostValue
        10: .line 945
            goto 13
        end local 9 // org.graalvm.polyglot.Value hostValue
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object com.oracle.truffle.api.source.Source com.oracle.truffle.api.CallTarget java.lang.Object
      StackMap stack: java.lang.RuntimeException
        11: astore 10 /* e */
        start local 10 // java.lang.RuntimeException e
        12: .line 946
            new java.lang.AssertionError
            dup
            ldc "Language %s returned an invalid return value %s. Must be an interop value."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* languageId */
            aastore
            dup
            iconst_1
            aload 8 /* result */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 10 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.lang.RuntimeException e
        start local 9 // org.graalvm.polyglot.Value hostValue
        13: .line 948
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 6 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.isInteractive:()Z
            ifeq 15
        14: .line 949
            aload 4 /* languageContext */
            aload 8 /* result */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.printResult:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        15: .line 951
      StackMap locals:
      StackMap stack:
            aload 9 /* hostValue */
            astore 12
        16: .line 955
            aload 4 /* languageContext */
            aload 5 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        17: .line 951
            aload 12
            areturn
        end local 9 // org.graalvm.polyglot.Value hostValue
        end local 8 // java.lang.Object result
        end local 7 // com.oracle.truffle.api.CallTarget target
        end local 6 // com.oracle.truffle.api.source.Source source
        18: .line 952
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        19: .line 953
            aload 4 /* languageContext */
            aload 6 /* e */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 6 // java.lang.Throwable e
        20: .line 954
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        21: .line 955
            aload 4 /* languageContext */
            aload 5 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        22: .line 956
            aload 11
            athrow
        end local 5 // java.lang.Object prev
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // java.lang.Object sourceImpl
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   23     1       languageId  Ljava/lang/String;
            0   23     2       sourceImpl  Ljava/lang/Object;
            1   23     3         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   23     4  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4   23     5             prev  Ljava/lang/Object;
            5   18     6           source  Lcom/oracle/truffle/api/source/Source;
            8   18     7           target  Lcom/oracle/truffle/api/CallTarget;
            9   18     8           result  Ljava/lang/Object;
           10   11     9        hostValue  Lorg/graalvm/polyglot/Value;
           13   18     9        hostValue  Lorg/graalvm/polyglot/Value;
           12   13    10                e  Ljava/lang/RuntimeException;
           19   20     6                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.NullPointerException
           9    10      11  Class java.lang.ClassCastException
           4    16      18  Class java.lang.Throwable
           4    16      20  any
          18    20      20  any
    MethodParameters:
            Name  Flags
      languageId  
      sourceImpl  

  private com.oracle.truffle.polyglot.PolyglotLanguage requirePublicLanguage(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.String languageId
         0: .line 960
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 1 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 2 /* language */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 961
            aload 2 /* language */
            ifnull 2
            aload 2 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifeq 5
         2: .line 962
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.requirePublicLanguage:(Ljava/lang/String;)Lorg/graalvm/polyglot/Language;
            pop
         3: .line 963
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 964
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         5: .line 966
      StackMap locals:
      StackMap stack:
            aload 2 /* language */
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    6     1  languageId  Ljava/lang/String;
            1    6     2    language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
            Name  Flags
      languageId  

  static void printResult(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        start local 1 // java.lang.Object result
         0: .line 971
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 1 /* result */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isVisible:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Z
            ifne 2
         1: .line 972
            return
         2: .line 976
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.UNCACHED:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* languageContext */
            aload 1 /* result */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageView:(Ljava/lang/Object;)Ljava/lang/Object;
            iconst_1
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;Z)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* stringResult */
        start local 2 // java.lang.String stringResult
         3: .line 977
            goto 6
        end local 2 // java.lang.String stringResult
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
         4: astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         5: .line 978
            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
        start local 2 // java.lang.String stringResult
         6: .line 981
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* languageContext */
            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.out:Ljava/io/OutputStream;
            astore 3 /* out */
        start local 3 // java.io.OutputStream out
         7: .line 982
            aload 3 /* out */
            aload 2 /* stringResult */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.io.OutputStream.write:([B)V
         8: .line 983
            aload 3 /* out */
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.io.OutputStream.write:([B)V
        end local 3 // java.io.OutputStream out
         9: .line 984
            goto 12
      StackMap locals:
      StackMap stack: java.io.IOException
        10: astore 3 /* ioex */
        start local 3 // java.io.IOException ioex
        11: .line 986
            new java.lang.IllegalStateException
            dup
            aload 3 /* ioex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException ioex
        12: .line 988
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String stringResult
        end local 1 // java.lang.Object result
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   13     1           result  Ljava/lang/Object;
            3    4     2     stringResult  Ljava/lang/String;
            6   13     2     stringResult  Ljava/lang/String;
            5    6     3                e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
            7    9     3              out  Ljava/io/OutputStream;
           11   12     3             ioex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           6     9      10  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      languageContext  
      result           

  public org.graalvm.polyglot.Engine getEngineImpl(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)Lorg/graalvm/polyglot/Engine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context sourceContext
         0: .line 992
            aload 1 /* sourceContext */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
            if_acmpne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.Engine
         2: areturn
        end local 1 // org.graalvm.polyglot.Context sourceContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    3     1  sourceContext  Lorg/graalvm/polyglot/Context;
    MethodParameters:
               Name  Flags
      sourceContext  

  public void close(org.graalvm.polyglot.Context, boolean);
    descriptor: (Lorg/graalvm/polyglot/Context;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context sourceContext
        start local 2 // boolean cancelIfExecuting
         0: .line 998
            aload 0 /* this */
            aload 1 /* sourceContext */
            ldc "closed"
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
         1: .line 999
            aload 0 /* this */
            iload 2 /* cancelIfExecuting */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeAndMaybeWait:(Z)V
         2: .line 1000
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         4: .line 1001
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 3 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 3 // java.lang.Throwable t
         5: .line 1003
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean cancelIfExecuting
        end local 1 // org.graalvm.polyglot.Context sourceContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    6     1      sourceContext  Lorg/graalvm/polyglot/Context;
            0    6     2  cancelIfExecuting  Z
            4    5     3                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    MethodParameters:
                   Name  Flags
      sourceContext      
      cancelIfExecuting  

  void cancel(boolean, java.lang.String, boolean);
    descriptor: (ZLjava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean resourceLimit
        start local 2 // java.lang.String message
        start local 3 // boolean wait
         0: .line 1006
            aload 0 /* this */
            iload 1 /* resourceLimit */
            aload 2 /* message */
            ifnonnull 1
            ldc "Context execution was cancelled."
            goto 2
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String int
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int
         1: aload 2 /* message */
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String int
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String
         2: invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invalidate:(ZLjava/lang/String;)Z
            istore 4 /* invalidated */
        start local 4 // boolean invalidated
         3: .line 1007
            iload 3 /* wait */
            ifeq 5
            iload 4 /* invalidated */
            ifeq 5
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 5
         4: .line 1008
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeAndMaybeWait:(Z)V
         5: .line 1010
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // boolean invalidated
        end local 3 // boolean wait
        end local 2 // java.lang.String message
        end local 1 // boolean resourceLimit
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    6     1  resourceLimit  Z
            0    6     2        message  Ljava/lang/String;
            0    6     3           wait  Z
            3    6     4    invalidated  Z
    MethodParameters:
               Name  Flags
      resourceLimit  
      message        
      wait           

  void closeAndMaybeWait(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean cancelIfExecuting
         0: .line 1013
            aload 0 /* this */
            iload 1 /* cancelIfExecuting */
            iload 1 /* cancelIfExecuting */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            istore 2 /* closeCompleted */
        start local 2 // boolean closeCompleted
         1: .line 1014
            iload 1 /* cancelIfExecuting */
            ifeq 4
         2: .line 1015
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            iconst_1
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            iconst_0
            aload 0 /* this */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;)V
         3: .line 1016
            goto 6
      StackMap locals: int
      StackMap stack:
         4: iload 2 /* closeCompleted */
            ifne 6
         5: .line 1017
            ldc "The context is currently executing on another thread. Set cancelIfExecuting to true to stop the execution on this thread."
            iconst_0
            anewarray java.lang.Object
            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
         6: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkSubProcessFinished:()V
         7: .line 1021
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 9
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnonnull 9
         8: .line 1022
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            iload 1 /* cancelIfExecuting */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
         9: .line 1024
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean closeCompleted
        end local 1 // boolean cancelIfExecuting
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   10     1  cancelIfExecuting  Z
            1   10     2     closeCompleted  Z
    MethodParameters:
                   Name  Flags
      cancelIfExecuting  

  private void finishInterruptForChildContexts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1028
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 1029
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
         2: .line 1030
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 1 /* childContextsToInterrupt */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
         3: .line 1028
            aload 2
            monitorexit
         4: goto 7
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
         7: .line 1032
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
            aload 1 /* childContextsToInterrupt */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
         8: aload 5
            iload 3
            aaload
            astore 2 /* childCtx */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
         9: .line 1033
            aload 2 /* childCtx */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        10: .line 1032
            iinc 3 1
      StackMap locals:
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 8
        12: .line 1035
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   13     0                      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3    5     1  childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7   13     1  childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            9   10     2                  childCtx  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  private void interruptChildContexts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1039
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 1040
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 3 /* info */
        start local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         2: .line 1041
            aload 3 /* info */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpeq 4
            aload 3 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
            ifeq 4
         3: .line 1042
            ldc "Cannot interrupt context from a thread where its child context is active."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 1044
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
         5: .line 1045
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
         6: .line 1046
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 1 /* childContextsToInterrupt */
        end local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
         7: .line 1039
            aload 2
            monitorexit
         8: goto 11
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        11: .line 1048
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
            aload 1 /* childContextsToInterrupt */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 15
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
        12: aload 5
            iload 3
            aaload
            astore 2 /* childCtx */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        13: .line 1049
            aload 2 /* childCtx */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.interruptChildContexts:()V
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        14: .line 1048
            iinc 3 1
      StackMap locals:
      StackMap stack:
        15: iload 3
            iload 4
            if_icmplt 12
        16: .line 1051
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   17     0                      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7    9     1  childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           11   17     1  childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    7     3                      info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           13   14     2                  childCtx  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any

  public boolean interrupt(org.graalvm.polyglot.Context, java.time.Duration);
    descriptor: (Lorg/graalvm/polyglot/Context;Ljava/time/Duration;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=19, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // org.graalvm.polyglot.Context sourceContext
        start local 2 // java.time.Duration timeout
         0: .line 1056
            aload 0 /* this */
            aload 1 /* sourceContext */
            ldc "interrupted"
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkCreatorAccess:(Lorg/graalvm/polyglot/Context;Ljava/lang/String;)V
         1: .line 1057
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnull 3
         2: .line 1058
            ldc "Cannot interrupt inner context separately."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         3: .line 1060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         4: .line 1061
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 3 /* startMillis */
        start local 3 // long startMillis
         5: .line 1063
            iconst_0
            istore 6 /* waitForCloseOrInterrupt */
        start local 6 // boolean waitForCloseOrInterrupt
         6: .line 1065
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long top int
      StackMap stack:
            iload 6 /* waitForCloseOrInterrupt */
            ifeq 10
         7: .line 1066
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         8: .line 1067
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1068
            iconst_0
            istore 6 /* waitForCloseOrInterrupt */
        10: .line 1070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
        11: .line 1071
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifeq 14
        12: .line 1073
            aload 7
            monitorexit
        13: iconst_1
            ireturn
        14: .line 1075
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifeq 18
        15: .line 1078
            iconst_1
            istore 6 /* waitForCloseOrInterrupt */
        16: .line 1079
            aload 7
            monitorexit
        17: goto 6
        18: .line 1081
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            astore 8 /* localClosingThread */
        start local 8 // java.lang.Thread localClosingThread
        19: .line 1082
            aload 8 /* localClosingThread */
            ifnull 26
        20: .line 1083
            aload 8 /* localClosingThread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 23
        21: .line 1085
            aload 7
            monitorexit
        22: iconst_1
            ireturn
        23: .line 1089
      StackMap locals: java.lang.Thread
      StackMap stack:
            iconst_1
            istore 6 /* waitForCloseOrInterrupt */
        24: .line 1090
            aload 7
            monitorexit
        25: goto 6
        26: .line 1093
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 9 /* info */
        start local 9 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        27: .line 1094
            aload 9 /* info */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpeq 29
            aload 9 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
            ifeq 29
        28: .line 1095
            ldc "Cannot interrupt context from a thread where the context is active."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        29: .line 1097
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
        30: .line 1098
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        31: .line 1099
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 5 /* childContextsToInterrupt */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        32: .line 1105
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        33: .line 1106
            aload 7
            monitorexit
        34: goto 37
        end local 9 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 8 // java.lang.Thread localClosingThread
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        35: .line 1070
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long top int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
        36: athrow
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        37: .line 1111
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int
      StackMap stack:
            aload 5 /* childContextsToInterrupt */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 41
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
        38: aload 10
            iload 8
            aaload
            astore 7 /* childCtx */
        start local 7 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        39: .line 1112
            aload 7 /* childCtx */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.interruptChildContexts:()V
        end local 7 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        40: .line 1111
            iinc 8 1
      StackMap locals:
      StackMap stack:
        41: iload 8
            iload 9
            if_icmplt 38
        42: .line 1115
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            aload 0 /* this */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            lload 3 /* startMillis */
            aload 2 /* timeout */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;JLjava/time/Duration;)Z
            istore 12
        43: .line 1119
            aload 0 /* this */
            dup
            astore 14
            monitorenter
        44: .line 1120
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
        45: .line 1121
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 13 /* childContextsToFinishInterrupt */
        start local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        46: .line 1119
            aload 14
            monitorexit
        47: goto 50
        end local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        48: aload 14
            monitorexit
        49: athrow
        start local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        50: .line 1123
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
            aload 13 /* childContextsToFinishInterrupt */
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 54
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
        51: aload 17
            iload 15
            aaload
            astore 14 /* childCtx */
        start local 14 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        52: .line 1124
            aload 14 /* childCtx */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
        end local 14 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        53: .line 1123
            iinc 15 1
      StackMap locals:
      StackMap stack:
        54: iload 15
            iload 16
            if_icmplt 51
        end local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        55: .line 1126
            goto 59
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top top int
      StackMap stack: java.lang.Throwable
        56: astore 18
        57: .line 1127
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        58: .line 1128
            aload 18
            athrow
        59: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        60: .line 1115
            iload 12
            ireturn
        61: .line 1116
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int
      StackMap stack: java.lang.Throwable
            astore 11
        62: .line 1119
            aload 0 /* this */
            dup
            astore 14
            monitorenter
        63: .line 1120
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
        64: .line 1121
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 13 /* childContextsToFinishInterrupt */
        start local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        65: .line 1119
            aload 14
            monitorexit
        66: goto 69
        end local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        67: aload 14
            monitorexit
        68: athrow
        start local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        69: .line 1123
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
            aload 13 /* childContextsToFinishInterrupt */
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 73
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable top com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
        70: aload 17
            iload 15
            aaload
            astore 14 /* childCtx */
        start local 14 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        71: .line 1124
            aload 14 /* childCtx */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finishInterruptForChildContexts:()V
        end local 14 // com.oracle.truffle.polyglot.PolyglotContextImpl childCtx
        72: .line 1123
            iinc 15 1
      StackMap locals:
      StackMap stack:
        73: iload 15
            iload 16
            if_icmplt 70
        end local 13 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToFinishInterrupt
        74: .line 1126
            goto 78
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration long com.oracle.truffle.polyglot.PolyglotContextImpl[] int top top top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        75: astore 18
        76: .line 1127
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        77: .line 1128
            aload 18
            athrow
        78: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        79: .line 1129
            aload 11
            athrow
        end local 6 // boolean waitForCloseOrInterrupt
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childContextsToInterrupt
        end local 3 // long startMillis
        80: .line 1130
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl org.graalvm.polyglot.Context java.time.Duration
      StackMap stack: java.lang.Throwable
            astore 3 /* thr */
        start local 3 // java.lang.Throwable thr
        81: .line 1131
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 3 /* thr */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 3 // java.lang.Throwable thr
        end local 2 // java.time.Duration timeout
        end local 1 // org.graalvm.polyglot.Context sourceContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   82     0                            this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   82     1                   sourceContext  Lorg/graalvm/polyglot/Context;
            0   82     2                         timeout  Ljava/time/Duration;
            5   80     3                     startMillis  J
           32   35     5        childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           37   80     5        childContextsToInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            6   80     6         waitForCloseOrInterrupt  Z
           19   35     8              localClosingThread  Ljava/lang/Thread;
           27   35     9                            info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           39   40     7                        childCtx  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           46   48    13  childContextsToFinishInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           50   55    13  childContextsToFinishInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           65   67    13  childContextsToFinishInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           69   74    13  childContextsToFinishInterrupt  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           52   53    14                        childCtx  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           71   72    14                        childCtx  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           81   82     3                             thr  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          11    13      35  any
          14    17      35  any
          18    22      35  any
          23    25      35  any
          26    34      35  any
          35    36      35  any
          44    47      48  any
          48    49      48  any
          43    56      56  any
          37    43      61  any
          63    66      67  any
          67    68      67  any
          62    75      75  any
           0    13      80  Class java.lang.Throwable
          14    22      80  Class java.lang.Throwable
          23    60      80  Class java.lang.Throwable
          61    80      80  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      sourceContext  
      timeout        

  public org.graalvm.polyglot.Value asValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Object hostValue
         0: .line 1137
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 2 /* languageContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 1138
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 2
            aload 2 /* languageContext */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1139
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 2 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostEnter:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
            astore 3 /* prev */
        start local 3 // java.lang.Object prev
         3: .line 1141
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkClosed:()V
         4: .line 1143
            aload 1 /* hostValue */
            instanceof org.graalvm.polyglot.Value
            ifeq 12
         5: .line 1145
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 1 /* hostValue */
            checkcast org.graalvm.polyglot.Value
            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 5 /* value */
        start local 5 // com.oracle.truffle.polyglot.PolyglotValue value
         6: .line 1146
            aload 5 /* value */
            getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            ifnull 10
            aload 5 /* value */
            getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 0 /* this */
            if_acmpne 10
         7: .line 1147
            aload 1 /* hostValue */
            checkcast org.graalvm.polyglot.Value
            astore 7
         8: .line 1165
            aload 2 /* languageContext */
            aload 3 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
         9: .line 1147
            aload 7
            areturn
        10: .line 1149
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object top com.oracle.truffle.polyglot.PolyglotValue
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* targetLanguageContext */
        end local 5 // com.oracle.truffle.polyglot.PolyglotValue value
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        11: .line 1150
            goto 18
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack:
        12: aload 1 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.isInstance:(Ljava/lang/Object;)Z
            ifeq 17
        13: .line 1152
            aload 1 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.asInstance:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostWrapper;
            invokeinterface com.oracle.truffle.polyglot.HostWrapper.getLanguageContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* targetLanguageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        14: .line 1153
            aload 0 /* this */
            aload 4 /* targetLanguageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            if_acmpeq 18
        15: .line 1156
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* targetLanguageContext */
        16: .line 1158
            goto 18
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        17: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* targetLanguageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        18: .line 1161
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 4 /* targetLanguageContext */
            aload 4 /* targetLanguageContext */
            aconst_null
            aload 1 /* hostValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.toGuestValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 7
        19: .line 1165
            aload 2 /* languageContext */
            aload 3 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        20: .line 1161
            aload 7
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        21: .line 1162
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
        22: .line 1163
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 4 /* e */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 4 // java.lang.Throwable e
        23: .line 1164
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        24: .line 1165
            aload 2 /* languageContext */
            aload 3 /* prev */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.hostLeave:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)V
        25: .line 1166
            aload 6
            athrow
        end local 3 // java.lang.Object prev
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 1 // java.lang.Object hostValue
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   26     0                   this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   26     1              hostValue  Ljava/lang/Object;
            1   26     2        languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3   26     3                   prev  Ljava/lang/Object;
           11   12     4  targetLanguageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           14   17     4  targetLanguageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           18   21     4  targetLanguageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            6   11     5                  value  Lcom/oracle/truffle/polyglot/PolyglotValue;
           22   23     4                      e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     8      21  Class java.lang.Throwable
          10    19      21  Class java.lang.Throwable
           3     8      23  any
          10    19      23  any
          21    23      23  any
    MethodParameters:
           Name  Flags
      hostValue  

  void waitForClose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1170
            goto 8
         1: .line 1172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 1173
            aload 0 /* this */
            ldc 1000
            invokevirtual java.lang.Object.wait:(J)V
         3: .line 1172
            aload 1
            monitorexit
         4: goto 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 1175
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.InterruptedException
            pop
         8: .line 1170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            ifeq 1
         9: .line 1178
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
           1     7       7  Class java.lang.InterruptedException

  boolean waitForThreads(long, long);
    descriptor: (JJ)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // long startMillis
        start local 3 // long timeoutMillis
         0: .line 1181
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         1: .line 1182
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 1 /* startMillis */
            lsub
            lstore 6 /* timeElapsed */
        start local 6 // long timeElapsed
         2: .line 1183
            goto 10
         3: .line 1185
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl long
      StackMap stack:
            lload 3 /* timeoutMillis */
            lconst_0
            lcmp
            ifne 6
         4: .line 1186
            aload 0 /* this */
            invokevirtual java.lang.Object.wait:()V
         5: .line 1187
            goto 9
         6: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* timeoutMillis */
            lload 6 /* timeElapsed */
            lsub
            invokevirtual java.lang.Object.wait:(J)V
         7: .line 1190
            goto 9
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         8: pop
         9: .line 1192
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 1 /* startMillis */
            lsub
            lstore 6 /* timeElapsed */
        10: .line 1183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
            ifeq 11
            lload 3 /* timeoutMillis */
            lconst_0
            lcmp
            ifeq 3
            lload 6 /* timeElapsed */
            lload 3 /* timeoutMillis */
            lcmp
            iflt 3
        11: .line 1194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
            ifeq 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
      StackMap locals:
      StackMap stack: int
        13: aload 5
            monitorexit
        14: ireturn
        end local 6 // long timeElapsed
        15: .line 1181
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl long long com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        16: athrow
        end local 3 // long timeoutMillis
        end local 1 // long startMillis
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   17     1    startMillis  J
            0   17     3  timeoutMillis  J
            2   15     6    timeElapsed  J
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.InterruptedException
           1    14      15  any
          15    16      15  any
    MethodParameters:
               Name  Flags
      startMillis    
      timeoutMillis  

  boolean isSingleThreaded();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1199
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  java.util.Map<java.lang.Thread, com.oracle.truffle.polyglot.PolyglotThreadInfo> getSeenThreads();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1203
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/Thread;Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;>;

  boolean isActiveNotCancelled();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1208
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActiveNotCancelled:(Z)Z
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  synchronized boolean isActiveNotCancelled(boolean);
    descriptor: (Z)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean includePolyglotThreads
         0: .line 1212
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* seenTinfo */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenTinfo
         2: .line 1213
            iload 1 /* includePolyglotThreads */
            ifne 3
            aload 2 /* seenTinfo */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
            ifne 5
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
      StackMap stack:
         3: aload 2 /* seenTinfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
            ifeq 5
         4: .line 1214
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenTinfo
         5: .line 1212
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 1217
            iconst_0
            ireturn
        end local 1 // boolean includePolyglotThreads
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    7     1  includePolyglotThreads  Z
            2    5     2               seenTinfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
                        Name  Flags
      includePolyglotThreads  

  synchronized boolean isActive();
    descriptor: ()Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1221
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 1 /* seenTinfo */
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenTinfo
         2: .line 1222
            aload 1 /* seenTinfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
            ifeq 4
         3: .line 1223
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo seenTinfo
         4: .line 1221
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1226
            iconst_0
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    4     1  seenTinfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;

  synchronized boolean isActiveNotCancelled(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread thread
         0: .line 1230
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 1 /* thread */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* info */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         1: .line 1231
            aload 2 /* info */
            ifnull 2
            aload 2 /* info */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpne 3
         2: .line 1232
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1234
      StackMap locals:
      StackMap stack:
            aload 2 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    4     1  thread  Ljava/lang/Thread;
            1    4     2    info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
        Name  Flags
      thread  

  synchronized boolean isActive(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread thread
         0: .line 1238
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 1 /* thread */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* info */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         1: .line 1239
            aload 2 /* info */
            ifnull 2
            aload 2 /* info */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpne 3
         2: .line 1240
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1242
      StackMap locals:
      StackMap stack:
            aload 2 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActive:()Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    4     1  thread  Ljava/lang/Thread;
            1    4     2    info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
        Name  Flags
      thread  

  com.oracle.truffle.polyglot.PolyglotThreadInfo getFirstActiveOtherThread(boolean);
    descriptor: (Z)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean includePolyglotThreads
         0: .line 1246
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* otherInfo */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo otherInfo
         3: .line 1249
            iload 1 /* includePolyglotThreads */
            ifne 5
            aload 2 /* otherInfo */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isPolyglotThread:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
            ifeq 5
         4: .line 1250
            goto 7
         5: .line 1252
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int com.oracle.truffle.polyglot.PolyglotThreadInfo java.util.Iterator
      StackMap stack:
            aload 2 /* otherInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isCurrent:()Z
            ifne 7
            aload 2 /* otherInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
            ifeq 7
         6: .line 1253
            aload 2 /* otherInfo */
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo otherInfo
         7: .line 1248
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 1256
            aconst_null
            areturn
        end local 1 // boolean includePolyglotThreads
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    9     1  includePolyglotThreads  Z
            3    7     2               otherInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
                        Name  Flags
      includePolyglotThreads  

  boolean hasActiveOtherThread(boolean);
    descriptor: (Z)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean includePolyglotThreads
         0: .line 1260
            aload 0 /* this */
            iload 1 /* includePolyglotThreads */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getFirstActiveOtherThread:(Z)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // boolean includePolyglotThreads
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    2     1  includePolyglotThreads  Z
    MethodParameters:
                        Name  Flags
      includePolyglotThreads  

  synchronized void notifyThreadClosed();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1264
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 1 /* currentTInfo */
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo currentTInfo
         1: .line 1265
            aload 1 /* currentTInfo */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpeq 5
         2: .line 1266
            aload 1 /* currentTInfo */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotThreadInfo.cancelled:Z
         3: .line 1269
            invokestatic java.lang.Thread.interrupted:()Z
            pop
         4: .line 1270
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 1272
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo currentTInfo
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1    6     1  currentTInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;

  boolean closeImpl(boolean, boolean, boolean);
    descriptor: (ZZZ)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean cancelIfExecuting
        start local 2 // boolean waitForPolyglotThreads
        start local 3 // boolean notifyInstruments
         0: .line 1290
            iconst_0
            istore 4 /* waitForCloseOrInterrupt */
        start local 4 // boolean waitForCloseOrInterrupt
         1: .line 1292
      StackMap locals: int
      StackMap stack:
            iload 4 /* waitForCloseOrInterrupt */
            ifeq 5
         2: .line 1293
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 1294
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 1295
            iconst_0
            istore 4 /* waitForCloseOrInterrupt */
         5: .line 1297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         6: .line 1298
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifeq 9
         7: .line 1300
            aload 5
            monitorexit
         8: iconst_1
            ireturn
         9: .line 1302
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            astore 6 /* localClosingThread */
        start local 6 // java.lang.Thread localClosingThread
        10: .line 1303
            aload 6 /* localClosingThread */
            ifnull 17
        11: .line 1304
            aload 6 /* localClosingThread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 14
        12: .line 1306
            aload 5
            monitorexit
        13: iconst_1
            ireturn
        14: .line 1310
      StackMap locals: java.lang.Thread
      StackMap stack:
            iconst_1
            istore 4 /* waitForCloseOrInterrupt */
        15: .line 1311
            aload 5
            monitorexit
        16: goto 1
        17: .line 1314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadInfo:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 7 /* threadInfo */
        start local 7 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        18: .line 1315
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifeq 23
        19: .line 1317
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnonnull 23
        20: .line 1320
            iconst_1
            istore 4 /* waitForCloseOrInterrupt */
        21: .line 1321
            aload 5
            monitorexit
        22: goto 1
        23: .line 1326
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        24: .line 1327
            iload 1 /* cancelIfExecuting */
            ifeq 29
        25: .line 1328
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
        26: .line 1329
            aload 7 /* threadInfo */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            if_acmpeq 29
        27: .line 1330
            aload 7 /* threadInfo */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotThreadInfo.cancelled:Z
        28: .line 1333
            invokestatic java.lang.Thread.interrupted:()Z
            pop
        29: .line 1337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* waitForPolyglotThreads */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
            ifeq 32
        30: .line 1341
            aload 5
            monitorexit
        31: iconst_0
            ireturn
        32: .line 1343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
        33: .line 1344
            aload 7 /* threadInfo */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 41
        34: .line 1345
            aload 0 /* this */
            astore 8 /* c */
        start local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl c
        35: .line 1346
            goto 39
        36: .line 1347
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 7 /* threadInfo */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 9 /* prev */
        start local 9 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        37: .line 1348
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 9 /* prev */
            aload 8 /* c */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        38: .line 1349
            aload 9 /* prev */
            astore 8 /* c */
        end local 9 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        39: .line 1346
      StackMap locals:
      StackMap stack:
            aload 7 /* threadInfo */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 36
        40: .line 1351
            aload 7 /* threadInfo */
            getfield com.oracle.truffle.polyglot.PolyglotThreadInfo.explicitContextStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.clear:()V
        end local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl c
        41: .line 1353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        42: .line 1354
            aload 5
            monitorexit
        43: goto 46
        end local 7 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        end local 6 // java.lang.Thread localClosingThread
        44: .line 1297
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        45: athrow
        46: .line 1363
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* remainingThreads */
        start local 5 // java.lang.Thread[] remainingThreads
        47: .line 1364
            aconst_null
            astore 6 /* disposedContexts */
        start local 6 // java.util.List disposedContexts
        48: .line 1365
            iconst_0
            istore 7 /* success */
        start local 7 // boolean success
        49: .line 1367
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 50
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 50
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        50: .line 1368
      StackMap locals: java.lang.Thread[] java.util.List int
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 51
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 51
            new java.lang.AssertionError
            dup
            ldc "lock is acquired"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        51: .line 1369
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 52
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifeq 52
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        52: .line 1370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 8 /* prev */
        start local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        53: .line 1372
            aload 0 /* this */
            iload 1 /* cancelIfExecuting */
            iload 2 /* waitForPolyglotThreads */
            iload 3 /* notifyInstruments */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeChildContexts:(ZZZ)V
        54: .line 1374
            aload 0 /* this */
            iload 3 /* notifyInstruments */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.finalizeContext:(Z)V
        55: .line 1378
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.disposeContext:()Ljava/util/List;
            astore 6 /* disposedContexts */
        56: .line 1380
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 57
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 57
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 1381
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            iconst_1
            istore 7 /* success */
        58: .line 1382
            goto 75
      StackMap locals:
      StackMap stack: java.lang.Throwable
        59: astore 9
        60: .line 1383
            aload 0 /* this */
            dup
            astore 10
            monitorenter
        61: .line 1384
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 8 /* prev */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        62: .line 1385
            iload 7 /* success */
            ifeq 64
        63: .line 1386
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            iconst_0
            anewarray java.lang.Thread
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Thread[]
            astore 5 /* remainingThreads */
        64: .line 1388
      StackMap locals: java.lang.Throwable com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
        65: .line 1389
            iload 7 /* success */
            ifeq 67
        66: .line 1390
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
        67: .line 1393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        68: .line 1383
            aload 10
            monitorexit
        69: goto 72
      StackMap locals:
      StackMap stack: java.lang.Throwable
        70: aload 10
            monitorexit
        71: athrow
        72: .line 1395
      StackMap locals:
      StackMap stack:
            iload 7 /* success */
            ifeq 74
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 74
        73: .line 1396
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        74: .line 1398
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        75: .line 1383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 10
            monitorenter
        76: .line 1384
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 8 /* prev */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        77: .line 1385
            iload 7 /* success */
            ifeq 79
        78: .line 1386
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            iconst_0
            anewarray java.lang.Thread
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Thread[]
            astore 5 /* remainingThreads */
        79: .line 1388
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
        80: .line 1389
            iload 7 /* success */
            ifeq 82
        81: .line 1390
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
        82: .line 1393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
        83: .line 1383
            aload 10
            monitorexit
        84: goto 87
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: aload 10
            monitorexit
        86: athrow
        87: .line 1395
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            iload 7 /* success */
            ifeq 94
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 94
        88: .line 1396
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        89: .line 1399
            goto 94
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
      StackMap stack: java.lang.Throwable
        90: astore 11
        91: .line 1400
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
        92: .line 1401
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        93: .line 1402
            aload 11
            athrow
        94: .line 1400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
        95: .line 1401
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        96: .line 1407
            aload 6 /* disposedContexts */
            ifnull 101
        97: .line 1408
            aload 6 /* disposedContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 100
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int top java.util.Iterator
      StackMap stack:
        98: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 8 /* context */
        start local 8 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        99: .line 1409
            aload 8 /* context */
            iload 3 /* notifyInstruments */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.notifyDisposed:(Z)V
        end local 8 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
       100: .line 1408
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 98
       101: .line 1413
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
      StackMap stack:
            iload 7 /* success */
            ifeq 147
       102: .line 1414
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnull 109
       103: .line 1415
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 8
            monitorenter
       104: .line 1416
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
       105: .line 1415
            aload 8
            monitorexit
       106: goto 111
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
       107: aload 8
            monitorexit
       108: athrow
       109: .line 1418
      StackMap locals:
      StackMap stack:
            iload 3 /* notifyInstruments */
            ifeq 111
       110: .line 1419
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.removeContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
       111: .line 1422
      StackMap locals:
      StackMap stack:
            iload 3 /* notifyInstruments */
            ifeq 118
       112: .line 1423
            aload 5 /* remainingThreads */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 116
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int top int int java.lang.Thread[]
      StackMap stack:
       113: aload 11
            iload 9
            aaload
            astore 8 /* thread */
        start local 8 // java.lang.Thread thread
       114: .line 1424
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 8 /* thread */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyThreadFinished:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
        end local 8 // java.lang.Thread thread
       115: .line 1423
            iinc 9 1
      StackMap locals:
      StackMap stack:
       116: iload 9
            iload 10
            if_icmplt 113
       117: .line 1426
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyContextClosed:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;)V
       118: .line 1428
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int
      StackMap stack:
            aload 0 /* this */
            dup
            astore 8
            monitorenter
       119: .line 1430
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
       120: .line 1437
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActive:()Z
            ifne 138
       121: .line 1438
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            ifnull 127
       122: .line 1439
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 126
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
       123: aload 12
            iload 10
            aaload
            astore 9 /* langContext */
        start local 9 // com.oracle.truffle.polyglot.PolyglotLanguageContext langContext
       124: .line 1440
            aload 9 /* langContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.close:()V
        end local 9 // com.oracle.truffle.polyglot.PolyglotLanguageContext langContext
       125: .line 1439
            iinc 10 1
      StackMap locals:
      StackMap stack:
       126: iload 10
            iload 11
            if_icmplt 123
       127: .line 1443
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextImpls:[Ljava/lang/Object;
            astore 9 /* impls */
        start local 9 // java.lang.Object[] impls
       128: .line 1444
            aload 9 /* impls */
            ifnull 130
       129: .line 1445
            aload 9 /* impls */
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
       130: .line 1447
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            ifnull 132
       131: .line 1448
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
       132: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 137
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] top java.util.Iterator
      StackMap stack:
       133: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 10 /* thread */
        start local 10 // com.oracle.truffle.polyglot.PolyglotThreadInfo thread
       134: .line 1451
            aload 10 /* thread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
            astore 12 /* threadLocals */
        start local 12 // java.lang.Object[] threadLocals
       135: .line 1452
            aload 12 /* threadLocals */
            ifnull 137
       136: .line 1453
            aload 12 /* threadLocals */
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
        end local 12 // java.lang.Object[] threadLocals
        end local 10 // com.oracle.truffle.polyglot.PolyglotThreadInfo thread
       137: .line 1450
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 133
        end local 9 // java.lang.Object[] impls
       138: .line 1428
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int int java.lang.Thread[] java.util.List int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 8
            monitorexit
       139: goto 142
      StackMap locals:
      StackMap stack: java.lang.Throwable
       140: aload 8
            monitorexit
       141: athrow
       142: .line 1458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnonnull 147
       143: .line 1459
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 145
       144: .line 1460
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
       145: .line 1462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
            ifnull 147
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.isSameLogSink:(Ljava/util/logging/Handler;Ljava/util/logging/Handler;)Z
            ifne 147
       146: .line 1463
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
            invokevirtual java.util.logging.Handler.close:()V
       147: .line 1467
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // boolean success
        end local 6 // java.util.List disposedContexts
        end local 5 // java.lang.Thread[] remainingThreads
        end local 4 // boolean waitForCloseOrInterrupt
        end local 3 // boolean notifyInstruments
        end local 2 // boolean waitForPolyglotThreads
        end local 1 // boolean cancelIfExecuting
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  148     0                     this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0  148     1        cancelIfExecuting  Z
            0  148     2   waitForPolyglotThreads  Z
            0  148     3        notifyInstruments  Z
            1  148     4  waitForCloseOrInterrupt  Z
           10   44     6       localClosingThread  Ljava/lang/Thread;
           18   44     7               threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
           35   41     8                        c  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           37   39     9                     prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           47  148     5         remainingThreads  [Ljava/lang/Thread;
           48  148     6         disposedContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;
           49  148     7                  success  Z
           53   89     8                     prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           99  100     8                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
          114  115     8                   thread  Ljava/lang/Thread;
          124  125     9              langContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
          128  138     9                    impls  [Ljava/lang/Object;
          134  137    10                   thread  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
          135  137    12             threadLocals  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           6     8      44  any
           9    13      44  any
          14    16      44  any
          17    22      44  any
          23    31      44  any
          32    43      44  any
          44    45      44  any
          53    59      59  any
          61    69      70  any
          70    71      70  any
          76    84      85  any
          85    86      85  any
          49    90      90  any
         104   106     107  any
         107   108     107  any
         119   139     140  any
         140   141     140  any
    MethodParameters:
                        Name  Flags
      cancelIfExecuting       
      waitForPolyglotThreads  
      notifyInstruments       

  private void closeChildContexts(boolean, boolean, boolean);
    descriptor: (ZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean cancelIfExecuting
        start local 2 // boolean waitForPolyglotThreads
        start local 3 // boolean notifyInstruments
         0: .line 1472
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         1: .line 1473
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.childContexts:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.truffle.polyglot.PolyglotContextImpl
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl[]
            astore 4 /* childrenToClose */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childrenToClose
         2: .line 1472
            aload 5
            monitorexit
         3: goto 6
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childrenToClose
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
         4: aload 5
            monitorexit
         5: athrow
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childrenToClose
         6: .line 1475
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
            aload 4 /* childrenToClose */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl[] top int int com.oracle.truffle.polyglot.PolyglotContextImpl[]
      StackMap stack:
         7: aload 8
            iload 6
            aaload
            astore 5 /* childContext */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl childContext
         8: .line 1476
            aload 5 /* childContext */
            iload 1 /* cancelIfExecuting */
            iload 2 /* waitForPolyglotThreads */
            iload 3 /* notifyInstruments */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            pop
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl childContext
         9: .line 1475
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 1478
            return
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl[] childrenToClose
        end local 3 // boolean notifyInstruments
        end local 2 // boolean waitForPolyglotThreads
        end local 1 // boolean cancelIfExecuting
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   12     0                    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   12     1       cancelIfExecuting  Z
            0   12     2  waitForPolyglotThreads  Z
            0   12     3       notifyInstruments  Z
            2    4     4         childrenToClose  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            6   12     4         childrenToClose  [Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            8    9     5            childContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
                        Name  Flags
      cancelIfExecuting       
      waitForPolyglotThreads  
      notifyInstruments       

  private java.util.List<com.oracle.truffle.polyglot.PolyglotLanguageContext> disposeContext();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1481
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
         2: .line 1484
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* disposedContexts */
        start local 1 // java.util.List disposedContexts
         3: .line 1485
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         4: .line 1486
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         5: goto 11
         6: .line 1487
      StackMap locals: java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            iload 3 /* i */
            aaload
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         7: .line 1488
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.dispose:()Z
            istore 5 /* disposed */
        start local 5 // boolean disposed
         8: .line 1489
            iload 5 /* disposed */
            ifeq 10
         9: .line 1490
            aload 1 /* disposedContexts */
            aload 4 /* context */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // boolean disposed
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        10: .line 1486
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            ifge 6
        end local 3 // int i
        12: .line 1485
            aload 2
            monitorexit
        13: goto 16
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 1494
      StackMap locals:
      StackMap stack:
            aload 1 /* disposedContexts */
            astore 7
        17: .line 1496
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
        18: .line 1494
            aload 7
            areturn
        end local 1 // java.util.List disposedContexts
        19: .line 1495
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            astore 6
        20: .line 1496
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.disposing:Z
        21: .line 1497
            aload 6
            athrow
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3   19     1  disposedContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;
            5   12     3                 i  I
            7   10     4           context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            8   10     5          disposed  Z
      Exception table:
        from    to  target  type
           4    13      14  any
          14    15      14  any
           2    17      19  any
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;>;

  private void finalizeContext(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean notifyInstruments
         0: .line 1505
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* finalizationPerformed */
        start local 2 // boolean finalizationPerformed
         1: .line 1508
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 1509
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            iload 3 /* i */
            aaload
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         4: .line 1510
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 6
         5: .line 1511
            iload 2 /* finalizationPerformed */
            aload 4 /* context */
            iload 1 /* notifyInstruments */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.finalizeContext:(Z)Z
            ior
            istore 2 /* finalizationPerformed */
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         6: .line 1508
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            ifge 3
        end local 3 // int i
         8: .line 1514
            iload 2 /* finalizationPerformed */
            ifne 0
         9: .line 1515
            return
        end local 2 // boolean finalizationPerformed
        end local 1 // boolean notifyInstruments
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   10     1      notifyInstruments  Z
            1   10     2  finalizationPerformed  Z
            2    8     3                      i  I
            4    6     4                context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                   Name  Flags
      notifyInstruments  

  synchronized void sendInterrupt();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1518
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.interrupting:Z
            ifne 2
         1: .line 1519
            return
         2: .line 1521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 1 /* threadInfo */
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         4: .line 1522
            aload 1 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isCurrent:()Z
            ifne 6
            aload 1 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.isActiveNotCancelled:()Z
            ifeq 6
         5: .line 1528
            aload 1 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         6: .line 1521
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 1531
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    6     1  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;

  java.lang.Object getLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
         0: .line 1534
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1535
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    2     1     l  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    MethodParameters:
      Name  Flags
      l     

  private java.lang.Object[] getCurrentThreadLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl e
         0: .line 1539
            aload 1 /* e */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         1: .line 1541
            aload 1 /* e */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 8
         2: .line 1542
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getId:()J
            lcmp
            ifne 5
         3: .line 1543
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
            astore 2 /* locals */
        start local 2 // java.lang.Object[] locals
         4: .line 1544
            goto 9
        end local 2 // java.lang.Object[] locals
         5: .line 1546
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         6: .line 1547
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.get:()[Ljava/lang/Object;
            astore 2 /* locals */
        start local 2 // java.lang.Object[] locals
         7: .line 1549
            goto 9
        end local 2 // java.lang.Object[] locals
         8: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.get:()[Ljava/lang/Object;
            astore 2 /* locals */
        start local 2 // java.lang.Object[] locals
         9: .line 1552
      StackMap locals: java.lang.Object[]
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 10
            aload 2 /* locals */
            ifnonnull 10
            new java.lang.AssertionError
            dup
            ldc "thread local not initialized."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 1553
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.inCompiledCode:()Z
            ifeq 12
        11: .line 1555
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 2 /* locals */
            ldc [Ljava/lang/Object;
            iconst_1
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.unsafeCast:(Ljava/lang/Object;Ljava/lang/Class;ZZZ)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* locals */
        12: .line 1557
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            astore 3 /* locations */
        start local 3 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        13: .line 1558
            aload 3 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 14
            aload 3 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            aload 2 /* locals */
            arraylength
            if_icmpeq 16
        14: .line 1560
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        15: .line 1561
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.updateThreadLocals:()[Ljava/lang/Object;
            astore 2 /* locals */
        16: .line 1563
      StackMap locals:
      StackMap stack:
            aload 2 /* locals */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        end local 2 // java.lang.Object[] locals
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl e
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   17     1          e  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    5     2     locals  [Ljava/lang/Object;
            7    8     2     locals  [Ljava/lang/Object;
            9   17     2     locals  [Ljava/lang/Object;
           13   17     3  locations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
    MethodParameters:
      Name  Flags
      e     

  private void setCurrentThreadLocals(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Object[] locals
         0: .line 1567
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 5
         2: .line 1569
            aload 0 /* this */
            aload 1 /* locals */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
         3: .line 1570
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getId:()J
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
         4: .line 1571
            goto 8
         5: .line 1572
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getId:()J
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
            lcmp
            ifne 8
         6: .line 1573
            aload 0 /* this */
            ldc -1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadLocalSingleThreadID:J
         7: .line 1574
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreadContextLocals:[Ljava/lang/Object;
         8: .line 1577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextThreadLocals:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextLocalsTL;
            aload 1 /* locals */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL.set:(Ljava/lang/Object;)V
         9: .line 1578
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* info */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        10: .line 1579
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 11
            aload 2 /* info */
            ifnonnull 11
            new java.lang.AssertionError
            dup
            ldc "thread not yet initialized"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 1580
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 12
            aload 2 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
            aload 1 /* locals */
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            ldc "thread locals consistent"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 1581
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 1 // java.lang.Object[] locals
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   13     1  locals  [Ljava/lang/Object;
           10   13     2    info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
        Name  Flags
      locals  

  private java.lang.Object[] getThreadLocals(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Thread thread
         0: .line 1584
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            aload 1 /* thread */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 2 /* threadInfo */
        start local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         2: .line 1586
            aload 2 /* threadInfo */
            ifnonnull 4
         3: .line 1587
            aconst_null
            areturn
         4: .line 1589
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 2 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    5     1      thread  Ljava/lang/Thread;
            2    5     2  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
        Name  Flags
      thread  

  java.lang.Object getThreadLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
         0: .line 1593
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1595
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 1596
            aload 1 /* l */
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
         3: .line 1598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* l */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocalBoundary:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    4     1     l  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    MethodParameters:
      Name  Flags
      l     

  private java.lang.Object getThreadLocalBoundary(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
         0: .line 1604
            aload 1 /* l */
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getCurrentThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1     l  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      l     

  synchronized java.lang.Object getThreadLocal(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)Ljava/lang/Object;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
        start local 2 // java.lang.Thread t
         0: .line 1614
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* l */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1615
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocals:(Ljava/lang/Thread;)[Ljava/lang/Object;
            astore 3 /* threadLocals */
        start local 3 // java.lang.Object[] threadLocals
         2: .line 1616
            aload 3 /* threadLocals */
            ifnonnull 4
         3: .line 1617
            aconst_null
            areturn
         4: .line 1619
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 1 /* l */
            aload 0 /* this */
            aload 3 /* threadLocals */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.readLocal:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;[Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object[] threadLocals
        end local 2 // java.lang.Thread t
        end local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation l
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    5     1             l  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            0    5     2             t  Ljava/lang/Thread;
            2    5     3  threadLocals  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      l     
      t     

  void initializeThreadLocals(com.oracle.truffle.polyglot.PolyglotThreadInfo);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         0: .line 1623
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1624
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 2
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 1 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            ldc "thread locals must only be initialized on the current thread"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            astore 2 /* locations */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
         3: .line 1627
            aload 2 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            anewarray java.lang.Object
            astore 3 /* locals */
        start local 3 // java.lang.Object[] locals
         4: .line 1629
            aload 1 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            astore 4 /* thread */
        start local 4 // java.lang.Thread thread
         5: .line 1630
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] java.lang.Thread top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 5 /* instrument */
        start local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         7: .line 1631
            aload 5 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.isCreated:()Z
            ifeq 10
         8: .line 1632
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            aload 5 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
         9: .line 1633
            aload 0 /* this */
            aload 3 /* locals */
            aload 5 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aload 4 /* thread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
        end local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        10: .line 1630
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 1636
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] java.lang.Thread top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
        12: aload 8
            iload 6
            aaload
            astore 5 /* language */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext language
        13: .line 1637
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifeq 16
        14: .line 1638
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            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
        15: .line 1639
            aload 0 /* this */
            aload 3 /* locals */
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.contextThreadLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aload 4 /* thread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext language
        16: .line 1636
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 12
        18: .line 1642
            aload 1 /* threadInfo */
            aload 3 /* locals */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.setContextThreadLocals:([Ljava/lang/Object;)V
        19: .line 1643
            aload 0 /* this */
            aload 3 /* locals */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCurrentThreadLocals:([Ljava/lang/Object;)V
        20: .line 1644
            return
        end local 4 // java.lang.Thread thread
        end local 3 // java.lang.Object[] locals
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   21     1  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            3   21     2   locations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            4   21     3      locals  [Ljava/lang/Object;
            5   21     4      thread  Ljava/lang/Thread;
            7   10     5  instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           13   16     5    language  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
            Name  Flags
      threadInfo  

  void initializeContextLocals();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1647
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            ifnull 3
         2: .line 1651
            return
         3: .line 1654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            astore 1 /* locations */
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
         4: .line 1655
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            anewarray java.lang.Object
            astore 2 /* locals */
        start local 2 // java.lang.Object[] locals
         5: .line 1657
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[] top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 3 /* instrument */
        start local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         7: .line 1658
            aload 3 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.isCreated:()Z
            ifeq 9
         8: .line 1659
            aload 0 /* this */
            aload 2 /* locals */
            aload 3 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.contextLocalLocations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextLocalsFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
        end local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         9: .line 1657
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 1665
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            ifnull 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1666
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* locals */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
        12: .line 1667
            return
        end local 2 // java.lang.Object[] locals
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4   13     1   locations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            5   13     2      locals  [Ljava/lang/Object;
            7    9     3  instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;

  private synchronized java.lang.Object[] updateThreadLocals();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1673
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getThreadLocals:(Ljava/lang/Thread;)[Ljava/lang/Object;
            astore 1 /* newThreadLocals */
        start local 1 // java.lang.Object[] newThreadLocals
         2: .line 1675
            aload 0 /* this */
            aload 1 /* newThreadLocals */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCurrentThreadLocals:([Ljava/lang/Object;)V
         3: .line 1676
            aload 1 /* newThreadLocals */
            areturn
        end local 1 // java.lang.Object[] newThreadLocals
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    4     1  newThreadLocals  [Ljava/lang/Object;

  void resizeContextThreadLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
         0: .line 1680
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
      StackMap stack:
         2: 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
         3: .line 1682
            aload 2 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
            astore 4 /* threadLocals */
        start local 4 // java.lang.Object[] threadLocals
         4: .line 1683
            aload 4 /* threadLocals */
            arraylength
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            if_icmpge 6
         5: .line 1684
            aload 2 /* threadInfo */
            aload 4 /* threadLocals */
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.setContextThreadLocals:([Ljava/lang/Object;)V
        end local 4 // java.lang.Object[] threadLocals
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         6: .line 1681
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1687
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    8     1     locations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            3    6     2    threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            4    6     4  threadLocals  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      locations  

  void resizeContextLocals(com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
         0: .line 1690
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            pop
         1: .line 1691
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
            astore 2 /* oldLocals */
        start local 2 // java.lang.Object[] oldLocals
         2: .line 1692
            aload 2 /* oldLocals */
            ifnull 8
         3: .line 1693
            aload 2 /* oldLocals */
            arraylength
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            if_icmple 5
         4: .line 1694
            new java.lang.AssertionError
            dup
            ldc "Context locals array must never shrink."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 1695
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            aload 2 /* oldLocals */
            arraylength
            if_icmple 9
         6: .line 1696
            aload 0 /* this */
            aload 2 /* oldLocals */
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
         7: .line 1698
            goto 9
         8: .line 1699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* locations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            anewarray java.lang.Object
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.contextLocals:[Ljava/lang/Object;
         9: .line 1701
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object[] oldLocals
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations locations
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   10     1  locations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            2   10     2  oldLocals  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      locations  

  void invokeContextLocalsFactory(java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]);
    descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Object[] locals
        start local 2 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
         0: .line 1704
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1705
      StackMap locals:
      StackMap stack:
            aload 2 /* locations */
            ifnonnull 3
         2: .line 1706
            return
         3: .line 1709
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 9
         5: .line 1710
      StackMap locals: int
      StackMap stack:
            aload 2 /* locations */
            iload 3 /* i */
            aaload
            astore 4 /* location */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation location
         6: .line 1711
            aload 1 /* locals */
            aload 4 /* location */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aaload
            ifnonnull 8
         7: .line 1712
            aload 1 /* locals */
            aload 4 /* location */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aload 4 /* location */
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.invokeFactory:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)Ljava/lang/Object;
            aastore
        end local 4 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation location
         8: .line 1709
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 2 /* locations */
            arraylength
            if_icmplt 5
        end local 3 // int i
        10: .line 1715
            goto 18
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
      StackMap stack: java.lang.Throwable
        11: astore 3 /* t */
        start local 3 // java.lang.Throwable t
        12: .line 1717
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: goto 16
        14: .line 1718
      StackMap locals: java.lang.Throwable int
      StackMap stack:
            aload 1 /* locals */
            aload 2 /* locations */
            iload 4 /* i */
            aaload
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aconst_null
            aastore
        15: .line 1717
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 2 /* locations */
            arraylength
            if_icmplt 14
        end local 4 // int i
        17: .line 1720
            aload 3 /* t */
            athrow
        end local 3 // java.lang.Throwable t
        18: .line 1722
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
        end local 1 // java.lang.Object[] locals
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   19     1     locals  [Ljava/lang/Object;
            0   19     2  locations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            4   10     3          i  I
            6    8     4   location  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           12   18     3          t  Ljava/lang/Throwable;
           13   17     4          i  I
      Exception table:
        from    to  target  type
           3    10      11  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      locals     
      locations  

  void invokeContextThreadLocalFactory(com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]);
    descriptor: ([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
         0: .line 1725
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1726
      StackMap locals:
      StackMap stack:
            aload 1 /* locations */
            ifnonnull 3
         2: .line 1727
            return
         3: .line 1729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
      StackMap stack:
         4: 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
         5: .line 1730
            aload 0 /* this */
            aload 2 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getContextThreadLocals:()[Ljava/lang/Object;
            aload 1 /* locations */
            aload 2 /* threadInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.invokeContextThreadFactory:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
        end local 2 // com.oracle.truffle.polyglot.PolyglotThreadInfo threadInfo
         6: .line 1729
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1732
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    8     1   locations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            5    6     2  threadInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    MethodParameters:
           Name  Flags
      locations  

  private void invokeContextThreadFactory(java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[], java.lang.Thread);
    descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;Ljava/lang/Thread;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // java.lang.Object[] threadLocals
        start local 2 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
        start local 3 // java.lang.Thread thread
         0: .line 1735
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1736
      StackMap locals:
      StackMap stack:
            aload 2 /* locations */
            ifnonnull 3
         2: .line 1737
            return
         3: .line 1740
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 9
         5: .line 1741
      StackMap locals: int
      StackMap stack:
            aload 2 /* locations */
            iload 4 /* i */
            aaload
            astore 5 /* location */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation location
         6: .line 1742
            aload 1 /* threadLocals */
            aload 5 /* location */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aaload
            ifnonnull 8
         7: .line 1743
            aload 1 /* threadLocals */
            aload 5 /* location */
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aload 5 /* location */
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.invokeFactory:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Thread;)Ljava/lang/Object;
            aastore
        end local 5 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation location
         8: .line 1740
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 2 /* locations */
            arraylength
            if_icmplt 5
        end local 4 // int i
        10: .line 1746
            goto 18
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] java.lang.Thread
      StackMap stack: java.lang.Throwable
        11: astore 4 /* t */
        start local 4 // java.lang.Throwable t
        12: .line 1748
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 16
        14: .line 1749
      StackMap locals: java.lang.Throwable int
      StackMap stack:
            aload 1 /* threadLocals */
            aload 2 /* locations */
            iload 5 /* i */
            aaload
            getfield com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation.index:I
            aconst_null
            aastore
        15: .line 1748
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            aload 2 /* locations */
            arraylength
            if_icmplt 14
        end local 5 // int i
        17: .line 1751
            aload 4 /* t */
            athrow
        end local 4 // java.lang.Throwable t
        18: .line 1753
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Thread thread
        end local 2 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locations
        end local 1 // java.lang.Object[] threadLocals
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   19     1  threadLocals  [Ljava/lang/Object;
            0   19     2     locations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            0   19     3        thread  Ljava/lang/Thread;
            4   10     4             i  I
            6    8     5      location  Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           12   18     4             t  Ljava/lang/Throwable;
           13   17     5             i  I
      Exception table:
        from    to  target  type
           3    10      11  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      threadLocals  
      locations     
      thread        

  static java.lang.String invalidSharingError(com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl expectedEngine
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl actualEngine
         0: .line 1756
            ldc "Detected invaliding sharing of context locals between polyglot engines. Expected engine %s but was %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* expectedEngine */
            aastore
            dup
            iconst_1
            aload 1 /* actualEngine */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl actualEngine
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl expectedEngine
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  expectedEngine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    1     1    actualEngine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    MethodParameters:
                Name  Flags
      expectedEngine  
      actualEngine    

  com.oracle.truffle.polyglot.PolyglotThreadInfo getCurrentThreadInfo();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1760
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            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 1761
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 1 /* currentTInfo */
        start local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo currentTInfo
         2: .line 1763
            aload 1 /* currentTInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 6
         3: .line 1764
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.threads:Ljava/util/Map;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotThreadInfo
            astore 1 /* currentTInfo */
         4: .line 1765
            aload 1 /* currentTInfo */
            ifnonnull 6
         5: .line 1767
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 1 /* currentTInfo */
         6: .line 1770
      StackMap locals: com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.$assertionsDisabled:Z
            ifne 7
            aload 1 /* currentTInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            ifnull 7
            aload 1 /* currentTInfo */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 1772
      StackMap locals:
      StackMap stack:
            aload 1 /* currentTInfo */
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotThreadInfo currentTInfo
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    8     1  currentTInfo  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;

  boolean patch(com.oracle.truffle.polyglot.PolyglotContextConfig);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig newConfig
         0: .line 1776
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1778
            aload 0 /* this */
            aload 1 /* newConfig */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
         2: .line 1779
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.initializeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         3: .line 1780
            aload 1 /* newConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 5
         4: .line 1781
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            aload 1 /* newConfig */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
         5: .line 1783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* prev */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
         6: .line 1785
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         7: goto 13
         8: .line 1786
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            iload 3 /* i */
            aaload
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         9: .line 1787
            aload 4 /* context */
            aload 1 /* newConfig */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.patch:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
            ifne 12
        10: .line 1792
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        11: .line 1788
            iconst_0
            ireturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        12: .line 1785
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            arraylength
            if_icmplt 8
        end local 3 // int i
        14: .line 1791
            goto 18
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        15: astore 5
        16: .line 1792
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        17: .line 1793
            aload 5
            athrow
        18: .line 1792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* prev */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        19: .line 1794
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig newConfig
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   20     1  newConfig  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            6   20     2       prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7   14     3          i  I
            9   12     4    context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
      Exception table:
        from    to  target  type
           6    10      15  any
          12    15      15  any
    MethodParameters:
           Name  Flags
      newConfig  

  void replayInstrumentationEvents();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1798
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyContextCreated:()V
         1: .line 1799
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* lc */
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext lc
         3: .line 1800
            aload 1 /* lc */
            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;
            astore 5 /* language */
        start local 5 // com.oracle.truffle.api.nodes.LanguageInfo language
         4: .line 1801
            aload 1 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 10
            aload 1 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnull 10
         5: .line 1802
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 5 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextCreated:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
         6: .line 1803
            aload 1 /* lc */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 10
         7: .line 1804
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 5 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextInitialized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
         8: .line 1805
            aload 1 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
            ifeq 10
         9: .line 1806
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 5 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.notifyLanguageContextFinalized:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 5 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext lc
        10: .line 1799
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        11: iload 2
            iload 3
            if_icmplt 2
        12: .line 1811
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3   10     1        lc  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            4   10     5  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;

  synchronized void checkSubProcessFinished();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1814
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.subProcesses:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[]
            astore 1 /* processes */
        start local 1 // com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[] processes
         1: .line 1815
            aload 1 /* processes */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[] top int int com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* process */
        start local 2 // com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator process
         3: .line 1816
            aload 2 /* process */
            invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.isAlive:()Z
            ifeq 7
         4: .line 1817
            ldc "The context has an alive sub-process %s created by %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 1818
            aload 2 /* process */
            invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.getCommand:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* process */
            invokevirtual com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator.getOwner:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            aastore
         6: .line 1817
            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
        end local 2 // com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator process
         7: .line 1815
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 2
         9: .line 1821
            return
        end local 1 // com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator[] processes
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   10     1  processes  [Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;
            3    7     2    process  Lcom/oracle/truffle/polyglot/ProcessHandlers$ProcessDecorator;

  static com.oracle.truffle.polyglot.PolyglotContextImpl preInitialize(com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=26, locals=20, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         0: .line 1824
            new com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            dup
            invokespecial com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.<init>:()V
            astore 1 /* fs */
        start local 1 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem fs
         1: .line 1825
            new com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            dup
            invokespecial com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.<init>:()V
            astore 2 /* internalFs */
        start local 2 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem internalFs
         2: .line 1826
            invokestatic org.graalvm.collections.EconomicSet.create:()Lorg/graalvm/collections/EconomicSet;
            astore 3 /* allowedLanguages */
        start local 3 // org.graalvm.collections.EconomicSet allowedLanguages
         3: .line 1827
            aload 3 /* allowedLanguages */
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface org.graalvm.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
         4: .line 1828
            new com.oracle.truffle.polyglot.PolyglotContextConfig
            dup
            aload 0 /* engine */
         5: .line 1829
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         6: .line 1830
            getstatic java.lang.System.err:Ljava/io/PrintStream;
         7: .line 1831
            getstatic java.lang.System.in:Ljava/io/InputStream;
         8: .line 1832
            iconst_0
         9: .line 1833
            getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
        10: .line 1834
            iconst_0
        11: .line 1835
            iconst_0
        12: .line 1836
            iconst_0
        13: .line 1837
            iconst_0
        14: .line 1838
            aconst_null
        15: .line 1839
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
        16: .line 1840
            aload 3 /* allowedLanguages */
        17: .line 1841
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
        18: .line 1842
            aload 1 /* fs */
            aload 2 /* internalFs */
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            iconst_0
            aconst_null
        19: .line 1843
            getstatic org.graalvm.polyglot.EnvironmentAccess.INHERIT:Lorg/graalvm/polyglot/EnvironmentAccess;
            aconst_null
            aconst_null
            aconst_null
            aconst_null
        20: .line 1828
            invokespecial com.oracle.truffle.polyglot.PolyglotContextConfig.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/PolyglotAccess;ZZZZLjava/util/function/Predicate;Ljava/util/Map;Lorg/graalvm/collections/EconomicSet;Ljava/util/Map;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;Ljava/util/logging/Handler;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map;Ljava/time/ZoneId;Lcom/oracle/truffle/polyglot/PolyglotLimits;Ljava/lang/ClassLoader;)V
            astore 4 /* config */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        21: .line 1845
            new com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            aload 0 /* engine */
            aload 4 /* config */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        22: .line 1847
            aload 5 /* context */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
        23: .line 1848
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.PreinitializeContexts:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* oldOption */
        start local 6 // java.lang.String oldOption
        24: .line 1849
            ldc "PreinitializeContexts"
            invokestatic com.oracle.truffle.polyglot.ImageBuildTimeOptions.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* newOption */
        start local 7 // java.lang.String newOption
        25: .line 1851
            aload 6 /* oldOption */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 28
            aload 7 /* newOption */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 28
        26: .line 1852
            new java.lang.StringBuilder
            dup
            aload 6 /* oldOption */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* newOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* optionValue */
        start local 8 // java.lang.String optionValue
        27: .line 1853
            goto 29
        end local 8 // java.lang.String optionValue
        28: .line 1854
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* oldOption */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* newOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* optionValue */
        start local 8 // java.lang.String optionValue
        29: .line 1857
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* languagesToPreinitialize */
        start local 9 // java.util.Set languagesToPreinitialize
        30: .line 1858
            aload 8 /* optionValue */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 32
        31: .line 1859
            aload 9 /* languagesToPreinitialize */
            aload 8 /* optionValue */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
        32: .line 1861
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 36
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top java.util.Iterator
      StackMap stack:
        33: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 10 /* language */
        start local 10 // com.oracle.truffle.polyglot.PolyglotLanguage language
        34: .line 1862
            aload 10 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isFirstInstance:()Z
            ifne 36
        35: .line 1863
            aload 9 /* languagesToPreinitialize */
            aload 10 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.truffle.polyglot.PolyglotLanguage language
        36: .line 1861
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        37: .line 1867
            aload 9 /* languagesToPreinitialize */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 64
        38: .line 1868
            aload 5 /* context */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
        39: .line 1870
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 5 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 10 /* prev */
        start local 10 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        40: .line 1872
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 12
            goto 53
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
        41: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* languageId */
        start local 11 // java.lang.String languageId
        42: .line 1873
            aload 9 /* languagesToPreinitialize */
            aload 11 /* languageId */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 51
        43: .line 1874
            aload 0 /* engine */
            aconst_null
            aload 11 /* languageId */
            aconst_null
            iconst_0
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 13 /* language */
        start local 13 // com.oracle.truffle.polyglot.PolyglotLanguage language
        44: .line 1875
            aload 13 /* language */
            ifnull 51
        45: .line 1876
            aload 11 /* languageId */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.overridesPatchContext:(Ljava/lang/String;)Z
            ifeq 49
        46: .line 1877
            aload 5 /* context */
            aload 13 /* language */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            pop
        47: .line 1878
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Pre-initialized context for language: {0}"
            aload 13 /* language */
            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
        48: .line 1879
            goto 51
        49: .line 1882
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 13 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isFirstInstance:()Z
            ifeq 51
        50: .line 1883
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.LOG:Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "Language {0} cannot be pre-initialized as it does not override TruffleLanguage.patchContext method."
            aload 11 /* languageId */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        end local 13 // com.oracle.truffle.polyglot.PolyglotLanguage language
        51: .line 1889
      StackMap locals:
      StackMap stack:
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 11 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 13 /* language */
        start local 13 // com.oracle.truffle.polyglot.PolyglotLanguage language
        52: .line 1890
            aload 13 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.clearOptionValues:()V
        end local 13 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 11 // java.lang.String languageId
        53: .line 1872
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        54: .line 1892
            goto 58
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        55: astore 14
        56: .line 1893
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 10 /* prev */
            aload 5 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        57: .line 1894
            aload 14
            athrow
        58: .line 1893
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 10 /* prev */
            aload 5 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 10 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        59: .line 1895
            goto 63
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set
      StackMap stack: java.lang.Throwable
        60: astore 15
        61: .line 1896
            aload 5 /* context */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
        62: .line 1897
            aload 15
            athrow
        63: .line 1896
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
        64: .line 1900
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
        65: .line 1901
            aload 5 /* context */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
        66: .line 1902
            aload 5 /* context */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        67: .line 1903
            aload 5 /* context */
            astore 17
        68: .line 1905
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 19
            goto 71
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top top top top top top top com.oracle.truffle.polyglot.PolyglotContextImpl top java.util.Iterator
      StackMap stack:
        69: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.source.Source
            astore 18 /* sourceToInvalidate */
        start local 18 // com.oracle.truffle.api.source.Source sourceToInvalidate
        70: .line 1906
            getstatic com.oracle.truffle.polyglot.EngineAccessor.SOURCE:Lcom/oracle/truffle/api/impl/Accessor$SourceSupport;
            aload 18 /* sourceToInvalidate */
            invokevirtual com.oracle.truffle.api.impl.Accessor$SourceSupport.invalidateAfterPreinitialiation:(Lcom/oracle/truffle/api/source/Source;)V
        end local 18 // com.oracle.truffle.api.source.Source sourceToInvalidate
        71: .line 1905
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 69
        72: .line 1908
            aload 5 /* context */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
        73: .line 1909
            aload 1 /* fs */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
        74: .line 1910
            aload 2 /* internalFs */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
        75: .line 1911
            invokestatic com.oracle.truffle.polyglot.FileSystems.resetDefaultFileSystemProvider:()V
        76: .line 1912
            aload 4 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 78
        77: .line 1913
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 5 /* context */
            aconst_null
            aload 0 /* engine */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
        78: .line 1903
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.String java.lang.String java.lang.String java.util.Set top top top top top top top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 17
            areturn
        end local 9 // java.util.Set languagesToPreinitialize
        end local 8 // java.lang.String optionValue
        end local 7 // java.lang.String newOption
        end local 6 // java.lang.String oldOption
        79: .line 1904
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
            astore 16
        80: .line 1905
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 19
            goto 83
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl top top top top top top top top top top java.lang.Throwable top top java.util.Iterator
      StackMap stack:
        81: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.source.Source
            astore 18 /* sourceToInvalidate */
        start local 18 // com.oracle.truffle.api.source.Source sourceToInvalidate
        82: .line 1906
            getstatic com.oracle.truffle.polyglot.EngineAccessor.SOURCE:Lcom/oracle/truffle/api/impl/Accessor$SourceSupport;
            aload 18 /* sourceToInvalidate */
            invokevirtual com.oracle.truffle.api.impl.Accessor$SourceSupport.invalidateAfterPreinitialiation:(Lcom/oracle/truffle/api/source/Source;)V
        end local 18 // com.oracle.truffle.api.source.Source sourceToInvalidate
        83: .line 1905
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 81
        84: .line 1908
            aload 5 /* context */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
        85: .line 1909
            aload 1 /* fs */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
        86: .line 1910
            aload 2 /* internalFs */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onPreInitializeContextEnd:()V
        87: .line 1911
            invokestatic com.oracle.truffle.polyglot.FileSystems.resetDefaultFileSystemProvider:()V
        88: .line 1912
            aload 4 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 90
        89: .line 1913
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 5 /* context */
            aconst_null
            aload 0 /* engine */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getAllLoggers:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
        90: .line 1915
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.collections.EconomicSet com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotContextImpl top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 16
            athrow
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        end local 3 // org.graalvm.collections.EconomicSet allowedLanguages
        end local 2 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem internalFs
        end local 1 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem fs
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   91     0                    engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1   91     1                        fs  Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
            2   91     2                internalFs  Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
            3   91     3          allowedLanguages  Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;
           21   91     4                    config  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
           22   91     5                   context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           24   79     6                 oldOption  Ljava/lang/String;
           25   79     7                 newOption  Ljava/lang/String;
           27   28     8               optionValue  Ljava/lang/String;
           29   79     8               optionValue  Ljava/lang/String;
           30   79     9  languagesToPreinitialize  Ljava/util/Set<Ljava/lang/String;>;
           34   36    10                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           40   59    10                      prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           42   53    11                languageId  Ljava/lang/String;
           44   51    13                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           52   53    13                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           70   71    18        sourceToInvalidate  Lcom/oracle/truffle/api/source/Source;
           82   83    18        sourceToInvalidate  Lcom/oracle/truffle/api/source/Source;
      Exception table:
        from    to  target  type
          40    55      55  any
          39    60      60  any
          22    68      79  any
    MethodParameters:
        Name  Flags
      engine  final

  private static java.lang.Object[] getAllLoggers(com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         0: .line 1919
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getDefaultLoggers:()Ljava/lang/Object;
            astore 1 /* defaultLoggers */
        start local 1 // java.lang.Object defaultLoggers
         1: .line 1920
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLoggers:()Ljava/lang/Object;
            astore 2 /* engineLoggers */
        start local 2 // java.lang.Object engineLoggers
         2: .line 1921
            aload 2 /* engineLoggers */
            ifnonnull 3
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* defaultLoggers */
            aastore
            goto 4
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
         3: iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* defaultLoggers */
            aastore
            dup
            iconst_1
            aload 2 /* engineLoggers */
            aastore
      StackMap locals:
      StackMap stack: java.lang.Object[]
         4: areturn
        end local 2 // java.lang.Object engineLoggers
        end local 1 // java.lang.Object defaultLoggers
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0          engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1    5     1  defaultLoggers  Ljava/lang/Object;
            2    5     2   engineLoggers  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      engine  

  com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution createCancelException(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelExecution;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node location
         0: .line 1936
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution
            dup
            aload 1 /* location */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidMessage:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidResourceLimit:Z
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;Z)V
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node location
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1  location  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      location  

  synchronized boolean invalidate(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
        start local 1 // boolean resourceLimit
        start local 2 // java.lang.String message
         0: .line 1940
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifne 6
         1: .line 1941
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotThreadInfo.NULL:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.setCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;)V
         2: .line 1946
            aload 0 /* this */
            aload 2 /* message */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidMessage:Ljava/lang/String;
         3: .line 1947
            aload 0 /* this */
            iload 1 /* resourceLimit */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalidResourceLimit:Z
         4: .line 1948
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
         5: .line 1949
            iconst_1
            ireturn
         6: .line 1951
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String message
        end local 1 // boolean resourceLimit
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    7     1  resourceLimit  Z
            0    7     2        message  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      resourceLimit  
      message        

  private static boolean overridesPatchContext(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.String languageId
         0: .line 1955
            invokestatic com.oracle.truffle.polyglot.LanguageCache.languages:()Ljava/util/Map;
            aload 0 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 1 /* cache */
        start local 1 // com.oracle.truffle.polyglot.LanguageCache cache
         1: .line 1956
            aload 1 /* cache */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.loadLanguage:()Lcom/oracle/truffle/api/TruffleLanguage;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: java.lang.String com.oracle.truffle.polyglot.LanguageCache top int int java.lang.reflect.Method[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* m */
        start local 2 // java.lang.reflect.Method m
         3: .line 1957
            aload 2 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "patchContext"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1958
            iconst_1
            ireturn
        end local 2 // java.lang.reflect.Method m
         5: .line 1956
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 1961
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.polyglot.LanguageCache cache
        end local 0 // java.lang.String languageId
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0  languageId  Ljava/lang/String;
            1    8     1       cache  Lcom/oracle/truffle/polyglot/LanguageCache;
            3    5     2           m  Ljava/lang/reflect/Method;
    MethodParameters:
            Name  Flags
      languageId  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
         0: .line 1974
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* b */
        start local 1 // java.lang.StringBuilder b
         1: .line 1975
            aload 1 /* b */
            ldc "PolyglotContextImpl["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1976
            aload 1 /* b */
            ldc "state="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 1977
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifeq 8
         4: .line 1978
            aload 1 /* b */
            ldc "closed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 1979
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 15
         6: .line 1980
            aload 1 /* b */
            ldc " invalid"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1982
            goto 15
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         8: aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.cancelling:Z
            ifeq 11
         9: .line 1983
            aload 1 /* b */
            ldc "cancelling"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1984
            goto 15
        11: .line 1985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActive:()Z
            ifeq 14
        12: .line 1986
            aload 1 /* b */
            ldc "active"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1987
            goto 15
        14: .line 1988
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            ldc "inactive"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 1992
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            ldc " languages=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 1993
            ldc ""
            astore 2 /* sep */
        start local 2 // java.lang.String sep
        17: .line 1994
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 24
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
        18: aload 6
            iload 4
            aaload
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        19: .line 1995
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifne 20
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifeq 23
        20: .line 1996
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            aload 1 /* b */
            aload 2 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 1997
            aload 1 /* b */
            aload 3 /* languageContext */
            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.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 1998
            ldc ", "
            astore 2 /* sep */
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        23: .line 1994
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.StringBuilder java.lang.String top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        24: iload 4
            iload 5
            if_icmplt 18
        25: .line 2001
            aload 1 /* b */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 2002
            aload 1 /* b */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 2003
            aload 1 /* b */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String sep
        end local 1 // java.lang.StringBuilder b
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   28     1                b  Ljava/lang/StringBuilder;
           17   28     2              sep  Ljava/lang/String;
           19   23     3  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
}
SourceFile: "PolyglotContextImpl.java"
NestMembers:
  com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL  com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference  com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState
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 LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
  public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
  public abstract SourceSupport = com.oracle.truffle.api.impl.Accessor$SourceSupport of com.oracle.truffle.api.impl.Accessor
  final PreInitializeContextFileSystem = com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem of com.oracle.truffle.polyglot.FileSystems
  final HostContext = com.oracle.truffle.polyglot.HostLanguage$HostContext of com.oracle.truffle.polyglot.HostLanguage
  final ContextLocalsTL = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextLocalsTL of com.oracle.truffle.polyglot.PolyglotContextImpl
  ContextWeakReference = com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference of com.oracle.truffle.polyglot.PolyglotContextImpl
  final SingleContextState = com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState of com.oracle.truffle.polyglot.PolyglotContextImpl
  final CancelExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
  final CancelHandler = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler of com.oracle.truffle.polyglot.PolyglotEngineImpl
  final StableLocalLocations = com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations of com.oracle.truffle.polyglot.PolyglotEngineImpl
  abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
  abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
  final ProcessDecorator = com.oracle.truffle.polyglot.ProcessHandlers$ProcessDecorator of com.oracle.truffle.polyglot.ProcessHandlers
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractContextImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl