final class jdk.nashorn.internal.runtime.StructureLoader 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.StructureLoader
super_class: jdk.nashorn.internal.runtime.NashornLoader
{
private static final java.lang.String SINGLE_FIELD_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String DUAL_FIELD_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.Module structuresModule;
descriptor: Ljava/lang/Module;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.StringBuilder
dup
ldc "jdk/nashorn/internal/scripts"
invokestatic jdk.nashorn.internal.codegen.Compiler.binaryName:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_SINGLE_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putstatic jdk.nashorn.internal.runtime.StructureLoader.SINGLE_FIELD_PREFIX:Ljava/lang/String;
1: new java.lang.StringBuilder
dup
ldc "jdk/nashorn/internal/scripts"
invokestatic jdk.nashorn.internal.codegen.Compiler.binaryName:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_DUAL_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putstatic jdk.nashorn.internal.runtime.StructureLoader.DUAL_FIELD_PREFIX:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial jdk.nashorn.internal.runtime.NashornLoader.<init>:(Ljava/lang/ClassLoader;)V
1: aload 0
aload 0
ldc "jdk.scripting.nashorn.structures"
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.createModule:(Ljava/lang/String;)Ljava/lang/Module;
putfield jdk.nashorn.internal.runtime.StructureLoader.structuresModule:Ljava/lang/Module;
2: getstatic jdk.nashorn.internal.runtime.StructureLoader.NASHORN_MODULE:Ljava/lang/Module;
ldc "jdk.nashorn.internal.scripts"
aload 0
getfield jdk.nashorn.internal.runtime.StructureLoader.structuresModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
pop
3: getstatic jdk.nashorn.internal.runtime.StructureLoader.NASHORN_MODULE:Ljava/lang/Module;
ldc "jdk.nashorn.internal.runtime"
aload 0
getfield jdk.nashorn.internal.runtime.StructureLoader.structuresModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
pop
4: getstatic jdk.nashorn.internal.runtime.StructureLoader.NASHORN_MODULE:Ljava/lang/Module;
aload 0
getfield jdk.nashorn.internal.runtime.StructureLoader.structuresModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addReads:(Ljava/lang/Module;)Ljava/lang/Module;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/nashorn/internal/runtime/StructureLoader;
0 6 1 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
parent final
private java.lang.Module createModule(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Module;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
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;
1: getstatic jdk.nashorn.internal.runtime.StructureLoader.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;
2: 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;
3: invokevirtual java.lang.module.ModuleDescriptor$Builder.build:()Ljava/lang/module/ModuleDescriptor;
4: astore 2
start local 2 5: aload 2
aload 0
invokestatic jdk.nashorn.internal.runtime.Context.createModuleTrusted:(Ljava/lang/module/ModuleDescriptor;Ljava/lang/ClassLoader;)Ljava/lang/Module;
astore 3
start local 3 6: aload 0
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.loadModuleManipulator:()V
7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/nashorn/internal/runtime/StructureLoader;
0 8 1 moduleName Ljava/lang/String;
5 8 2 descriptor Ljava/lang/module/ModuleDescriptor;
6 8 3 mod Ljava/lang/Module;
MethodParameters:
Name Flags
moduleName final
private static boolean isDualFieldStructure(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic jdk.nashorn.internal.runtime.StructureLoader.DUAL_FIELD_PREFIX:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name final
static boolean isSingleFieldStructure(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic jdk.nashorn.internal.runtime.StructureLoader.SINGLE_FIELD_PREFIX:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name final
static boolean isStructureClass(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.internal.runtime.StructureLoader.isDualFieldStructure:(Ljava/lang/String;)Z
ifne 1
aload 0
invokestatic jdk.nashorn.internal.runtime.StructureLoader.isSingleFieldStructure:(Ljava/lang/String;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name final
java.lang.Module getModule();
descriptor: ()Ljava/lang/Module;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.StructureLoader.structuresModule:Ljava/lang/Module;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/StructureLoader;
protected java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.nashorn.internal.runtime.StructureLoader.isDualFieldStructure:(Ljava/lang/String;)Z
ifeq 2
1: aload 0
aload 1
aload 1
getstatic jdk.nashorn.internal.runtime.StructureLoader.DUAL_FIELD_PREFIX:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
iconst_1
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.generateClass:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Class;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.StructureLoader.isSingleFieldStructure:(Ljava/lang/String;)Z
ifeq 4
3: aload 0
aload 1
aload 1
getstatic jdk.nashorn.internal.runtime.StructureLoader.SINGLE_FIELD_PREFIX:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
iconst_0
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.generateClass:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Class;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial jdk.nashorn.internal.runtime.NashornLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/runtime/StructureLoader;
0 5 1 name Ljava/lang/String;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
private java.lang.Class<?> generateClass(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic jdk.nashorn.internal.runtime.Context.getContextTrusted:()Ljdk/nashorn/internal/runtime/Context;
astore 4
start local 4 1: new jdk.nashorn.internal.codegen.ObjectClassGenerator
dup
aload 4
iload 3
invokespecial jdk.nashorn.internal.codegen.ObjectClassGenerator.<init>:(Ljdk/nashorn/internal/runtime/Context;Z)V
aload 2
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.generate:(Ljava/lang/String;)[B
astore 5
start local 5 2: aload 0
aload 1
aload 5
iconst_0
aload 5
arraylength
new java.security.ProtectionDomain
dup
aconst_null
aload 0
aconst_null
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
invokevirtual jdk.nashorn.internal.runtime.StructureLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/StructureLoader;
0 3 1 name Ljava/lang/String;
0 3 2 descriptor Ljava/lang/String;
0 3 3 dualFields Z
1 3 4 context Ljdk/nashorn/internal/runtime/Context;
2 3 5 code [B
Signature: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
descriptor final
dualFields final
}
SourceFile: "StructureLoader.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