final class jdk.nashorn.internal.runtime.ScriptLoader extends jdk.nashorn.internal.runtime.NashornLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.ScriptLoader
  super_class: jdk.nashorn.internal.runtime.NashornLoader
{
  private static final java.lang.String NASHORN_PKG_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk.nashorn.internal."

  private volatile boolean structureAccessAdded;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final jdk.nashorn.internal.runtime.Context context;
    descriptor: Ljdk/nashorn/internal/runtime/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  jdk.nashorn.internal.runtime.Context getContext();
    descriptor: ()Ljdk/nashorn/internal/runtime/Context;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
         0: .line 46
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.context:Ljdk/nashorn/internal/runtime/Context;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/ScriptLoader;

  void <init>(jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
        start local 1 // jdk.nashorn.internal.runtime.Context context
         0: .line 53
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual jdk.nashorn.internal.runtime.Context.getStructLoader:()Ljdk/nashorn/internal/runtime/StructureLoader;
            invokespecial jdk.nashorn.internal.runtime.NashornLoader.<init>:(Ljava/lang/ClassLoader;)V
         1: .line 54
            aload 0 /* this */
            aload 1 /* context */
            putfield jdk.nashorn.internal.runtime.ScriptLoader.context:Ljdk/nashorn/internal/runtime/Context;
         2: .line 57
            aload 0 /* this */
            aload 0 /* this */
            ldc "jdk.scripting.nashorn.scripts"
            invokevirtual jdk.nashorn.internal.runtime.ScriptLoader.createModule:(Ljava/lang/String;)Ljava/lang/Module;
            putfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
         3: .line 60
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            ldc "jdk.nashorn.internal.objects"
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
            pop
         4: .line 61
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            ldc "jdk.nashorn.internal.runtime"
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
            pop
         5: .line 62
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            ldc "jdk.nashorn.internal.runtime.arrays"
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
            pop
         6: .line 63
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            ldc "jdk.nashorn.internal.runtime.linker"
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
            pop
         7: .line 64
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            ldc "jdk.nashorn.internal.scripts"
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
            pop
         8: .line 67
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual java.lang.Module.addReads:(Ljava/lang/Module;)Ljava/lang/Module;
            pop
         9: .line 68
            return
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Ljdk/nashorn/internal/runtime/ScriptLoader;
            0   10     1  context  Ljdk/nashorn/internal/runtime/Context;
    MethodParameters:
         Name  Flags
      context  final

  private java.lang.Module createModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Module;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
        start local 1 // java.lang.String moduleName
         0: .line 71
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.context:Ljdk/nashorn/internal/runtime/Context;
            invokevirtual jdk.nashorn.internal.runtime.Context.getStructLoader:()Ljdk/nashorn/internal/runtime/StructureLoader;
            invokevirtual jdk.nashorn.internal.runtime.StructureLoader.getModule:()Ljava/lang/Module;
            astore 2 /* structMod */
        start local 2 // java.lang.Module structMod
         1: .line 73
            aload 1 /* moduleName */
            getstatic java.lang.module.ModuleDescriptor$Modifier.SYNTHETIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokestatic java.lang.module.ModuleDescriptor.newModule:(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Builder;
         2: .line 74
            ldc "java.logging"
            invokevirtual java.lang.module.ModuleDescriptor$Builder.requires:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
         3: .line 75
            getstatic jdk.nashorn.internal.runtime.ScriptLoader.NASHORN_MODULE:Ljava/lang/Module;
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            invokevirtual java.lang.module.ModuleDescriptor$Builder.requires:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
         4: .line 76
            aload 2 /* structMod */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            invokevirtual java.lang.module.ModuleDescriptor$Builder.requires:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
         5: .line 77
            ldc "jdk.nashorn.internal.scripts"
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual java.lang.module.ModuleDescriptor$Builder.packages:(Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Builder;
         6: .line 72
            astore 3 /* builder */
        start local 3 // java.lang.module.ModuleDescriptor$Builder builder
         7: .line 79
            getstatic jdk.nashorn.internal.runtime.Context.javaSqlFound:Z
            ifeq 9
         8: .line 80
            aload 3 /* builder */
            ldc "java.sql"
            invokevirtual java.lang.module.ModuleDescriptor$Builder.requires:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
            pop
         9: .line 83
      StackMap locals: java.lang.Module java.lang.module.ModuleDescriptor$Builder
      StackMap stack:
            getstatic jdk.nashorn.internal.runtime.Context.javaSqlRowsetFound:Z
            ifeq 11
        10: .line 84
            aload 3 /* builder */
            ldc "java.sql.rowset"
            invokevirtual java.lang.module.ModuleDescriptor$Builder.requires:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
            pop
        11: .line 87
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            invokevirtual java.lang.module.ModuleDescriptor$Builder.build:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* descriptor */
        start local 4 // java.lang.module.ModuleDescriptor descriptor
        12: .line 89
            aload 2 /* structMod */
            invokevirtual java.lang.Module.getLayer:()Ljava/lang/ModuleLayer;
            aload 4 /* descriptor */
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.Context.createModuleTrusted:(Ljava/lang/ModuleLayer;Ljava/lang/module/ModuleDescriptor;Ljava/lang/ClassLoader;)Ljava/lang/Module;
            astore 5 /* mod */
        start local 5 // java.lang.Module mod
        13: .line 90
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.ScriptLoader.loadModuleManipulator:()V
        14: .line 91
            aload 5 /* mod */
            areturn
        end local 5 // java.lang.Module mod
        end local 4 // java.lang.module.ModuleDescriptor descriptor
        end local 3 // java.lang.module.ModuleDescriptor$Builder builder
        end local 2 // java.lang.Module structMod
        end local 1 // java.lang.String moduleName
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Ljdk/nashorn/internal/runtime/ScriptLoader;
            0   15     1  moduleName  Ljava/lang/String;
            1   15     2   structMod  Ljava/lang/Module;
            7   15     3     builder  Ljava/lang/module/ModuleDescriptor$Builder;
           12   15     4  descriptor  Ljava/lang/module/ModuleDescriptor;
           13   15     5         mod  Ljava/lang/Module;
    MethodParameters:
            Name  Flags
      moduleName  final

  protected java.lang.Class<?> loadClass(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 96
            aload 1 /* name */
            invokestatic jdk.nashorn.internal.runtime.ScriptLoader.checkPackageAccess:(Ljava/lang/String;)V
         1: .line 97
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* resolve */
            invokespecial jdk.nashorn.internal.runtime.NashornLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         2: .line 98
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.structureAccessAdded:Z
            ifne 7
         3: .line 99
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.context:Ljdk/nashorn/internal/runtime/Context;
            invokevirtual jdk.nashorn.internal.runtime.Context.getStructLoader:()Ljdk/nashorn/internal/runtime/StructureLoader;
            astore 4 /* structLoader */
        start local 4 // jdk.nashorn.internal.runtime.StructureLoader structLoader
         4: .line 100
            aload 3 /* cl */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 4 /* structLoader */
            if_acmpne 7
         5: .line 101
            aload 0 /* this */
            iconst_1
            putfield jdk.nashorn.internal.runtime.ScriptLoader.structureAccessAdded:Z
         6: .line 102
            aload 4 /* structLoader */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.scriptModule:Ljava/lang/Module;
            invokevirtual jdk.nashorn.internal.runtime.StructureLoader.addModuleExport:(Ljava/lang/Module;)V
        end local 4 // jdk.nashorn.internal.runtime.StructureLoader structLoader
         7: .line 105
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* cl */
            areturn
        end local 3 // java.lang.Class cl
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljdk/nashorn/internal/runtime/ScriptLoader;
            0    8     1          name  Ljava/lang/String;
            0    8     2       resolve  Z
            2    8     3            cl  Ljava/lang/Class<*>;
            4    7     4  structLoader  Ljdk/nashorn/internal/runtime/StructureLoader;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      name     final
      resolve  final

  protected java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
        start local 1 // java.lang.String name
         0: .line 110
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.ScriptLoader.context:Ljdk/nashorn/internal/runtime/Context;
            invokevirtual jdk.nashorn.internal.runtime.Context.getAppLoader:()Ljava/lang/ClassLoader;
            astore 2 /* appLoader */
        start local 2 // java.lang.ClassLoader appLoader
         1: .line 120
            aload 2 /* appLoader */
            ifnull 2
            aload 1 /* name */
            ldc "jdk.nashorn.internal."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 121
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* appLoader */
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 2 // java.lang.ClassLoader appLoader
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljdk/nashorn/internal/runtime/ScriptLoader;
            0    4     1       name  Ljava/lang/String;
            1    4     2  appLoader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  final

  synchronized java.lang.Class<?> installClass(java.lang.String, byte[], java.security.CodeSource);
    descriptor: (Ljava/lang/String;[BLjava/security/CodeSource;)Ljava/lang/Class;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
        start local 1 // java.lang.String name
        start local 2 // byte[] data
        start local 3 // java.security.CodeSource cs
         0: .line 147
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* data */
            iconst_0
            aload 2 /* data */
            arraylength
            aload 3 /* cs */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.CodeSource
            invokevirtual jdk.nashorn.internal.runtime.ScriptLoader.defineClass:(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;
            areturn
        end local 3 // java.security.CodeSource cs
        end local 2 // byte[] data
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.runtime.ScriptLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/ScriptLoader;
            0    1     1  name  Ljava/lang/String;
            0    1     2  data  [B
            0    1     3    cs  Ljava/security/CodeSource;
    Signature: (Ljava/lang/String;[BLjava/security/CodeSource;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  final
      data  final
      cs    final
}
SourceFile: "ScriptLoader.java"
InnerClasses:
  public final Builder = java.lang.module.ModuleDescriptor$Builder of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Modifier of java.lang.module.ModuleDescriptor