final class com.oracle.truffle.polyglot.HostLanguage$HostContext
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.HostLanguage$HostContext
  super_class: java.lang.Object
{
  volatile com.oracle.truffle.polyglot.PolyglotLanguageContext internalContext;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    flags: (0x0040) ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  final java.util.Map<java.lang.String, java.lang.Class<?>> classCache;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class<*>;>;

  private final java.lang.Object topScope;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile com.oracle.truffle.polyglot.HostClassLoader classloader;
    descriptor: Lcom/oracle/truffle/polyglot/HostClassLoader;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  final java.lang.ClassValue<java.util.Map<java.util.List<java.lang.Class<?>>, com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult>> adapterCache;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/ClassValue<Ljava/util/Map<Ljava/util/List<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;>;>;

  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 86
            ldc Lcom/oracle/truffle/polyglot/HostLanguage;
            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.HostLanguage$HostContext.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.polyglot.HostLanguage);
    descriptor: (Lcom/oracle/truffle/polyglot/HostLanguage;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // com.oracle.truffle.polyglot.HostLanguage language
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 89
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classCache:Ljava/util/Map;
         2: .line 90
            aload 0 /* this */
            new com.oracle.truffle.polyglot.HostLanguage$TopScopeObject
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.HostLanguage$TopScopeObject.<init>:(Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;)V
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.topScope:Ljava/lang/Object;
         3: .line 93
            aload 0 /* this */
            new com.oracle.truffle.polyglot.HostLanguage$HostContext$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostContext$1.<init>:(Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;)V
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.adapterCache:Ljava/lang/ClassValue;
         4: .line 101
            aload 0 /* this */
            aload 1 /* language */
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.language:Lcom/oracle/truffle/polyglot/HostLanguage;
         5: .line 102
            return
        end local 1 // com.oracle.truffle.polyglot.HostLanguage language
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0    6     1  language  Lcom/oracle/truffle/polyglot/HostLanguage;
    MethodParameters:
          Name  Flags
      language  

  java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // java.lang.String className
         0: .line 106
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.checkHostAccessAllowed:()V
         1: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classCache:Ljava/util/Map;
            aload 1 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* loadedClass */
        start local 2 // java.lang.Class loadedClass
         2: .line 109
            aload 2 /* loadedClass */
            ifnonnull 5
         3: .line 110
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.findClassImpl:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* loadedClass */
         4: .line 111
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classCache:Ljava/util/Map;
            aload 1 /* className */
            aload 2 /* loadedClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 113
      StackMap locals: java.lang.Class
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.HostLanguage$HostContext.$assertionsDisabled:Z
            ifne 6
            aload 2 /* loadedClass */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 114
      StackMap locals:
      StackMap stack:
            aload 2 /* loadedClass */
            areturn
        end local 2 // java.lang.Class loadedClass
        end local 1 // java.lang.String className
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0    7     1    className  Ljava/lang/String;
            2    7     2  loadedClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      className  

  private void checkHostAccessAllowed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
         0: .line 118
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostLookupAllowed:Z
            ifne 2
         1: .line 119
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Host class access is not allowed."
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 121
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;

  com.oracle.truffle.polyglot.HostClassLoader getClassloader();
    descriptor: ()Lcom/oracle/truffle/polyglot/HostClassLoader;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
         0: .line 124
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classloader:Lcom/oracle/truffle/polyglot/HostClassLoader;
            ifnonnull 5
         1: .line 125
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoader:Ljava/lang/ClassLoader;
            ifnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoader:Ljava/lang/ClassLoader;
            goto 3
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.contextClassLoader:Ljava/lang/ClassLoader;
         3: .line 125
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
            astore 1 /* parentClassLoader */
        start local 1 // java.lang.ClassLoader parentClassLoader
         4: .line 127
            aload 0 /* this */
            new com.oracle.truffle.polyglot.HostClassLoader
            dup
            aload 0 /* this */
            aload 1 /* parentClassLoader */
            invokespecial com.oracle.truffle.polyglot.HostClassLoader.<init>:(Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;Ljava/lang/ClassLoader;)V
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classloader:Lcom/oracle/truffle/polyglot/HostClassLoader;
        end local 1 // java.lang.ClassLoader parentClassLoader
         5: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.classloader:Lcom/oracle/truffle/polyglot/HostClassLoader;
            areturn
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            4    5     1  parentClassLoader  Ljava/lang/ClassLoader;

  private java.lang.Class<?> findClassImpl(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // java.lang.String className
         0: .line 133
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.validateClass:(Ljava/lang/String;)V
         1: .line 134
            aload 1 /* className */
            ldc "[]"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 135
            aload 0 /* this */
            aload 1 /* className */
            iconst_0
            aload 1 /* className */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* componentType */
        start local 2 // java.lang.Class componentType
         3: .line 136
            aload 2 /* componentType */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            areturn
        end local 2 // java.lang.Class componentType
         4: .line 138
      StackMap locals:
      StackMap stack:
            aload 1 /* className */
            invokestatic com.oracle.truffle.polyglot.HostLanguage$HostContext.getPrimitiveTypeByName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* primitiveType */
        start local 2 // java.lang.Class primitiveType
         5: .line 139
            aload 2 /* primitiveType */
            ifnull 7
         6: .line 140
            aload 2 /* primitiveType */
            areturn
         7: .line 143
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.getClassloader:()Lcom/oracle/truffle/polyglot/HostClassLoader;
            astore 3 /* classLoader */
        start local 3 // java.lang.ClassLoader classLoader
         8: .line 144
            aload 3 /* classLoader */
            aload 1 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* foundClass */
        start local 4 // java.lang.Class foundClass
         9: .line 145
            getstatic com.oracle.truffle.polyglot.EngineAccessor.JDKSERVICES:Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            aload 3 /* classLoader */
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.getUnnamedModule:(Ljava/lang/ClassLoader;)Ljava/lang/Object;
            astore 5 /* currentModule */
        start local 5 // java.lang.Object currentModule
        10: .line 146
            getstatic com.oracle.truffle.polyglot.EngineAccessor.JDKSERVICES:Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            aload 5 /* currentModule */
            aload 4 /* foundClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.verifyModuleVisibility:(Ljava/lang/Object;Ljava/lang/Class;)Z
            ifeq 13
        11: .line 147
            aload 4 /* foundClass */
        12: areturn
        13: .line 149
      StackMap locals: java.lang.ClassLoader java.lang.Class java.lang.Object
      StackMap stack:
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Access to host class %s is not allowed or does not exist."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* className */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Object currentModule
        end local 4 // java.lang.Class foundClass
        end local 3 // java.lang.ClassLoader classLoader
        14: .line 151
      StackMap locals: com.oracle.truffle.polyglot.HostLanguage$HostContext java.lang.String java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            pop
        15: .line 152
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Access to host class %s is not allowed or does not exist."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* className */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Class primitiveType
        end local 1 // java.lang.String className
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0   16     1      className  Ljava/lang/String;
            3    4     2  componentType  Ljava/lang/Class<*>;
            5   16     2  primitiveType  Ljava/lang/Class<*>;
            8   14     3    classLoader  Ljava/lang/ClassLoader;
            9   14     4     foundClass  Ljava/lang/Class<*>;
           10   14     5  currentModule  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           7    12      14  Class java.lang.ClassNotFoundException
          13    14      14  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      className  

  void validateClass(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // java.lang.String className
         0: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.classFilter:Ljava/util/function/Predicate;
            astore 2 /* classFilter */
        start local 2 // java.util.function.Predicate classFilter
         1: .line 158
            aload 2 /* classFilter */
            ifnull 3
            aload 2 /* classFilter */
            aload 1 /* className */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 159
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Access to host class %s is not allowed."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* className */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 161
      StackMap locals: java.util.function.Predicate
      StackMap stack:
            return
        end local 2 // java.util.function.Predicate classFilter
        end local 1 // java.lang.String className
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0    4     1    className  Ljava/lang/String;
            1    4     2  classFilter  Ljava/util/function/Predicate<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      className  

  private static java.lang.Class<?> getPrimitiveTypeByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String className
         0: .line 164
            aload 0 /* className */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 8
          -1325958191: 1
               104431: 2
              3039496: 3
              3052374: 4
              3327612: 5
             64711720: 6
             97526364: 7
            109413500: 8
              default: 17
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 17
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "int"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 17
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 17
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "char"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 17
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 17
      StackMap locals:
      StackMap stack:
         6: aload 1
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 17
      StackMap locals:
      StackMap stack:
         7: aload 1
            ldc "float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 17
      StackMap locals:
      StackMap stack:
         8: aload 1
            ldc "short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 17
         9: .line 166
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            areturn
        10: .line 168
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            areturn
        11: .line 170
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            areturn
        12: .line 172
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
        13: .line 174
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
        14: .line 176
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        15: .line 178
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
        16: .line 180
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            areturn
        17: .line 182
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0  className  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      className  

  public void addToHostClasspath(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // com.oracle.truffle.api.TruffleFile classpathEntry
         0: .line 187
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.checkHostAccessAllowed:()V
         1: .line 188
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifeq 3
         2: .line 189
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Cannot add classpath entry %s in native mode."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* classpathEntry */
            invokevirtual com.oracle.truffle.api.TruffleFile.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostClassLoadingAllowed:Z
            ifne 5
         4: .line 192
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Host class loading is not allowed."
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 194
      StackMap locals:
      StackMap stack:
            aload 1 /* classpathEntry */
            invokestatic com.oracle.truffle.polyglot.FileSystems.hasNoIOFileSystem:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 7
         6: .line 195
            new com.oracle.truffle.polyglot.HostLanguage$HostLanguageException
            dup
            ldc "Host class loading is disabled without IO permissions."
            invokespecial com.oracle.truffle.polyglot.HostLanguage$HostLanguageException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.getClassloader:()Lcom/oracle/truffle/polyglot/HostClassLoader;
            aload 1 /* classpathEntry */
            invokevirtual com.oracle.truffle.polyglot.HostClassLoader.addClasspathRoot:(Lcom/oracle/truffle/api/TruffleFile;)V
         8: .line 198
            return
        end local 1 // com.oracle.truffle.api.TruffleFile classpathEntry
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0    9     1  classpathEntry  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
                Name  Flags
      classpathEntry  

  void initializeInternal(com.oracle.truffle.polyglot.PolyglotLanguageContext);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext hostContext
         0: .line 201
            aload 0 /* this */
            aload 1 /* hostContext */
            putfield com.oracle.truffle.polyglot.HostLanguage$HostContext.internalContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
         1: .line 202
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.language:Lcom/oracle/truffle/polyglot/HostLanguage;
            getfield com.oracle.truffle.polyglot.HostLanguage.internalEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 2 /* engine */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         2: .line 203
            aload 2 /* engine */
            ifnull 4
         3: .line 204
            getstatic com.oracle.truffle.polyglot.HostLanguage$HostContext.$assertionsDisabled:Z
            ifne 4
            aload 2 /* engine */
            aload 1 /* hostContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            if_acmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 206
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostLanguage$HostContext.language:Lcom/oracle/truffle/polyglot/HostLanguage;
            aload 1 /* hostContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            putfield com.oracle.truffle.polyglot.HostLanguage.internalEngine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
         5: .line 207
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext hostContext
        end local 0 // com.oracle.truffle.polyglot.HostLanguage$HostContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            0    6     1  hostContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            2    6     2       engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    MethodParameters:
             Name  Flags
      hostContext  
}
SourceFile: "HostLanguage.java"
NestHost: com.oracle.truffle.polyglot.HostLanguage
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final JDKSupport = com.oracle.truffle.api.impl.Accessor$JDKSupport of com.oracle.truffle.api.impl.Accessor
  final AdapterResult = com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult of com.oracle.truffle.polyglot.HostAdapterFactory
  final HostContext = com.oracle.truffle.polyglot.HostLanguage$HostContext of com.oracle.truffle.polyglot.HostLanguage
  com.oracle.truffle.polyglot.HostLanguage$HostContext$1
  private HostLanguageException = com.oracle.truffle.polyglot.HostLanguage$HostLanguageException of com.oracle.truffle.polyglot.HostLanguage
  final TopScopeObject = com.oracle.truffle.polyglot.HostLanguage$TopScopeObject of com.oracle.truffle.polyglot.HostLanguage