final class com.oracle.truffle.polyglot.PolyglotContextConfig
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.PolyglotContextConfig
  super_class: java.lang.Object
{
  private static final java.lang.String[] EMPTY_STRING_ARRAY;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  final java.io.OutputStream out;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0010) ACC_FINAL

  final java.io.OutputStream err;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0010) ACC_FINAL

  final java.io.InputStream in;
    descriptor: Ljava/io/InputStream;
    flags: (0x0010) ACC_FINAL

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

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

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

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

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

  final java.util.function.Predicate<java.lang.String> classFilter;
    descriptor: Ljava/util/function/Predicate;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/function/Predicate<Ljava/lang/String;>;

  private final java.util.Map<java.lang.String, java.lang.String[]> applicationArguments;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;

  final org.graalvm.collections.EconomicSet<java.lang.String> allowedPublicLanguages;
    descriptor: Lorg/graalvm/collections/EconomicSet;
    flags: (0x0010) ACC_FINAL
    Signature: Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;

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

  org.graalvm.polyglot.io.FileSystem fileSystem;
    descriptor: Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  org.graalvm.polyglot.io.FileSystem internalFileSystem;
    descriptor: Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

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

  final java.util.logging.Handler logHandler;
    descriptor: Ljava/util/logging/Handler;
    flags: (0x0010) ACC_FINAL

  final org.graalvm.polyglot.PolyglotAccess polyglotAccess;
    descriptor: Lorg/graalvm/polyglot/PolyglotAccess;
    flags: (0x0010) ACC_FINAL

  final org.graalvm.polyglot.io.ProcessHandler processHandler;
    descriptor: Lorg/graalvm/polyglot/io/ProcessHandler;
    flags: (0x0010) ACC_FINAL

  final org.graalvm.polyglot.EnvironmentAccess environmentAccess;
    descriptor: Lorg/graalvm/polyglot/EnvironmentAccess;
    flags: (0x0010) ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.String> environment;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private volatile java.util.Map<java.lang.String, java.lang.String> configuredEnvironement;
    descriptor: Ljava/util/Map;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private volatile java.time.ZoneId timeZone;
    descriptor: Ljava/time/ZoneId;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  final java.lang.ClassLoader hostClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0010) ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 66
            ldc Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            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.PolyglotContextConfig.$assertionsDisabled:Z
         3: .line 67
            iconst_0
            anewarray java.lang.String
            putstatic com.oracle.truffle.polyglot.PolyglotContextConfig.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.polyglot.PolyglotEngineImpl, java.io.OutputStream, java.io.OutputStream, java.io.InputStream, boolean, org.graalvm.polyglot.PolyglotAccess, boolean, boolean, boolean, boolean, java.util.function.Predicate<java.lang.String>, java.util.Map<java.lang.String, java.lang.String[]>, org.graalvm.collections.EconomicSet<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, org.graalvm.polyglot.io.FileSystem, org.graalvm.polyglot.io.FileSystem, java.util.logging.Handler, boolean, org.graalvm.polyglot.io.ProcessHandler, org.graalvm.polyglot.EnvironmentAccess, java.util.Map<java.lang.String, java.lang.String>, java.time.ZoneId, com.oracle.truffle.polyglot.PolyglotLimits, java.lang.ClassLoader);
    descriptor: (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
    flags: (0x0000) 
    Code:
      stack=4, locals=33, args_size=25
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 2 // java.io.OutputStream out
        start local 3 // java.io.OutputStream err
        start local 4 // java.io.InputStream in
        start local 5 // boolean hostLookupAllowed
        start local 6 // org.graalvm.polyglot.PolyglotAccess polyglotAccess
        start local 7 // boolean nativeAccessAllowed
        start local 8 // boolean createThreadAllowed
        start local 9 // boolean hostClassLoadingAllowed
        start local 10 // boolean allowExperimentalOptions
        start local 11 // java.util.function.Predicate classFilter
        start local 12 // java.util.Map applicationArguments
        start local 13 // org.graalvm.collections.EconomicSet allowedPublicLanguages
        start local 14 // java.util.Map options
        start local 15 // org.graalvm.polyglot.io.FileSystem publicFileSystem
        start local 16 // org.graalvm.polyglot.io.FileSystem internalFileSystem
        start local 17 // java.util.logging.Handler logHandler
        start local 18 // boolean createProcessAllowed
        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 timeZone
        start local 23 // com.oracle.truffle.polyglot.PolyglotLimits limits
        start local 24 // java.lang.ClassLoader hostClassLoader
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.$assertionsDisabled:Z
            ifne 2
            aload 2 /* out */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 104
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.$assertionsDisabled:Z
            ifne 3
            aload 3 /* err */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 105
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.$assertionsDisabled:Z
            ifne 4
            aload 4 /* in */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 106
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.$assertionsDisabled:Z
            ifne 5
            aload 20 /* environmentAccess */
            ifnonnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* engine */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
         6: .line 108
            aload 0 /* this */
            aload 2 /* out */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.out:Ljava/io/OutputStream;
         7: .line 109
            aload 0 /* this */
            aload 3 /* err */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.err:Ljava/io/OutputStream;
         8: .line 110
            aload 0 /* this */
            aload 4 /* in */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.in:Ljava/io/InputStream;
         9: .line 111
            aload 0 /* this */
            iload 5 /* hostLookupAllowed */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostLookupAllowed:Z
        10: .line 112
            aload 0 /* this */
            aload 6 /* polyglotAccess */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
        11: .line 113
            aload 0 /* this */
            iload 7 /* nativeAccessAllowed */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.nativeAccessAllowed:Z
        12: .line 114
            aload 0 /* this */
            iload 8 /* createThreadAllowed */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.createThreadAllowed:Z
        13: .line 115
            aload 0 /* this */
            iload 9 /* hostClassLoadingAllowed */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoadingAllowed:Z
        14: .line 116
            aload 0 /* this */
            iload 18 /* createProcessAllowed */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.createProcessAllowed:Z
        15: .line 117
            aload 0 /* this */
            aload 11 /* classFilter */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.classFilter:Ljava/util/function/Predicate;
        16: .line 118
            aload 0 /* this */
            aload 12 /* applicationArguments */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.applicationArguments:Ljava/util/Map;
        17: .line 119
            aload 0 /* this */
            aload 13 /* allowedPublicLanguages */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.allowedPublicLanguages:Lorg/graalvm/collections/EconomicSet;
        18: .line 120
            aload 0 /* this */
            aload 15 /* publicFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        19: .line 121
            aload 0 /* this */
            aload 16 /* internalFileSystem */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.internalFileSystem:Lorg/graalvm/polyglot/io/FileSystem;
        20: .line 122
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.optionsById:Ljava/util/Map;
        21: .line 123
            aload 0 /* this */
            aload 17 /* logHandler */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.logHandler:Ljava/util/logging/Handler;
        22: .line 124
            aload 0 /* this */
            aload 22 /* timeZone */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.timeZone:Ljava/time/ZoneId;
        23: .line 125
            aload 0 /* this */
            aload 23 /* limits */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.limits:Lcom/oracle/truffle/polyglot/PolyglotLimits;
        24: .line 126
            aload 0 /* this */
            new java.util.HashMap
            dup
            aload 1 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
        25: .line 127
            aconst_null
            astore 25 /* instruments */
        start local 25 // java.util.List instruments
        26: .line 128
            aload 14 /* options */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 27
            goto 52
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List top java.util.Iterator
      StackMap stack:
        27: aload 27
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 26 /* optionKey */
        start local 26 // java.lang.String optionKey
        28: .line 129
            aload 26 /* optionKey */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseOptionGroup:(Ljava/lang/String;)Ljava/lang/String;
            astore 28 /* group */
        start local 28 // java.lang.String group
        29: .line 130
            aload 28 /* group */
            ldc "log"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 131
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.logLevels:Ljava/util/Map;
            aload 26 /* optionKey */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseLoggerName:(Ljava/lang/String;)Ljava/lang/String;
            aload 14 /* options */
            aload 26 /* optionKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            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
        31: .line 132
            goto 52
        32: .line 135
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 1 /* engine */
            aload 26 /* optionKey */
            aload 28 /* group */
            invokestatic com.oracle.truffle.polyglot.PolyglotContextConfig.findObjectForContextOption:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotImpl$VMObject;
            astore 29 /* object */
        start local 29 // com.oracle.truffle.polyglot.PolyglotImpl$VMObject object
        33: .line 138
            aload 29 /* object */
            instanceof com.oracle.truffle.polyglot.PolyglotLanguage
            ifeq 38
        34: .line 139
            aload 29 /* object */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 32 /* language */
        start local 32 // com.oracle.truffle.polyglot.PolyglotLanguage language
        35: .line 140
            aload 32 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            astore 30 /* id */
        start local 30 // java.lang.String id
        36: .line 141
            aload 32 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 31 /* engineOptionValues */
        end local 32 // com.oracle.truffle.polyglot.PolyglotLanguage language
        start local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        37: .line 142
            goto 47
        end local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        end local 30 // java.lang.String id
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl$VMObject
      StackMap stack:
        38: aload 29 /* object */
            instanceof com.oracle.truffle.polyglot.PolyglotInstrument
            ifeq 46
        39: .line 143
            aload 29 /* object */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 32 /* instrument */
        start local 32 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        40: .line 144
            aload 32 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getId:()Ljava/lang/String;
            astore 30 /* id */
        start local 30 // java.lang.String id
        41: .line 145
            aload 32 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 31 /* engineOptionValues */
        start local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        42: .line 146
            aload 25 /* instruments */
            ifnonnull 44
        43: .line 147
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 25 /* instruments */
        44: .line 149
      StackMap locals: java.lang.String com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.polyglot.PolyglotInstrument
      StackMap stack:
            aload 25 /* instruments */
            aload 32 /* instrument */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 32 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        45: .line 150
            goto 47
        end local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        end local 30 // java.lang.String id
        46: .line 151
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "invalid vm object"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        start local 30 // java.lang.String id
        start local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        47: .line 153
      StackMap locals: java.lang.String com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.optionsById:Ljava/util/Map;
            aload 30 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.OptionValuesImpl
            astore 32 /* targetOptions */
        start local 32 // com.oracle.truffle.polyglot.OptionValuesImpl targetOptions
        48: .line 154
            aload 32 /* targetOptions */
            ifnonnull 51
        49: .line 155
            aload 31 /* engineOptionValues */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copy:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 32 /* targetOptions */
        50: .line 156
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.optionsById:Ljava/util/Map;
            aload 30 /* id */
            aload 32 /* targetOptions */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        51: .line 158
      StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
            aload 32 /* targetOptions */
            aload 26 /* optionKey */
            aload 14 /* options */
            aload 26 /* optionKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            iload 10 /* allowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.put:(Ljava/lang/String;Ljava/lang/String;Z)V
        end local 32 // com.oracle.truffle.polyglot.OptionValuesImpl targetOptions
        end local 31 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        end local 30 // java.lang.String id
        end local 29 // com.oracle.truffle.polyglot.PolyglotImpl$VMObject object
        end local 28 // java.lang.String group
        end local 26 // java.lang.String optionKey
        52: .line 128
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List top java.util.Iterator
      StackMap stack:
            aload 27
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        53: .line 160
            aload 0 /* this */
            aload 25 /* instruments */
            ifnonnull 54
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            goto 55
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextConfig
        54: aload 25 /* instruments */
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextConfig java.util.List
        55: putfield com.oracle.truffle.polyglot.PolyglotContextConfig.configuredInstruments:Ljava/util/List;
        56: .line 161
            aload 0 /* this */
            aload 19 /* processHandler */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.processHandler:Lorg/graalvm/polyglot/io/ProcessHandler;
        57: .line 162
            aload 0 /* this */
            aload 20 /* environmentAccess */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.environmentAccess:Lorg/graalvm/polyglot/EnvironmentAccess;
        58: .line 163
            aload 0 /* this */
            aload 21 /* environment */
            ifnonnull 59
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            goto 60
      StackMap locals:
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextConfig
        59: aload 21 /* environment */
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextConfig com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream int org.graalvm.polyglot.PolyglotAccess int int int int java.util.function.Predicate java.util.Map org.graalvm.collections.EconomicSet java.util.Map org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.util.logging.Handler int org.graalvm.polyglot.io.ProcessHandler org.graalvm.polyglot.EnvironmentAccess java.util.Map java.time.ZoneId com.oracle.truffle.polyglot.PolyglotLimits java.lang.ClassLoader java.util.List
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextConfig java.util.Map
        60: putfield com.oracle.truffle.polyglot.PolyglotContextConfig.environment:Ljava/util/Map;
        61: .line 164
            aload 0 /* this */
            aload 24 /* hostClassLoader */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoader:Ljava/lang/ClassLoader;
        62: .line 165
            return
        end local 25 // java.util.List instruments
        end local 24 // java.lang.ClassLoader hostClassLoader
        end local 23 // com.oracle.truffle.polyglot.PolyglotLimits limits
        end local 22 // java.time.ZoneId timeZone
        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 createProcessAllowed
        end local 17 // java.util.logging.Handler logHandler
        end local 16 // org.graalvm.polyglot.io.FileSystem internalFileSystem
        end local 15 // org.graalvm.polyglot.io.FileSystem publicFileSystem
        end local 14 // java.util.Map options
        end local 13 // org.graalvm.collections.EconomicSet allowedPublicLanguages
        end local 12 // java.util.Map applicationArguments
        end local 11 // java.util.function.Predicate classFilter
        end local 10 // boolean allowExperimentalOptions
        end local 9 // boolean hostClassLoadingAllowed
        end local 8 // boolean createThreadAllowed
        end local 7 // boolean nativeAccessAllowed
        end local 6 // org.graalvm.polyglot.PolyglotAccess polyglotAccess
        end local 5 // boolean hostLookupAllowed
        end local 4 // java.io.InputStream in
        end local 3 // java.io.OutputStream err
        end local 2 // java.io.OutputStream out
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   63     0                      this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0   63     1                    engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   63     2                       out  Ljava/io/OutputStream;
            0   63     3                       err  Ljava/io/OutputStream;
            0   63     4                        in  Ljava/io/InputStream;
            0   63     5         hostLookupAllowed  Z
            0   63     6            polyglotAccess  Lorg/graalvm/polyglot/PolyglotAccess;
            0   63     7       nativeAccessAllowed  Z
            0   63     8       createThreadAllowed  Z
            0   63     9   hostClassLoadingAllowed  Z
            0   63    10  allowExperimentalOptions  Z
            0   63    11               classFilter  Ljava/util/function/Predicate<Ljava/lang/String;>;
            0   63    12      applicationArguments  Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;
            0   63    13    allowedPublicLanguages  Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;
            0   63    14                   options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   63    15          publicFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0   63    16        internalFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0   63    17                logHandler  Ljava/util/logging/Handler;
            0   63    18      createProcessAllowed  Z
            0   63    19            processHandler  Lorg/graalvm/polyglot/io/ProcessHandler;
            0   63    20         environmentAccess  Lorg/graalvm/polyglot/EnvironmentAccess;
            0   63    21               environment  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   63    22                  timeZone  Ljava/time/ZoneId;
            0   63    23                    limits  Lcom/oracle/truffle/polyglot/PolyglotLimits;
            0   63    24           hostClassLoader  Ljava/lang/ClassLoader;
           26   63    25               instruments  Ljava/util/List<Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;
           28   52    26                 optionKey  Ljava/lang/String;
           29   52    28                     group  Ljava/lang/String;
           33   52    29                    object  Lcom/oracle/truffle/polyglot/PolyglotImpl$VMObject;
           36   38    30                        id  Ljava/lang/String;
           41   46    30                        id  Ljava/lang/String;
           47   52    30                        id  Ljava/lang/String;
           37   38    31        engineOptionValues  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           42   46    31        engineOptionValues  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           47   52    31        engineOptionValues  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           35   37    32                  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           40   45    32                instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
           48   52    32             targetOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    Signature: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;ZLorg/graalvm/polyglot/PolyglotAccess;ZZZZLjava/util/function/Predicate<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;[Ljava/lang/String;>;Lorg/graalvm/collections/EconomicSet<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;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/lang/String;Ljava/lang/String;>;Ljava/time/ZoneId;Lcom/oracle/truffle/polyglot/PolyglotLimits;Ljava/lang/ClassLoader;)V
    MethodParameters:
                          Name  Flags
      engine                    
      out                       
      err                       
      in                        
      hostLookupAllowed         
      polyglotAccess            
      nativeAccessAllowed       
      createThreadAllowed       
      hostClassLoadingAllowed   
      allowExperimentalOptions  
      classFilter               
      applicationArguments      
      allowedPublicLanguages    
      options                   
      publicFileSystem          
      internalFileSystem        
      logHandler                
      createProcessAllowed      
      processHandler            
      environmentAccess         
      environment               
      timeZone                  
      limits                    
      hostClassLoader           

  public java.time.ZoneId getTimeZone();
    descriptor: ()Ljava/time/ZoneId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
         0: .line 168
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.timeZone:Ljava/time/ZoneId;
            astore 1 /* zone */
        start local 1 // java.time.ZoneId zone
         1: .line 169
            aload 1 /* zone */
            ifnonnull 3
         2: .line 170
            aload 0 /* this */
            invokestatic java.time.ZoneId.systemDefault:()Ljava/time/ZoneId;
            dup_x1
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.timeZone:Ljava/time/ZoneId;
            astore 1 /* zone */
         3: .line 172
      StackMap locals: java.time.ZoneId
      StackMap stack:
            aload 1 /* zone */
            areturn
        end local 1 // java.time.ZoneId zone
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            1    4     1  zone  Ljava/time/ZoneId;

  boolean isAccessPermitted(com.oracle.truffle.polyglot.PolyglotLanguage, com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage from
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage to
         0: .line 176
            aload 2 /* to */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.isHost:()Z
            ifne 1
            aload 2 /* to */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isInternal:()Z
            ifeq 2
         1: .line 178
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 180
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 2 /* to */
            if_acmpne 4
         3: .line 181
            iconst_1
            ireturn
         4: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            ifnonnull 7
         5: .line 185
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.allowedPublicLanguages:Lorg/graalvm/collections/EconomicSet;
            aload 2 /* to */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 17
         6: .line 186
            iconst_1
            ireturn
         7: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
            getstatic org.graalvm.polyglot.PolyglotAccess.ALL:Lorg/graalvm/polyglot/PolyglotAccess;
            if_acmpne 10
         8: .line 191
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.allowedPublicLanguages:Lorg/graalvm/collections/EconomicSet;
            aload 2 /* to */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            invokeinterface org.graalvm.collections.EconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 15
         9: .line 192
            iconst_1
            ireturn
        10: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 2 /* to */
            if_acmpne 12
        11: .line 196
            iconst_1
            ireturn
        12: .line 198
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.polyglotAccess:Lorg/graalvm/polyglot/PolyglotAccess;
            aload 1 /* from */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getEvalAccess:(Lorg/graalvm/polyglot/PolyglotAccess;Ljava/lang/String;)Lorg/graalvm/collections/UnmodifiableEconomicSet;
            astore 3 /* configuredAccess */
        start local 3 // org.graalvm.collections.UnmodifiableEconomicSet configuredAccess
        13: .line 199
            aload 3 /* configuredAccess */
            ifnull 15
            aload 3 /* configuredAccess */
            aload 2 /* to */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokeinterface org.graalvm.collections.UnmodifiableEconomicSet.contains:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 200
            iconst_1
            ireturn
        end local 3 // org.graalvm.collections.UnmodifiableEconomicSet configuredAccess
        15: .line 203
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 2 /* to */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.dependsOn:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            ifeq 17
        16: .line 204
            iconst_1
            ireturn
        17: .line 207
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage to
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage from
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0   18     1              from  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            0   18     2                to  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
           13   15     3  configuredAccess  Lorg/graalvm/collections/UnmodifiableEconomicSet<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      from  
      to    

  java.lang.String[] getApplicationArguments(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage lang
         0: .line 211
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.applicationArguments:Ljava/util/Map;
            aload 1 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 2 /* args */
        start local 2 // java.lang.String[] args
         1: .line 212
            aload 2 /* args */
            ifnonnull 3
         2: .line 213
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            astore 2 /* args */
         3: .line 215
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 2 /* args */
            areturn
        end local 2 // java.lang.String[] args
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage lang
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0    4     1  lang  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            1    4     2  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      lang  

  com.oracle.truffle.polyglot.OptionValuesImpl getLanguageOptionValues(com.oracle.truffle.polyglot.PolyglotLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguage lang
         0: .line 219
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.optionsById:Ljava/util/Map;
            aload 1 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.OptionValuesImpl
            astore 2 /* values */
        start local 2 // com.oracle.truffle.polyglot.OptionValuesImpl values
         1: .line 220
            aload 2 /* values */
            ifnonnull 3
         2: .line 221
            aload 1 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 2 /* values */
         3: .line 223
      StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
            aload 2 /* values */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copy:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            areturn
        end local 2 // com.oracle.truffle.polyglot.OptionValuesImpl values
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguage lang
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0    4     1    lang  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            1    4     2  values  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    MethodParameters:
      Name  Flags
      lang  

  com.oracle.truffle.polyglot.OptionValuesImpl getInstrumentOptionValues(com.oracle.truffle.polyglot.PolyglotInstrument);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
        start local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         0: .line 227
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.optionsById:Ljava/util/Map;
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getId:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.OptionValuesImpl
            astore 2 /* values */
        start local 2 // com.oracle.truffle.polyglot.OptionValuesImpl values
         1: .line 228
            aload 2 /* values */
            ifnonnull 3
         2: .line 229
            aload 1 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionValues:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 2 /* values */
         3: .line 231
      StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
            aload 2 /* values */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.copy:()Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            areturn
        end local 2 // com.oracle.truffle.polyglot.OptionValuesImpl values
        end local 1 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            0    4     1  instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
            1    4     2      values  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    MethodParameters:
            Name  Flags
      instrument  

  java.util.Collection<? extends com.oracle.truffle.polyglot.PolyglotInstrument> getConfiguredInstruments();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
         0: .line 239
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.configuredInstruments:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
    Signature: ()Ljava/util/Collection<+Lcom/oracle/truffle/polyglot/PolyglotInstrument;>;

  java.util.Map<java.lang.String, java.lang.String> getEnvironment();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
         0: .line 243
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.configuredEnvironement:Ljava/util/Map;
            astore 1 /* result */
        start local 1 // java.util.Map result
         1: .line 244
            aload 1 /* result */
            ifnonnull 21
         2: .line 245
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 246
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.configuredEnvironement:Ljava/util/Map;
            astore 1 /* result */
         4: .line 247
            aload 1 /* result */
            ifnonnull 17
         5: .line 248
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environmentAccess:Lorg/graalvm/polyglot/EnvironmentAccess;
            getstatic org.graalvm.polyglot.EnvironmentAccess.NONE:Lorg/graalvm/polyglot/EnvironmentAccess;
            if_acmpne 8
         6: .line 249
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environment:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            astore 1 /* result */
         7: .line 250
            goto 16
      StackMap locals: java.util.Map com.oracle.truffle.polyglot.PolyglotContextConfig
      StackMap stack:
         8: getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_ENVIRONMENT_ACCESS:Z
            ifeq 15
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environmentAccess:Lorg/graalvm/polyglot/EnvironmentAccess;
            getstatic org.graalvm.polyglot.EnvironmentAccess.INHERIT:Lorg/graalvm/polyglot/EnvironmentAccess;
            if_acmpne 15
         9: .line 251
            invokestatic java.lang.System.getenv:()Ljava/util/Map;
            astore 1 /* result */
        10: .line 252
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environment:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 16
        11: .line 253
            new java.util.HashMap
            dup
            aload 1 /* result */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 1 /* result */
        12: .line 254
            aload 1 /* result */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environment:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        13: .line 255
            aload 1 /* result */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            astore 1 /* result */
        14: .line 257
            goto 16
        15: .line 258
      StackMap locals:
      StackMap stack:
            ldc "Unsupported EnvironmentAccess: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.environmentAccess:Lorg/graalvm/polyglot/EnvironmentAccess;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.unsupported:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        16: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* result */
            putfield com.oracle.truffle.polyglot.PolyglotContextConfig.configuredEnvironement:Ljava/util/Map;
        17: .line 245
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 2
            monitorexit
        20: athrow
        21: .line 264
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.util.Map result
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextConfig this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            1   22     1  result  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           3    18      19  any
          19    20      19  any
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private static com.oracle.truffle.polyglot.PolyglotImpl$VMObject findObjectForContextOption(com.oracle.truffle.polyglot.PolyglotEngineImpl, java.lang.String, java.lang.String);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotImpl$VMObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 1 // java.lang.String optionKey
        start local 2 // java.lang.String group
         0: .line 268
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            aload 2 /* group */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 269
            aload 3 /* language */
            ifnonnull 18
         2: .line 270
            aload 0 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInstrument:Ljava/util/Map;
            aload 2 /* group */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 4 /* instrument */
        start local 4 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         3: .line 271
            aload 4 /* instrument */
            ifnull 11
         4: .line 272
            aload 4 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getEngineOptionsInternal:()Lorg/graalvm/options/OptionDescriptors;
            aload 1 /* optionKey */
            invokeinterface org.graalvm.options.OptionDescriptors.get:(Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptor;
            ifnull 10
         5: .line 274
            new java.lang.StringBuilder
            dup
            ldc "Option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* optionKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 275
            ldc " is an engine level instrument option. Engine level instrument options can only be configured for contexts without an explicit engine set."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 276
            ldc " To resolve this, configure the option when creating the Engine or create a context without a shared engine."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 274
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 273
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        10: .line 278
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotInstrument
      StackMap stack:
            aload 4 /* instrument */
            areturn
        11: .line 280
      StackMap locals:
      StackMap stack:
            aload 2 /* group */
            ldc "engine"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        12: .line 283
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAllOptions:()Lorg/graalvm/options/OptionDescriptors;
            aload 1 /* optionKey */
            invokeinterface org.graalvm.options.OptionDescriptors.get:(Ljava/lang/String;)Lorg/graalvm/options/OptionDescriptor;
            ifnull 17
        13: .line 285
            new java.lang.StringBuilder
            dup
            ldc "Option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* optionKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is an engine option. Engine level options can only be configured for contexts without a shared engine set."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 286
            ldc " To resolve this, configure the option when creating the Engine or create a context without a shared engine."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 285
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 284
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalArgument:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
        17: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAllOptions:()Lorg/graalvm/options/OptionDescriptors;
            aload 1 /* optionKey */
            invokestatic com.oracle.truffle.polyglot.OptionValuesImpl.failNotFound:(Lorg/graalvm/options/OptionDescriptors;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        18: .line 292
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotContextConfig.$assertionsDisabled:Z
            ifne 19
            aload 2 /* group */
            ldc "engine"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 294
      StackMap locals:
      StackMap stack:
            aload 3 /* language */
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // java.lang.String group
        end local 1 // java.lang.String optionKey
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0      engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0   20     1   optionKey  Ljava/lang/String;
            0   20     2       group  Ljava/lang/String;
            1   20     3    language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            3   18     4  instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    MethodParameters:
           Name  Flags
      engine     
      optionKey  final
      group      
}
SourceFile: "PolyglotContextConfig.java"
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl