final class jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker implements jdk.dynalink.linker.TypeBasedGuardingDynamicLinker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker
super_class: java.lang.Object
{
private final jdk.dynalink.linker.GuardingDynamicLinker staticClassLinker;
descriptor: Ljdk/dynalink/linker/GuardingDynamicLinker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(jdk.dynalink.beans.BeansLinker);
descriptor: (Ljdk/dynalink/beans/BeansLinker;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
ldc Ljdk/dynalink/beans/StaticClass;
invokevirtual jdk.dynalink.beans.BeansLinker.getLinkerForClass:(Ljava/lang/Class;)Ljdk/dynalink/linker/TypeBasedGuardingDynamicLinker;
putfield jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.staticClassLinker:Ljdk/dynalink/linker/GuardingDynamicLinker;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
0 3 1 beansLinker Ljdk/dynalink/beans/BeansLinker;
MethodParameters:
Name Flags
beansLinker final
public boolean canLinkType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljdk/dynalink/beans/StaticClass;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
0 2 1 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
type final
public jdk.dynalink.linker.GuardedInvocation getGuardedInvocation(jdk.dynalink.linker.LinkRequest, jdk.dynalink.linker.LinkerServices);
descriptor: (Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getReceiver:()Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Ljdk/dynalink/beans/StaticClass;
if_acmpeq 3
2: StackMap locals: java.lang.Object
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 3
checkcast jdk.dynalink.beans.StaticClass
invokevirtual jdk.dynalink.beans.StaticClass.getRepresentedClass:()Ljava/lang/Class;
astore 4
start local 4 4: aload 4
iconst_1
invokestatic jdk.nashorn.internal.runtime.linker.Bootstrap.checkReflectionAccess:(Ljava/lang/Class;Z)V
5: aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
astore 5
start local 5 6: aload 5
invokevirtual jdk.dynalink.CallSiteDescriptor.getOperation:()Ljdk/dynalink/Operation;
invokestatic jdk.dynalink.NamedOperation.getBaseOperation:(Ljdk/dynalink/Operation;)Ljdk/dynalink/Operation;
getstatic jdk.dynalink.StandardOperation.NEW:Ljdk/dynalink/StandardOperation;
if_acmpne 19
7: aload 4
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 9
8: ldc "new.on.nonpublic.javatype"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
athrow
9: StackMap locals: java.lang.Class jdk.dynalink.CallSiteDescriptor
StackMap stack:
aload 4
invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/Class;)V
10: aload 4
invokestatic jdk.nashorn.internal.runtime.linker.NashornLinker.isAbstractClass:(Ljava/lang/Class;)Z
ifeq 18
11: aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getArguments:()[Ljava/lang/Object;
astore 6
start local 6 12: aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getLookupInternal:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandles$Lookup;
13: astore 7
start local 7 14: aload 6
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
aconst_null
aload 7
invokestatic jdk.nashorn.internal.runtime.linker.JavaAdapterFactory.getAdapterClassFor:([Ljava/lang/Class;Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/invoke/MethodHandles$Lookup;)Ljdk/dynalink/beans/StaticClass;
aastore
15: aload 1
aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
aload 6
invokeinterface jdk.dynalink.linker.LinkRequest.replaceArguments:(Ljdk/dynalink/CallSiteDescriptor;[Ljava/lang/Object;)Ljdk/dynalink/linker/LinkRequest;
astore 8
start local 8 16: aload 0
aload 2
aload 8
invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
aload 4
invokestatic jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.checkNullConstructor:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
astore 9
start local 9 17: aload 9
aload 9
invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
aload 3
invokestatic jdk.dynalink.linker.support.Guards.getIdentityGuard:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
areturn
end local 9 end local 8 end local 7 end local 6 18: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
aload 4
invokestatic jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.checkNullConstructor:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
areturn
19: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
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 20 0 this Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
0 20 1 request Ljdk/dynalink/linker/LinkRequest;
0 20 2 linkerServices Ljdk/dynalink/linker/LinkerServices;
1 20 3 self Ljava/lang/Object;
4 20 4 receiverClass Ljava/lang/Class<*>;
6 20 5 desc Ljdk/dynalink/CallSiteDescriptor;
12 18 6 args [Ljava/lang/Object;
14 18 7 lookup Ljava/lang/invoke/MethodHandles$Lookup;
16 18 8 adapterRequest Ljdk/dynalink/linker/LinkRequest;
17 18 9 gi Ljdk/dynalink/linker/GuardedInvocation;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
request final
linkerServices final
private jdk.dynalink.linker.GuardedInvocation delegate(jdk.dynalink.linker.LinkerServices, jdk.dynalink.linker.LinkRequest);
descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.staticClassLinker:Ljdk/dynalink/linker/GuardingDynamicLinker;
aload 2
aload 1
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.getGuardedInvocation:(Ljdk/dynalink/linker/GuardingDynamicLinker;Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
0 1 1 linkerServices Ljdk/dynalink/linker/LinkerServices;
0 1 2 request Ljdk/dynalink/linker/LinkRequest;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
linkerServices final
request final
private static jdk.dynalink.linker.GuardedInvocation checkNullConstructor(jdk.dynalink.linker.GuardedInvocation, java.lang.Class<?>);
descriptor: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: ldc "no.constructor.matches.args"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ctorInvocation Ljdk/dynalink/linker/GuardedInvocation;
0 3 1 receiverClass Ljava/lang/Class<*>;
Signature: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class<*>;)Ljdk/dynalink/linker/GuardedInvocation;
MethodParameters:
Name Flags
ctorInvocation final
receiverClass final
}
SourceFile: "NashornStaticClassLinker.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles