public class jdk.nashorn.internal.runtime.linker.NashornBeansLinker implements jdk.dynalink.linker.GuardingDynamicLinker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.nashorn.internal.runtime.linker.NashornBeansLinker
super_class: java.lang.Object
{
private static final boolean MIRROR_ALWAYS;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.dynalink.Operation GET_METHOD;
descriptor: Ljdk/dynalink/Operation;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodType GET_METHOD_TYPE;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle EXPORT_ARGUMENT;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle IMPORT_RESULT;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle FILTER_CONSSTRING;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ClassValue<java.lang.String> FUNCTIONAL_IFACE_METHOD_NAME;
descriptor: Ljava/lang/ClassValue;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ClassValue<Ljava/lang/String;>;
private final jdk.dynalink.beans.BeansLinker beansLinker;
descriptor: Ljdk/dynalink/beans/BeansLinker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=1, args_size=0
0: ldc "nashorn.mirror.always"
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic jdk.nashorn.internal.runtime.options.Options.getBooleanProperty:(Ljava/lang/String;Ljava/lang/Boolean;)Z
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.MIRROR_ALWAYS:Z
1: getstatic jdk.dynalink.StandardOperation.GET:Ljdk/dynalink/StandardOperation;
getstatic jdk.dynalink.StandardNamespace.METHOD:Ljdk/dynalink/StandardNamespace;
invokevirtual jdk.dynalink.StandardOperation.withNamespace:(Ljdk/dynalink/Namespace;)Ljdk/dynalink/NamespaceOperation;
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.GET_METHOD:Ljdk/dynalink/Operation;
2: ldc Ljava/lang/Object;
ldc Ljava/lang/Object;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.GET_METHOD_TYPE:Ljava/lang/invoke/MethodType;
3: new jdk.dynalink.linker.support.Lookup
dup
invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
invokespecial jdk.dynalink.linker.support.Lookup.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;)V
astore 0
start local 0 4: aload 0
ldc "exportArgument"
ldc Ljava/lang/Object;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.EXPORT_ARGUMENT:Ljava/lang/invoke/MethodHandle;
5: aload 0
ldc "importResult"
ldc Ljava/lang/Object;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.IMPORT_RESULT:Ljava/lang/invoke/MethodHandle;
6: aload 0
ldc "consStringFilter"
ldc Ljava/lang/Object;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.FILTER_CONSSTRING:Ljava/lang/invoke/MethodHandle;
end local 0 7: new jdk.nashorn.internal.runtime.linker.NashornBeansLinker$1
dup
invokespecial jdk.nashorn.internal.runtime.linker.NashornBeansLinker$1.<init>:()V
putstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.FUNCTIONAL_IFACE_METHOD_NAME:Ljava/lang/ClassValue;
8: return
LocalVariableTable:
Start End Slot Name Signature
4 7 0 lookup Ljdk/dynalink/linker/support/Lookup;
void <init>(jdk.dynalink.beans.BeansLinker);
descriptor: (Ljdk/dynalink/beans/BeansLinker;)V
flags: (0x0000)
Code:
stack=2, 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
putfield jdk.nashorn.internal.runtime.linker.NashornBeansLinker.beansLinker:Ljdk/dynalink/beans/BeansLinker;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/linker/NashornBeansLinker;
0 3 1 beansLinker Ljdk/dynalink/beans/BeansLinker;
MethodParameters:
Name Flags
beansLinker 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=9, locals=15, 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 1
invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
astore 4
start local 4 2: aload 3
instanceof jdk.nashorn.internal.runtime.ConsString
ifeq 10
3: aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getArguments:()[Ljava/lang/Object;
astore 5
start local 5 4: aload 5
iconst_0
ldc ""
aastore
5: aload 1
aload 4
aload 5
invokeinterface jdk.dynalink.linker.LinkRequest.replaceArguments:(Ljdk/dynalink/CallSiteDescriptor;[Ljava/lang/Object;)Ljdk/dynalink/linker/LinkRequest;
astore 6
start local 6 6: aload 0
getfield jdk.nashorn.internal.runtime.linker.NashornBeansLinker.beansLinker:Ljdk/dynalink/beans/BeansLinker;
aload 6
aload 2
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.getGuardedInvocation:(Ljdk/dynalink/linker/GuardingDynamicLinker;Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
astore 7
start local 7 7: aload 7
ifnonnull 8
aconst_null
goto 9
StackMap locals: jdk.nashorn.internal.runtime.linker.NashornBeansLinker jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.LinkerServices java.lang.Object jdk.dynalink.CallSiteDescriptor java.lang.Object[] jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.GuardedInvocation
StackMap stack:
8: aload 7
iconst_0
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.FILTER_CONSSTRING:Ljava/lang/invoke/MethodHandle;
aastore
invokevirtual jdk.dynalink.linker.GuardedInvocation.filterArguments:(I[Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
StackMap locals:
StackMap stack: jdk.dynalink.linker.GuardedInvocation
9: areturn
end local 7 end local 6 end local 5 10: StackMap locals:
StackMap stack:
aload 3
ifnull 41
aload 4
invokevirtual jdk.dynalink.CallSiteDescriptor.getOperation:()Ljdk/dynalink/Operation;
invokestatic jdk.dynalink.NamedOperation.getBaseOperation:(Ljdk/dynalink/Operation;)Ljdk/dynalink/Operation;
getstatic jdk.dynalink.StandardOperation.CALL:Ljdk/dynalink/StandardOperation;
if_acmpne 41
11: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.getFunctionalInterfaceMethodName:(Ljava/lang/Class;)Ljava/lang/String;
astore 5
start local 5 12: aload 5
ifnull 41
13: new jdk.dynalink.CallSiteDescriptor
dup
14: aload 4
invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getLookupInternal:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandles$Lookup;
15: getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.GET_METHOD:Ljdk/dynalink/Operation;
aload 5
invokeinterface jdk.dynalink.Operation.named:(Ljava/lang/Object;)Ljdk/dynalink/NamedOperation;
getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.GET_METHOD_TYPE:Ljava/lang/invoke/MethodType;
16: invokespecial jdk.dynalink.CallSiteDescriptor.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljdk/dynalink/Operation;Ljava/lang/invoke/MethodType;)V
astore 6
start local 6 17: aload 2
18: new jdk.dynalink.linker.support.SimpleLinkRequest
dup
aload 6
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokespecial jdk.dynalink.linker.support.SimpleLinkRequest.<init>:(Ljdk/dynalink/CallSiteDescriptor;Z[Ljava/lang/Object;)V
19: invokeinterface jdk.dynalink.linker.LinkerServices.getGuardedInvocation:(Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
astore 7
start local 7 20: aload 7
invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
aload 3
invokevirtual java.lang.invoke.MethodHandle.invokeExact:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 21: goto 26
end local 8 StackMap locals: jdk.nashorn.internal.runtime.linker.NashornBeansLinker jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.LinkerServices java.lang.Object jdk.dynalink.CallSiteDescriptor java.lang.String jdk.dynalink.CallSiteDescriptor jdk.dynalink.linker.GuardedInvocation
StackMap stack: java.lang.Throwable
22: astore 9
start local 9 23: aload 9
athrow
end local 9 24: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
start local 9 25: new java.lang.RuntimeException
dup
aload 9
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 start local 8 26: StackMap locals: java.lang.Object
StackMap stack:
aload 1
invokeinterface jdk.dynalink.linker.LinkRequest.getArguments:()[Ljava/lang/Object;
astore 9
start local 9 27: aload 9
iconst_1
aload 9
iconst_0
aaload
aastore
28: aload 9
iconst_0
aload 8
aastore
29: aload 4
invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
astore 10
start local 10 30: aload 4
31: aload 4
invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
iconst_0
ldc Ljava/lang/Object;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
iconst_1
aload 10
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
32: invokevirtual jdk.dynalink.CallSiteDescriptor.changeMethodType:(Ljava/lang/invoke/MethodType;)Ljdk/dynalink/CallSiteDescriptor;
astore 11
start local 11 33: aload 0
getfield jdk.nashorn.internal.runtime.linker.NashornBeansLinker.beansLinker:Ljdk/dynalink/beans/BeansLinker;
aload 1
aload 11
aload 9
invokeinterface jdk.dynalink.linker.LinkRequest.replaceArguments:(Ljdk/dynalink/CallSiteDescriptor;[Ljava/lang/Object;)Ljdk/dynalink/linker/LinkRequest;
34: new jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices
dup
aload 2
invokespecial jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices.<init>:(Ljdk/dynalink/linker/LinkerServices;)V
35: invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.getGuardedInvocation:(Ljdk/dynalink/linker/GuardingDynamicLinker;Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
astore 12
start local 12 36: aload 12
invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
37: aload 8
invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
38: astore 13
start local 13 39: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 13
iconst_1
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 10
iconst_1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 14
start local 14 40: aload 12
aload 14
aload 12
invokevirtual jdk.dynalink.linker.GuardedInvocation.getGuard:()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 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 41: StackMap locals: jdk.nashorn.internal.runtime.linker.NashornBeansLinker jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.LinkerServices java.lang.Object jdk.dynalink.CallSiteDescriptor
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.linker.NashornBeansLinker.beansLinker:Ljdk/dynalink/beans/BeansLinker;
aload 1
aload 2
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 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Ljdk/nashorn/internal/runtime/linker/NashornBeansLinker;
0 42 1 linkRequest Ljdk/dynalink/linker/LinkRequest;
0 42 2 linkerServices Ljdk/dynalink/linker/LinkerServices;
1 42 3 self Ljava/lang/Object;
2 42 4 desc Ljdk/dynalink/CallSiteDescriptor;
4 10 5 arguments [Ljava/lang/Object;
6 10 6 forgedLinkRequest Ljdk/dynalink/linker/LinkRequest;
7 10 7 invocation Ljdk/dynalink/linker/GuardedInvocation;
12 41 5 name Ljava/lang/String;
17 41 6 getMethodDesc Ljdk/dynalink/CallSiteDescriptor;
20 41 7 getMethodInv Ljdk/dynalink/linker/GuardedInvocation;
21 22 8 method Ljava/lang/Object;
26 41 8 method Ljava/lang/Object;
23 24 9 e Ljava/lang/Throwable;
25 26 9 t Ljava/lang/Throwable;
27 41 9 args [Ljava/lang/Object;
30 41 10 callType Ljava/lang/invoke/MethodType;
33 41 11 newDesc Ljdk/dynalink/CallSiteDescriptor;
36 41 12 gi Ljdk/dynalink/linker/GuardedInvocation;
39 41 13 inv Ljava/lang/invoke/MethodHandle;
40 41 14 calleeToThis Ljava/lang/invoke/MethodHandle;
Exception table:
from to target type
20 21 22 Class java.lang.Exception
20 21 22 Class java.lang.Error
20 21 24 Class java.lang.Throwable
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
linkRequest final
linkerServices final
public static jdk.dynalink.linker.GuardedInvocation getGuardedInvocation(jdk.dynalink.linker.GuardingDynamicLinker, jdk.dynalink.linker.LinkRequest, jdk.dynalink.linker.LinkerServices);
descriptor: (Ljdk/dynalink/linker/GuardingDynamicLinker;Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
new jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices
dup
aload 2
invokespecial jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices.<init>:(Ljdk/dynalink/linker/LinkerServices;)V
invokeinterface jdk.dynalink.linker.GuardingDynamicLinker.getGuardedInvocation:(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 delegateLinker Ljdk/dynalink/linker/GuardingDynamicLinker;
0 1 1 linkRequest Ljdk/dynalink/linker/LinkRequest;
0 1 2 linkerServices Ljdk/dynalink/linker/LinkerServices;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
delegateLinker final
linkRequest final
linkerServices final
private static java.lang.Object exportArgument(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
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.linker.NashornBeansLinker.MIRROR_ALWAYS:Z
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.exportArgument:(Ljava/lang/Object;Z)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arg Ljava/lang/Object;
MethodParameters:
Name Flags
arg final
static java.lang.Object exportArgument(java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Z)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof jdk.nashorn.internal.runtime.ConsString
ifeq 2
1: aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
iload 1
ifeq 4
aload 0
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifeq 4
3: aload 0
invokestatic jdk.nashorn.api.scripting.ScriptUtils.wrap:(Ljava/lang/Object;)Ljdk/nashorn/api/scripting/ScriptObjectMirror;
areturn
4: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 arg Ljava/lang/Object;
0 5 1 mirrorAlways Z
MethodParameters:
Name Flags
arg final
mirrorAlways final
private static java.lang.Object importResult(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.api.scripting.ScriptUtils.unwrap:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arg Ljava/lang/Object;
MethodParameters:
Name Flags
arg final
private static java.lang.Object consStringFilter(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof jdk.nashorn.internal.runtime.ConsString
ifeq 1
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arg Ljava/lang/Object;
MethodParameters:
Name Flags
arg final
private static java.lang.String findFunctionalInterfaceMethodName(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 14
StackMap locals: java.lang.Class top int int java.lang.Class[]
StackMap stack:
3: aload 4
iload 2
aaload
astore 1
start local 1 4: aload 1
invokestatic jdk.nashorn.internal.runtime.Context.isAccessibleClass:(Ljava/lang/Class;)Z
ifne 6
5: goto 13
6: StackMap locals: java.lang.Class java.lang.Class int int java.lang.Class[]
StackMap stack:
aload 1
ldc Ljava/lang/FunctionalInterface;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 13
7: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 12
StackMap locals: java.lang.Class java.lang.Class int int java.lang.Class[] top int int java.lang.reflect.Method[]
StackMap stack:
8: aload 8
iload 6
aaload
astore 5
start local 5 9: aload 5
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
ifeq 11
aload 5
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.isOverridableObjectMethod:(Ljava/lang/reflect/Method;)Z
ifne 11
10: aload 5
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
areturn
end local 5 11: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 7
if_icmplt 8
end local 1 13: StackMap locals: java.lang.Class top int int java.lang.Class[]
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
14: iload 2
iload 3
if_icmplt 3
15: aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.findFunctionalInterfaceMethodName:(Ljava/lang/Class;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 clazz Ljava/lang/Class<*>;
4 13 1 iface Ljava/lang/Class<*>;
9 11 5 m Ljava/lang/reflect/Method;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz final
private static boolean isOverridableObjectMethod(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 3
-1776922004: 1
-1295482945: 2
147696667: 3
default: 13
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "toString"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 13
StackMap locals:
StackMap stack:
2: aload 1
ldc "equals"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 13
StackMap locals:
StackMap stack:
3: aload 1
ldc "hashCode"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 13
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 8
5: aload 0
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 2
start local 2 6: aload 2
arraylength
iconst_1
if_icmpne 7
aload 2
iconst_0
aaload
ldc Ljava/lang/Object;
if_acmpne 7
iconst_1
ireturn
StackMap locals: java.lang.Class[]
StackMap stack:
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 10
aload 0
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 10
iconst_1
ireturn
StackMap locals:
StackMap stack:
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
ldc Ljava/lang/String;
if_acmpne 12
aload 0
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 12
iconst_1
ireturn
StackMap locals:
StackMap stack:
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 m Ljava/lang/reflect/Method;
6 8 2 params [Ljava/lang/Class;
MethodParameters:
Name Flags
m final
static java.lang.String getFunctionalInterfaceMethodName(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.FUNCTIONAL_IFACE_METHOD_NAME:Ljava/lang/ClassValue;
aload 0
invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz final
static jdk.dynalink.linker.MethodHandleTransformer createHiddenObjectFilter();
descriptor: ()Ljdk/dynalink/linker/MethodHandleTransformer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new jdk.dynalink.linker.support.DefaultInternalObjectFilter
dup
getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.EXPORT_ARGUMENT:Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.MIRROR_ALWAYS:Z
ifeq 1
getstatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.IMPORT_RESULT:Ljava/lang/invoke/MethodHandle;
goto 2
StackMap locals:
StackMap stack: new 0 new 0 java.lang.invoke.MethodHandle
1: aconst_null
StackMap locals:
StackMap stack: new 0 new 0 java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
2: invokespecial jdk.dynalink.linker.support.DefaultInternalObjectFilter.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NashornBeansLinker.java"
NestMembers:
jdk.nashorn.internal.runtime.linker.NashornBeansLinker$1 jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
jdk.nashorn.internal.runtime.linker.NashornBeansLinker$1
private NashornBeansLinkerServices = jdk.nashorn.internal.runtime.linker.NashornBeansLinker$NashornBeansLinkerServices of jdk.nashorn.internal.runtime.linker.NashornBeansLinker