final class com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader extends java.security.SecureClassLoader implements java.util.function.Supplier<org.graalvm.polyglot.Value>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader
  super_class: java.security.SecureClassLoader
{
  private final java.lang.ClassLoader internalLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  final com.oracle.truffle.polyglot.HostAdapterClassLoader this$0;
    descriptor: Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  private void <init>(com.oracle.truffle.polyglot.HostAdapterClassLoader, java.lang.ClassLoader, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;Ljava/lang/ClassLoader;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 2 // java.lang.ClassLoader parentLoader
        start local 3 // java.lang.Object classOverrides
         0: .line 121
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.this$0:Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
         1: .line 122
            aload 0 /* this */
            aload 2 /* parentLoader */
            invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/ClassLoader;)V
         2: .line 123
            aload 0 /* this */
            ldc Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            putfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.internalLoader:Ljava/lang/ClassLoader;
         3: .line 124
            aload 0 /* this */
            aload 3 /* classOverrides */
            putfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.classOverrides:Ljava/lang/Object;
         4: .line 125
            return
        end local 3 // java.lang.Object classOverrides
        end local 2 // java.lang.ClassLoader parentLoader
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0    5     2    parentLoader  Ljava/lang/ClassLoader;
            0    5     3  classOverrides  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      this$0          final
      parentLoader    final
      classOverrides  final

  public java.lang.Class<?> loadClass(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 130
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.isGeneratedClassName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 131
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* resolve */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.loadGeneratedClass:(Ljava/lang/String;Z)Ljava/lang/Class;
            areturn
         2: .line 133
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader.VISIBLE_INTERNAL_CLASS_NAMES:Ljava/util/Collection;
            aload 1 /* name */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 134
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.loadInternalClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
         4: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* resolve */
            invokespecial java.security.SecureClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
            areturn
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0    5     1     name  Ljava/lang/String;
            0    5     2  resolve  Z
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      name     final
      resolve  final

  private java.lang.Class<?> loadGeneratedClass(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 140
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 141
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
        start local 4 // java.lang.Class c
         2: .line 142
            aload 4 /* c */
            ifnonnull 4
         3: .line 143
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* c */
         4: .line 145
      StackMap locals: java.lang.Object java.lang.Class
      StackMap stack:
            iload 2 /* resolve */
            ifeq 6
         5: .line 146
            aload 0 /* this */
            aload 4 /* c */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.resolveClass:(Ljava/lang/Class;)V
         6: .line 148
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            aload 3
            monitorexit
         7: areturn
        end local 4 // java.lang.Class c
         8: .line 140
      StackMap locals: com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader java.lang.String int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         9: athrow
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0   10     1     name  Ljava/lang/String;
            0   10     2  resolve  Z
            2    8     4        c  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      name     final
      resolve  final

  private java.lang.Class<?> loadInternalClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 1 // java.lang.String name
         0: .line 153
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader.VISIBLE_INTERNAL_CLASS_NAMES:Ljava/util/Collection;
            aload 1 /* name */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.internalLoader:Ljava/lang/ClassLoader;
            ifnull 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.internalLoader:Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* name */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.internalLoader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         3: areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0    4     1  name  Ljava/lang/String;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  final

  private boolean isGeneratedClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 1 // java.lang.String name
         0: .line 158
            aload 1 /* name */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.this$0:Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* name */
            ldc "com.oracle.truffle.polyglot.hostadapters.HostAdapterServices"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  protected java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
        start local 1 // java.lang.String name
         0: .line 163
            aload 1 /* name */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.this$0:Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 164
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.this$0:Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader.classBytes:[B
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.this$0:Lcom/oracle/truffle/polyglot/HostAdapterClassLoader;
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader.classBytes:[B
            arraylength
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader.GENERATED_PROTECTION_DOMAIN:Ljava/security/ProtectionDomain;
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
            areturn
         2: .line 166
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "com.oracle.truffle.polyglot.hostadapters.HostAdapterServices"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 167
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader$LazyClassBytes.SERVICE_CLASS_BYTES:[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         4: .line 168
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* bytes */
            iconst_0
            aload 2 /* bytes */
            arraylength
            getstatic com.oracle.truffle.polyglot.HostAdapterClassLoader.GENERATED_PROTECTION_DOMAIN:Ljava/security/ProtectionDomain;
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
            areturn
        end local 2 // byte[] bytes
         5: .line 170
      StackMap locals:
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;
            0    6     1   name  Ljava/lang/String;
            4    5     2  bytes  [B
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  final

  public org.graalvm.polyglot.Value get();
    descriptor: ()Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
         0: .line 175
            invokestatic org.graalvm.polyglot.Context.getCurrent:()Lorg/graalvm/polyglot/Context;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.classOverrides:Ljava/lang/Object;
            invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 0 // com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/HostAdapterClassLoader$GeneratedClassLoader;

  public java.lang.Object get();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader.get:()Lorg/graalvm/polyglot/Value;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/security/SecureClassLoader;Ljava/util/function/Supplier<Lorg/graalvm/polyglot/Value;>;
SourceFile: "HostAdapterClassLoader.java"
NestHost: com.oracle.truffle.polyglot.HostAdapterClassLoader
InnerClasses:
  final GeneratedClassLoader = com.oracle.truffle.polyglot.HostAdapterClassLoader$GeneratedClassLoader of com.oracle.truffle.polyglot.HostAdapterClassLoader
  abstract LazyClassBytes = com.oracle.truffle.polyglot.HostAdapterClassLoader$LazyClassBytes of com.oracle.truffle.polyglot.HostAdapterClassLoader