final class com.oracle.truffle.polyglot.PolyglotEngineImpl extends org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl 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.PolyglotEngineImpl
  super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl
{
  static final int HOST_LANGUAGE_INDEX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final java.lang.String HOST_LANGUAGE_ID;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "host"

  static final java.lang.String OPTION_GROUP_ENGINE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "engine"

  static final java.lang.String OPTION_GROUP_LOG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "log"

  static final java.lang.String OPTION_GROUP_IMAGE_BUILD_TIME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "image-build-time"

  static final java.lang.String LOG_FILE_OPTION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "log.file"

  private static final java.util.Set<java.lang.String> RESERVED_IDS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Map<com.oracle.truffle.polyglot.PolyglotEngineImpl, java.lang.Void> ENGINES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Void;>;

  private static volatile boolean shutdownHookInitialized;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final boolean DEBUG_MISSING_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] EMPTY_LOCATIONS;
    descriptor: [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

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

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

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

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

  com.oracle.truffle.api.impl.DispatchOutputStream out;
    descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
    flags: (0x0000) 

  com.oracle.truffle.api.impl.DispatchOutputStream err;
    descriptor: Lcom/oracle/truffle/api/impl/DispatchOutputStream;
    flags: (0x0000) 

  java.io.InputStream in;
    descriptor: Ljava/io/InputStream;
    flags: (0x0000) 

  final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> idToLanguage;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;

  final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> classToLanguage;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;

  final java.util.Map<java.lang.String, org.graalvm.polyglot.Language> idToPublicLanguage;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;

  final java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> idToInternalLanguageInfo;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;

  final java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotInstrument> idToInstrument;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;

  final java.util.Map<java.lang.String, org.graalvm.polyglot.Instrument> idToPublicInstrument;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;

  final java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo> idToInternalInstrumentInfo;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;

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

  java.lang.ClassLoader contextClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0000) 

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

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

  java.util.logging.Handler logHandler;
    descriptor: Ljava/util/logging/Handler;
    flags: (0x0000) 

  final java.lang.Exception createdLocation;
    descriptor: Ljava/lang/Exception;
    flags: (0x0010) ACC_FINAL

  private final org.graalvm.collections.EconomicSet<com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference> contexts;
    descriptor: Lorg/graalvm/collections/EconomicSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/collections/EconomicSet<Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;>;

  final java.lang.ref.ReferenceQueue<com.oracle.truffle.polyglot.PolyglotContextImpl> contextsReferenceQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;

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

  com.oracle.truffle.polyglot.PolyglotLanguage hostLanguage;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0000) 

  com.oracle.truffle.api.Assumption singleContext;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

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

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

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

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

  volatile org.graalvm.options.OptionDescriptors allOptions;
    descriptor: Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0040) ACC_VOLATILE

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

  private volatile com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler cancelHandler;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  java.util.Map<java.lang.String, java.util.logging.Level> logLevels;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;

  com.oracle.truffle.polyglot.HostClassCache hostClassCache;
    descriptor: Lcom/oracle/truffle/polyglot/HostClassCache;
    flags: (0x0000) 

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

  private volatile java.util.function.Supplier<java.util.Map<java.lang.String, java.util.Collection<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector>>> fileTypeDetectorsSupplier;
    descriptor: Ljava/util/function/Supplier;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;

  final int contextLength;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  private volatile com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits limits;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final org.graalvm.polyglot.io.MessageTransport messageInterceptor;
    descriptor: Lorg/graalvm/polyglot/io/MessageTransport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile int asynchronousStackDepth;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private com.oracle.truffle.polyglot.HostToGuestCodeCache hostToGuestCodeCache;
    descriptor: Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  final com.oracle.truffle.api.dsl.SpecializationStatistics specializationStatistics;
    descriptor: Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
    flags: (0x0010) ACC_FINAL

  final java.util.function.Function<java.lang.String, com.oracle.truffle.api.TruffleLogger> engineLoggerSupplier;
    descriptor: Ljava/util/function/Function;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;

  private volatile com.oracle.truffle.api.TruffleLogger engineLogger;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

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

  private static final java.lang.String DISABLE_PRIVILEGES_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] DISABLED_PRIVILEGES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean ALLOW_CREATE_PROCESS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean ALLOW_ENVIRONMENT_ACCESS;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean ALLOW_IO;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.lang.Object NO_ENTER;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile com.oracle.truffle.polyglot.PolyglotEngineImpl fallbackEngine;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  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=6, locals=8, args_size=0
         0: .line 132
            ldc Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            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.PolyglotEngineImpl.$assertionsDisabled:Z
         3: .line 146
            new java.util.HashSet
            dup
            bipush 14
            anewarray java.lang.String
            dup
            iconst_0
         4: .line 147
            ldc "host"
            aastore
            dup
            iconst_1
            ldc "graal"
            aastore
            dup
            iconst_2
            ldc "truffle"
            aastore
            dup
            iconst_3
            ldc "language"
            aastore
            dup
            iconst_4
            ldc "instrument"
            aastore
            dup
            iconst_5
            ldc "graalvm"
            aastore
            dup
            bipush 6
            ldc "context"
            aastore
            dup
            bipush 7
            ldc "polyglot"
            aastore
            dup
            bipush 8
            ldc "compiler"
            aastore
            dup
            bipush 9
            ldc "vm"
            aastore
            dup
            bipush 10
            ldc "file"
            aastore
            dup
            bipush 11
         5: .line 148
            ldc "engine"
            aastore
            dup
            bipush 12
            ldc "log"
            aastore
            dup
            bipush 13
            ldc "image-build-time"
            aastore
         6: .line 147
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         7: .line 146
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
         8: .line 150
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
         9: .line 151
            iconst_0
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
        10: .line 152
            ldc "polyglotimpl.DebugMissingClose"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
        11: .line 153
            iconst_0
            anewarray com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
        12: .line 1540
            ldc "DisablePrivileges"
            invokestatic com.oracle.truffle.polyglot.ImageBuildTimeOptions.get:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
        13: .line 1541
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 14
            iconst_0
            anewarray java.lang.String
            goto 15
      StackMap locals:
      StackMap stack:
        14: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLE_PRIVILEGES_VALUE:Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String[]
        15: putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLED_PRIVILEGES:[Ljava/lang/String;
        16: .line 1548
            iconst_1
            istore 0 /* createProcess */
        start local 0 // boolean createProcess
        17: .line 1549
            iconst_1
            istore 1 /* environmentAccess */
        start local 1 // boolean environmentAccess
        18: .line 1550
            iconst_1
            istore 2 /* io */
        start local 2 // boolean io
        19: .line 1552
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DISABLED_PRIVILEGES:[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 33
      StackMap locals: int int int top int int java.lang.String[]
      StackMap stack:
        20: aload 6
            iload 4
            aaload
            astore 3 /* privilege */
        start local 3 // java.lang.String privilege
        21: .line 1553
            aload 3 /* privilege */
            dup
            astore 7
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
           -413746857: 22
                 3366: 23
           1936998867: 24
              default: 31
          }
      StackMap locals: int int int java.lang.String int int java.lang.String[] java.lang.String
      StackMap stack:
        22: aload 7
            ldc "environmentAccess"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 31
      StackMap locals:
      StackMap stack:
        23: aload 7
            ldc "io"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 31
      StackMap locals:
      StackMap stack:
        24: aload 7
            ldc "createProcess"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 31
        25: .line 1555
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 0 /* createProcess */
        26: .line 1556
            goto 32
        27: .line 1558
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* environmentAccess */
        28: .line 1559
            goto 32
        29: .line 1561
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* io */
        30: .line 1562
            goto 32
        31: .line 1564
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid privilege name for DisablePrivileges: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* privilege */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String privilege
        32: .line 1552
      StackMap locals: int int int top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        33: iload 4
            iload 5
            if_icmplt 20
        34: .line 1568
            iload 0 /* createProcess */
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_CREATE_PROCESS:Z
        35: .line 1569
            iload 1 /* environmentAccess */
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_ENVIRONMENT_ACCESS:Z
        36: .line 1570
            iload 2 /* io */
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
        end local 2 // boolean io
        end local 1 // boolean environmentAccess
        end local 0 // boolean createProcess
        37: .line 1816
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
        38: .line 1981
            return
      LocalVariableTable:
        Start  End  Slot               Name  Signature
           17   37     0      createProcess  Z
           18   37     1  environmentAccess  Z
           19   37     2                 io  Z
           21   32     3          privilege  Ljava/lang/String;

  void <init>(com.oracle.truffle.polyglot.PolyglotImpl, com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, com.oracle.truffle.polyglot.OptionValuesImpl, java.util.Map<java.lang.String, java.util.logging.Level>, com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.ClassLoader, boolean, boolean, org.graalvm.polyglot.io.MessageTransport, java.util.logging.Handler);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=23, args_size=15
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotImpl impl
        start local 2 // com.oracle.truffle.api.impl.DispatchOutputStream out
        start local 3 // com.oracle.truffle.api.impl.DispatchOutputStream err
        start local 4 // java.io.InputStream in
        start local 5 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        start local 6 // java.util.Map logLevels
        start local 7 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider engineLogger
        start local 8 // java.util.Map options
        start local 9 // boolean allowExperimentalOptions
        start local 10 // java.lang.ClassLoader contextClassLoader
        start local 11 // boolean boundEngine
        start local 12 // boolean preInitialization
        start local 13 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
        start local 14 // java.util.logging.Handler logHandler
         0: .line 227
            aload 0 /* this */
            aload 1 /* impl */
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
         1: .line 155
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
         2: .line 185
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
            ifeq 3
            new java.lang.Exception
            dup
            invokespecial java.lang.Exception.<init>:()V
            goto 4
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler
      StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl
         3: aconst_null
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler
      StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Exception
         4: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.createdLocation:Ljava/lang/Exception;
         5: .line 186
            aload 0 /* this */
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
         6: .line 187
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
         7: .line 188
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
         8: .line 191
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single context per engine."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
         9: .line 192
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single thread per context of an engine."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
        10: .line 193
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No inner contexts."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
        11: .line 194
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No custom host class loader needed."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
        12: .line 195
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No context interrupted."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
        13: .line 212
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
        14: .line 219
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        15: .line 220
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        16: .line 228
            aload 0 /* this */
            aload 13 /* messageInterceptor */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
        17: .line 229
            aload 0 /* this */
            aload 1 /* impl */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
        18: .line 230
            aload 0 /* this */
            aload 2 /* out */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        19: .line 231
            aload 0 /* this */
            aload 3 /* err */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        20: .line 232
            aload 0 /* this */
            aload 4 /* in */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
        21: .line 233
            aload 0 /* this */
            aload 10 /* contextClassLoader */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
        22: .line 234
            aload 0 /* this */
            aload 14 /* logHandler */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
        23: .line 235
            aload 0 /* this */
            aload 6 /* logLevels */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
        24: .line 236
            aload 0 /* this */
            iload 11 /* boundEngine */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
        25: .line 237
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 5 /* engineOptions */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isStoreEnabled:(Lorg/graalvm/options/OptionValues;)Z
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
        26: .line 239
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 15 /* languageInfos */
        start local 15 // java.util.Map languageInfos
        27: .line 240
            aload 0 /* this */
            aload 0 /* this */
            aload 15 /* languageInfos */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeLanguages:(Ljava/util/Map;)Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
        28: .line 241
            aload 0 /* this */
            aload 15 /* languageInfos */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
        29: .line 242
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iconst_1
            iadd
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
        30: .line 244
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 16 /* instrumentInfos */
        start local 16 // java.util.Map instrumentInfos
        31: .line 245
            aload 0 /* this */
            aload 0 /* this */
            aload 16 /* instrumentInfos */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeInstruments:(Ljava/util/Map;)Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
        32: .line 246
            aload 0 /* this */
            aload 16 /* instrumentInfos */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalInstrumentInfo:Ljava/util/Map;
        33: .line 247
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 5 /* engineOptions */
            aload 7 /* engineLogger */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.createRuntimeData:(Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)Ljava/lang/Object;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
        34: .line 249
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
        35: .line 250
            aload 0 /* this */
            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 18
            goto 38
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        36: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 17 /* language */
        start local 17 // com.oracle.truffle.polyglot.PolyglotLanguage language
        37: .line 251
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
            aload 17 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
            aload 17 /* language */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 17 // com.oracle.truffle.polyglot.PolyglotLanguage language
        38: .line 250
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        39: .line 254
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 18
            goto 46
      StackMap locals:
      StackMap stack:
        40: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* id */
        start local 17 // java.lang.String id
        41: .line 255
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 17 /* id */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 46
        42: .line 256
            aload 17 /* id */
        43: .line 257
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 17 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.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;
        44: .line 258
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 17 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
        45: .line 256
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 17 // java.lang.String id
        46: .line 254
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        47: .line 262
            aload 0 /* this */
            aload 7 /* engineLogger */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
        48: .line 263
            aload 0 /* this */
            aload 5 /* engineOptions */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
        49: .line 265
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 17 /* publicLanguages */
        start local 17 // java.util.Map publicLanguages
        50: .line 266
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 19
            goto 55
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        51: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 18 /* key */
        start local 18 // java.lang.String key
        52: .line 267
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 18 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 20 /* languageImpl */
        start local 20 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        53: .line 268
            aload 20 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifne 55
        54: .line 269
            aload 17 /* publicLanguages */
            aload 18 /* key */
            aload 20 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 20 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        end local 18 // java.lang.String key
        55: .line 266
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 51
        56: .line 272
            aload 0 /* this */
            aload 17 /* publicLanguages */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
        57: .line 274
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 18 /* publicInstruments */
        start local 18 // java.util.Map publicInstruments
        58: .line 275
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 20
            goto 63
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        59: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 19 /* key */
        start local 19 // java.lang.String key
        60: .line 276
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 19 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 21 /* instrumentImpl */
        start local 21 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        61: .line 277
            aload 21 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
            ifne 63
        62: .line 278
            aload 18 /* publicInstruments */
            aload 19 /* key */
            aload 21 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 21 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        end local 19 // java.lang.String key
        63: .line 275
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 59
        64: .line 281
            aload 0 /* this */
            aload 18 /* publicInstruments */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
        65: .line 282
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            aload 2 /* out */
            aload 3 /* err */
            aload 4 /* in */
            aload 13 /* messageInterceptor */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createInstrumentationHandler:(Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;Z)Ljava/lang/Object;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
        66: .line 284
            iload 11 /* boundEngine */
            ifne 68
        67: .line 285
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        68: .line 287
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
        69: .line 289
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 19 /* languagesOptions */
        start local 19 // java.util.Map languagesOptions
        70: .line 290
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 20 /* instrumentsOptions */
        start local 20 // java.util.Map instrumentsOptions
        71: .line 291
            aload 0 /* this */
            aload 8 /* options */
            aload 19 /* languagesOptions */
            aload 20 /* instrumentsOptions */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptions:(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
        72: .line 293
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.UseConservativeContextReferences:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
        73: .line 295
            aload 19 /* languagesOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 22
            goto 76
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        74: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 21 /* language */
        start local 21 // com.oracle.truffle.polyglot.PolyglotLanguage language
        75: .line 296
            aload 21 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            aload 19 /* languagesOptions */
            aload 21 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            iload 9 /* allowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
        end local 21 // com.oracle.truffle.polyglot.PolyglotLanguage language
        76: .line 295
      StackMap locals:
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 74
        77: .line 299
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.SpecializationStatistics:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 80
        78: .line 300
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.dsl.SpecializationStatistics.create:()Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
        79: .line 301
            goto 81
        80: .line 302
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader int int org.graalvm.polyglot.io.MessageTransport java.util.logging.Handler java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
        81: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.notifyCreated:()V
        82: .line 307
            iload 12 /* preInitialization */
            ifne 85
        83: .line 308
            aload 20 /* instrumentsOptions */
            iload 9 /* allowExperimentalOptions */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.createInstruments:(Ljava/util/Map;Z)V
        84: .line 309
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
        85: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 20 // java.util.Map instrumentsOptions
        end local 19 // java.util.Map languagesOptions
        end local 18 // java.util.Map publicInstruments
        end local 17 // java.util.Map publicLanguages
        end local 16 // java.util.Map instrumentInfos
        end local 15 // java.util.Map languageInfos
        end local 14 // java.util.logging.Handler logHandler
        end local 13 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
        end local 12 // boolean preInitialization
        end local 11 // boolean boundEngine
        end local 10 // java.lang.ClassLoader contextClassLoader
        end local 9 // boolean allowExperimentalOptions
        end local 8 // java.util.Map options
        end local 7 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider engineLogger
        end local 6 // java.util.Map logLevels
        end local 5 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        end local 4 // java.io.InputStream in
        end local 3 // com.oracle.truffle.api.impl.DispatchOutputStream err
        end local 2 // com.oracle.truffle.api.impl.DispatchOutputStream out
        end local 1 // com.oracle.truffle.polyglot.PolyglotImpl impl
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   86     0                      this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   86     1                      impl  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0   86     2                       out  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            0   86     3                       err  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            0   86     4                        in  Ljava/io/InputStream;
            0   86     5             engineOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            0   86     6                 logLevels  Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
            0   86     7              engineLogger  Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
            0   86     8                   options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   86     9  allowExperimentalOptions  Z
            0   86    10        contextClassLoader  Ljava/lang/ClassLoader;
            0   86    11               boundEngine  Z
            0   86    12         preInitialization  Z
            0   86    13        messageInterceptor  Lorg/graalvm/polyglot/io/MessageTransport;
            0   86    14                logHandler  Ljava/util/logging/Handler;
           27   86    15             languageInfos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
           31   86    16           instrumentInfos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
           37   38    17                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           41   46    17                        id  Ljava/lang/String;
           50   86    17           publicLanguages  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
           52   55    18                       key  Ljava/lang/String;
           53   55    20              languageImpl  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           58   86    18         publicInstruments  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
           60   63    19                       key  Ljava/lang/String;
           61   63    21            instrumentImpl  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           70   86    19          languagesOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
           71   86    20        instrumentsOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
           75   76    21                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    Signature: (Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
    MethodParameters:
                          Name  Flags
      impl                      
      out                       
      err                       
      in                        
      engineOptions             
      logLevels                 
      engineLogger              
      options                   
      allowExperimentalOptions  
      contextClassLoader        
      boundEngine               
      preInitialization         
      messageInterceptor        
      logHandler                

  com.oracle.truffle.polyglot.HostToGuestCodeCache getHostToGuestCodeCache();
    descriptor: ()Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 314
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostToGuestCodeCache:Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
            astore 1 /* cache */
        start local 1 // com.oracle.truffle.polyglot.HostToGuestCodeCache cache
         1: .line 315
            aload 1 /* cache */
            ifnonnull 4
         2: .line 316
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 317
            aload 0 /* this */
            new com.oracle.truffle.polyglot.HostToGuestCodeCache
            dup
            invokespecial com.oracle.truffle.polyglot.HostToGuestCodeCache.<init>:()V
            dup
            astore 1 /* cache */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostToGuestCodeCache:Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
         4: .line 319
      StackMap locals: com.oracle.truffle.polyglot.HostToGuestCodeCache
      StackMap stack:
            aload 1 /* cache */
            areturn
        end local 1 // com.oracle.truffle.polyglot.HostToGuestCodeCache cache
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1    5     1  cache  Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;

  void notifyCreated();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 323
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            aload 0 /* this */
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 324
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineCreate:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 325
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=11, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl prototype
         0: .line 328
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
         1: .line 155
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
         2: .line 185
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.DEBUG_MISSING_CLOSE:Z
            ifeq 3
            new java.lang.Exception
            dup
            invokespecial java.lang.Exception.<init>:()V
            goto 4
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl
         3: aconst_null
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Exception
         4: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.createdLocation:Ljava/lang/Exception;
         5: .line 186
            aload 0 /* this */
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            invokestatic org.graalvm.collections.EconomicSet.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicSet;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
         6: .line 187
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
         7: .line 188
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
         8: .line 191
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single context per engine."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
         9: .line 192
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single thread per context of an engine."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
        10: .line 193
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No inner contexts."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.noInnerContexts:Lcom/oracle/truffle/api/Assumption;
        11: .line 194
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No custom host class loader needed."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
        12: .line 195
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "No context interrupted."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
        13: .line 212
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
        14: .line 219
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        15: .line 220
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.EMPTY_LOCATIONS:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        16: .line 329
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
        17: .line 330
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
        18: .line 331
            aload 0 /* this */
        19: .line 332
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        20: .line 333
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        21: .line 334
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
        22: .line 335
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.messageInterceptor:Lorg/graalvm/polyglot/io/MessageTransport;
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
        23: .line 330
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createInstrumentationHandler:(Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lorg/graalvm/polyglot/io/MessageTransport;Z)Ljava/lang/Object;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
        24: .line 336
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
        25: .line 337
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        26: .line 338
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
        27: .line 339
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
        28: .line 340
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
        29: .line 341
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
        30: .line 342
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
        31: .line 343
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.createRuntimeData:(Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)Ljava/lang/Object;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
        32: .line 344
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
        33: .line 346
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* languageInfos */
        start local 2 // java.util.Map languageInfos
        34: .line 347
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* languageInfos */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeLanguages:(Ljava/util/Map;)Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
        35: .line 348
            aload 0 /* this */
            aload 2 /* languageInfos */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
        36: .line 349
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iconst_1
            iadd
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLength:I
        37: .line 351
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 3 /* instrumentInfos */
        start local 3 // java.util.Map instrumentInfos
        38: .line 352
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* instrumentInfos */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeInstruments:(Ljava/util/Map;)Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
        39: .line 353
            aload 0 /* this */
            aload 3 /* instrumentInfos */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalInstrumentInfo:Ljava/util/Map;
        40: .line 355
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
        41: .line 356
            aload 0 /* this */
            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 5
            goto 44
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        42: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        43: .line 357
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
            aload 4 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
            aload 4 /* language */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        44: .line 356
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 42
        45: .line 360
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 52
      StackMap locals:
      StackMap stack:
        46: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* id */
        start local 4 // java.lang.String id
        47: .line 361
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 4 /* id */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 52
        48: .line 362
            aload 4 /* id */
        49: .line 363
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 4 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.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;
        50: .line 364
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 4 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
        51: .line 362
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.String id
        52: .line 360
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        53: .line 368
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 4 /* publicLanguages */
        start local 4 // java.util.Map publicLanguages
        54: .line 369
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 59
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        55: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* key */
        start local 5 // java.lang.String key
        56: .line 370
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 5 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 7 /* languageImpl */
        start local 7 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        57: .line 371
            aload 7 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifne 59
        58: .line 372
            aload 4 /* publicLanguages */
            aload 5 /* key */
            aload 7 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        end local 5 // java.lang.String key
        59: .line 369
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        60: .line 375
            aload 0 /* this */
            aload 4 /* publicLanguages */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
        61: .line 377
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 5 /* publicInstruments */
        start local 5 // java.util.Map publicInstruments
        62: .line 378
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 67
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        63: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
        64: .line 379
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 6 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 8 /* instrumentImpl */
        start local 8 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        65: .line 380
            aload 8 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
            ifne 67
        66: .line 381
            aload 5 /* publicInstruments */
            aload 6 /* key */
            aload 8 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        end local 6 // java.lang.String key
        67: .line 378
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        68: .line 384
            aload 0 /* this */
            aload 5 /* publicInstruments */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
        69: .line 385
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
        70: .line 387
            aload 0 /* this */
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copy:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
        71: .line 388
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.UseConservativeContextReferences:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.conservativeContextReferences:Z
        72: .line 390
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifne 74
        73: .line 391
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        74: .line 393
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
        75: .line 395
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 80
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        76: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* languageId */
        start local 6 // java.lang.String languageId
        77: .line 396
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 6 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 8 /* prototypeOptions */
        start local 8 // com.oracle.truffle.polyglot.OptionValuesImpl prototypeOptions
        78: .line 397
            aload 8 /* prototypeOptions */
            ifnull 80
        79: .line 398
            aload 8 /* prototypeOptions */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 6 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copyInto:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
        end local 8 // com.oracle.truffle.polyglot.OptionValuesImpl prototypeOptions
        end local 6 // java.lang.String languageId
        80: .line 395
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 76
        81: .line 402
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.SpecializationStatistics:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 84
        82: .line 403
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.dsl.SpecializationStatistics.create:()Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
        83: .line 404
            goto 85
        84: .line 405
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
        85: .line 408
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* instrumentsToCreate */
        start local 6 // java.util.Collection instrumentsToCreate
        86: .line 409
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 93
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.Map java.util.Collection top java.util.Iterator
      StackMap stack:
        87: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* instrumentId */
        start local 7 // java.lang.String instrumentId
        88: .line 410
            aload 1 /* prototype */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 7 /* instrumentId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 9 /* prototypeOptions */
        start local 9 // com.oracle.truffle.polyglot.OptionValuesImpl prototypeOptions
        89: .line 411
            aload 9 /* prototypeOptions */
            ifnull 93
        90: .line 412
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 7 /* instrumentId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 10 /* instrument */
        start local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        91: .line 413
            aload 9 /* prototypeOptions */
            aload 10 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copyInto:(Lcom/oracle/truffle/polyglot/OptionValuesImpl;)V
        92: .line 414
            aload 6 /* instrumentsToCreate */
            aload 10 /* instrument */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 9 // com.oracle.truffle.polyglot.OptionValuesImpl prototypeOptions
        end local 7 // java.lang.String instrumentId
        93: .line 409
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 87
        94: .line 417
            aload 6 /* instrumentsToCreate */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
        95: .line 418
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
        96: .line 419
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.notifyCreated:()V
        97: .line 420
            return
        end local 6 // java.util.Collection instrumentsToCreate
        end local 5 // java.util.Map publicInstruments
        end local 4 // java.util.Map publicLanguages
        end local 3 // java.util.Map instrumentInfos
        end local 2 // java.util.Map languageInfos
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl prototype
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   98     0                 this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   98     1            prototype  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
           34   98     2        languageInfos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
           38   98     3      instrumentInfos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
           43   44     4             language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           47   52     4                   id  Ljava/lang/String;
           54   98     4      publicLanguages  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;
           56   59     5                  key  Ljava/lang/String;
           57   59     7         languageImpl  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           62   98     5    publicInstruments  Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;
           64   67     6                  key  Ljava/lang/String;
           65   67     8       instrumentImpl  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           77   80     6           languageId  Ljava/lang/String;
           78   80     8     prototypeOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           86   98     6  instrumentsToCreate  Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
           88   93     7         instrumentId  Ljava/lang/String;
           89   93     9     prototypeOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           91   93    10           instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    MethodParameters:
           Name  Flags
      prototype  

  com.oracle.truffle.api.TruffleLogger getEngineLogger();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 423
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.TruffleLogger result
         1: .line 424
            aload 1 /* result */
            ifnonnull 10
         2: .line 425
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 426
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
            astore 1 /* result */
         4: .line 427
            aload 1 /* result */
            ifnonnull 6
         5: .line 428
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggerSupplier:Ljava/util/function/Function;
            ldc "engine"
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger
            dup
            astore 1 /* result */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLogger:Lcom/oracle/truffle/api/TruffleLogger;
         6: .line 425
      StackMap locals: com.oracle.truffle.api.TruffleLogger java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 432
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLogger result
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1   11     1  result  Lcom/oracle/truffle/api/TruffleLogger;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  static org.graalvm.options.OptionDescriptors createEngineOptionDescriptors();
    descriptor: ()Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 436
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tPolyglotEngineOptionsOptionDescriptors cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.util.Collection<org.graalvm.polyglot.Engine> findActiveEngines();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=0
         0: .line 442
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            dup
            astore 0
            monitorenter
         1: .line 443
            new java.util.ArrayList
            dup
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* engines */
        start local 1 // java.util.List engines
         2: .line 444
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            astore 2 /* engine */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         4: .line 445
            aload 1 /* engines */
            aload 2 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         5: .line 444
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 447
            aload 1 /* engines */
            aload 0
            monitorexit
         7: areturn
        end local 1 // java.util.List engines
         8: .line 442
      StackMap locals: java.util.Map
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
         9: athrow
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    8     1  engines  Ljava/util/List<Lorg/graalvm/polyglot/Engine;>;
            4    5     2   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    Signature: ()Ljava/util/Collection<Lorg/graalvm/polyglot/Engine;>;

  boolean patch(com.oracle.truffle.api.impl.DispatchOutputStream, com.oracle.truffle.api.impl.DispatchOutputStream, java.io.InputStream, com.oracle.truffle.polyglot.OptionValuesImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig, java.util.function.Function<java.lang.String, com.oracle.truffle.api.TruffleLogger>, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.ClassLoader, boolean, java.util.logging.Handler);
    descriptor: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Ljava/util/function/Function;Ljava/util/Map;ZLjava/lang/ClassLoader;ZLjava/util/logging/Handler;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=17, args_size=12
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.api.impl.DispatchOutputStream newOut
        start local 2 // com.oracle.truffle.api.impl.DispatchOutputStream newErr
        start local 3 // java.io.InputStream newIn
        start local 4 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        start local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig newLogConfig
        start local 6 // java.util.function.Function logSupplier
        start local 7 // java.util.Map newOptions
        start local 8 // boolean newAllowExperimentalOptions
        start local 9 // java.lang.ClassLoader newContextClassLoader
        start local 10 // boolean newBoundEngine
        start local 11 // java.util.logging.Handler newLogHandler
         0: .line 460
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 461
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            iload 10 /* newBoundEngine */
            if_icmpeq 3
         2: .line 462
            iconst_0
            ireturn
         3: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newOut */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
         4: .line 465
            aload 0 /* this */
            aload 2 /* newErr */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
         5: .line 466
            aload 0 /* this */
            aload 3 /* newIn */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
         6: .line 467
            aload 0 /* this */
            aload 9 /* newContextClassLoader */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
         7: .line 468
            aload 0 /* this */
            iload 10 /* newBoundEngine */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
         8: .line 469
            aload 0 /* this */
            aload 11 /* newLogHandler */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
         9: .line 470
            aload 0 /* this */
            aload 4 /* engineOptions */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
        10: .line 471
            aload 0 /* this */
            aload 5 /* newLogConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
        11: .line 472
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            istore 12 /* wasStore */
        start local 12 // boolean wasStore
        12: .line 473
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 4 /* engineOptions */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isStoreEnabled:(Lorg/graalvm/options/OptionValues;)Z
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
        13: .line 475
            aload 0 /* this */
            iload 12 /* wasStore */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.intitializeStore:(ZZ)V
        14: .line 477
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
            aload 1 /* newOut */
            aload 2 /* newErr */
            aload 3 /* newIn */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.patchInstrumentationHandler:(Ljava/lang/Object;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;)V
        15: .line 479
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 13 /* languagesOptions */
        start local 13 // java.util.Map languagesOptions
        16: .line 480
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 14 /* instrumentsOptions */
        start local 14 // java.util.Map instrumentsOptions
        17: .line 481
            aload 0 /* this */
            aload 7 /* newOptions */
            aload 13 /* languagesOptions */
            aload 14 /* instrumentsOptions */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptions:(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
        18: .line 483
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            aload 4 /* engineOptions */
            aload 6 /* logSupplier */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEnginePatch:(Ljava/lang/Object;Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)V
        19: .line 485
            aload 13 /* languagesOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16
            goto 22
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.function.Function java.util.Map int java.lang.ClassLoader int java.util.logging.Handler int java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        20: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 15 /* language */
        start local 15 // com.oracle.truffle.polyglot.PolyglotLanguage language
        21: .line 486
            aload 15 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            aload 13 /* languagesOptions */
            aload 15 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            iload 8 /* newAllowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
        end local 15 // com.oracle.truffle.polyglot.PolyglotLanguage language
        22: .line 485
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 491
            aload 14 /* instrumentsOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16
            goto 26
      StackMap locals:
      StackMap stack:
        24: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 15 /* instrument */
        start local 15 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        25: .line 492
            aload 15 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            aload 14 /* instrumentsOptions */
            aload 15 /* instrument */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            iload 8 /* newAllowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
        end local 15 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        26: .line 491
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        27: .line 494
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.registerShutDownHook:()V
        28: .line 495
            iconst_1
            ireturn
        end local 14 // java.util.Map instrumentsOptions
        end local 13 // java.util.Map languagesOptions
        end local 12 // boolean wasStore
        end local 11 // java.util.logging.Handler newLogHandler
        end local 10 // boolean newBoundEngine
        end local 9 // java.lang.ClassLoader newContextClassLoader
        end local 8 // boolean newAllowExperimentalOptions
        end local 7 // java.util.Map newOptions
        end local 6 // java.util.function.Function logSupplier
        end local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig newLogConfig
        end local 4 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        end local 3 // java.io.InputStream newIn
        end local 2 // com.oracle.truffle.api.impl.DispatchOutputStream newErr
        end local 1 // com.oracle.truffle.api.impl.DispatchOutputStream newOut
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   29     0                         this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   29     1                       newOut  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            0   29     2                       newErr  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            0   29     3                        newIn  Ljava/io/InputStream;
            0   29     4                engineOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            0   29     5                 newLogConfig  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
            0   29     6                  logSupplier  Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;
            0   29     7                   newOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   29     8  newAllowExperimentalOptions  Z
            0   29     9        newContextClassLoader  Ljava/lang/ClassLoader;
            0   29    10               newBoundEngine  Z
            0   29    11                newLogHandler  Ljava/util/logging/Handler;
           12   29    12                     wasStore  Z
           16   29    13             languagesOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
           17   29    14           instrumentsOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
           21   22    15                     language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           25   26    15                   instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    Signature: (Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/ClassLoader;ZLjava/util/logging/Handler;)Z
    MethodParameters:
                             Name  Flags
      newOut                       
      newErr                       
      newIn                        
      engineOptions                
      newLogConfig                 
      logSupplier                  
      newOptions                   
      newAllowExperimentalOptions  
      newContextClassLoader        
      newBoundEngine               
      newLogHandler                

  static java.util.logging.Handler createLogHandler(com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig, com.oracle.truffle.api.impl.DispatchOutputStream);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/util/logging/Handler;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
        start local 1 // com.oracle.truffle.api.impl.DispatchOutputStream errDispatchOutputStream
         0: .line 499
            aload 0 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
            ifnull 4
         1: .line 500
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
            ifeq 3
         2: .line 501
            aload 0 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.getFileHandler:(Ljava/lang/String;)Ljava/util/logging/Handler;
            areturn
         3: .line 503
      StackMap locals:
      StackMap stack:
            ldc "The `log.file` option is not allowed when the allowIO() privilege is removed at image build time."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 506
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* errDispatchOutputStream */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createDefaultHandler:(Ljava/io/OutputStream;)Ljava/util/logging/Handler;
            areturn
        end local 1 // com.oracle.truffle.api.impl.DispatchOutputStream errDispatchOutputStream
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0                logConfig  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
            0    5     1  errDispatchOutputStream  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
    MethodParameters:
                         Name  Flags
      logConfig                
      errDispatchOutputStream  

  private static void createInstruments(java.util.Map<com.oracle.truffle.polyglot.PolyglotInstrument, java.util.Map<java.lang.String, java.lang.String>>, );
    descriptor: (Ljava/util/Map;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.Map instrumentsOptions
        start local 1 // boolean allowExperimentalOptions
         0: .line 511
            aload 0 /* instrumentsOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: java.util.Map int top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 2 /* instrument */
        start local 2 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         2: .line 512
            aload 2 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            aload 0 /* instrumentsOptions */
            aload 2 /* instrument */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            iload 1 /* allowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
        end local 2 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         3: .line 511
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 514
            aload 0 /* instrumentsOptions */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
         5: .line 515
            return
        end local 1 // boolean allowExperimentalOptions
        end local 0 // java.util.Map instrumentsOptions
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0        instrumentsOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
            0    6     1  allowExperimentalOptions  Z
            2    3     2                instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    Signature: (Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;Z)V
    MethodParameters:
                          Name  Flags
      instrumentsOptions        
      allowExperimentalOptions  

  static void ensureInstrumentsCreated(java.util.Collection<? extends com.oracle.truffle.polyglot.PolyglotInstrument>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.Collection instruments
         0: .line 518
            aload 0 /* instruments */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 1 /* instrument */
        start local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         2: .line 520
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.ensureCreated:()V
        end local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         3: .line 518
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 522
            return
        end local 0 // java.util.Collection instruments
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  instruments  Ljava/util/Collection<+Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
            2    3     1   instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    Signature: (Ljava/util/Collection<+Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;)V
    MethodParameters:
             Name  Flags
      instruments  

  private static void registerShutDownHook();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 525
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
            ifne 9
         1: .line 526
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            dup
            astore 0
            monitorenter
         2: .line 527
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
            ifne 5
         3: .line 528
            iconst_1
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.shutdownHookInitialized:Z
         4: .line 529
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            new java.lang.Thread
            dup
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook
            dup
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook.<init>:()V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         5: .line 526
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 0
            monitorexit
         8: athrow
         9: .line 533
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  void initializeMultiContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl existingContext
         0: .line 536
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 537
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 14
         2: .line 538
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            ldc "More than one context introduced."
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
         3: .line 539
            aload 1 /* existingContext */
            ifnull 10
         4: .line 540
            aload 1 /* existingContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         6: .line 541
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 8
         7: .line 542
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.ensureMultiContextInitialized:()V
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         8: .line 540
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 5
        10: .line 546
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
      StackMap stack:
            aload 0 /* this */
            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 4
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* lang */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage lang
        12: .line 547
            aload 3 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.profile:Lcom/oracle/truffle/polyglot/PolyglotLanguage$ContextProfile;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile.prepareForMultiContext:()V
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage lang
        13: .line 546
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 536
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 2
            monitorexit
        17: athrow
        18: .line 551
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl existingContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0             this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   19     1  existingContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            6    8     3          context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           12   13     3             lang  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
      Exception table:
        from    to  target  type
           1    15      16  any
          16    17      16  any
    MethodParameters:
                 Name  Flags
      existingContext  

  static void parseEngineOptions(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig);
    descriptor: (Ljava/util/Map;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.util.Map allOptions
        start local 1 // java.util.Map engineOptions
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logOptions
         0: .line 554
            aload 0 /* allOptions */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* iterator */
        start local 3 // java.util.Iterator iterator
         1: .line 555
            goto 16
         2: .line 556
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         3: .line 557
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* key */
        start local 5 // java.lang.String key
         4: .line 558
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* value */
        start local 6 // java.lang.String value
         5: .line 559
            aload 5 /* key */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptionGroup:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* group */
        start local 7 // java.lang.String group
         6: .line 560
            aload 7 /* group */
            ldc "engine"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 561
            aload 1 /* engineOptions */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 562
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
         9: .line 563
            goto 16
        10: .line 565
      StackMap locals: java.util.Map java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.Iterator java.util.Map$Entry java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 7 /* group */
            ldc "log"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        11: .line 566
            ldc "log.file"
            aload 5 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 567
            aload 2 /* logOptions */
            aload 6 /* value */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
        13: .line 568
            goto 15
        14: .line 569
      StackMap locals:
      StackMap stack:
            aload 2 /* logOptions */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
            aload 5 /* key */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseLoggerName:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* value */
            invokestatic java.util.logging.Level.parse:(Ljava/lang/String;)Ljava/util/logging/Level;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 571
      StackMap locals:
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 7 // java.lang.String group
        end local 6 // java.lang.String value
        end local 5 // java.lang.String key
        end local 4 // java.util.Map$Entry entry
        16: .line 555
      StackMap locals: java.util.Map java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig java.util.Iterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 575
            return
        end local 3 // java.util.Iterator iterator
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logOptions
        end local 1 // java.util.Map engineOptions
        end local 0 // java.util.Map allOptions
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0     allOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   18     1  engineOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   18     2     logOptions  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
            1   18     3       iterator  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;>;
            3   16     4          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
            4   16     5            key  Ljava/lang/String;
            5   16     6          value  Ljava/lang/String;
            6   16     7          group  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;)V
    MethodParameters:
               Name  Flags
      allOptions     
      engineOptions  
      logOptions     

  private void parseOptions(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<com.oracle.truffle.polyglot.PolyglotLanguage, java.util.Map<java.lang.String, java.lang.String>>, java.util.Map<com.oracle.truffle.polyglot.PolyglotInstrument, java.util.Map<java.lang.String, java.lang.String>>);
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.Map options
        start local 2 // java.util.Map languagesOptions
        start local 3 // java.util.Map instrumentsOptions
         0: .line 580
            aload 1 /* options */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 27
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         2: .line 581
            aload 4 /* key */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptionGroup:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* group */
        start local 6 // java.lang.String group
         3: .line 582
            aload 1 /* options */
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* value */
        start local 7 // java.lang.String value
         4: .line 583
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 6 /* group */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 8 /* language */
        start local 8 // com.oracle.truffle.polyglot.PolyglotLanguage language
         5: .line 584
            aload 8 /* language */
            ifnull 12
            aload 8 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifne 12
         6: .line 585
            aload 2 /* languagesOptions */
            aload 8 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 9 /* languageOptions */
        start local 9 // java.util.Map languageOptions
         7: .line 586
            aload 9 /* languageOptions */
            ifnonnull 10
         8: .line 587
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 9 /* languageOptions */
         9: .line 588
            aload 2 /* languagesOptions */
            aload 8 /* language */
            aload 9 /* languageOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 590
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.lang.String java.util.Iterator java.lang.String java.lang.String com.oracle.truffle.polyglot.PolyglotLanguage java.util.Map
      StackMap stack:
            aload 9 /* languageOptions */
            aload 4 /* key */
            aload 7 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 591
            goto 27
        end local 9 // java.util.Map languageOptions
        12: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 6 /* group */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 9 /* instrument */
        start local 9 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        13: .line 594
            aload 9 /* instrument */
            ifnull 20
            aload 9 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.isInternal:()Z
            ifne 20
        14: .line 595
            aload 3 /* instrumentsOptions */
            aload 9 /* instrument */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 10 /* instrumentOptions */
        start local 10 // java.util.Map instrumentOptions
        15: .line 596
            aload 10 /* instrumentOptions */
            ifnonnull 18
        16: .line 597
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 10 /* instrumentOptions */
        17: .line 598
            aload 3 /* instrumentsOptions */
            aload 9 /* instrument */
            aload 10 /* instrumentOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 600
      StackMap locals: com.oracle.truffle.polyglot.PolyglotInstrument java.util.Map
      StackMap stack:
            aload 10 /* instrumentOptions */
            aload 4 /* key */
            aload 7 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 601
            goto 27
        end local 10 // java.util.Map instrumentOptions
        20: .line 604
      StackMap locals:
      StackMap stack:
            aload 6 /* group */
            dup
            astore 10
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1298662846: 21
               107332: 22
           1770024574: 23
              default: 26
          }
      StackMap locals: java.lang.String
      StackMap stack:
        21: aload 10
            ldc "engine"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 26
      StackMap locals:
      StackMap stack:
        22: aload 10
            ldc "log"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 26
      StackMap locals:
      StackMap stack:
        23: aload 10
            ldc "image-build-time"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 26
        24: .line 607
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "Log or engine options should already be parsed."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        25: .line 609
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Image build-time option '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' cannot be set at runtime"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        26: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAllOptions:()Lorg/graalvm/options/OptionDescriptors;
            aload 4 /* key */
            invokestatic com.oracle.truffle.polyglot.OptionValuesImpl.failNotFound:(Lorg/graalvm/options/OptionDescriptors;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 8 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 7 // java.lang.String value
        end local 6 // java.lang.String group
        end local 4 // java.lang.String key
        27: .line 580
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        28: .line 613
            return
        end local 3 // java.util.Map instrumentsOptions
        end local 2 // java.util.Map languagesOptions
        end local 1 // java.util.Map options
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   29     1             options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   29     2    languagesOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
            0   29     3  instrumentsOptions  Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
            2   27     4                 key  Ljava/lang/String;
            3   27     6               group  Ljava/lang/String;
            4   27     7               value  Ljava/lang/String;
            5   27     8            language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            7   12     9     languageOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           13   27     9          instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           15   20    10   instrumentOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotLanguage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;Ljava/util/Map<Lcom/oracle/truffle/polyglot/PolyglotInstrument;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;)V
    MethodParameters:
                    Name  Flags
      options             
      languagesOptions    
      instrumentsOptions  

  static java.util.Map<java.lang.String, java.lang.String> readOptionsFromSystemProperties(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.util.Map options
         0: .line 616
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            astore 1 /* properties */
        start local 1 // java.util.Properties properties
         1: .line 617
            aload 1 /* properties */
            dup
            astore 2
            monitorenter
         2: .line 618
            aload 1 /* properties */
            invokevirtual java.util.Properties.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.util.Map java.util.Properties java.util.Properties top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* systemKey */
        start local 3 // java.lang.Object systemKey
         4: .line 619
            ldc "polyglot.engine.AllowExperimentalOptions"
            aload 3 /* systemKey */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 620
            goto 12
         6: .line 622
      StackMap locals: java.util.Map java.util.Properties java.util.Properties java.lang.Object java.util.Iterator
      StackMap stack:
            aload 3 /* systemKey */
            checkcast java.lang.String
            astore 5 /* key */
        start local 5 // java.lang.String key
         7: .line 623
            aload 5 /* key */
            ldc "polyglot."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
         8: .line 624
            aload 5 /* key */
            ldc "polyglot."
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* optionKey */
        start local 6 // java.lang.String optionKey
         9: .line 626
            aload 6 /* optionKey */
            ldc "image-build-time"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 12
        10: .line 628
            aload 0 /* options */
            aload 6 /* optionKey */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 629
            aload 0 /* options */
            aload 6 /* optionKey */
            aload 5 /* key */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String optionKey
        end local 5 // java.lang.String key
        end local 3 // java.lang.Object systemKey
        12: .line 618
      StackMap locals: java.util.Map java.util.Properties java.util.Properties top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 617
            aload 2
            monitorexit
        14: goto 17
      StackMap locals: java.util.Map java.util.Properties java.util.Properties
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* options */
            areturn
        end local 1 // java.util.Properties properties
        end local 0 // java.util.Map options
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0     options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   18     1  properties  Ljava/util/Properties;
            4   12     3   systemKey  Ljava/lang/Object;
            7   12     5         key  Ljava/lang/String;
            9   12     6   optionKey  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    14      15  any
          15    16      15  any
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      options  

  static java.lang.String parseOptionGroup(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String key
         0: .line 639
            aload 0 /* key */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* groupIndex */
        start local 1 // int groupIndex
         1: .line 641
            iload 1 /* groupIndex */
            iconst_m1
            if_icmpeq 4
         2: .line 642
            aload 0 /* key */
            iconst_0
            iload 1 /* groupIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* group */
        start local 2 // java.lang.String group
         3: .line 643
            goto 5
        end local 2 // java.lang.String group
         4: .line 644
      StackMap locals: int
      StackMap stack:
            aload 0 /* key */
            astore 2 /* group */
        start local 2 // java.lang.String group
         5: .line 646
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* group */
            areturn
        end local 2 // java.lang.String group
        end local 1 // int groupIndex
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0         key  Ljava/lang/String;
            1    6     1  groupIndex  I
            3    4     2       group  Ljava/lang/String;
            5    6     2       group  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  static java.lang.String parseLoggerName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String optionKey
         0: .line 652
            aload 0 /* optionKey */
            ldc "log."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 1
            aload 0 /* optionKey */
            ldc ".level"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* optionKey */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         2: .line 655
      StackMap locals:
      StackMap stack:
            ldc "log."
            invokevirtual java.lang.String.length:()I
            istore 1 /* start */
        start local 1 // int start
         3: .line 656
            aload 0 /* optionKey */
            invokevirtual java.lang.String.length:()I
            ldc ".level"
            invokevirtual java.lang.String.length:()I
            isub
            istore 2 /* end */
        start local 2 // int end
         4: .line 657
            iload 1 /* start */
            iload 2 /* end */
            if_icmpge 5
            aload 0 /* optionKey */
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 6
      StackMap locals: int int
      StackMap stack:
         5: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         6: areturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.String optionKey
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  optionKey  Ljava/lang/String;
            3    7     1      start  I
            4    7     2        end  I
    MethodParameters:
           Name  Flags
      optionKey  

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

  com.oracle.truffle.polyglot.PolyglotLanguage findLanguage(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0000) 
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext accessingLanguage
        start local 2 // java.lang.String languageId
        start local 3 // java.lang.String mimeType
        start local 4 // boolean failIfNotFound
        start local 5 // boolean allowInternalAndDependent
         0: .line 666
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* languageId */
            ifnonnull 1
            aload 3 /* mimeType */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* languageId */
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
            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 3 /* mimeType */
            invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 669
      StackMap locals:
      StackMap stack:
            aload 1 /* accessingLanguage */
            ifnull 4
         2: .line 670
            aload 1 /* accessingLanguage */
            iload 5 /* allowInternalAndDependent */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAccessibleLanguages:(Z)Ljava/util/Map;
            astore 6 /* languages */
        start local 6 // java.util.Map languages
         3: .line 671
            goto 6
        end local 6 // java.util.Map languages
         4: .line 672
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 5
            iload 5 /* allowInternalAndDependent */
            ifne 5
            new java.lang.AssertionError
            dup
            ldc "non internal access is not yet supported for instrument lookups"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
            astore 6 /* languages */
        start local 6 // java.util.Map languages
         6: .line 676
      StackMap locals: java.util.Map
      StackMap stack:
            aconst_null
            astore 7 /* foundLanguage */
        start local 7 // com.oracle.truffle.api.nodes.LanguageInfo foundLanguage
         7: .line 677
            aload 2 /* languageId */
            ifnull 9
         8: .line 678
            aload 6 /* languages */
            aload 2 /* languageId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 7 /* foundLanguage */
         9: .line 680
      StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aload 3 /* mimeType */
            ifnull 18
            aload 7 /* foundLanguage */
            ifnonnull 18
        10: .line 682
            aload 6 /* languages */
            aload 3 /* mimeType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 7 /* foundLanguage */
        11: .line 683
            aload 7 /* foundLanguage */
            ifnonnull 18
        12: .line 684
            aload 6 /* languages */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo top java.util.Iterator
      StackMap stack:
        13: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 8 /* searchLanguage */
        start local 8 // com.oracle.truffle.api.nodes.LanguageInfo searchLanguage
        14: .line 685
            aload 8 /* searchLanguage */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
            aload 3 /* mimeType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 686
            aload 8 /* searchLanguage */
            astore 7 /* foundLanguage */
        16: .line 687
            goto 18
        end local 8 // com.oracle.truffle.api.nodes.LanguageInfo searchLanguage
        17: .line 684
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 693
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 20
            iload 5 /* allowInternalAndDependent */
            ifne 20
            aload 7 /* foundLanguage */
            ifnull 20
            aload 7 /* foundLanguage */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.isInternal:()Z
            ifne 19
            aload 1 /* accessingLanguage */
            aload 2 /* languageId */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isPolyglotEvalAllowed:(Ljava/lang/String;)Z
            ifne 20
      StackMap locals:
      StackMap stack:
        19: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 695
      StackMap locals:
      StackMap stack:
            aload 7 /* foundLanguage */
            ifnull 22
        21: .line 696
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 7 /* foundLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            areturn
        22: .line 699
      StackMap locals:
      StackMap stack:
            iload 4 /* failIfNotFound */
            ifeq 36
        23: .line 700
            aload 2 /* languageId */
            ifnull 30
        24: .line 701
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 8 /* ids */
        start local 8 // java.util.Set ids
        25: .line 702
            aload 6 /* languages */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 28
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.util.Set top java.util.Iterator
      StackMap stack:
        26: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 9 /* language */
        start local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        27: .line 703
            aload 8 /* ids */
            aload 9 /* language */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        28: .line 702
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        29: .line 705
            new java.lang.StringBuilder
            dup
            ldc "No language for id "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* languageId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " found. Supported languages are: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* ids */
            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 8 // java.util.Set ids
        30: .line 707
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 8 /* mimeTypes */
        start local 8 // java.util.Set mimeTypes
        31: .line 708
            aload 6 /* languages */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 34
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo java.util.Set top java.util.Iterator
      StackMap stack:
        32: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.LanguageInfo
            astore 9 /* language */
        start local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        33: .line 709
            aload 8 /* mimeTypes */
            aload 9 /* language */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        34: .line 708
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        35: .line 711
            new java.lang.StringBuilder
            dup
            ldc "No language for MIME type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* mimeType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " found. Supported languages are: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mimeTypes */
            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 8 // java.util.Set mimeTypes
        36: .line 714
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.String java.lang.String int int java.util.Map com.oracle.truffle.api.nodes.LanguageInfo
      StackMap stack:
            aconst_null
            areturn
        end local 7 // com.oracle.truffle.api.nodes.LanguageInfo foundLanguage
        end local 6 // java.util.Map languages
        end local 5 // boolean allowInternalAndDependent
        end local 4 // boolean failIfNotFound
        end local 3 // java.lang.String mimeType
        end local 2 // java.lang.String languageId
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext accessingLanguage
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   37     0                       this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   37     1          accessingLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   37     2                 languageId  Ljava/lang/String;
            0   37     3                   mimeType  Ljava/lang/String;
            0   37     4             failIfNotFound  Z
            0   37     5  allowInternalAndDependent  Z
            3    4     6                  languages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
            6   37     6                  languages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
            7   37     7              foundLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
           14   17     8             searchLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
           25   30     8                        ids  Ljava/util/Set<Ljava/lang/String;>;
           27   28     9                   language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
           31   36     8                  mimeTypes  Ljava/util/Set<Ljava/lang/String;>;
           33   34     9                   language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
                           Name  Flags
      accessingLanguage          
      languageId                 
      mimeType                   
      failIfNotFound             
      allowInternalAndDependent  

  private java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotInstrument> initializeInstruments(java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.Map infos
         0: .line 719
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* instruments */
        start local 2 // java.util.Map instruments
         1: .line 720
            invokestatic com.oracle.truffle.polyglot.InstrumentCache.load:()Ljava/util/List;
            astore 3 /* cachedInstruments */
        start local 3 // java.util.List cachedInstruments
         2: .line 721
            aload 3 /* cachedInstruments */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.InstrumentCache
            astore 4 /* instrumentCache */
        start local 4 // com.oracle.truffle.polyglot.InstrumentCache instrumentCache
         4: .line 722
            new com.oracle.truffle.polyglot.PolyglotInstrument
            dup
            aload 0 /* this */
            aload 4 /* instrumentCache */
            invokespecial com.oracle.truffle.polyglot.PolyglotInstrument.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/InstrumentCache;)V
            astore 6 /* instrumentImpl */
        start local 6 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
         5: .line 723
            aload 6 /* instrumentImpl */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 6 /* instrumentImpl */
            aload 4 /* instrumentCache */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getId:()Ljava/lang/String;
            aload 4 /* instrumentCache */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getName:()Ljava/lang/String;
            aload 4 /* instrumentCache */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getVersion:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createInstrument:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/InstrumentInfo;
            putfield com.oracle.truffle.polyglot.PolyglotInstrument.info:Lcom/oracle/truffle/api/InstrumentInfo;
         6: .line 724
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 6 /* instrumentImpl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newInstrument:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractInstrumentImpl;)Lorg/graalvm/polyglot/Instrument;
            astore 7 /* instrument */
        start local 7 // org.graalvm.polyglot.Instrument instrument
         7: .line 725
            aload 6 /* instrumentImpl */
            aload 7 /* instrument */
            putfield com.oracle.truffle.polyglot.PolyglotInstrument.api:Lorg/graalvm/polyglot/Instrument;
         8: .line 727
            aload 6 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getId:()Ljava/lang/String;
            astore 8 /* id */
        start local 8 // java.lang.String id
         9: .line 728
            aload 8 /* id */
            aload 4 /* instrumentCache */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyId:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 729
            aload 2 /* instruments */
            aload 8 /* id */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 730
            aload 8 /* id */
            aload 6 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
            aload 2 /* instruments */
            aload 8 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.cache:Lcom/oracle/truffle/polyglot/InstrumentCache;
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getClassName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        12: .line 732
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List com.oracle.truffle.polyglot.InstrumentCache java.util.Iterator com.oracle.truffle.polyglot.PolyglotInstrument org.graalvm.polyglot.Instrument java.lang.String
      StackMap stack:
            aload 2 /* instruments */
            aload 8 /* id */
            aload 6 /* instrumentImpl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 733
            aload 1 /* infos */
            aload 8 /* id */
            aload 6 /* instrumentImpl */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.info:Lcom/oracle/truffle/api/InstrumentInfo;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.String id
        end local 7 // org.graalvm.polyglot.Instrument instrument
        end local 6 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        end local 4 // com.oracle.truffle.polyglot.InstrumentCache instrumentCache
        14: .line 721
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 735
            aload 2 /* instruments */
            areturn
        end local 3 // java.util.List cachedInstruments
        end local 2 // java.util.Map instruments
        end local 1 // java.util.Map infos
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   16     1              infos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
            1   16     2        instruments  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
            2   16     3  cachedInstruments  Ljava/util/List<Lcom/oracle/truffle/polyglot/InstrumentCache;>;
            4   14     4    instrumentCache  Lcom/oracle/truffle/polyglot/InstrumentCache;
            5   14     6     instrumentImpl  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
            7   14     7         instrument  Lorg/graalvm/polyglot/Instrument;
            9   14     8                 id  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
    MethodParameters:
       Name  Flags
      infos  

  private java.util.Map<java.lang.String, com.oracle.truffle.polyglot.PolyglotLanguage> initializeLanguages(java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.Map infos
         0: .line 739
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* polyglotLanguages */
        start local 2 // java.util.Map polyglotLanguages
         1: .line 740
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* cachedLanguages */
        start local 3 // java.util.Map cachedLanguages
         2: .line 741
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* sortedLanguages */
        start local 4 // java.util.List sortedLanguages
         3: .line 742
            invokestatic com.oracle.truffle.polyglot.LanguageCache.languages:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 5 /* lang */
        start local 5 // com.oracle.truffle.polyglot.LanguageCache lang
         5: .line 743
            aload 5 /* lang */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            astore 7 /* id */
        start local 7 // java.lang.String id
         6: .line 744
            aload 3 /* cachedLanguages */
            aload 7 /* id */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 9
         7: .line 745
            aload 4 /* sortedLanguages */
            aload 5 /* lang */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 746
            aload 3 /* cachedLanguages */
            aload 7 /* id */
            aload 5 /* lang */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String id
        end local 5 // com.oracle.truffle.polyglot.LanguageCache lang
         9: .line 742
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 749
            aload 4 /* sortedLanguages */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        11: .line 751
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 5 /* serializedLanguages */
        start local 5 // java.util.LinkedHashSet serializedLanguages
        12: .line 752
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* languageReferences */
        start local 6 // java.util.Set languageReferences
        13: .line 753
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* initErrors */
        start local 7 // java.util.Map initErrors
        14: .line 755
            aload 4 /* sortedLanguages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
        15: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 8 /* language */
        start local 8 // com.oracle.truffle.polyglot.LanguageCache language
        16: .line 756
            aload 6 /* languageReferences */
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDependentLanguages:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 8 // com.oracle.truffle.polyglot.LanguageCache language
        17: .line 755
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 761
            aload 4 /* sortedLanguages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 22
      StackMap locals:
      StackMap stack:
        19: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 8 /* language */
        start local 8 // com.oracle.truffle.polyglot.LanguageCache language
        20: .line 762
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifeq 22
            aload 6 /* languageReferences */
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 22
        21: .line 763
            aload 0 /* this */
            aload 7 /* initErrors */
            aload 3 /* cachedLanguages */
            aload 5 /* serializedLanguages */
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguage:(Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
        end local 8 // com.oracle.truffle.polyglot.LanguageCache language
        22: .line 761
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        23: .line 767
            aload 4 /* sortedLanguages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 8 /* language */
        start local 8 // com.oracle.truffle.polyglot.LanguageCache language
        25: .line 768
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifne 27
            aload 6 /* languageReferences */
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 27
        26: .line 769
            aload 0 /* this */
            aload 7 /* initErrors */
            aload 3 /* cachedLanguages */
            aload 5 /* serializedLanguages */
            aload 8 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguage:(Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
        end local 8 // com.oracle.truffle.polyglot.LanguageCache language
        27: .line 767
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        28: .line 773
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.truffle.polyglot.LanguageCache.createHostLanguageCache:([Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
            iconst_0
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.createLanguage:(Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
        29: .line 775
            iconst_1
            istore 8 /* index */
        start local 8 // int index
        30: .line 776
            aload 5 /* serializedLanguages */
            invokevirtual java.util.LinkedHashSet.iterator:()Ljava/util/Iterator;
            astore 10
            goto 40
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int top java.util.Iterator
      StackMap stack:
        31: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 9 /* cache */
        start local 9 // com.oracle.truffle.polyglot.LanguageCache cache
        32: .line 777
            aload 0 /* this */
            aload 9 /* cache */
            iload 8 /* index */
            aload 7 /* initErrors */
            aload 9 /* cache */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.RuntimeException
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.createLanguage:(Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 11 /* languageImpl */
        start local 11 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        33: .line 779
            aload 11 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            astore 12 /* id */
        start local 12 // java.lang.String id
        34: .line 780
            aload 12 /* id */
            aload 9 /* cache */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyId:(Ljava/lang/String;Ljava/lang/String;)V
        35: .line 781
            aload 2 /* polyglotLanguages */
            aload 12 /* id */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 37
        36: .line 782
            aload 12 /* id */
            aload 11 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getClassName:()Ljava/lang/String;
            aload 2 /* polyglotLanguages */
            aload 12 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.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;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.failDuplicateId:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        37: .line 784
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int com.oracle.truffle.polyglot.LanguageCache java.util.Iterator com.oracle.truffle.polyglot.PolyglotLanguage java.lang.String
      StackMap stack:
            aload 2 /* polyglotLanguages */
            aload 12 /* id */
            aload 11 /* languageImpl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 785
            aload 1 /* infos */
            aload 12 /* id */
            aload 11 /* languageImpl */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 786
            iinc 8 /* index */ 1
        end local 12 // java.lang.String id
        end local 11 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        end local 9 // com.oracle.truffle.polyglot.LanguageCache cache
        40: .line 776
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Map java.util.Map java.util.Map java.util.List java.util.LinkedHashSet java.util.Set java.util.Map int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        41: .line 789
            aload 2 /* polyglotLanguages */
            areturn
        end local 8 // int index
        end local 7 // java.util.Map initErrors
        end local 6 // java.util.Set languageReferences
        end local 5 // java.util.LinkedHashSet serializedLanguages
        end local 4 // java.util.List sortedLanguages
        end local 3 // java.util.Map cachedLanguages
        end local 2 // java.util.Map polyglotLanguages
        end local 1 // java.util.Map infos
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   42     0                 this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   42     1                infos  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
            1   42     2    polyglotLanguages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
            2   42     3      cachedLanguages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
            3   42     4      sortedLanguages  Ljava/util/List<Lcom/oracle/truffle/polyglot/LanguageCache;>;
            5    9     5                 lang  Lcom/oracle/truffle/polyglot/LanguageCache;
            6    9     7                   id  Ljava/lang/String;
           12   42     5  serializedLanguages  Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
           13   42     6   languageReferences  Ljava/util/Set<Ljava/lang/String;>;
           14   42     7           initErrors  Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
           16   17     8             language  Lcom/oracle/truffle/polyglot/LanguageCache;
           20   22     8             language  Lcom/oracle/truffle/polyglot/LanguageCache;
           25   27     8             language  Lcom/oracle/truffle/polyglot/LanguageCache;
           30   42     8                index  I
           32   40     9                cache  Lcom/oracle/truffle/polyglot/LanguageCache;
           33   40    11         languageImpl  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           34   40    12                   id  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/PolyglotLanguage;>;
    MethodParameters:
       Name  Flags
      infos  

  private void visitLanguage(java.util.Map<java.lang.String, java.lang.RuntimeException>, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>, java.util.LinkedHashSet<com.oracle.truffle.polyglot.LanguageCache>, com.oracle.truffle.polyglot.LanguageCache);
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.Map initErrors
        start local 2 // java.util.Map cachedLanguages
        start local 3 // java.util.LinkedHashSet serializedLanguages
        start local 4 // com.oracle.truffle.polyglot.LanguageCache language
         0: .line 794
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            aload 1 /* initErrors */
            aload 2 /* cachedLanguages */
            aload 3 /* serializedLanguages */
            aload 4 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguageImpl:(Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
         1: .line 795
            return
        end local 4 // com.oracle.truffle.polyglot.LanguageCache language
        end local 3 // java.util.LinkedHashSet serializedLanguages
        end local 2 // java.util.Map cachedLanguages
        end local 1 // java.util.Map initErrors
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    2     1           initErrors  Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
            0    2     2      cachedLanguages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
            0    2     3  serializedLanguages  Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
            0    2     4             language  Lcom/oracle/truffle/polyglot/LanguageCache;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;Lcom/oracle/truffle/polyglot/LanguageCache;)V
    MethodParameters:
                     Name  Flags
      initErrors           
      cachedLanguages      
      serializedLanguages  
      language             

  private void visitLanguageImpl(java.util.Set<java.lang.String>, java.util.Map<java.lang.String, java.lang.RuntimeException>, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.LanguageCache>, java.util.LinkedHashSet<com.oracle.truffle.polyglot.LanguageCache>, com.oracle.truffle.polyglot.LanguageCache);
    descriptor: (Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.Set visitedIds
        start local 2 // java.util.Map initErrors
        start local 3 // java.util.Map cachedLanguages
        start local 4 // java.util.LinkedHashSet serializedLanguages
        start local 5 // com.oracle.truffle.polyglot.LanguageCache language
         0: .line 799
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDependentLanguages:()Ljava/util/Set;
            astore 6 /* dependencies */
        start local 6 // java.util.Set dependencies
         1: .line 800
            aload 6 /* dependencies */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* dependency */
        start local 7 // java.lang.String dependency
         3: .line 801
            aload 3 /* cachedLanguages */
            aload 7 /* dependency */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            astore 9 /* dependentLanguage */
        start local 9 // com.oracle.truffle.polyglot.LanguageCache dependentLanguage
         4: .line 802
            aload 9 /* dependentLanguage */
            ifnonnull 6
         5: .line 804
            goto 12
         6: .line 806
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set java.lang.String java.util.Iterator com.oracle.truffle.polyglot.LanguageCache
      StackMap stack:
            aload 1 /* visitedIds */
            aload 7 /* dependency */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 807
            aload 2 /* initErrors */
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Illegal cyclic language dependency found:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* dependency */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 808
            goto 12
         9: .line 810
      StackMap locals:
      StackMap stack:
            aload 1 /* visitedIds */
            aload 7 /* dependency */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 811
            aload 0 /* this */
            aload 1 /* visitedIds */
            aload 2 /* initErrors */
            aload 3 /* cachedLanguages */
            aload 4 /* serializedLanguages */
            aload 9 /* dependentLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.visitLanguageImpl:(Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/LinkedHashSet;Lcom/oracle/truffle/polyglot/LanguageCache;)V
        11: .line 812
            aload 1 /* visitedIds */
            aload 7 /* dependency */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.oracle.truffle.polyglot.LanguageCache dependentLanguage
        end local 7 // java.lang.String dependency
        12: .line 800
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.Map java.util.Map java.util.LinkedHashSet com.oracle.truffle.polyglot.LanguageCache java.util.Set top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 814
            aload 4 /* serializedLanguages */
            aload 5 /* language */
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
        14: .line 815
            return
        end local 6 // java.util.Set dependencies
        end local 5 // com.oracle.truffle.polyglot.LanguageCache language
        end local 4 // java.util.LinkedHashSet serializedLanguages
        end local 3 // java.util.Map cachedLanguages
        end local 2 // java.util.Map initErrors
        end local 1 // java.util.Set visitedIds
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   15     1           visitedIds  Ljava/util/Set<Ljava/lang/String;>;
            0   15     2           initErrors  Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;
            0   15     3      cachedLanguages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;
            0   15     4  serializedLanguages  Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;
            0   15     5             language  Lcom/oracle/truffle/polyglot/LanguageCache;
            1   15     6         dependencies  Ljava/util/Set<Ljava/lang/String;>;
            3   12     7           dependency  Ljava/lang/String;
            4   12     9    dependentLanguage  Lcom/oracle/truffle/polyglot/LanguageCache;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/RuntimeException;>;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/LanguageCache;>;Ljava/util/LinkedHashSet<Lcom/oracle/truffle/polyglot/LanguageCache;>;Lcom/oracle/truffle/polyglot/LanguageCache;)V
    MethodParameters:
                     Name  Flags
      visitedIds           
      initErrors           
      cachedLanguages      
      serializedLanguages  
      language             

  private com.oracle.truffle.polyglot.PolyglotLanguage createLanguage(com.oracle.truffle.polyglot.LanguageCache, int, java.lang.RuntimeException);
    descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache;ILjava/lang/RuntimeException;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.LanguageCache cache
        start local 2 // int index
        start local 3 // java.lang.RuntimeException initError
         0: .line 818
            new com.oracle.truffle.polyglot.PolyglotLanguage
            dup
            aload 0 /* this */
            aload 1 /* cache */
            iload 2 /* index */
            iload 2 /* index */
            ifne 1
            iconst_1
            goto 2
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int java.lang.RuntimeException
      StackMap stack: new 0 new 0 com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int
         1: iconst_0
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int java.lang.RuntimeException
      StackMap stack: new 0 new 0 com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.LanguageCache int int
         2: aload 3 /* initError */
            invokespecial com.oracle.truffle.polyglot.PolyglotLanguage.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/LanguageCache;IZLjava/lang/RuntimeException;)V
            astore 4 /* languageImpl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
         3: .line 819
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 4 /* languageImpl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newLanguage:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractLanguageImpl;)Lorg/graalvm/polyglot/Language;
            astore 5 /* language */
        start local 5 // org.graalvm.polyglot.Language language
         4: .line 820
            aload 4 /* languageImpl */
            aload 5 /* language */
            putfield com.oracle.truffle.polyglot.PolyglotLanguage.api:Lorg/graalvm/polyglot/Language;
         5: .line 821
            aload 4 /* languageImpl */
            areturn
        end local 5 // org.graalvm.polyglot.Language language
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage languageImpl
        end local 3 // java.lang.RuntimeException initError
        end local 2 // int index
        end local 1 // com.oracle.truffle.polyglot.LanguageCache cache
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    6     1         cache  Lcom/oracle/truffle/polyglot/LanguageCache;
            0    6     2         index  I
            0    6     3     initError  Ljava/lang/RuntimeException;
            3    6     4  languageImpl  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            4    6     5      language  Lorg/graalvm/polyglot/Language;
    MethodParameters:
           Name  Flags
      cache      
      index      
      initError  

  private static void verifyId(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.String id
        start local 1 // java.lang.String className
         0: .line 825
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
            aload 0 /* id */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 826
            new java.lang.IllegalStateException
            dup
            ldc "The language or instrument with class '%s' uses a reserved id '%s'. Resolve this by using a not reserved id for the language or instrument. The following ids are reserved %s for internal use."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 829
            aload 1 /* className */
            aastore
            dup
            iconst_1
            aload 0 /* id */
            aastore
            dup
            iconst_2
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.RESERVED_IDS:Ljava/util/Set;
            aastore
         3: .line 826
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* id */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 8
         5: .line 831
            new java.lang.IllegalStateException
            dup
            ldc "The language '%s' must not contain a period in its id '%s'. Remove all periods from the id to resolve this issue. "
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 833
            aload 1 /* className */
            aastore
            dup
            iconst_1
            aload 0 /* id */
            aastore
         7: .line 831
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 835
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String className
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0         id  Ljava/lang/String;
            0    9     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      id         
      className  

  private static java.lang.RuntimeException failDuplicateId(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.lang.String duplicateId
        start local 1 // java.lang.String className1
        start local 2 // java.lang.String className2
         0: .line 838
            new java.lang.IllegalStateException
            dup
         1: .line 839
            ldc "Duplicate id '%s' specified by language or instrument with class '%s' and '%s'. Resolve this by specifying a unique id for each language or instrument."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 841
            aload 0 /* duplicateId */
            aastore
            dup
            iconst_1
            aload 1 /* className1 */
            aastore
            dup
            iconst_2
            aload 2 /* className2 */
            aastore
         3: .line 839
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         4: .line 838
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String className2
        end local 1 // java.lang.String className1
        end local 0 // java.lang.String duplicateId
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  duplicateId  Ljava/lang/String;
            0    5     1   className1  Ljava/lang/String;
            0    5     2   className2  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      duplicateId  
      className1   
      className2   

  void checkState();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 845
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
            ifeq 2
         1: .line 846
            ldc "Engine is already closed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         2: .line 848
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  private void addContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 851
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            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 852
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
            ifnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 853
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 3
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
            ifnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 1 /* context */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
            astore 2 /* api */
        start local 2 // org.graalvm.polyglot.Context api
         4: .line 856
            aload 1 /* context */
            aload 2 /* api */
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
         5: .line 857
            aload 1 /* context */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.impl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 1 /* context */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
         6: .line 859
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
            ifnull 8
         7: .line 860
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.validate:(Lcom/oracle/truffle/polyglot/PolyglotLimits;)V
         8: .line 862
      StackMap locals: org.graalvm.polyglot.Context
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
         9: .line 863
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            pop
        10: .line 865
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            ifnull 15
        11: .line 866
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
            astore 3 /* l */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits l
        12: .line 867
            aload 3 /* l */
            ifnonnull 14
        13: .line 868
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
            dup
            astore 3 /* l */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
        14: .line 870
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits
      StackMap stack:
            aload 3 /* l */
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits.initialize:(Lcom/oracle/truffle/polyglot/PolyglotLimits;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 3 // com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits l
        15: .line 873
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoader:Ljava/lang/ClassLoader;
            ifnull 17
        16: .line 874
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.customHostClassLoader:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
        17: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 19
        18: .line 878
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.invalidateStaticContextAssumption:()V
        19: .line 880
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.polyglot.Context api
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   20     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4   20     2      api  Lorg/graalvm/polyglot/Context;
           12   15     3        l  Lcom/oracle/truffle/polyglot/PolyglotLimits$EngineLimits;
    MethodParameters:
         Name  Flags
      context  

  void removeContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 883
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 885
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 886
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
         3: .line 887
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         4: .line 888
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.weakReference:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
         5: .line 889
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
         6: .line 883
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 891
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   11     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    MethodParameters:
         Name  Flags
      context  

  private void workContextReferenceQueue();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 895
            goto 10
        start local 1 // java.lang.ref.Reference ref
         1: .line 896
      StackMap locals: java.lang.ref.Reference
      StackMap stack:
            aload 1 /* ref */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
            astore 2 /* contextRef */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference contextRef
         2: .line 897
            aload 2 /* contextRef */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
            ifne 10
         3: .line 898
            aload 2 /* contextRef */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.ref.Reference com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            astore 3 /* instance */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
         5: .line 899
            aload 3 /* instance */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 3 /* instance */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.freeInstance:(Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
         6: .line 898
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 901
            aload 2 /* contextRef */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.freeInstances:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         8: .line 902
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            aload 2 /* contextRef */
            invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
         9: .line 903
            aload 2 /* contextRef */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.removed:Z
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference contextRef
        end local 1 // java.lang.ref.Reference ref
        10: .line 895
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextsReferenceQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            dup
            astore 1 /* ref */
        start local 1 // java.lang.ref.Reference ref
        11: ifnonnull 1
        12: .line 906
            return
        end local 1 // java.lang.ref.Reference ref
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1   10     1         ref  Ljava/lang/ref/Reference<*>;
           11   13     1         ref  Ljava/lang/ref/Reference<*>;
            2   10     2  contextRef  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            5    6     3    instance  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;

  void reportAllLanguageContexts(com.oracle.truffle.api.instrumentation.ContextsListener);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ContextsListener;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.api.instrumentation.ContextsListener listener
         0: .line 910
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 911
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
            ifeq 4
         2: .line 912
            aload 3
            monitorexit
         3: return
         4: .line 914
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 2 /* allContexts */
        start local 2 // java.util.List allContexts
         5: .line 910
            aload 3
            monitorexit
         6: goto 9
        end local 2 // java.util.List allContexts
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
        start local 2 // java.util.List allContexts
         9: .line 916
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List
      StackMap stack:
            aload 2 /* allContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 23
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        11: .line 917
            aload 1 /* listener */
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onContextCreated:(Lcom/oracle/truffle/api/TruffleContext;)V
        12: .line 918
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 22
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
        13: aload 8
            iload 6
            aaload
            astore 5 /* lc */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext lc
        14: .line 919
            aload 5 /* 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 9 /* language */
        start local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        15: .line 920
            aload 5 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.eventsEnabled:Z
            ifeq 21
            aload 5 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            ifnull 21
        16: .line 921
            aload 1 /* listener */
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 9 /* language */
            invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextCreated:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        17: .line 922
            aload 5 /* lc */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isInitialized:()Z
            ifeq 21
        18: .line 923
            aload 1 /* listener */
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 9 /* language */
            invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextInitialized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        19: .line 924
            aload 5 /* lc */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.finalized:Z
            ifeq 21
        20: .line 925
            aload 1 /* listener */
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 9 /* language */
            invokeinterface com.oracle.truffle.api.instrumentation.ContextsListener.onLanguageContextFinalized:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/nodes/LanguageInfo;)V
        end local 9 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext lc
        21: .line 918
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        22: iload 6
            iload 7
            if_icmplt 13
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        23: .line 916
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ContextsListener java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        24: .line 931
            return
        end local 2 // java.util.List allContexts
        end local 1 // com.oracle.truffle.api.instrumentation.ContextsListener listener
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   25     1     listener  Lcom/oracle/truffle/api/instrumentation/ContextsListener;
            5    7     2  allContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
            9   25     2  allContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           11   23     3      context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           14   21     5           lc  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
           15   21     9     language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      listener  

  void reportAllContextThreads(com.oracle.truffle.api.instrumentation.ThreadsListener);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsListener;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.api.instrumentation.ThreadsListener listener
         0: .line 935
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 936
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
            ifeq 4
         2: .line 937
            aload 3
            monitorexit
         3: return
         4: .line 939
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 2 /* allContexts */
        start local 2 // java.util.List allContexts
         5: .line 935
            aload 3
            monitorexit
         6: goto 9
        end local 2 // java.util.List allContexts
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
        start local 2 // java.util.List allContexts
         9: .line 941
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List
      StackMap stack:
            aload 2 /* allContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 22
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        11: .line 943
            aload 3 /* context */
            dup
            astore 6
            monitorenter
        12: .line 944
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getSeenThreads:()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 /* threads */
        start local 5 // java.lang.Thread[] threads
        13: .line 943
            aload 6
            monitorexit
        14: goto 17
        end local 5 // java.lang.Thread[] threads
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        15: aload 6
            monitorexit
        16: athrow
        start local 5 // java.lang.Thread[] threads
        17: .line 946
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator java.lang.Thread[]
      StackMap stack:
            aload 5 /* threads */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 21
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator java.lang.Thread[] top int int java.lang.Thread[]
      StackMap stack:
        18: aload 9
            iload 7
            aaload
            astore 6 /* thread */
        start local 6 // java.lang.Thread thread
        19: .line 947
            aload 1 /* listener */
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            aload 6 /* thread */
            invokeinterface com.oracle.truffle.api.instrumentation.ThreadsListener.onThreadInitialized:(Lcom/oracle/truffle/api/TruffleContext;Ljava/lang/Thread;)V
        end local 6 // java.lang.Thread thread
        20: .line 946
            iinc 7 1
      StackMap locals:
      StackMap stack:
        21: iload 7
            iload 8
            if_icmplt 18
        end local 5 // java.lang.Thread[] threads
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        22: .line 941
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.api.instrumentation.ThreadsListener java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        23: .line 950
            return
        end local 2 // java.util.List allContexts
        end local 1 // com.oracle.truffle.api.instrumentation.ThreadsListener listener
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   24     1     listener  Lcom/oracle/truffle/api/instrumentation/ThreadsListener;
            5    7     2  allContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
            9   24     2  allContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           11   22     3      context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           13   15     5      threads  [Ljava/lang/Thread;
           17   22     5      threads  [Ljava/lang/Thread;
           19   20     6       thread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
          12    14      15  any
          15    16      15  any
    MethodParameters:
          Name  Flags
      listener  

  public org.graalvm.polyglot.Language requirePublicLanguage(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Language;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.lang.String id
         0: .line 955
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 956
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Language
            astore 2 /* language */
        start local 2 // org.graalvm.polyglot.Language language
         2: .line 957
            aload 2 /* language */
            ifnonnull 8
         3: .line 958
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* id */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.matchSpellingError:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* misspelledGuess */
        start local 3 // java.lang.String misspelledGuess
         4: .line 959
            ldc ""
            astore 4 /* didYouMean */
        start local 4 // java.lang.String didYouMean
         5: .line 960
            aload 3 /* misspelledGuess */
            ifnull 7
         6: .line 961
            ldc "Did you mean '%s'? "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* misspelledGuess */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* didYouMean */
         7: .line 963
      StackMap locals: org.graalvm.polyglot.Language java.lang.String java.lang.String
      StackMap stack:
            ldc "A language with id '%s' is not installed. %sInstalled languages are: %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* id */
            aastore
            dup
            iconst_1
            aload 4 /* didYouMean */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguages:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        end local 4 // java.lang.String didYouMean
        end local 3 // java.lang.String misspelledGuess
         8: .line 965
      StackMap locals:
      StackMap stack:
            aload 2 /* language */
         9: areturn
        end local 2 // org.graalvm.polyglot.Language language
        10: .line 966
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.String
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        11: .line 967
            aload 0 /* this */
            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
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   12     1               id  Ljava/lang/String;
            2   10     2         language  Lorg/graalvm/polyglot/Language;
            4    8     3  misspelledGuess  Ljava/lang/String;
            5    8     4       didYouMean  Ljava/lang/String;
           11   12     2                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      id    

  private static java.lang.String matchSpellingError(java.util.Set<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.Set allIds
        start local 1 // java.lang.String enteredId
         0: .line 972
            aload 1 /* enteredId */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 2 /* lowerCaseEnteredId */
        start local 2 // java.lang.String lowerCaseEnteredId
         1: .line 973
            aload 0 /* allIds */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: java.util.Set java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* id */
        start local 3 // java.lang.String id
         3: .line 974
            aload 3 /* id */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 2 /* lowerCaseEnteredId */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 975
            aload 3 /* id */
            areturn
        end local 3 // java.lang.String id
         5: .line 973
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 978
            aconst_null
            areturn
        end local 2 // java.lang.String lowerCaseEnteredId
        end local 1 // java.lang.String enteredId
        end local 0 // java.util.Set allIds
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0              allIds  Ljava/util/Set<Ljava/lang/String;>;
            0    7     1           enteredId  Ljava/lang/String;
            1    7     2  lowerCaseEnteredId  Ljava/lang/String;
            3    5     3                  id  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      allIds     
      enteredId  

  public org.graalvm.polyglot.Instrument requirePublicInstrument(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/graalvm/polyglot/Instrument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.lang.String id
         0: .line 984
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 985
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            astore 2 /* instrument */
        start local 2 // org.graalvm.polyglot.Instrument instrument
         2: .line 986
            aload 2 /* instrument */
            ifnonnull 8
         3: .line 987
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* id */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.matchSpellingError:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* misspelledGuess */
        start local 3 // java.lang.String misspelledGuess
         4: .line 988
            ldc ""
            astore 4 /* didYouMean */
        start local 4 // java.lang.String didYouMean
         5: .line 989
            aload 3 /* misspelledGuess */
            ifnull 7
         6: .line 990
            ldc "Did you mean '%s'? "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* misspelledGuess */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* didYouMean */
         7: .line 992
      StackMap locals: org.graalvm.polyglot.Instrument java.lang.String java.lang.String
      StackMap stack:
            ldc "An instrument with id '%s' is not installed. %sInstalled instruments are: %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* id */
            aastore
            dup
            iconst_1
            aload 4 /* didYouMean */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getInstruments:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            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
        end local 4 // java.lang.String didYouMean
        end local 3 // java.lang.String misspelledGuess
         8: .line 994
      StackMap locals:
      StackMap stack:
            aload 2 /* instrument */
         9: areturn
        end local 2 // org.graalvm.polyglot.Instrument instrument
        10: .line 995
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.String
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        11: .line 996
            aload 0 /* this */
            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
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   12     1               id  Ljava/lang/String;
            2   10     2       instrument  Lorg/graalvm/polyglot/Instrument;
            4    8     3  misspelledGuess  Ljava/lang/String;
            5    8     4       didYouMean  Ljava/lang/String;
           11   12     2                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      id    

  public void close(org.graalvm.polyglot.Engine, boolean);
    descriptor: (Lorg/graalvm/polyglot/Engine;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // org.graalvm.polyglot.Engine sourceEngine
        start local 2 // boolean cancelIfExecuting
         0: .line 1003
            aload 1 /* sourceEngine */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
            if_acmpeq 2
         1: .line 1004
            ldc "Engine instances that were indirectly received using Context.get() cannot be closed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         2: .line 1006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* cancelIfExecuting */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
         3: .line 1007
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 1008
            aload 0 /* this */
            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
         6: .line 1010
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean cancelIfExecuting
        end local 1 // org.graalvm.polyglot.Engine sourceEngine
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    7     1       sourceEngine  Lorg/graalvm/polyglot/Engine;
            0    7     2  cancelIfExecuting  Z
            5    6     3                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    MethodParameters:
                   Name  Flags
      sourceEngine       
      cancelIfExecuting  

  <T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.polyglot.PolyglotLanguage getLanguage(java.lang.Class<T>, boolean);
    descriptor: (Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.lang.Class languageClass
        start local 2 // boolean fail
         0: .line 1014
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
            aload 1 /* languageClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* foundLanguage */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
         1: .line 1015
            aload 3 /* foundLanguage */
            ifnonnull 7
         2: .line 1016
            aload 1 /* languageClass */
            ldc Lcom/oracle/truffle/polyglot/HostLanguage;
            if_acmpne 4
         3: .line 1017
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostLanguage:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            areturn
         4: .line 1019
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            iload 2 /* fail */
            ifeq 7
         5: .line 1020
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.classToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 4 /* languageNames */
        start local 4 // java.util.Set languageNames
         6: .line 1021
            new java.lang.StringBuilder
            dup
            ldc "Cannot find language "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* languageClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " among "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* 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.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        end local 4 // java.util.Set languageNames
         7: .line 1024
      StackMap locals:
      StackMap stack:
            aload 3 /* foundLanguage */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
        end local 2 // boolean fail
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    8     1  languageClass  Ljava/lang/Class<TT;>;
            0    8     2           fail  Z
            1    8     3  foundLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            6    7     4  languageNames  Ljava/util/Set<Ljava/lang/String;>;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      languageClass  
      fail           

  <T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.polyglot.PolyglotLanguageInstance getCurrentLanguageInstance(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 1028
            aload 0 /* this */
            aload 1 /* languageClass */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 2 /* foundLanguage */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
         1: .line 1029
            aload 2 /* foundLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getCurrentLanguageContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         2: .line 1030
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifne 5
         3: .line 1031
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 1032
            ldc "A context for language %s was not yet created."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* languageClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            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
         5: .line 1034
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    6     1  languageClass  Ljava/lang/Class<TT;>;
            1    6     2  foundLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2    6     3        context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    MethodParameters:
               Name  Flags
      languageClass  

  void ensureClosed(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // boolean cancelIfExecuting
        start local 2 // boolean inShutdownHook
         0: .line 1038
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 1039
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
            ifne 88
         2: .line 1040
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.workContextReferenceQueue:()V
         3: .line 1041
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 4 /* localContexts */
        start local 4 // java.util.List localContexts
         4: .line 1046
            iload 2 /* inShutdownHook */
            ifne 27
         5: .line 1047
            iload 1 /* cancelIfExecuting */
            ifne 17
         6: .line 1048
            aload 4 /* localContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         8: .line 1049
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 9
            aload 5 /* context */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 1050
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator
      StackMap stack:
            aload 5 /* context */
            dup
            astore 7
            monitorenter
        10: .line 1051
            aload 5 /* context */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.hasActiveOtherThread:(Z)Z
            ifeq 12
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            ifnonnull 12
        11: .line 1052
            ldc "One of the context instances is currently executing. 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
        12: .line 1050
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 7
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 7
            monitorexit
        15: athrow
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        16: .line 1048
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        17: .line 1058
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
      StackMap stack:
            aload 4 /* localContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
        18: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        19: .line 1059
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 20
            aload 5 /* context */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 1060
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator
      StackMap stack:
            aload 5 /* context */
            iload 1 /* cancelIfExecuting */
            iload 1 /* cancelIfExecuting */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            istore 7 /* closeCompleted */
        start local 7 // boolean closeCompleted
        21: .line 1061
            iload 7 /* closeCompleted */
            ifne 23
            iload 1 /* cancelIfExecuting */
            ifne 23
        22: .line 1062
            ldc "One of the context instances is currently executing. 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
        23: .line 1065
      StackMap locals: int
      StackMap stack:
            aload 5 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkSubProcessFinished:()V
        end local 7 // boolean closeCompleted
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        24: .line 1058
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        25: .line 1067
            iload 1 /* cancelIfExecuting */
            ifeq 27
        26: .line 1068
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCancelHandler:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            aload 4 /* localContexts */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.cancel:(Ljava/util/List;)V
        27: .line 1073
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
      StackMap stack:
            iload 2 /* inShutdownHook */
            ifne 37
        28: .line 1074
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifne 33
        29: .line 1075
            aload 4 /* localContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 32
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
        30: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        31: .line 1076
            aload 5 /* context */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        32: .line 1075
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 1080
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.clear:()V
        34: .line 1082
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineClosing:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 1083
            aload 3
            monitorexit
        36: return
        37: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 44
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
        38: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 5 /* instrumentImpl */
        start local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        39: .line 1091
            aload 5 /* instrumentImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.notifyClosing:()V
        40: .line 1092
            goto 44
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
      StackMap stack: java.lang.Throwable
        41: astore 7 /* e */
        start local 7 // java.lang.Throwable e
        42: .line 1093
            iload 2 /* inShutdownHook */
            ifne 44
        43: .line 1094
            aload 7 /* e */
            athrow
        end local 7 // java.lang.Throwable e
        end local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        44: .line 1089
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        45: .line 1098
            aload 0 /* this */
            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 52
      StackMap locals:
      StackMap stack:
        46: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 5 /* instrumentImpl */
        start local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        47: .line 1100
            aload 5 /* instrumentImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.ensureClosed:()V
        48: .line 1101
            goto 52
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
      StackMap stack: java.lang.Throwable
        49: astore 7 /* e */
        start local 7 // java.lang.Throwable e
        50: .line 1102
            iload 2 /* inShutdownHook */
            ifne 52
        51: .line 1103
            aload 7 /* e */
            athrow
        end local 7 // java.lang.Throwable e
        end local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrumentImpl
        52: .line 1098
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        53: .line 1108
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
            ifnull 70
        54: .line 1109
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 5 /* logMessage */
        start local 5 // java.io.StringWriter logMessage
        55: .line 1110
            aconst_null
            astore 6
            aconst_null
            astore 7
        56: new java.io.PrintWriter
            dup
            aload 5 /* logMessage */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            astore 8 /* writer */
        start local 8 // java.io.PrintWriter writer
        57: .line 1111
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
            invokevirtual com.oracle.truffle.api.dsl.SpecializationStatistics.hasData:()Z
            ifne 62
        58: .line 1112
            aload 8 /* writer */
            ldc "No specialization statistics data was collected. Either no node with @%s annotations was executed or the interpreter was not compiled with -J-Dtruffle.dsl.GenerateSpecializationStatistics=true e.g as parameter to the javac tool."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        59: .line 1114
            ldc Lcom/oracle/truffle/api/dsl/Specialization;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
        60: .line 1112
            invokevirtual java.io.PrintWriter.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
            pop
        61: .line 1115
            goto 63
        62: .line 1116
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.io.StringWriter java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.specializationStatistics:Lcom/oracle/truffle/api/dsl/SpecializationStatistics;
            aload 8 /* writer */
            invokevirtual com.oracle.truffle.api.dsl.SpecializationStatistics.printHistogram:(Ljava/io/PrintWriter;)V
        63: .line 1118
      StackMap locals:
      StackMap stack:
            aload 8 /* writer */
            ifnull 69
            aload 8 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
            goto 69
      StackMap locals:
      StackMap stack: java.lang.Throwable
        64: astore 6
            aload 8 /* writer */
            ifnull 65
            aload 8 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 8 // java.io.PrintWriter writer
      StackMap locals:
      StackMap stack:
        65: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        66: astore 7
            aload 6
            ifnonnull 67
            aload 7
            astore 6
            goto 68
      StackMap locals:
      StackMap stack:
        67: aload 6
            aload 7
            if_acmpeq 68
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        68: aload 6
            athrow
        69: .line 1119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLogger:()Lcom/oracle/truffle/api/TruffleLogger;
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            ldc "Specialization histogram: %n%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* logMessage */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        end local 5 // java.io.StringWriter logMessage
        70: .line 1122
      StackMap locals:
      StackMap stack:
            iload 2 /* inShutdownHook */
            ifne 86
        71: .line 1123
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.onEngineClosed:(Ljava/lang/Object;)V
        72: .line 1125
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getEngineLoggers:()Ljava/lang/Object;
            astore 5 /* loggers */
        start local 5 // java.lang.Object loggers
        73: .line 1126
            aload 5 /* loggers */
            ifnull 75
        74: .line 1127
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 5 /* loggers */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.closeEngineLoggers:(Ljava/lang/Object;)V
        75: .line 1129
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            ifnull 77
        76: .line 1130
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            invokevirtual java.util.logging.Handler.close:()V
        77: .line 1132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
        78: .line 1133
            aload 0 /* this */
            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 7
            goto 81
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.lang.Object top java.util.Iterator
      StackMap stack:
        79: aload 7
            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
        80: .line 1134
            aload 6 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.close:()V
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguage language
        81: .line 1133
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 79
        82: .line 1136
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            ifnull 84
        83: .line 1137
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.flushCompileQueue:(Ljava/lang/Object;)V
        84: .line 1139
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Object java.util.List java.lang.Object
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            aload 0 /* this */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.Object loggers
        85: .line 1140
            goto 88
      StackMap locals:
      StackMap stack:
        86: aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            ifnull 88
        87: .line 1142
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
            invokevirtual java.util.logging.Handler.flush:()V
        end local 4 // java.util.List localContexts
        88: .line 1038
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        89: goto 92
      StackMap locals:
      StackMap stack: java.lang.Throwable
        90: aload 3
            monitorexit
        91: athrow
        92: .line 1146
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean inShutdownHook
        end local 1 // boolean cancelIfExecuting
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   93     0               this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   93     1  cancelIfExecuting  Z
            0   93     2     inShutdownHook  Z
            4   88     4      localContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
            8   16     5            context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           19   24     5            context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           21   24     7     closeCompleted  Z
           31   32     5            context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           39   44     5     instrumentImpl  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           42   44     7                  e  Ljava/lang/Throwable;
           47   52     5     instrumentImpl  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           50   52     7                  e  Ljava/lang/Throwable;
           55   70     5         logMessage  Ljava/io/StringWriter;
           57   65     8             writer  Ljava/io/PrintWriter;
           73   85     5            loggers  Ljava/lang/Object;
           80   81     6           language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
      Exception table:
        from    to  target  type
          10    13      14  any
          14    15      14  any
          39    40      41  Class java.lang.Throwable
          47    48      49  Class java.lang.Throwable
          57    63      64  any
          56    66      66  any
           1    36      90  any
          37    89      90  any
          90    91      90  any
    MethodParameters:
                   Name  Flags
      cancelIfExecuting  
      inShutdownHook     

  java.util.List<com.oracle.truffle.polyglot.PolyglotContextImpl> collectAliveContexts();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1149
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            pop
         1: .line 1150
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* localContexts */
        start local 1 // java.util.List localContexts
         2: .line 1151
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
            astore 2 /* ref */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference ref
         4: .line 1152
            aload 2 /* ref */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         5: .line 1153
            aload 4 /* context */
            ifnull 8
         6: .line 1154
            aload 1 /* localContexts */
            aload 4 /* context */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1155
            goto 9
         8: .line 1156
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            aload 2 /* ref */
            invokeinterface org.graalvm.collections.EconomicSet.remove:(Ljava/lang/Object;)V
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference ref
         9: .line 1151
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        10: .line 1159
            aload 1 /* localContexts */
            areturn
        end local 1 // java.util.List localContexts
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            2   11     1  localContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
            4    9     2            ref  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            5    9     4        context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    Signature: ()Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;

  public java.util.Map<java.lang.String, org.graalvm.polyglot.Instrument> getInstruments();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1165
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 1166
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicInstrument:Ljava/util/Map;
         2: areturn
         3: .line 1167
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 1168
            aload 0 /* this */
            aload 1 /* t */
            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 t
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Instrument;>;

  public java.util.Map<java.lang.String, org.graalvm.polyglot.Language> getLanguages();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1175
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 1176
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToPublicLanguage:Ljava/util/Map;
         2: areturn
         3: .line 1177
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 1178
            aload 0 /* this */
            aload 1 /* t */
            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 t
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/graalvm/polyglot/Language;>;

  public org.graalvm.options.OptionDescriptors getOptions();
    descriptor: ()Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1185
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 1186
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
         2: areturn
         3: .line 1187
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 1188
            aload 0 /* this */
            aload 1 /* t */
            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 t
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable

  public java.util.Set<org.graalvm.polyglot.Source> getCachedSources();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=10, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1194
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 1195
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* sources */
        start local 1 // java.util.Set sources
         2: .line 1196
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 2 /* activeContexts */
        start local 2 // java.util.List activeContexts
         3: .line 1197
            aload 2 /* activeContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         5: .line 1198
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         6: aload 8
            iload 6
            aaload
            astore 5 /* language */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext language
         7: .line 1199
            aload 5 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstanceOrNull:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            astore 9 /* instance */
        start local 9 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
         8: .line 1200
            aload 9 /* instance */
            ifnull 10
         9: .line 1201
            aload 9 /* instance */
            aload 1 /* sources */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.listCachedSources:(Ljava/util/Collection;)V
        end local 9 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext language
        10: .line 1198
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        11: iload 6
            iload 7
            if_icmplt 6
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        12: .line 1197
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        13: .line 1205
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        14: .line 1206
            aload 0 /* this */
            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 5
            goto 20
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        16: .line 1207
            aload 4 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getInstancePool:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage java.util.Iterator top java.util.Iterator
      StackMap stack:
        17: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            astore 6 /* instance */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
        18: .line 1208
            aload 6 /* instance */
            aload 1 /* sources */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.listCachedSources:(Ljava/util/Collection;)V
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
        19: .line 1207
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        20: .line 1206
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        21: .line 1205
            aload 3
            monitorexit
        22: goto 25
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.Set java.util.List java.lang.Object
      StackMap stack: java.lang.Throwable
        23: aload 3
            monitorexit
        24: athrow
        25: .line 1212
      StackMap locals:
      StackMap stack:
            aload 1 /* sources */
            areturn
        end local 2 // java.util.List activeContexts
        end local 1 // java.util.Set sources
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            2   26     1         sources  Ljava/util/Set<Lorg/graalvm/polyglot/Source;>;
            3   26     2  activeContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
            5   12     3         context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7   10     5        language  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            8   10     9        instance  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
           16   20     4        language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           18   19     6        instance  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
      Exception table:
        from    to  target  type
          14    22      23  any
          23    24      23  any
    Signature: ()Ljava/util/Set<Lorg/graalvm/polyglot/Source;>;

  java.util.Collection<com.oracle.truffle.api.CallTarget> getCallTargets();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1216
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getLoadedCallTargets:(Ljava/lang/Object;)Ljava/util/Collection;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    Signature: ()Ljava/util/Collection<Lcom/oracle/truffle/api/CallTarget;>;

  org.graalvm.options.OptionDescriptors getAllOptions();
    descriptor: ()Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1220
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         1: .line 1221
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
            ifnonnull 19
         2: .line 1222
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 1223
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
            ifnonnull 15
         4: .line 1224
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* allDescriptors */
        start local 2 // java.util.List allDescriptors
         5: .line 1225
            aload 2 /* allDescriptors */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 1226
            aload 0 /* this */
            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 4
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         8: .line 1227
            aload 2 /* allDescriptors */
            aload 3 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         9: .line 1226
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 1229
            aload 0 /* this */
            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 13
      StackMap locals:
      StackMap stack:
        11: 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
        12: .line 1230
            aload 2 /* allDescriptors */
            aload 3 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getAllOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        13: .line 1229
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 1232
            aload 0 /* this */
            aload 2 /* allDescriptors */
            iconst_0
            anewarray org.graalvm.options.OptionDescriptors
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.graalvm.options.OptionDescriptors[]
            invokestatic org.graalvm.options.OptionDescriptors.createUnion:([Lorg/graalvm/options/OptionDescriptors;)Lorg/graalvm/options/OptionDescriptors;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
        end local 2 // java.util.List allDescriptors
        15: .line 1222
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 1
            monitorexit
        18: athrow
        19: .line 1236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.allOptions:Lorg/graalvm/options/OptionDescriptors;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            5   15     2  allDescriptors  Ljava/util/List<Lorg/graalvm/options/OptionDescriptors;>;
            8    9     3        language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           12   13     3      instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
      Exception table:
        from    to  target  type
           3    16      17  any
          17    18      17  any

  void preInitialize();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1240
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1241
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.preInitialize:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         2: .line 1240
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 1243
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  void intitializeStore(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // boolean previousStore
        start local 2 // boolean newStore
         0: .line 1250
            iload 2 /* newStore */
            ifeq 6
         1: .line 1251
            iload 1 /* previousStore */
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 4
         2: .line 1254
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         3: .line 1255
            goto 5
         4: .line 1256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         5: .line 1259
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.enableStore:()V
         6: .line 1261
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean newStore
        end local 1 // boolean previousStore
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    7     1  previousStore  Z
            0    7     2       newStore  Z
    MethodParameters:
               Name  Flags
      previousStore  
      newStore       

  void finalizeStore();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1267
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            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 1269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
         2: .line 1270
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
         3: .line 1271
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
         4: .line 1272
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
         5: .line 1274
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.finalizeStoreInstrumentationHandler:(Ljava/lang/Object;)V
         6: .line 1281
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.storeEngine:Z
            ifeq 8
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 8
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 8
         7: .line 1282
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "Single context after preinitialization."
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
         8: .line 1287
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  static void resetPreInitializedEngine();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1294
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ENGINES:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 1295
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void initializeHostAccess(org.graalvm.polyglot.HostAccess);
    descriptor: (Lorg/graalvm/polyglot/HostAccess;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // org.graalvm.polyglot.HostAccess policy
         0: .line 1298
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            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 1299
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* policy */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 1 /* policy */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
            invokestatic com.oracle.truffle.polyglot.HostClassCache.findOrInitialize:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;Lorg/graalvm/polyglot/HostAccess;Ljava/lang/ClassLoader;)Lcom/oracle/truffle/polyglot/HostClassCache;
            astore 2 /* cache */
        start local 2 // com.oracle.truffle.polyglot.HostClassCache cache
         3: .line 1301
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
            ifnull 6
         4: .line 1302
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
            getfield com.oracle.truffle.polyglot.HostClassCache.hostAccess:Lorg/graalvm/polyglot/HostAccess;
            aload 2 /* cache */
            getfield com.oracle.truffle.polyglot.HostClassCache.hostAccess:Lorg/graalvm/polyglot/HostAccess;
            invokevirtual org.graalvm.polyglot.HostAccess.equals:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 1308
            ldc "Found different host access configuration for a context with a shared engine. The host access configuration must be the same for all contexts of an engine. Provide the same host access configuration using the Context.Builder.allowHostAccess method when constructing the context."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         6: .line 1313
      StackMap locals: com.oracle.truffle.polyglot.HostClassCache
      StackMap stack:
            aload 0 /* this */
            aload 2 /* cache */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
         7: .line 1315
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.polyglot.HostClassCache cache
        end local 1 // org.graalvm.polyglot.HostAccess policy
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    8     1  policy  Lorg/graalvm/polyglot/HostAccess;
            3    8     2   cache  Lcom/oracle/truffle/polyglot/HostClassCache;
    MethodParameters:
        Name  Flags
      policy  

  com.oracle.truffle.polyglot.HostClassCache getHostClassCache();
    descriptor: ()Lcom/oracle/truffle/polyglot/HostClassCache;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1318
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.hostClassCache:Lcom/oracle/truffle/polyglot/HostClassCache;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  int getAsynchronousStackDepth();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1323
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  void setAsynchronousStackDepth(com.oracle.truffle.polyglot.PolyglotInstrument, int);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotInstrument;I)V
    flags: (0x0000) 
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotInstrument polyglotInstrument
        start local 2 // int depth
         0: .line 1328
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 1
            iload 2 /* depth */
            ifge 1
            new java.lang.AssertionError
            dup
            ldc "Wrong depth: %d"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* depth */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1329
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* newDepth */
        start local 3 // int newDepth
         2: .line 1330
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 1331
            aload 1 /* polyglotInstrument */
            iload 2 /* depth */
            putfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
         4: .line 1332
            aload 0 /* this */
            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 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotInstrument int int java.lang.Object top java.util.Iterator
      StackMap stack:
         5: 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
         6: .line 1333
            aload 5 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
            iload 3 /* newDepth */
            if_icmple 8
         7: .line 1334
            aload 5 /* instrument */
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.requestedAsyncStackDepth:I
            istore 3 /* newDepth */
        end local 5 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         8: .line 1332
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 1330
            aload 4
            monitorexit
        10: goto 13
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotInstrument int int java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 1338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* newDepth */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.asynchronousStackDepth:I
        14: .line 1339
            return
        end local 3 // int newDepth
        end local 2 // int depth
        end local 1 // com.oracle.truffle.polyglot.PolyglotInstrument polyglotInstrument
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   15     1  polyglotInstrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
            0   15     2               depth  I
            2   15     3            newDepth  I
            6    8     5          instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
      Exception table:
        from    to  target  type
           3    10      11  any
          11    12      11  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      depth               

  com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler getCancelHandler();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1374
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            ifnonnull 8
         1: .line 1375
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 1376
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            ifnonnull 4
         3: .line 1377
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
         4: .line 1375
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 1381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.cancelHandler:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelHandler;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public java.lang.String getImplementationName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1534
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.getName:()Ljava/lang/String;
         1: areturn
         2: .line 1535
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 1536
            aload 0 /* this */
            aload 1 /* t */
            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 t
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public org.graalvm.polyglot.Context createContext(java.io.OutputStream, java.io.OutputStream, java.io.InputStream, boolean, org.graalvm.polyglot.HostAccess, org.graalvm.polyglot.PolyglotAccess, boolean, boolean, boolean, boolean, boolean, java.util.function.Predicate<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String[]>, java.lang.String[], org.graalvm.polyglot.io.FileSystem, , boolean, org.graalvm.polyglot.io.ProcessHandler, org.graalvm.polyglot.EnvironmentAccess, java.util.Map<java.lang.String, java.lang.String>, java.time.ZoneId, , java.lang.String, java.lang.ClassLoader);
    descriptor: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/HostAccess;Lorg/graalvm/polyglot/PolyglotAccess;ZZZZZLjava/util/function/Predicate;Ljava/util/Map;Ljava/util/Map;[Ljava/lang/String;Lorg/graalvm/polyglot/io/FileSystem;Ljava/lang/Object;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map;Ljava/time/ZoneId;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/graalvm/polyglot/Context;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=26, locals=41, args_size=26
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.io.OutputStream configOut
        start local 2 // java.io.OutputStream configErr
        start local 3 // java.io.InputStream configIn
        start local 4 // boolean allowHostLookup
        start local 5 // org.graalvm.polyglot.HostAccess hostAccess
        start local 6 // org.graalvm.polyglot.PolyglotAccess polyglotAccess
        start local 7 // boolean allowNativeAccess
        start local 8 // boolean allowCreateThread
        start local 9 // boolean allowHostIO
        start local 10 // boolean allowHostClassLoading
        start local 11 // boolean allowExperimentalOptions
        start local 12 // java.util.function.Predicate classFilter
        start local 13 // java.util.Map options
        start local 14 // java.util.Map arguments
        start local 15 // java.lang.String[] onlyLanguages
        start local 16 // org.graalvm.polyglot.io.FileSystem fileSystem
        start local 17 // java.lang.Object logHandlerOrStream
        start local 18 // boolean allowCreateProcess
        start local 19 // org.graalvm.polyglot.io.ProcessHandler processHandler
        start local 20 // org.graalvm.polyglot.EnvironmentAccess environmentAccess
        start local 21 // java.util.Map environment
        start local 22 // java.time.ZoneId zone
        start local 23 // java.lang.Object limitsImpl
        start local 24 // java.lang.String currentWorkingDirectory
        start local 25 // java.lang.ClassLoader hostClassLoader
         0: .line 1585
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 29
            monitorenter
         1: .line 1586
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
         2: .line 1587
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.boundEngine:Z
            ifeq 4
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.isEmpty:()Z
            ifne 4
         3: .line 1588
            ldc "Automatically created engines cannot be used to create more than one context. Use Engine.newBuilder().build() to construct a new engine and pass it using Context.newBuilder().engine(engine).build()."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 1591
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader top top top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 5 /* hostAccess */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
         5: .line 1585
            aload 29
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 29
            monitorexit
         8: athrow
         9: .line 1593
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader
      StackMap stack:
            invokestatic org.graalvm.collections.EconomicSet.create:()Lorg/graalvm/collections/EconomicSet;
            astore 29 /* allowedLanguages */
        start local 29 // org.graalvm.collections.EconomicSet allowedLanguages
        10: .line 1594
            aload 15 /* onlyLanguages */
            arraylength
            ifne 13
        11: .line 1595
            aload 29 /* allowedLanguages */
            aload 0 /* this */
            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
        12: .line 1596
            goto 14
        13: .line 1597
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader top top top org.graalvm.collections.EconomicSet
      StackMap stack:
            aload 29 /* allowedLanguages */
            aload 15 /* onlyLanguages */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface org.graalvm.collections.EconomicSet.addAll:(Ljava/lang/Iterable;)V
        14: .line 1599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 6 /* polyglotAccess */
            aload 29 /* allowedLanguages */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.validatePolyglotAccess:(Lorg/graalvm/polyglot/PolyglotAccess;Lorg/graalvm/collections/UnmodifiableEconomicSet;)Ljava/lang/String;
            astore 30 /* error */
        start local 30 // java.lang.String error
        15: .line 1600
            aload 30 /* error */
            ifnull 17
        16: .line 1601
            aload 30 /* error */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        17: .line 1605
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
            ifne 23
        18: .line 1606
            aload 16 /* fileSystem */
            ifnonnull 20
        19: .line 1607
            invokestatic com.oracle.truffle.polyglot.FileSystems.newNoIOFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            astore 16 /* fileSystem */
        20: .line 1609
      StackMap locals:
      StackMap stack:
            aload 16 /* fileSystem */
            astore 31 /* fs */
        start local 31 // org.graalvm.polyglot.io.FileSystem fs
        21: .line 1610
            aload 16 /* fileSystem */
            astore 32 /* internalFs */
        start local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        22: .line 1611
            goto 31
        end local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        end local 31 // org.graalvm.polyglot.io.FileSystem fs
      StackMap locals:
      StackMap stack:
        23: iload 9 /* allowHostIO */
            ifeq 29
        24: .line 1612
            aload 16 /* fileSystem */
            ifnull 25
            aload 16 /* fileSystem */
            goto 26
      StackMap locals:
      StackMap stack:
        25: invokestatic com.oracle.truffle.polyglot.FileSystems.newDefaultFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.io.FileSystem
        26: astore 31 /* fs */
        start local 31 // org.graalvm.polyglot.io.FileSystem fs
        27: .line 1613
            aload 31 /* fs */
            astore 32 /* internalFs */
        start local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        28: .line 1614
            goto 31
        end local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        end local 31 // org.graalvm.polyglot.io.FileSystem fs
        29: .line 1615
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.FileSystems.newNoIOFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            astore 31 /* fs */
        start local 31 // org.graalvm.polyglot.io.FileSystem fs
        30: .line 1616
            invokestatic com.oracle.truffle.polyglot.FileSystems.newLanguageHomeFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            astore 32 /* internalFs */
        start local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        31: .line 1618
      StackMap locals: org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem
      StackMap stack:
            aload 24 /* currentWorkingDirectory */
            ifnull 34
        32: .line 1619
            aload 31 /* fs */
            aload 31 /* fs */
            aload 24 /* currentWorkingDirectory */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
        33: .line 1620
            aload 32 /* internalFs */
            aload 32 /* internalFs */
            aload 24 /* currentWorkingDirectory */
            invokeinterface org.graalvm.polyglot.io.FileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokeinterface org.graalvm.polyglot.io.FileSystem.setCurrentWorkingDirectory:(Ljava/nio/file/Path;)V
        34: .line 1623
      StackMap locals:
      StackMap stack:
            aload 1 /* configOut */
            ifnull 35
            aload 1 /* configOut */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            if_acmpne 37
        35: .line 1624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 33 /* useOut */
        start local 33 // java.io.OutputStream useOut
        36: .line 1625
            goto 38
        end local 33 // java.io.OutputStream useOut
        37: .line 1626
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* configOut */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.out:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDelegatingOutput:(Ljava/io/OutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Lcom/oracle/truffle/api/impl/DelegatingOutputStream;
            astore 33 /* useOut */
        start local 33 // java.io.OutputStream useOut
        38: .line 1629
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 2 /* configErr */
            ifnull 39
            aload 2 /* configErr */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            if_acmpne 41
        39: .line 1630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 34 /* useErr */
        start local 34 // java.io.OutputStream useErr
        40: .line 1631
            goto 42
        end local 34 // java.io.OutputStream useErr
        41: .line 1632
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 2 /* configErr */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDelegatingOutput:(Ljava/io/OutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Lcom/oracle/truffle/api/impl/DelegatingOutputStream;
            astore 34 /* useErr */
        start local 34 // java.io.OutputStream useErr
        42: .line 1634
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 17 /* logHandlerOrStream */
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.asHandler:(Ljava/lang/Object;)Ljava/util/logging/Handler;
            astore 35 /* useHandler */
        start local 35 // java.util.logging.Handler useHandler
        43: .line 1635
            aload 35 /* useHandler */
            ifnull 44
            aload 35 /* useHandler */
            goto 45
      StackMap locals: java.util.logging.Handler
      StackMap stack:
        44: aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
      StackMap locals:
      StackMap stack: java.util.logging.Handler
        45: astore 35 /* useHandler */
        46: .line 1636
            aload 35 /* useHandler */
            ifnull 47
            aload 35 /* useHandler */
            goto 50
        47: .line 1638
      StackMap locals:
      StackMap stack:
            aload 2 /* configErr */
            ifnonnull 48
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.err:Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getOut:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/io/OutputStream;
            goto 49
      StackMap locals:
      StackMap stack:
        48: aload 2 /* configErr */
        49: .line 1637
      StackMap locals:
      StackMap stack: java.io.OutputStream
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createDefaultHandler:(Ljava/io/OutputStream;)Ljava/util/logging/Handler;
        50: .line 1636
      StackMap locals:
      StackMap stack: java.util.logging.Handler
            astore 35 /* useHandler */
        51: .line 1639
            aload 3 /* configIn */
            ifnonnull 52
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.in:Ljava/io/InputStream;
            goto 53
      StackMap locals:
      StackMap stack:
        52: aload 3 /* configIn */
      StackMap locals:
      StackMap stack: java.io.InputStream
        53: astore 36 /* useIn */
        start local 36 // java.io.InputStream useIn
        54: .line 1641
            iload 18 /* allowCreateProcess */
            ifeq 61
        55: .line 1642
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_CREATE_PROCESS:Z
            ifne 57
        56: .line 1643
            ldc "Cannot allowCreateProcess() because the privilege is removed at image build time"
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        57: .line 1645
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 19 /* processHandler */
            ifnull 58
            aload 19 /* processHandler */
            goto 59
      StackMap locals:
      StackMap stack:
        58: invokestatic com.oracle.truffle.polyglot.ProcessHandlers.newDefaultProcessHandler:()Lorg/graalvm/polyglot/io/ProcessHandler;
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.io.ProcessHandler
        59: astore 37 /* useProcessHandler */
        start local 37 // org.graalvm.polyglot.io.ProcessHandler useProcessHandler
        60: .line 1646
            goto 62
        end local 37 // org.graalvm.polyglot.io.ProcessHandler useProcessHandler
        61: .line 1647
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 37 /* useProcessHandler */
        start local 37 // org.graalvm.polyglot.io.ProcessHandler useProcessHandler
        62: .line 1649
      StackMap locals: org.graalvm.polyglot.io.ProcessHandler
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_ENVIRONMENT_ACCESS:Z
            ifne 64
            aload 20 /* environmentAccess */
            getstatic org.graalvm.polyglot.EnvironmentAccess.NONE:Lorg/graalvm/polyglot/EnvironmentAccess;
            if_acmpeq 64
        63: .line 1650
            ldc "Cannot allow EnvironmentAccess because the privilege is removed at image build time"
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        64: .line 1652
      StackMap locals:
      StackMap stack:
            aload 23 /* limitsImpl */
            checkcast com.oracle.truffle.polyglot.PolyglotLimits
            astore 38 /* polyglotLimits */
        start local 38 // com.oracle.truffle.polyglot.PolyglotLimits polyglotLimits
        65: .line 1653
            new com.oracle.truffle.polyglot.PolyglotContextConfig
            dup
            aload 0 /* this */
            aload 33 /* useOut */
            aload 34 /* useErr */
            aload 36 /* useIn */
        66: .line 1654
            iload 4 /* allowHostLookup */
            aload 6 /* polyglotAccess */
            iload 7 /* allowNativeAccess */
            iload 8 /* allowCreateThread */
            iload 10 /* allowHostClassLoading */
        67: .line 1655
            iload 11 /* allowExperimentalOptions */
            aload 12 /* classFilter */
            aload 14 /* arguments */
            aload 29 /* allowedLanguages */
            aload 13 /* options */
            aload 31 /* fs */
            aload 32 /* internalFs */
            aload 35 /* useHandler */
            iload 18 /* allowCreateProcess */
            aload 37 /* useProcessHandler */
        68: .line 1656
            aload 20 /* environmentAccess */
            aload 21 /* environment */
            aload 22 /* zone */
            aload 38 /* polyglotLimits */
            aload 25 /* hostClassLoader */
        69: .line 1653
            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 39 /* config */
        start local 39 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        70: .line 1657
            aload 0 /* this */
            aload 39 /* config */
            aload 5 /* hostAccess */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.loadPreinitializedContext:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;Lorg/graalvm/polyglot/HostAccess;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 26 /* context */
        start local 26 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        71: .line 1658
            iconst_0
            istore 27 /* replayEvents */
        start local 27 // boolean replayEvents
        72: .line 1659
            iconst_0
            istore 28 /* contextAddedToEngine */
        start local 28 // boolean contextAddedToEngine
        73: .line 1660
            aload 26 /* context */
            ifnonnull 83
        74: .line 1661
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 40
            monitorenter
        75: .line 1662
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.checkState:()V
        76: .line 1663
            new com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            aload 0 /* this */
            aload 39 /* config */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
            astore 26 /* context */
        77: .line 1664
            aload 0 /* this */
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        78: .line 1665
            iconst_1
            istore 28 /* contextAddedToEngine */
        79: .line 1661
            aload 40
            monitorexit
        80: goto 88
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int org.graalvm.collections.EconomicSet java.lang.String org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.io.OutputStream java.io.OutputStream java.util.logging.Handler java.io.InputStream org.graalvm.polyglot.io.ProcessHandler com.oracle.truffle.polyglot.PolyglotLimits com.oracle.truffle.polyglot.PolyglotContextConfig java.lang.Object
      StackMap stack: java.lang.Throwable
        81: aload 40
            monitorexit
        82: athrow
        83: .line 1667
      StackMap locals:
      StackMap stack:
            aload 26 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 0 /* this */
            if_acmpne 88
        84: .line 1668
            iconst_1
            istore 27 /* replayEvents */
        end local 39 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        end local 38 // com.oracle.truffle.polyglot.PolyglotLimits polyglotLimits
        end local 37 // org.graalvm.polyglot.io.ProcessHandler useProcessHandler
        end local 36 // java.io.InputStream useIn
        end local 35 // java.util.logging.Handler useHandler
        end local 34 // java.io.OutputStream useErr
        end local 33 // java.io.OutputStream useOut
        end local 32 // org.graalvm.polyglot.io.FileSystem internalFs
        end local 31 // org.graalvm.polyglot.io.FileSystem fs
        end local 30 // java.lang.String error
        end local 29 // org.graalvm.collections.EconomicSet allowedLanguages
        85: .line 1670
            goto 88
        end local 28 // boolean contextAddedToEngine
        end local 27 // boolean replayEvents
        end local 26 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
        86: astore 29 /* t */
        start local 29 // java.lang.Throwable t
        87: .line 1671
            aload 0 /* this */
            aload 29 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 29 // java.lang.Throwable t
        start local 26 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 27 // boolean replayEvents
        start local 28 // boolean contextAddedToEngine
        88: .line 1675
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack:
            iload 27 /* replayEvents */
            ifne 104
        89: .line 1677
            aload 26 /* context */
            dup
            astore 30
            monitorenter
        90: .line 1678
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeContextLocals:()V
        91: .line 1677
            aload 30
            monitorexit
        92: goto 104
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        93: aload 30
            monitorexit
        94: athrow
        95: .line 1680
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack: java.lang.Throwable
            astore 30 /* t */
        start local 30 // java.lang.Throwable t
        96: .line 1681
            iload 28 /* contextAddedToEngine */
            ifeq 103
        97: .line 1682
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 31
            monitorenter
        98: .line 1683
            aload 0 /* this */
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.removeContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        99: .line 1682
            aload 31
            monitorexit
       100: goto 103
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int top java.lang.Throwable java.lang.Object
      StackMap stack: java.lang.Throwable
       101: aload 31
            monitorexit
       102: athrow
       103: .line 1686
      StackMap locals:
      StackMap stack:
            aload 30 /* t */
            athrow
        end local 30 // java.lang.Throwable t
       104: .line 1689
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.hasContextBindings:(Ljava/lang/Object;)Z
            istore 29 /* hasContextBindings */
        start local 29 // boolean hasContextBindings
       105: .line 1690
            goto 108
        end local 29 // boolean hasContextBindings
      StackMap locals:
      StackMap stack: java.lang.Throwable
       106: astore 30 /* t */
        start local 30 // java.lang.Throwable t
       107: .line 1691
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 30 /* t */
            iconst_0
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 30 // java.lang.Throwable t
        start local 29 // boolean hasContextBindings
       108: .line 1693
      StackMap locals: int
      StackMap stack:
            iload 27 /* replayEvents */
            ifeq 127
            iload 29 /* hasContextBindings */
            ifeq 127
       109: .line 1698
            aload 0 /* this */
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 30 /* prev */
        start local 30 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
       110: .line 1699
            goto 113
        end local 30 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
      StackMap locals:
      StackMap stack: java.lang.Throwable
       111: astore 31 /* t */
        start local 31 // java.lang.Throwable t
       112: .line 1700
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 31 /* t */
            iconst_0
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 31 // java.lang.Throwable t
        start local 30 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
       113: .line 1703
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.replayInstrumentationEvents:()V
       114: .line 1704
            goto 123
      StackMap locals:
      StackMap stack: java.lang.Throwable
       115: astore 31 /* t */
        start local 31 // java.lang.Throwable t
       116: .line 1705
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 31 /* 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 31 // java.lang.Throwable t
       117: .line 1706
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 32
       118: .line 1708
            aload 0 /* this */
            aload 30 /* prev */
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
       119: .line 1709
            goto 122
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl top java.lang.Throwable
      StackMap stack: java.lang.Throwable
       120: astore 33 /* t */
        start local 33 // java.lang.Throwable t
       121: .line 1710
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 33 /* t */
            iconst_0
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 33 // java.lang.Throwable t
       122: .line 1712
      StackMap locals:
      StackMap stack:
            aload 32
            athrow
       123: .line 1708
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.HostAccess org.graalvm.polyglot.PolyglotAccess int int int int int java.util.function.Predicate java.util.Map java.util.Map java.lang.String[] org.graalvm.polyglot.io.FileSystem java.lang.Object int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId java.lang.Object java.lang.String java.lang.ClassLoader com.oracle.truffle.polyglot.PolyglotContextImpl int int int com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 0 /* this */
            aload 30 /* prev */
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
       124: .line 1709
            goto 127
      StackMap locals:
      StackMap stack: java.lang.Throwable
       125: astore 33 /* t */
        start local 33 // java.lang.Throwable t
       126: .line 1710
            aload 26 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            aload 33 /* t */
            iconst_0
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 33 // java.lang.Throwable t
        end local 30 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
       127: .line 1714
      StackMap locals:
      StackMap stack:
            aload 26 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
            areturn
        end local 29 // boolean hasContextBindings
        end local 28 // boolean contextAddedToEngine
        end local 27 // boolean replayEvents
        end local 26 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 25 // java.lang.ClassLoader hostClassLoader
        end local 24 // java.lang.String currentWorkingDirectory
        end local 23 // java.lang.Object limitsImpl
        end local 22 // java.time.ZoneId zone
        end local 21 // java.util.Map environment
        end local 20 // org.graalvm.polyglot.EnvironmentAccess environmentAccess
        end local 19 // org.graalvm.polyglot.io.ProcessHandler processHandler
        end local 18 // boolean allowCreateProcess
        end local 17 // java.lang.Object logHandlerOrStream
        end local 16 // org.graalvm.polyglot.io.FileSystem fileSystem
        end local 15 // java.lang.String[] onlyLanguages
        end local 14 // java.util.Map arguments
        end local 13 // java.util.Map options
        end local 12 // java.util.function.Predicate classFilter
        end local 11 // boolean allowExperimentalOptions
        end local 10 // boolean allowHostClassLoading
        end local 9 // boolean allowHostIO
        end local 8 // boolean allowCreateThread
        end local 7 // boolean allowNativeAccess
        end local 6 // org.graalvm.polyglot.PolyglotAccess polyglotAccess
        end local 5 // org.graalvm.polyglot.HostAccess hostAccess
        end local 4 // boolean allowHostLookup
        end local 3 // java.io.InputStream configIn
        end local 2 // java.io.OutputStream configErr
        end local 1 // java.io.OutputStream configOut
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0  128     0                      this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0  128     1                 configOut  Ljava/io/OutputStream;
            0  128     2                 configErr  Ljava/io/OutputStream;
            0  128     3                  configIn  Ljava/io/InputStream;
            0  128     4           allowHostLookup  Z
            0  128     5                hostAccess  Lorg/graalvm/polyglot/HostAccess;
            0  128     6            polyglotAccess  Lorg/graalvm/polyglot/PolyglotAccess;
            0  128     7         allowNativeAccess  Z
            0  128     8         allowCreateThread  Z
            0  128     9               allowHostIO  Z
            0  128    10     allowHostClassLoading  Z
            0  128    11  allowExperimentalOptions  Z
            0  128    12               classFilter  Ljava/util/function/Predicate<Ljava/lang/String;>;
            0  128    13                   options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0  128    14                 arguments  Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;
            0  128    15             onlyLanguages  [Ljava/lang/String;
            0  128    16                fileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0  128    17        logHandlerOrStream  Ljava/lang/Object;
            0  128    18        allowCreateProcess  Z
            0  128    19            processHandler  Lorg/graalvm/polyglot/io/ProcessHandler;
            0  128    20         environmentAccess  Lorg/graalvm/polyglot/EnvironmentAccess;
            0  128    21               environment  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0  128    22                      zone  Ljava/time/ZoneId;
            0  128    23                limitsImpl  Ljava/lang/Object;
            0  128    24   currentWorkingDirectory  Ljava/lang/String;
            0  128    25           hostClassLoader  Ljava/lang/ClassLoader;
           71   86    26                   context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           88  128    26                   context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           72   86    27              replayEvents  Z
           88  128    27              replayEvents  Z
           73   86    28      contextAddedToEngine  Z
           88  128    28      contextAddedToEngine  Z
           10   85    29          allowedLanguages  Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;
           15   85    30                     error  Ljava/lang/String;
           21   23    31                        fs  Lorg/graalvm/polyglot/io/FileSystem;
           27   29    31                        fs  Lorg/graalvm/polyglot/io/FileSystem;
           30   85    31                        fs  Lorg/graalvm/polyglot/io/FileSystem;
           22   23    32                internalFs  Lorg/graalvm/polyglot/io/FileSystem;
           28   29    32                internalFs  Lorg/graalvm/polyglot/io/FileSystem;
           31   85    32                internalFs  Lorg/graalvm/polyglot/io/FileSystem;
           36   37    33                    useOut  Ljava/io/OutputStream;
           38   85    33                    useOut  Ljava/io/OutputStream;
           40   41    34                    useErr  Ljava/io/OutputStream;
           42   85    34                    useErr  Ljava/io/OutputStream;
           43   85    35                useHandler  Ljava/util/logging/Handler;
           54   85    36                     useIn  Ljava/io/InputStream;
           60   61    37         useProcessHandler  Lorg/graalvm/polyglot/io/ProcessHandler;
           62   85    37         useProcessHandler  Lorg/graalvm/polyglot/io/ProcessHandler;
           65   85    38            polyglotLimits  Lcom/oracle/truffle/polyglot/PolyglotLimits;
           70   85    39                    config  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
           87   88    29                         t  Ljava/lang/Throwable;
          105  106    29        hasContextBindings  Z
          108  128    29        hasContextBindings  Z
           96  104    30                         t  Ljava/lang/Throwable;
          107  108    30                         t  Ljava/lang/Throwable;
          110  111    30                      prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
          113  127    30                      prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
          112  113    31                         t  Ljava/lang/Throwable;
          116  117    31                         t  Ljava/lang/Throwable;
          121  122    33                         t  Ljava/lang/Throwable;
          126  127    33                         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
          75    80      81  any
          81    82      81  any
           0    85      86  Class java.lang.Throwable
          90    92      93  any
          93    94      93  any
          89    95      95  Class java.lang.Throwable
          98   100     101  any
         101   102     101  any
          88   105     106  Class java.lang.Throwable
         109   110     111  Class java.lang.Throwable
         113   114     115  Class java.lang.Throwable
         113   117     117  any
         118   119     120  Class java.lang.Throwable
         123   124     125  Class java.lang.Throwable
    Signature: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/HostAccess;Lorg/graalvm/polyglot/PolyglotAccess;ZZZZZLjava/util/function/Predicate<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;[Ljava/lang/String;Lorg/graalvm/polyglot/io/FileSystem;Ljava/lang/Object;ZLorg/graalvm/polyglot/io/ProcessHandler;Lorg/graalvm/polyglot/EnvironmentAccess;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/time/ZoneId;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/graalvm/polyglot/Context;
    MethodParameters:
                          Name  Flags
      configOut                 
      configErr                 
      configIn                  
      allowHostLookup           
      hostAccess                
      polyglotAccess            
      allowNativeAccess         
      allowCreateThread         
      allowHostIO               
      allowHostClassLoading     
      allowExperimentalOptions  
      classFilter               
      options                   
      arguments                 
      onlyLanguages             
      fileSystem                
      logHandlerOrStream        
      allowCreateProcess        
      processHandler            
      environmentAccess         
      environment               
      zone                      
      limitsImpl                
      currentWorkingDirectory   
      hostClassLoader           

  private com.oracle.truffle.polyglot.PolyglotContextImpl loadPreinitializedContext(com.oracle.truffle.polyglot.PolyglotContextConfig, org.graalvm.polyglot.HostAccess);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextConfig;Lorg/graalvm/polyglot/HostAccess;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        start local 2 // org.graalvm.polyglot.HostAccess hostAccess
         0: .line 1718
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitializedContext:Ljava/util/concurrent/atomic/AtomicReference;
            aconst_null
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 1719
            aload 3 /* context */
            ifnull 81
         2: .line 1720
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            astore 4 /* preInitFs */
        start local 4 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem preInitFs
         3: .line 1721
            aload 4 /* preInitFs */
            aload 1 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onLoadPreinitializedContext:(Lorg/graalvm/polyglot/io/FileSystem;)V
         4: .line 1722
            aload 1 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            astore 5 /* oldFileSystem */
        start local 5 // org.graalvm.polyglot.io.FileSystem oldFileSystem
         5: .line 1723
            aload 1 /* config */
            aload 4 /* preInitFs */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
         6: .line 1725
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            astore 4 /* preInitFs */
         7: .line 1726
            aload 4 /* preInitFs */
            aload 1 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.onLoadPreinitializedContext:(Lorg/graalvm/polyglot/io/FileSystem;)V
         8: .line 1727
            aload 1 /* config */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            astore 6 /* oldInternalFileSystem */
        start local 6 // org.graalvm.polyglot.io.FileSystem oldInternalFileSystem
         9: .line 1728
            aload 1 /* config */
            aload 4 /* preInitFs */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        10: .line 1730
            iconst_0
            istore 7 /* patchResult */
        start local 7 // boolean patchResult
        11: .line 1732
            aload 3 /* context */
            aload 1 /* config */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.patch:(Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)Z
            istore 7 /* patchResult */
        12: .line 1733
            goto 48
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int
      StackMap stack: java.lang.Throwable
        13: astore 8
        14: .line 1734
            iload 7 /* patchResult */
            ifeq 31
        15: .line 1735
            aconst_null
            astore 9 /* toCreate */
        start local 9 // java.util.Collection toCreate
        16: .line 1736
            aload 0 /* this */
            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 11
            goto 22
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection top java.util.Iterator
      StackMap stack:
        17: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 10 /* instrument */
        start local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        18: .line 1737
            aload 10 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            ifnull 22
        19: .line 1738
            aload 9 /* toCreate */
            ifnonnull 21
        20: .line 1739
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* toCreate */
        21: .line 1741
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
      StackMap stack:
            aload 9 /* toCreate */
            aload 10 /* instrument */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        22: .line 1736
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        23: .line 1744
            aload 9 /* toCreate */
            ifnull 25
        24: .line 1745
            aload 9 /* toCreate */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
        25: .line 1747
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        26: .line 1748
            aload 0 /* this */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        27: .line 1747
            aload 10
            monitorexit
        28: goto 47
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
        29: aload 10
            monitorexit
        30: athrow
        end local 9 // java.util.Collection toCreate
        31: .line 1751
      StackMap locals:
      StackMap stack:
            aload 3 /* context */
            iconst_0
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            pop
        32: .line 1752
            aconst_null
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        33: .line 1753
            aload 1 /* config */
            aload 5 /* oldFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        34: .line 1754
            aload 1 /* config */
            aload 6 /* oldInternalFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        35: .line 1755
            new com.oracle.truffle.polyglot.PolyglotEngineImpl
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
            astore 9 /* engine */
        start local 9 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        36: .line 1756
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
        37: .line 1757
            aload 9 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        38: .line 1758
            aload 9 /* engine */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 9 /* engine */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
        39: .line 1759
            aload 9 /* engine */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 9 /* engine */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
        40: .line 1760
            aload 9 /* engine */
            aload 2 /* hostAccess */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
        41: .line 1761
            new com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            aload 9 /* engine */
            aload 1 /* config */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
            astore 3 /* context */
        42: .line 1762
            aload 9 /* engine */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        43: .line 1757
            aload 10
            monitorexit
        44: goto 47
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int java.lang.Throwable com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
      StackMap stack: java.lang.Throwable
        45: aload 10
            monitorexit
        46: athrow
        end local 9 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        47: .line 1765
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        48: .line 1734
      StackMap locals:
      StackMap stack:
            iload 7 /* patchResult */
            ifeq 65
        49: .line 1735
            aconst_null
            astore 9 /* toCreate */
        start local 9 // java.util.Collection toCreate
        50: .line 1736
            aload 0 /* this */
            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 11
            goto 56
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection top java.util.Iterator
      StackMap stack:
        51: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 10 /* instrument */
        start local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        52: .line 1737
            aload 10 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getOptionValuesIfExists:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            ifnull 56
        53: .line 1738
            aload 9 /* toCreate */
            ifnonnull 55
        54: .line 1739
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* toCreate */
        55: .line 1741
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection com.oracle.truffle.polyglot.PolyglotInstrument java.util.Iterator
      StackMap stack:
            aload 9 /* toCreate */
            aload 10 /* instrument */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        56: .line 1736
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 51
        57: .line 1744
            aload 9 /* toCreate */
            ifnull 59
        58: .line 1745
            aload 9 /* toCreate */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureInstrumentsCreated:(Ljava/util/Collection;)V
        59: .line 1747
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        60: .line 1748
            aload 0 /* this */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        61: .line 1747
            aload 10
            monitorexit
        62: goto 81
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
        63: aload 10
            monitorexit
        64: athrow
        end local 9 // java.util.Collection toCreate
        65: .line 1751
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int
      StackMap stack:
            aload 3 /* context */
            iconst_0
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            pop
        66: .line 1752
            aconst_null
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.disposeStaticContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        67: .line 1753
            aload 1 /* config */
            aload 5 /* oldFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        68: .line 1754
            aload 1 /* config */
            aload 6 /* oldInternalFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        69: .line 1755
            new com.oracle.truffle.polyglot.PolyglotEngineImpl
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
            astore 9 /* engine */
        start local 9 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        70: .line 1756
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
        71: .line 1757
            aload 9 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        72: .line 1758
            aload 9 /* engine */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 9 /* engine */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
        73: .line 1759
            aload 9 /* engine */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 9 /* engine */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
        74: .line 1760
            aload 9 /* engine */
            aload 2 /* hostAccess */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeHostAccess:(Lorg/graalvm/polyglot/HostAccess;)V
        75: .line 1761
            new com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            aload 9 /* engine */
            aload 1 /* config */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextConfig;)V
            astore 3 /* context */
        76: .line 1762
            aload 9 /* engine */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.addContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        77: .line 1757
            aload 10
            monitorexit
        78: goto 81
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem int top com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object
      StackMap stack: java.lang.Throwable
        79: aload 10
            monitorexit
        80: athrow
        end local 9 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 7 // boolean patchResult
        end local 6 // org.graalvm.polyglot.io.FileSystem oldInternalFileSystem
        end local 5 // org.graalvm.polyglot.io.FileSystem oldFileSystem
        end local 4 // com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem preInitFs
        81: .line 1767
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextConfig org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 3 /* context */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // org.graalvm.polyglot.HostAccess hostAccess
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextConfig config
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   82     0                   this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   82     1                 config  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0   82     2             hostAccess  Lorg/graalvm/polyglot/HostAccess;
            1   82     3                context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3   81     4              preInitFs  Lcom/oracle/truffle/polyglot/FileSystems$PreInitializeContextFileSystem;
            5   81     5          oldFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            9   81     6  oldInternalFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
           11   81     7            patchResult  Z
           16   31     9               toCreate  Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
           50   65     9               toCreate  Ljava/util/Collection<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
           18   22    10             instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           52   56    10             instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           36   47     9                 engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
           70   81     9                 engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
      Exception table:
        from    to  target  type
          11    13      13  any
          26    28      29  any
          29    30      29  any
          38    44      45  any
          45    46      45  any
          60    62      63  any
          63    64      63  any
          72    78      79  any
          79    80      79  any
    MethodParameters:
            Name  Flags
      config      
      hostAccess  

  com.oracle.truffle.polyglot.OptionValuesImpl getEngineOptionValues();
    descriptor: ()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1771
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  java.lang.Object getOrCreateEngineLoggers();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1775
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
            astore 1 /* res */
        start local 1 // java.lang.Object res
         1: .line 1776
            aload 1 /* res */
            ifnonnull 17
         2: .line 1777
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 1778
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
            astore 1 /* res */
         4: .line 1779
            aload 1 /* res */
            ifnonnull 13
         5: .line 1780
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createEngineSPI:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCache;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEngineLoggers:(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
            astore 1 /* res */
         6: .line 1781
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contexts:Lorg/graalvm/collections/EconomicSet;
            invokeinterface org.graalvm.collections.EconomicSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.lang.Object top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference
            astore 3 /* contextRef */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference contextRef
         8: .line 1782
            aload 3 /* contextRef */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         9: .line 1783
            aload 5 /* context */
            ifnull 11
            aload 5 /* context */
            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 11
        10: .line 1784
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 5 /* context */
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* res */
            aastore
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.configureLoggers:(Ljava/lang/Object;Ljava/util/Map;[Ljava/lang/Object;)V
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl$ContextWeakReference contextRef
        11: .line 1781
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 1787
            aload 0 /* this */
            aload 1 /* res */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
        13: .line 1777
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 1791
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 1 // java.lang.Object res
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1   18     1         res  Ljava/lang/Object;
            8   11     3  contextRef  Lcom/oracle/truffle/polyglot/PolyglotContextImpl$ContextWeakReference;
            9   11     5     context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           3    14      15  any
          15    16      15  any

  java.lang.Object getEngineLoggers();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1795
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineLoggers:Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  java.util.function.Supplier<java.util.Map<java.lang.String, java.util.Collection<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector>>> getFileTypeDetectorsSupplier();
    descriptor: ()Ljava/util/function/Supplier;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
         0: .line 1799
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
            astore 1 /* res */
        start local 1 // java.util.function.Supplier res
         1: .line 1800
            aload 1 /* res */
            ifnonnull 16
         2: .line 1801
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 1802
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
            astore 1 /* res */
         4: .line 1803
            aload 1 /* res */
            ifnonnull 12
         5: .line 1804
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* languageCaches */
        start local 3 // java.util.Collection languageCaches
         6: .line 1805
            aload 0 /* this */
            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 5
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.function.Supplier java.lang.Object java.util.Collection top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         8: .line 1806
            aload 3 /* languageCaches */
            aload 4 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         9: .line 1805
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 1808
            aload 3 /* languageCaches */
            invokestatic com.oracle.truffle.polyglot.FileSystems.newFileTypeDetectorsSupplier:(Ljava/lang/Iterable;)Ljava/util/function/Supplier;
            astore 1 /* res */
        11: .line 1809
            aload 0 /* this */
            aload 1 /* res */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.fileTypeDetectorsSupplier:Ljava/util/function/Supplier;
        end local 3 // java.util.Collection languageCaches
        12: .line 1801
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.function.Supplier java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 1813
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 1 // java.util.function.Supplier res
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            1   17     1             res  Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;
            6   12     3  languageCaches  Ljava/util/Collection<Lcom/oracle/truffle/polyglot/LanguageCache;>;
            8    9     4        language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
      Exception table:
        from    to  target  type
           3    13      14  any
          14    15      14  any
    Signature: ()Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;>;

  boolean needsEnter(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1820
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.getSingleContextState:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getSingleContextAssumption:()Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 4
         1: .line 1822
            getstatic com.oracle.truffle.polyglot.PolyglotContextImpl.singleContextState:Lcom/oracle/truffle/polyglot/PolyglotContextImpl$SingleContextState;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl$SingleContextState.getContextThreadLocal:()Lcom/oracle/truffle/polyglot/PolyglotContextThreadLocal;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.isSet:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 1824
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 1 /* context */
            if_acmpeq 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    6     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
         Name  Flags
      context  

  java.lang.Object enterIfNeeded(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1829
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.needsEnter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
            ifeq 2
         1: .line 1830
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            areturn
         2: .line 1832
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 3
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 1833
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    4     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
         Name  Flags
      context  

  void leaveIfNeeded(java.lang.Object, com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.lang.Object prev
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1837
            aload 1 /* prev */
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.NO_ENTER:Ljava/lang/Object;
            if_acmpeq 2
         1: .line 1838
            aload 0 /* this */
            aload 1 /* prev */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            aload 2 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         2: .line 1840
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.Object prev
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    3     1     prev  Ljava/lang/Object;
            0    3     2  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
         Name  Flags
      prev     
      context  

  com.oracle.truffle.polyglot.PolyglotContextImpl enter(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1844
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 3 /* info */
        start local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         1: .line 1845
            ldc 0.75
            aload 3 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 2
            iconst_1
            goto 3
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack: double
         2: iconst_0
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack: double int
         3: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
            ifeq 10
         4: .line 1847
            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 1 /* context */
            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
         5: .line 1849
            aload 3 /* info */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.enter:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         6: .line 1850
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack: java.lang.Throwable
         7: astore 4 /* t */
        start local 4 // java.lang.Throwable t
         8: .line 1851
            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
         9: .line 1852
            aload 4 /* t */
            athrow
        end local 4 // java.lang.Throwable t
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        10: .line 1856
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 12
        11: .line 1857
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
        12: .line 1859
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.enterThreadChanged:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* prev */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        13: .line 1861
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 14
            aload 1 /* context */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.verifyContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1862
      StackMap locals:
      StackMap stack:
            aload 2 /* prev */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   15     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            5   10     2     prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
           13   15     2     prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            1   15     3     info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            8   10     4        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      context  

  private static boolean verifyContext(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1866
            aload 0 /* context */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            if_acmpeq 1
            aload 0 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 1
            aload 0 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
         Name  Flags
      context  

  void leave(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
         0: .line 1870
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.$assertionsDisabled:Z
            ifne 2
            aload 2 /* polyglotContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 2
            aload 2 /* polyglotContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 2
         1: .line 1871
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 2 /* polyglotContext */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            ldc "Cannot leave context that is currently not entered. Forgot to enter or leave a context?"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1872
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* polyglotContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCachedThreadInfo:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            astore 3 /* info */
        start local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
         3: .line 1874
            ldc 0.75
            aload 3 /* info */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.getThread:()Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack: double
         4: iconst_0
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotThreadInfo
      StackMap stack: double int
         5: invokestatic com.oracle.truffle.api.CompilerDirectives.injectBranchProbability:(DZ)Z
            ifeq 8
         6: .line 1875
            aload 3 /* info */
            aload 0 /* this */
            aload 2 /* polyglotContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotThreadInfo.leave:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         7: .line 1876
            goto 15
         8: .line 1877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 10
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 10
         9: .line 1878
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        10: .line 1880
      StackMap locals:
      StackMap stack:
            aload 2 /* polyglotContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.leaveThreadChanged:()Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            pop
        11: .line 1882
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
        13: .line 1883
            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 1 /* prev */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
        14: .line 1884
            aload 4
            athrow
        15: .line 1883
      StackMap locals:
      StackMap stack:
            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 1 /* prev */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextThreadLocal.set:(Ljava/lang/Object;)V
        16: .line 1885
            return
        end local 3 // com.oracle.truffle.polyglot.PolyglotThreadInfo info
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl prev
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   17     1             prev  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   17     2  polyglotContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3   17     3             info  Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
      Exception table:
        from    to  target  type
           3    12      12  any
    MethodParameters:
                 Name  Flags
      prev             
      polyglotContext  

  com.oracle.truffle.polyglot.PolyglotThreadInfo getCachedThreadInfo(com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 1888
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleThreadPerContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.neverInterrupted:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifeq 2
         1: .line 1889
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.constantCurrentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            areturn
         2: .line 1891
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentThreadInfo:Lcom/oracle/truffle/polyglot/PolyglotThreadInfo;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    3     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
         Name  Flags
      context  

  com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] addContextLocals(java.util.List<? extends com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal<?>>);
    descriptor: (Ljava/util/List;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.List newLocals
         0: .line 1909
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 1910
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            astore 6 /* stableLocations */
        start local 6 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations stableLocations
         2: .line 1911
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            istore 7 /* index */
        start local 7 // int index
         3: .line 1912
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            aload 1 /* newLocals */
            invokeinterface java.util.List.size:()I
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
            astore 8 /* locationsCopy */
        start local 8 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locationsCopy
         4: .line 1913
            aload 1 /* newLocals */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations int com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
      StackMap stack:
         5: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal
            astore 9 /* newLocal */
        start local 9 // com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal newLocal
         6: .line 1914
            aload 8 /* locationsCopy */
            iload 7 /* index */
            aload 9 /* newLocal */
            iload 7 /* index */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal.createLocation:(I)Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aastore
         7: .line 1915
            aload 9 /* newLocal */
            aload 8 /* locationsCopy */
            iload 7 /* index */
            aaload
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal.initializeLocation:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
         8: .line 1916
            iinc 7 /* index */ 1
        end local 9 // com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal newLocal
         9: .line 1913
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 1922
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 2 /* aliveContexts */
        start local 2 // java.util.List aliveContexts
        11: .line 1923
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            aload 8 /* locationsCopy */
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            dup
            astore 4 /* newStableLocations */
        start local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        12: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        13: .line 1924
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
            ldc "Context local added"
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
        14: .line 1925
            aload 8 /* locationsCopy */
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            iload 7 /* index */
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
            astore 3 /* newLocations */
        end local 8 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locationsCopy
        end local 7 // int index
        end local 6 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations stableLocations
        start local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        15: .line 1909
            aload 5
            monitorexit
        16: goto 19
        end local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        end local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        end local 2 // java.util.List aliveContexts
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 5
            monitorexit
        18: athrow
        start local 2 // java.util.List aliveContexts
        start local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        start local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        19: .line 1927
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
      StackMap stack:
            aload 2 /* aliveContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 30
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        21: .line 1928
            aload 5 /* context */
            dup
            astore 7
            monitorenter
        22: .line 1929
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 23
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 25
        23: .line 1930
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 7
            monitorexit
        24: goto 30
        25: .line 1932
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            aload 4 /* newStableLocations */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.resizeContextLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
        26: .line 1928
            aload 7
            monitorexit
        27: goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: aload 7
            monitorexit
        29: athrow
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        30: .line 1927
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        31: .line 1935
            aload 3 /* newLocations */
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        end local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        end local 2 // java.util.List aliveContexts
        end local 1 // java.util.List newLocals
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   32     0                this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   32     1           newLocals  Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;>;
           11   17     2       aliveContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           19   32     2       aliveContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           15   17     3        newLocations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           19   32     3        newLocations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           12   17     4  newStableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
           19   32     4  newStableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            2   15     6     stableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            3   15     7               index  I
            4   15     8       locationsCopy  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            6    9     9            newLocal  Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;
           21   30     5             context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1    16      17  any
          17    18      17  any
          22    24      28  any
          25    27      28  any
          28    29      28  any
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextLocal<*>;>;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    MethodParameters:
           Name  Flags
      newLocals  

  com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] addContextThreadLocals(java.util.List<? extends com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal<?>>);
    descriptor: (Ljava/util/List;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
        start local 1 // java.util.List newLocals
         0: .line 1942
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 1943
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            astore 6 /* stableLocations */
        start local 6 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations stableLocations
         2: .line 1944
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            istore 7 /* index */
        start local 7 // int index
         3: .line 1945
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            aload 1 /* newLocals */
            invokeinterface java.util.List.size:()I
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
            astore 8 /* locationsCopy */
        start local 8 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locationsCopy
         4: .line 1946
            aload 1 /* newLocals */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations int com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] top java.util.Iterator
      StackMap stack:
         5: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal
            astore 9 /* newLocal */
        start local 9 // com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal newLocal
         6: .line 1947
            aload 8 /* locationsCopy */
            iload 7 /* index */
            aload 9 /* newLocal */
            iload 7 /* index */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal.createLocation:(I)Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            aastore
         7: .line 1948
            aload 9 /* newLocal */
            aload 8 /* locationsCopy */
            iload 7 /* index */
            aaload
            invokevirtual com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal.initializeLocation:(Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
         8: .line 1949
            iinc 7 /* index */ 1
        end local 9 // com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal newLocal
         9: .line 1946
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 1955
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.collectAliveContexts:()Ljava/util/List;
            astore 2 /* aliveContexts */
        start local 2 // java.util.List aliveContexts
        11: .line 1956
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
            dup
            aload 8 /* locationsCopy */
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.<init>:([Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;)V
            dup
            astore 4 /* newStableLocations */
        start local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        12: putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextThreadLocalLocations:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
        13: .line 1957
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.assumption:Lcom/oracle/truffle/api/Assumption;
            ldc "Context thread local added"
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:(Ljava/lang/String;)V
        14: .line 1958
            aload 8 /* locationsCopy */
            aload 6 /* stableLocations */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations.locations:[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            arraylength
            iload 7 /* index */
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[]
            astore 3 /* newLocations */
        end local 8 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] locationsCopy
        end local 7 // int index
        end local 6 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations stableLocations
        start local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        15: .line 1942
            aload 5
            monitorexit
        16: goto 19
        end local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        end local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        end local 2 // java.util.List aliveContexts
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        17: aload 5
            monitorexit
        18: athrow
        start local 2 // java.util.List aliveContexts
        start local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        start local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        19: .line 1960
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
      StackMap stack:
            aload 2 /* aliveContexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 30
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 5 /* context */
        start local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        21: .line 1961
            aload 5 /* context */
            dup
            astore 7
            monitorenter
        22: .line 1962
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 23
            aload 5 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 25
        23: .line 1963
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations com.oracle.truffle.polyglot.PolyglotContextImpl java.util.Iterator com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 7
            monitorexit
        24: goto 30
        25: .line 1965
      StackMap locals:
      StackMap stack:
            aload 5 /* context */
            aload 4 /* newStableLocations */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.resizeContextThreadLocals:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;)V
        26: .line 1961
            aload 7
            monitorexit
        27: goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: aload 7
            monitorexit
        29: athrow
        end local 5 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        30: .line 1960
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.util.List java.util.List com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        31: .line 1968
            aload 3 /* newLocations */
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations newStableLocations
        end local 3 // com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation[] newLocations
        end local 2 // java.util.List aliveContexts
        end local 1 // java.util.List newLocals
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   32     0                this  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   32     1           newLocals  Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;>;
           11   17     2       aliveContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           19   32     2       aliveContexts  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotContextImpl;>;
           15   17     3        newLocations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           19   32     3        newLocations  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
           12   17     4  newStableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
           19   32     4  newStableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            2   15     6     stableLocations  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$StableLocalLocations;
            3   15     7               index  I
            4   15     8       locationsCopy  [Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
            6    9     9            newLocal  Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;
           21   30     5             context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           1    16      17  any
          17    18      17  any
          22    24      28  any
          25    27      28  any
          28    29      28  any
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/polyglot/PolyglotLocals$AbstractContextThreadLocal<*>;>;)[Lcom/oracle/truffle/polyglot/PolyglotLocals$LocalLocation;
    MethodParameters:
           Name  Flags
      newLocals  

  static com.oracle.truffle.polyglot.PolyglotEngineImpl getFallbackEngine();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 1984
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            ifnonnull 8
         1: .line 1985
            ldc Lcom/oracle/truffle/polyglot/PolyglotImpl;
            dup
            astore 0
            monitorenter
         2: .line 1986
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            ifnonnull 4
         3: .line 1987
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.getInstance:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.createDefaultEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
         4: .line 1985
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 0
            monitorexit
         7: athrow
         8: .line 1991
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  static void resetFallbackEngine();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 1998
            ldc Lcom/oracle/truffle/polyglot/PolyglotImpl;
            dup
            astore 0
            monitorenter
         1: .line 1999
            aconst_null
            putstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.fallbackEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
         2: .line 1998
            aload 0
            monitorexit
         3: goto 6
      StackMap locals: java.lang.Class
      StackMap stack: java.lang.Throwable
         4: aload 0
            monitorexit
         5: athrow
         6: .line 2001
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
}
SourceFile: "PolyglotEngineImpl.java"
NestMembers:
  com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution  com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler  com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelHandler$1  com.oracle.truffle.polyglot.PolyglotEngineImpl$InterruptExecution  com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig  com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook  com.oracle.truffle.polyglot.PolyglotEngineImpl$StableLocalLocations
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 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 NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor
  public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
  final PreInitializeContextFileSystem = com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem of com.oracle.truffle.polyglot.FileSystems
  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 InterruptExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$InterruptExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
  final LogConfig = com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig of com.oracle.truffle.polyglot.PolyglotEngineImpl
  private final PolyglotShutDownHook = com.oracle.truffle.polyglot.PolyglotEngineImpl$PolyglotShutDownHook 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
  final ContextProfile = com.oracle.truffle.polyglot.PolyglotLanguage$ContextProfile of com.oracle.truffle.polyglot.PolyglotLanguage
  final EngineLimits = com.oracle.truffle.polyglot.PolyglotLimits$EngineLimits of com.oracle.truffle.polyglot.PolyglotLimits
  abstract AbstractContextLocal = com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextLocal of com.oracle.truffle.polyglot.PolyglotLocals
  abstract AbstractContextThreadLocal = com.oracle.truffle.polyglot.PolyglotLocals$AbstractContextThreadLocal of com.oracle.truffle.polyglot.PolyglotLocals
  abstract LocalLocation = com.oracle.truffle.polyglot.PolyglotLocals$LocalLocation of com.oracle.truffle.polyglot.PolyglotLocals
  final EngineLoggerProvider = com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider of com.oracle.truffle.polyglot.PolyglotLoggers
  abstract LoggerCache = com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache of com.oracle.truffle.polyglot.PolyglotLoggers
  public abstract Entry = java.util.Map$Entry of java.util.Map
  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 AbstractEngineImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractInstrumentImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractLanguageImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl