final class jdk.nashorn.internal.runtime.CompiledFunction
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.runtime.CompiledFunction
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodHandle NEWFILTER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle RELINK_COMPOSABLE_INVOKER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle HANDLE_REWRITE_EXCEPTION;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle RESTOF_INVOKER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final jdk.nashorn.internal.runtime.logging.DebugLogger log;
descriptor: Ljdk/nashorn/internal/runtime/logging/DebugLogger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final java.util.Collection<jdk.nashorn.internal.runtime.CompiledFunction> NO_FUNCTIONS;
descriptor: Ljava/util/Collection;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Collection<Ljdk/nashorn/internal/runtime/CompiledFunction;>;
private java.lang.invoke.MethodHandle invoker;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
private java.lang.invoke.MethodHandle constructor;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
private jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo optimismInfo;
descriptor: Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
flags: (0x0002) ACC_PRIVATE
private final int flags;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodType callSiteType;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.nashorn.internal.runtime.Specialization specialization;
descriptor: Ljdk/nashorn/internal/runtime/Specialization;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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=6, locals=0, args_size=0
0: ldc Ljdk/nashorn/internal/runtime/CompiledFunction;
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 jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
3: ldc "newFilter"
ldc Ljava/lang/Object;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.CompiledFunction.NEWFILTER:Ljava/lang/invoke/MethodHandle;
4: ldc "relinkComposableInvoker"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/CallSite;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/CompiledFunction;
aastore
dup
iconst_2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.CompiledFunction.RELINK_COMPOSABLE_INVOKER:Ljava/lang/invoke/MethodHandle;
5: ldc "handleRewriteException"
ldc Ljava/lang/invoke/MethodHandle;
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/CompiledFunction;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
aastore
dup
iconst_2
ldc Ljdk/nashorn/internal/runtime/RewriteException;
aastore
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.CompiledFunction.HANDLE_REWRITE_EXCEPTION:Ljava/lang/invoke/MethodHandle;
6: ldc Ljava/lang/Object;
ldc Ljdk/nashorn/internal/runtime/RewriteException;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.exactInvoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.CompiledFunction.RESTOF_INVOKER:Ljava/lang/invoke/MethodHandle;
7: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putstatic jdk.nashorn.internal.runtime.CompiledFunction.NO_FUNCTIONS:Ljava/util/Collection;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
invokespecial jdk.nashorn.internal.runtime.CompiledFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Specialization;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 2 1 invoker Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
invoker final
static jdk.nashorn.internal.runtime.CompiledFunction createBuiltInConstructor(java.lang.invoke.MethodHandle, jdk.nashorn.internal.runtime.Specialization);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Specialization;)Ljdk/nashorn/internal/runtime/CompiledFunction;
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=2, args_size=2
start local 0 start local 1 0: new jdk.nashorn.internal.runtime.CompiledFunction
dup
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 0
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 0
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.createConstructorFromInvoker:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
aload 1
invokespecial jdk.nashorn.internal.runtime.CompiledFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Specialization;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 invoker Ljava/lang/invoke/MethodHandle;
0 1 1 specialization Ljdk/nashorn/internal/runtime/Specialization;
MethodParameters:
Name Flags
invoker final
specialization final
void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, jdk.nashorn.internal.runtime.Specialization);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Specialization;)V
flags: (0x0000)
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iconst_0
aconst_null
aload 3
getstatic jdk.nashorn.internal.runtime.logging.DebugLogger.DISABLED_LOGGER:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokespecial jdk.nashorn.internal.runtime.CompiledFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;Ljdk/nashorn/internal/runtime/Specialization;Ljdk/nashorn/internal/runtime/logging/DebugLogger;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 2 1 invoker Ljava/lang/invoke/MethodHandle;
0 2 2 constructor Ljava/lang/invoke/MethodHandle;
0 2 3 specialization Ljdk/nashorn/internal/runtime/Specialization;
MethodParameters:
Name Flags
invoker final
constructor final
specialization final
void <init>(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodType, jdk.nashorn.internal.runtime.Specialization, jdk.nashorn.internal.runtime.logging.DebugLogger);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;Ljdk/nashorn/internal/runtime/Specialization;Ljdk/nashorn/internal/runtime/logging/DebugLogger;)V
flags: (0x0000)
Code:
stack=8, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 5
putfield jdk.nashorn.internal.runtime.CompiledFunction.specialization:Ljdk/nashorn/internal/runtime/Specialization;
2: aload 5
ifnull 5
aload 5
invokevirtual jdk.nashorn.internal.runtime.Specialization.isOptimistic:()Z
ifeq 5
3: aload 0
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 1
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
putfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
4: new java.lang.AssertionError
dup
ldc "Optimistic (UnwarrantedOptimismException throwing) builtin functions are currently not in use"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int java.lang.invoke.MethodType jdk.nashorn.internal.runtime.Specialization jdk.nashorn.internal.runtime.logging.DebugLogger
StackMap stack:
aload 0
aload 1
putfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
6: aload 0
aload 2
putfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
7: aload 0
iload 3
putfield jdk.nashorn.internal.runtime.CompiledFunction.flags:I
8: aload 0
aload 4
putfield jdk.nashorn.internal.runtime.CompiledFunction.callSiteType:Ljava/lang/invoke/MethodType;
9: aload 0
aload 6
putfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
10: return
end local 6 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 11 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 11 1 invoker Ljava/lang/invoke/MethodHandle;
0 11 2 constructor Ljava/lang/invoke/MethodHandle;
0 11 3 flags I
0 11 4 callSiteType Ljava/lang/invoke/MethodType;
0 11 5 specialization Ljdk/nashorn/internal/runtime/Specialization;
0 11 6 log Ljdk/nashorn/internal/runtime/logging/DebugLogger;
MethodParameters:
Name Flags
invoker final
constructor final
flags final
callSiteType final
specialization final
log final
void <init>(java.lang.invoke.MethodHandle, jdk.nashorn.internal.runtime.RecompilableScriptFunctionData, java.util.Map<java.lang.Integer, jdk.nashorn.internal.codegen.types.Type>, java.lang.invoke.MethodType, );
descriptor: (Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;Ljava/util/Map;Ljava/lang/invoke/MethodType;I)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aconst_null
iload 5
aload 4
aconst_null
aload 2
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getLogger:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokespecial jdk.nashorn.internal.runtime.CompiledFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;Ljdk/nashorn/internal/runtime/Specialization;Ljdk/nashorn/internal/runtime/logging/DebugLogger;)V
1: iload 5
sipush 2048
iand
ifeq 4
2: aload 0
new jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo
dup
aload 2
aload 3
invokespecial jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.<init>:(Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;Ljava/util/Map;)V
putfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
3: goto 5
4: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodHandle jdk.nashorn.internal.runtime.RecompilableScriptFunctionData java.util.Map java.lang.invoke.MethodType int
StackMap stack:
aload 0
aconst_null
putfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
5: StackMap locals:
StackMap stack:
return
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 6 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 6 1 invoker Ljava/lang/invoke/MethodHandle;
0 6 2 functionData Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
0 6 3 invalidatedProgramPoints Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;
0 6 4 callSiteType Ljava/lang/invoke/MethodType;
0 6 5 flags I
Signature: (Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;Ljava/lang/invoke/MethodType;I)V
MethodParameters:
Name Flags
invoker final
functionData final
invalidatedProgramPoints final
callSiteType final
flags final
static jdk.nashorn.internal.runtime.CompiledFunction createBuiltInConstructor(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Ljdk/nashorn/internal/runtime/CompiledFunction;
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=1, args_size=1
start local 0 0: new jdk.nashorn.internal.runtime.CompiledFunction
dup
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 0
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 0
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.createConstructorFromInvoker:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
aconst_null
invokespecial jdk.nashorn.internal.runtime.CompiledFunction.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljdk/nashorn/internal/runtime/Specialization;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 invoker Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
invoker final
boolean isSpecialization();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.specialization:Ljdk/nashorn/internal/runtime/Specialization;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
boolean hasLinkLogic();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getLinkLogicClass:()Ljava/lang/Class;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
java.lang.Class<? extends jdk.nashorn.internal.objects.annotations.SpecializedFunction$LinkLogic> getLinkLogicClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ifeq 4
1: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.specialization:Ljdk/nashorn/internal/runtime/Specialization;
invokevirtual jdk.nashorn.internal.runtime.Specialization.getLinkLogicClass:()Ljava/lang/Class;
astore 1
start local 1 2: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 3
aload 1
invokestatic jdk.nashorn.internal.objects.annotations.SpecializedFunction$LinkLogic.isEmpty:(Ljava/lang/Class;)Z
ifeq 3
new java.lang.AssertionError
dup
ldc "empty link logic classes should have been removed by nasgen"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
areturn
end local 1 4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
2 4 1 linkLogicClass Ljava/lang/Class<+Ljdk/nashorn/internal/objects/annotations/SpecializedFunction$LinkLogic;>;
Signature: ()Ljava/lang/Class<+Ljdk/nashorn/internal/objects/annotations/SpecializedFunction$LinkLogic;>;
boolean convertsNumericArgs();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ifeq 1
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.specialization:Ljdk/nashorn/internal/runtime/Specialization;
invokevirtual jdk.nashorn.internal.runtime.Specialization.convertsNumericArgs:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
int getFlags();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.flags:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
boolean isOptimistic();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ifeq 1
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.specialization:Ljdk/nashorn/internal/runtime/Specialization;
invokevirtual jdk.nashorn.internal.runtime.Specialization.isOptimistic:()Z
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
boolean isApplyToCall();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.flags:I
sipush 4096
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
boolean isVarArg();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.isVarArgsType:(Ljava/lang/invoke/MethodType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getLinkLogicClass:()Ljava/lang/Class;
astore 2
start local 2 2: aload 1
ldc "[invokerType="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: ldc " ctor="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
6: ldc " weight="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.weight:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: ldc " linkLogic="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: aload 2
ifnull 10
aload 2
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
goto 11
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.StringBuilder java.lang.Class
StackMap stack: java.lang.StringBuilder
10: ldc "none"
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.StringBuilder java.lang.Class
StackMap stack: java.lang.StringBuilder java.lang.String
11: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
1 13 1 sb Ljava/lang/StringBuilder;
2 13 2 linkLogicClass Ljava/lang/Class<+Ljdk/nashorn/internal/objects/annotations/SpecializedFunction$LinkLogic;>;
boolean needsCallee();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
invokestatic jdk.nashorn.internal.runtime.ScriptFunctionData.needsCallee:(Ljava/lang/invoke/MethodHandle;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
java.lang.invoke.MethodHandle createComposableInvoker();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createComposableInvoker:(Z)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private java.lang.invoke.MethodHandle getConstructor();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
ifnonnull 2
1: aload 0
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createInvokerForPessimisticCaller:()Ljava/lang/invoke/MethodHandle;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.createConstructorFromInvoker:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
putfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private java.lang.invoke.MethodHandle createInvokerForPessimisticCaller();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Object;
iconst_m1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createInvoker:(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private static java.lang.invoke.MethodHandle createConstructorFromInvoker(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.internal.runtime.ScriptFunctionData.needsCallee:(Ljava/lang/invoke/MethodHandle;)Z
istore 1
start local 1 1: iload 1
ifeq 2
aload 0
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.swapCalleeAndThis:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
goto 3
StackMap locals: int
StackMap stack:
2: aload 0
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
3: astore 2
start local 2 4: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 2
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
ldc Ljava/lang/Object;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 3
start local 3 5: aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 6: aload 4
iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
astore 5
start local 5 7: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.CompiledFunction.NEWFILTER:Ljava/lang/invoke/MethodHandle;
iconst_2
aload 5
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
aload 3
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 8: iload 1
ifeq 10
9: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 6
getstatic jdk.nashorn.internal.runtime.ScriptFunction.ALLOCATE:Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
10: StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.Class[] java.lang.invoke.MethodHandle
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 6
iconst_0
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
getstatic jdk.nashorn.internal.runtime.ScriptFunction.ALLOCATE:Ljava/lang/invoke/MethodHandle;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 6 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 11 0 invoker Ljava/lang/invoke/MethodHandle;
1 11 1 needsCallee Z
4 11 2 swapped Ljava/lang/invoke/MethodHandle;
5 11 3 returnsObject Ljava/lang/invoke/MethodHandle;
6 11 4 ctorType Ljava/lang/invoke/MethodType;
7 11 5 ctorArgs [Ljava/lang/Class;
8 11 6 filtered Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
invoker final
private static java.lang.invoke.MethodHandle swapCalleeAndThis(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 1
start local 1 1: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 2
aload 1
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
if_acmpeq 2
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 3
aload 1
iconst_1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 3
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 1
iconst_0
ldc Ljava/lang/Object;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
iconst_1
ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 2
start local 2 4: aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
newarray 10
astore 3
start local 3 5: aload 3
iconst_0
iconst_1
iastore
6: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 7
aload 3
iconst_1
iaload
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: java.lang.invoke.MethodType int[]
StackMap stack:
iconst_2
istore 4
start local 4 8: goto 11
9: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 4
iastore
10: iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 3
arraylength
if_icmplt 9
end local 4 12: aload 0
aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 mh Ljava/lang/invoke/MethodHandle;
1 13 1 type Ljava/lang/invoke/MethodType;
4 13 2 newType Ljava/lang/invoke/MethodType;
5 13 3 reorder [I
8 12 4 i I
MethodParameters:
Name Flags
mh final
java.lang.invoke.MethodHandle createComposableConstructor();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createComposableInvoker:(Z)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
boolean hasConstructor();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
java.lang.invoke.MethodType type();
descriptor: ()Ljava/lang/invoke/MethodType;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
int weight();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.type:()Ljava/lang/invoke/MethodType;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.weight:(Ljava/lang/invoke/MethodType;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private static int weight(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.isVarArgsType:(Ljava/lang/invoke/MethodType;)Z
ifeq 2
1: ldc 2147483647
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
istore 1
start local 1 3: iconst_0
istore 2
start local 2 4: goto 9
5: StackMap locals: int int
StackMap stack:
aload 0
iload 2
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 3
start local 3 6: aload 3
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
iconst_2
imul
istore 4
start local 4 7: iload 1
iload 4
iadd
istore 1
end local 4 end local 3 8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 5
end local 2 10: iload 1
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iadd
istore 1
11: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 type Ljava/lang/invoke/MethodType;
3 12 1 weight I
4 10 2 i I
6 8 3 paramType Ljava/lang/Class<*>;
7 8 4 pweight I
MethodParameters:
Name Flags
type final
static boolean isVarArgsType(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmpge 1
new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc [Ljava/lang/Object;
if_acmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
type final
static boolean moreGenericThan(java.lang.invoke.MethodType, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.weight:(Ljava/lang/invoke/MethodType;)I
aload 1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.weight:(Ljava/lang/invoke/MethodType;)I
if_icmple 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 mt0 Ljava/lang/invoke/MethodType;
0 2 1 mt1 Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
mt0 final
mt1 final
boolean betterThanFinal(jdk.nashorn.internal.runtime.CompiledFunction, java.lang.invoke.MethodType);
descriptor: (Ljdk/nashorn/internal/runtime/CompiledFunction;Ljava/lang/invoke/MethodType;)Z
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.betterThanFinal:(Ljdk/nashorn/internal/runtime/CompiledFunction;Ljdk/nashorn/internal/runtime/CompiledFunction;Ljava/lang/invoke/MethodType;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 3 1 other Ljdk/nashorn/internal/runtime/CompiledFunction;
0 3 2 callSiteMethodType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
other final
callSiteMethodType final
private static boolean betterThanFinal(jdk.nashorn.internal.runtime.CompiledFunction, jdk.nashorn.internal.runtime.CompiledFunction, java.lang.invoke.MethodType);
descriptor: (Ljdk/nashorn/internal/runtime/CompiledFunction;Ljdk/nashorn/internal/runtime/CompiledFunction;Ljava/lang/invoke/MethodType;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=27, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 3
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamCount:(Ljava/lang/invoke/MethodType;)I
istore 5
start local 5 3: aload 4
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamCount:(Ljava/lang/invoke/MethodType;)I
istore 6
start local 6 4: aload 2
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamCount:(Ljava/lang/invoke/MethodType;)I
istore 7
start local 7 5: iload 7
ldc 2147483647
if_icmpne 6
iconst_1
goto 7
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType int int int
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 8
start local 8 8: iload 8
ifeq 9
iload 7
goto 10
StackMap locals: int
StackMap stack:
9: iload 7
iconst_1
isub
StackMap locals:
StackMap stack: int
10: istore 9
start local 9 11: iload 9
iload 5
isub
iconst_0
invokestatic java.lang.Math.max:(II)I
istore 10
start local 10 12: iload 9
iload 6
isub
iconst_0
invokestatic java.lang.Math.max:(II)I
istore 11
start local 11 13: iload 10
iload 11
if_icmpge 15
14: iconst_1
ireturn
15: StackMap locals: int int int
StackMap stack:
iload 10
iload 11
if_icmple 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
iload 5
ldc 2147483647
if_icmpne 18
iconst_1
goto 19
StackMap locals:
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 12
start local 12 20: iload 6
ldc 2147483647
if_icmpne 21
iconst_1
goto 22
StackMap locals: int
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 13
start local 13 23: iload 12
ifeq 24
iload 13
ifeq 24
iload 8
ifne 64
24: StackMap locals: int
StackMap stack:
aload 3
iconst_0
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.toTypeWithoutCallee:(Ljava/lang/invoke/MethodType;I)[Ljdk/nashorn/internal/codegen/types/Type;
astore 14
start local 14 25: aload 4
iconst_0
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.toTypeWithoutCallee:(Ljava/lang/invoke/MethodType;I)[Ljdk/nashorn/internal/codegen/types/Type;
astore 15
start local 15 26: aload 2
iconst_1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.toTypeWithoutCallee:(Ljava/lang/invoke/MethodType;I)[Ljdk/nashorn/internal/codegen/types/Type;
astore 16
start local 16 27: iconst_0
istore 17
start local 17 28: iconst_0
istore 18
start local 18 29: iload 5
iload 6
invokestatic java.lang.Math.min:(II)I
iload 9
invokestatic java.lang.Math.min:(II)I
istore 19
start local 19 30: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.convertsNumericArgs:()Z
istore 20
start local 20 31: iconst_0
istore 21
start local 21 32: goto 43
33: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType int int int int int int int int int jdk.nashorn.internal.codegen.types.Type[] jdk.nashorn.internal.codegen.types.Type[] jdk.nashorn.internal.codegen.types.Type[] int int int int int
StackMap stack:
iload 21
aload 16
iload 8
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamType:(I[Ljdk/nashorn/internal/codegen/types/Type;Z)Ljdk/nashorn/internal/codegen/types/Type;
astore 22
start local 22 34: iload 21
aload 14
iload 12
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamType:(I[Ljdk/nashorn/internal/codegen/types/Type;Z)Ljdk/nashorn/internal/codegen/types/Type;
astore 23
start local 23 35: iload 20
ifne 37
aload 22
invokevirtual jdk.nashorn.internal.codegen.types.Type.isBoolean:()Z
ifeq 37
aload 23
invokevirtual jdk.nashorn.internal.codegen.types.Type.isNumeric:()Z
ifeq 37
36: iconst_0
ireturn
37: StackMap locals: jdk.nashorn.internal.codegen.types.Type jdk.nashorn.internal.codegen.types.Type
StackMap stack:
aload 22
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
istore 24
start local 24 38: aload 23
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
iload 24
isub
istore 25
start local 25 39: iload 21
aload 15
iload 13
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamType:(I[Ljdk/nashorn/internal/codegen/types/Type;Z)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
iload 24
isub
istore 26
start local 26 40: iload 17
iload 25
ineg
iconst_0
invokestatic java.lang.Math.max:(II)I
iload 26
ineg
iconst_0
invokestatic java.lang.Math.max:(II)I
isub
iadd
istore 17
41: iload 18
iload 25
iconst_0
invokestatic java.lang.Math.max:(II)I
iload 26
iconst_0
invokestatic java.lang.Math.max:(II)I
isub
iadd
istore 18
end local 26 end local 25 end local 24 end local 23 end local 22 42: iinc 21 1
StackMap locals:
StackMap stack:
43: iload 21
iload 19
if_icmplt 33
end local 21 44: iload 12
ifne 50
45: iload 9
istore 21
start local 21 46: goto 49
47: StackMap locals:
StackMap stack:
iload 17
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
aload 14
iload 21
aaload
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
isub
iconst_0
invokestatic java.lang.Math.max:(II)I
iadd
istore 17
48: iinc 21 1
StackMap locals:
StackMap stack:
49: iload 21
iload 5
if_icmplt 47
end local 21 50: StackMap locals:
StackMap stack:
iload 13
ifne 56
51: iload 9
istore 21
start local 21 52: goto 55
53: StackMap locals: int
StackMap stack:
iload 17
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
aload 15
iload 21
aaload
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
isub
iconst_0
invokestatic java.lang.Math.max:(II)I
isub
istore 17
54: iinc 21 1
StackMap locals:
StackMap stack:
55: iload 21
iload 6
if_icmplt 53
end local 21 56: StackMap locals:
StackMap stack:
iload 17
ifge 58
57: iconst_1
ireturn
58: StackMap locals:
StackMap stack:
iload 17
ifle 60
59: iconst_0
ireturn
60: StackMap locals:
StackMap stack:
iload 18
ifge 62
61: iconst_1
ireturn
62: StackMap locals:
StackMap stack:
iload 18
ifle 64
63: iconst_0
ireturn
end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 64: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType int int int int int int int int int
StackMap stack:
iload 5
iload 9
if_icmpne 66
iload 6
iload 9
if_icmpeq 66
65: iconst_1
ireturn
66: StackMap locals:
StackMap stack:
iload 5
iload 9
if_icmpeq 68
iload 6
iload 9
if_icmpne 68
67: iconst_0
ireturn
68: StackMap locals:
StackMap stack:
iload 12
ifeq 71
69: iload 13
ifne 73
70: iconst_1
ireturn
71: StackMap locals:
StackMap stack:
iload 13
ifeq 73
72: iconst_0
ireturn
73: StackMap locals:
StackMap stack:
iload 5
iload 6
isub
istore 14
start local 14 74: iload 14
ifge 76
75: iconst_1
ireturn
76: StackMap locals: int
StackMap stack:
iload 14
ifle 78
77: iconst_0
ireturn
78: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
istore 15
start local 15 79: aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
iload 15
isub
istore 16
start local 16 80: aload 4
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getWeight:()I
iload 15
isub
istore 17
start local 17 81: iload 16
iconst_0
invokestatic java.lang.Math.max:(II)I
iload 17
iconst_0
invokestatic java.lang.Math.max:(II)I
isub
istore 18
start local 18 82: iload 18
ifge 84
83: iconst_1
ireturn
84: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType int int int int int int int int int int int int int int
StackMap stack:
iload 18
ifle 86
85: iconst_0
ireturn
86: StackMap locals:
StackMap stack:
iload 16
ineg
iconst_0
invokestatic java.lang.Math.max:(II)I
iload 17
ineg
iconst_0
invokestatic java.lang.Math.max:(II)I
isub
istore 19
start local 19 87: iload 19
ifge 89
88: iconst_1
ireturn
89: StackMap locals: int
StackMap stack:
iload 19
ifle 91
90: iconst_0
ireturn
91: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
aload 1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
if_icmpeq 93
92: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ireturn
93: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ifeq 96
aload 1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isSpecialization:()Z
ifeq 96
94: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getLinkLogicClass:()Ljava/lang/Class;
ifnull 95
iconst_1
ireturn
StackMap locals:
StackMap stack:
95: iconst_0
ireturn
96: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " identically applicable to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 19 end local 18 end local 17 end local 16 end local 15 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 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 97 0 cf Ljdk/nashorn/internal/runtime/CompiledFunction;
0 97 1 other Ljdk/nashorn/internal/runtime/CompiledFunction;
0 97 2 callSiteMethodType Ljava/lang/invoke/MethodType;
1 97 3 thisMethodType Ljava/lang/invoke/MethodType;
2 97 4 otherMethodType Ljava/lang/invoke/MethodType;
3 97 5 thisParamCount I
4 97 6 otherParamCount I
5 97 7 callSiteRawParamCount I
8 97 8 csVarArg Z
11 97 9 callSiteParamCount I
12 97 10 thisDiscardsParams I
13 97 11 otherDiscardsParams I
20 97 12 thisVarArg Z
23 97 13 otherVarArg Z
25 64 14 thisType [Ljdk/nashorn/internal/codegen/types/Type;
26 64 15 otherType [Ljdk/nashorn/internal/codegen/types/Type;
27 64 16 callSiteType [Ljdk/nashorn/internal/codegen/types/Type;
28 64 17 narrowWeightDelta I
29 64 18 widenWeightDelta I
30 64 19 minParamsCount I
31 64 20 convertsNumericArgs Z
32 44 21 i I
34 42 22 callSiteParamType Ljdk/nashorn/internal/codegen/types/Type;
35 42 23 thisParamType Ljdk/nashorn/internal/codegen/types/Type;
38 42 24 callSiteParamWeight I
39 42 25 thisParamWeightDelta I
40 42 26 otherParamWeightDelta I
46 50 21 i I
52 56 21 i I
74 97 14 fnParamDelta I
79 97 15 callSiteRetWeight I
80 97 16 thisRetWeightDelta I
81 97 17 otherRetWeightDelta I
82 97 18 widenRetDelta I
87 97 19 narrowRetDelta I
MethodParameters:
Name Flags
cf final
other final
callSiteMethodType final
private static jdk.nashorn.internal.codegen.types.Type[] toTypeWithoutCallee(java.lang.invoke.MethodType, int);
descriptor: (Ljava/lang/invoke/MethodType;I)[Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 2
start local 2 1: iload 2
iload 1
isub
anewarray jdk.nashorn.internal.codegen.types.Type
astore 3
start local 3 2: iload 1
istore 4
start local 4 3: goto 6
4: StackMap locals: int jdk.nashorn.internal.codegen.types.Type[] int
StackMap stack:
aload 3
iload 4
iload 1
isub
aload 0
iload 4
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
aastore
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 2
if_icmplt 4
end local 4 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 type Ljava/lang/invoke/MethodType;
0 8 1 thisIndex I
1 8 2 paramCount I
2 8 3 t [Ljdk/nashorn/internal/codegen/types/Type;
3 7 4 i I
MethodParameters:
Name Flags
type final
thisIndex final
private static jdk.nashorn.internal.codegen.types.Type getParamType(int, jdk.nashorn.internal.codegen.types.Type[], boolean);
descriptor: (I[Ljdk/nashorn/internal/codegen/types/Type;Z)Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
iload 2
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack: int
1: iconst_0
StackMap locals: int jdk.nashorn.internal.codegen.types.Type[] int
StackMap stack: int int
2: isub
istore 3
start local 3 3: iload 0
iload 3
if_icmpge 5
4: aload 1
iload 0
aaload
areturn
5: StackMap locals: int
StackMap stack:
getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 6
iload 2
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 1
aload 1
arraylength
iconst_1
isub
aaload
checkcast jdk.nashorn.internal.codegen.types.ArrayType
invokevirtual jdk.nashorn.internal.codegen.types.ArrayType.getElementType:()Ljdk/nashorn/internal/codegen/types/Type;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 i I
0 7 1 paramTypes [Ljdk/nashorn/internal/codegen/types/Type;
0 7 2 isVarArg Z
3 7 3 fixParamCount I
MethodParameters:
Name Flags
i final
paramTypes final
isVarArg final
boolean matchesCallSite(java.lang.invoke.MethodType, boolean);
descriptor: (Ljava/lang/invoke/MethodType;Z)Z
flags: (0x0000)
Code:
stack=3, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.callSiteType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 3: aload 3
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamCount:(Ljava/lang/invoke/MethodType;)I
istore 4
start local 4 4: iload 4
ldc 2147483647
if_icmpne 5
iconst_1
goto 6
StackMap locals: java.lang.invoke.MethodType int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 5
ifeq 9
8: iload 2
ireturn
9: StackMap locals: int
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.getParamCount:(Ljava/lang/invoke/MethodType;)I
istore 6
start local 6 10: iload 6
ldc 2147483647
if_icmpne 11
iconst_1
goto 12
StackMap locals: int
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 7
start local 7 13: iload 7
ifeq 15
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.isApplyToCall:()Z
ifeq 15
14: iconst_0
ireturn
15: StackMap locals: int
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.needsCallee:()Z
ifeq 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 8
start local 8 18: iload 4
iload 8
isub
istore 9
start local 9 19: iload 6
iconst_1
isub
iload 9
invokestatic java.lang.Math.min:(II)I
istore 10
start local 10 20: iconst_0
istore 11
start local 11 21: goto 29
22: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.invoke.MethodType int java.lang.invoke.MethodType int int int int int int int int
StackMap stack:
aload 3
iload 11
iload 8
iadd
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
astore 12
start local 12 23: iload 7
ifeq 24
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
goto 25
StackMap locals: jdk.nashorn.internal.codegen.types.Type
StackMap stack:
24: aload 1
iload 11
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
StackMap locals:
StackMap stack: jdk.nashorn.internal.codegen.types.Type
25: astore 13
start local 13 26: aload 12
aload 13
invokevirtual jdk.nashorn.internal.codegen.types.Type.isEquivalentTo:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifne 28
27: iconst_0
ireturn
end local 13 end local 12 28: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
29: iload 11
iload 10
if_icmplt 22
end local 11 30: iload 10
istore 11
start local 11 31: goto 35
32: StackMap locals:
StackMap stack:
aload 3
iload 11
iload 8
iadd
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.isEquivalentTo:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifne 34
33: iconst_0
ireturn
34: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
35: iload 11
iload 9
if_icmplt 32
end local 11 36: iconst_1
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 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 37 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 37 1 other Ljava/lang/invoke/MethodType;
0 37 2 pickVarArg Z
3 37 3 type Ljava/lang/invoke/MethodType;
4 37 4 fnParamCount I
7 37 5 isVarArg Z
10 37 6 csParamCount I
13 37 7 csIsVarArg Z
18 37 8 thisThisIndex I
19 37 9 fnParamCountNoCallee I
20 37 10 minParams I
21 30 11 i I
23 28 12 fnType Ljdk/nashorn/internal/codegen/types/Type;
26 28 13 csType Ljdk/nashorn/internal/codegen/types/Type;
31 36 11 i I
MethodParameters:
Name Flags
other final
pickVarArg final
private static int getParamCount(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 1
start local 1 1: aload 0
iload 1
iconst_1
isub
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 2
ldc 2147483647
goto 3
StackMap locals: int
StackMap stack:
2: iload 1
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/invoke/MethodType;
1 4 1 paramCount I
MethodParameters:
Name Flags
type final
private boolean canBeDeoptimized();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private java.lang.invoke.MethodHandle createComposableInvoker(boolean);
descriptor: (Z)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getInvokerOrConstructor:(Z)Ljava/lang/invoke/MethodHandle;
astore 2
start local 2 1: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.canBeDeoptimized:()Z
ifne 3
2: aload 2
areturn
3: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
new java.lang.invoke.MutableCallSite
dup
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokespecial java.lang.invoke.MutableCallSite.<init>:(Ljava/lang/invoke/MethodType;)V
astore 3
start local 3 4: aload 3
aload 0
iload 1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.relinkComposableInvoker:(Ljava/lang/invoke/CallSite;Ljdk/nashorn/internal/runtime/CompiledFunction;Z)V
5: aload 3
invokevirtual java.lang.invoke.CallSite.dynamicInvoker:()Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 6 1 isConstructor Z
1 6 2 handle Ljava/lang/invoke/MethodHandle;
4 6 3 cs Ljava/lang/invoke/CallSite;
MethodParameters:
Name Flags
isConstructor final
private synchronized jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions getValidOptimisticInvocation(java.util.function.Supplier<java.lang.invoke.MethodHandle>);
descriptor: (Ljava/util/function/Supplier;)Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 2
start local 2 1: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.canBeDeoptimized:()Z
ifeq 2
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.optimisticAssumptions:Ljava/lang/invoke/SwitchPoint;
goto 3
StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.invoke.SwitchPoint
3: astore 3
start local 3 4: aload 3
ifnull 9
aload 3
invokevirtual java.lang.invoke.SwitchPoint.hasBeenInvalidated:()Z
ifeq 9
5: aload 0
invokevirtual java.lang.Object.wait:()V
6: goto 0
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.util.function.Supplier java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint
StackMap stack: java.lang.InterruptedException
7: pop
8: goto 0
9: StackMap locals:
StackMap stack:
new jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions
dup
aload 2
aload 3
invokespecial jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/SwitchPoint;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 10 1 invocationSupplier Ljava/util/function/Supplier<Ljava/lang/invoke/MethodHandle;>;
1 10 2 handle Ljava/lang/invoke/MethodHandle;
4 10 3 assumptions Ljava/lang/invoke/SwitchPoint;
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
Signature: (Ljava/util/function/Supplier<Ljava/lang/invoke/MethodHandle;>;)Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
MethodParameters:
Name Flags
invocationSupplier final
private static void relinkComposableInvoker(java.lang.invoke.CallSite, jdk.nashorn.internal.runtime.CompiledFunction, boolean);
descriptor: (Ljava/lang/invoke/CallSite;Ljdk/nashorn/internal/runtime/CompiledFunction;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
new jdk.nashorn.internal.runtime.CompiledFunction$1
dup
aload 1
iload 2
invokespecial jdk.nashorn.internal.runtime.CompiledFunction$1.<init>:(Ljdk/nashorn/internal/runtime/CompiledFunction;Z)V
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getValidOptimisticInvocation:(Ljava/util/function/Supplier;)Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
astore 3
start local 3 1: aload 3
getfield jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions.handle:Ljava/lang/invoke/MethodHandle;
astore 4
start local 4 2: aload 3
getfield jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions.assumptions:Ljava/lang/invoke/SwitchPoint;
astore 5
start local 5 3: aload 5
ifnonnull 6
4: aload 4
astore 6
start local 6 5: goto 8
end local 6 6: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions java.lang.invoke.MethodHandle java.lang.invoke.SwitchPoint
StackMap stack:
getstatic jdk.nashorn.internal.runtime.CompiledFunction.RELINK_COMPOSABLE_INVOKER:Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
iload 2
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 7: aload 5
aload 4
aload 0
invokevirtual java.lang.invoke.CallSite.dynamicInvoker:()Ljava/lang/invoke/MethodHandle;
aload 7
invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.SwitchPoint.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
end local 7 start local 6 8: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
aload 6
aload 0
invokevirtual java.lang.invoke.CallSite.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.CallSite.setTarget:(Ljava/lang/invoke/MethodHandle;)V
9: return
end local 6 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 10 0 cs Ljava/lang/invoke/CallSite;
0 10 1 inv Ljdk/nashorn/internal/runtime/CompiledFunction;
0 10 2 constructor Z
1 10 3 handleAndAssumptions Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
2 10 4 handle Ljava/lang/invoke/MethodHandle;
3 10 5 assumptions Ljava/lang/invoke/SwitchPoint;
5 6 6 target Ljava/lang/invoke/MethodHandle;
8 10 6 target Ljava/lang/invoke/MethodHandle;
7 8 7 relink Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
cs final
inv final
constructor final
private java.lang.invoke.MethodHandle getInvokerOrConstructor(boolean);
descriptor: (Z)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getConstructor:()Ljava/lang/invoke/MethodHandle;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createInvokerForPessimisticCaller:()Ljava/lang/invoke/MethodHandle;
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 3 1 selectCtor Z
MethodParameters:
Name Flags
selectCtor final
jdk.dynalink.linker.GuardedInvocation createFunctionInvocation(java.lang.Class<?>, int);
descriptor: (Ljava/lang/Class;I)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new jdk.nashorn.internal.runtime.CompiledFunction$2
dup
aload 0
aload 1
iload 2
invokespecial jdk.nashorn.internal.runtime.CompiledFunction$2.<init>:(Ljdk/nashorn/internal/runtime/CompiledFunction;Ljava/lang/Class;I)V
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getValidOptimisticInvocation:(Ljava/util/function/Supplier;)Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
1: invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions.createInvocation:()Ljdk/dynalink/linker/GuardedInvocation;
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 3 1 callSiteReturnType Ljava/lang/Class<*>;
0 3 2 callerProgramPoint I
Signature: (Ljava/lang/Class<*>;I)Ljdk/dynalink/linker/GuardedInvocation;
MethodParameters:
Name Flags
callSiteReturnType final
callerProgramPoint final
jdk.dynalink.linker.GuardedInvocation createConstructorInvocation();
descriptor: ()Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new jdk.nashorn.internal.runtime.CompiledFunction$3
dup
aload 0
invokespecial jdk.nashorn.internal.runtime.CompiledFunction$3.<init>:(Ljdk/nashorn/internal/runtime/CompiledFunction;)V
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.getValidOptimisticInvocation:(Ljava/util/function/Supplier;)Ljdk/nashorn/internal/runtime/CompiledFunction$HandleAndAssumptions;
1: invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions.createInvocation:()Ljdk/dynalink/linker/GuardedInvocation;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private java.lang.invoke.MethodHandle createInvoker(java.lang.Class<?>, int);
descriptor: (Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.canBeDeoptimized:()Z
istore 3
start local 3 1: iload 3
ifeq 2
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createRewriteExceptionHandler:()Ljava/lang/invoke/MethodHandle;
goto 3
StackMap locals: int
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
3: astore 4
start local 4 4: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
astore 5
start local 5 5: iload 2
invokestatic jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid:(I)Z
ifeq 13
6: aload 5
aload 1
iload 2
invokestatic jdk.nashorn.internal.runtime.OptimisticReturnFilters.filterOptimisticReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
astore 5
7: aload 5
aload 1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.changeReturnType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 5
8: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 15
aload 4
ifnull 15
9: aload 4
10: aload 1
iload 2
11: invokestatic jdk.nashorn.internal.runtime.OptimisticReturnFilters.filterOptimisticReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
astore 4
12: goto 15
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
13: iload 3
ifeq 15
14: aload 5
aload 1
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.changeReturnType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 5
15: StackMap locals:
StackMap stack:
iload 3
ifeq 19
16: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 17
aload 4
ifnonnull 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 4
aload 5
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.changeReturnType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 18: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 5
ldc Ljdk/nashorn/internal/runtime/RewriteException;
aload 6
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.catchException:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 6 19: StackMap locals:
StackMap stack:
aload 5
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/CompiledFunction;
0 20 1 callSiteReturnType Ljava/lang/Class<*>;
0 20 2 callerProgramPoint I
1 20 3 isOptimistic Z
4 20 4 handleRewriteException Ljava/lang/invoke/MethodHandle;
5 20 5 inv Ljava/lang/invoke/MethodHandle;
18 19 6 typedHandleRewriteException Ljava/lang/invoke/MethodHandle;
Signature: (Ljava/lang/Class<*>;I)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
callSiteReturnType final
callerProgramPoint final
private java.lang.invoke.MethodHandle createRewriteExceptionHandler();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=1, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.CompiledFunction.RESTOF_INVOKER:Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.CompiledFunction.HANDLE_REWRITE_EXCEPTION:Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
private static java.lang.invoke.MethodHandle changeReturnType(java.lang.invoke.MethodHandle, java.lang.Class<?>);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: invokestatic jdk.nashorn.internal.runtime.linker.Bootstrap.getLinkerServices:()Ljdk/dynalink/linker/LinkerServices;
aload 0
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 1
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokeinterface jdk.dynalink.linker.LinkerServices.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mh Ljava/lang/invoke/MethodHandle;
0 1 1 newReturnType Ljava/lang/Class<*>;
Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
mh final
newReturnType final
private static java.lang.invoke.MethodHandle handleRewriteException(jdk.nashorn.internal.runtime.CompiledFunction, jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo, jdk.nashorn.internal.runtime.RewriteException);
descriptor: (Ljdk/nashorn/internal/runtime/CompiledFunction;Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/runtime/RewriteException;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.handleRewriteException:(Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/runtime/RewriteException;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 function Ljdk/nashorn/internal/runtime/CompiledFunction;
0 1 1 oldOptimismInfo Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
0 1 2 re Ljdk/nashorn/internal/runtime/RewriteException;
MethodParameters:
Name Flags
function final
oldOptimismInfo final
re final
private static java.util.List<java.lang.String> toStringInvalidations(java.util.Map<java.lang.Integer, jdk.nashorn.internal.codegen.types.Type>);
descriptor: (Ljava/util/Map;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 3: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
start local 2 4: goto 25
5: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 6: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast jdk.nashorn.internal.codegen.types.Type
invokevirtual jdk.nashorn.internal.codegen.types.Type.getBytecodeStackType:()C
istore 4
start local 4 7: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast jdk.nashorn.internal.codegen.types.Type
invokevirtual jdk.nashorn.internal.codegen.types.Type.getBytecodeStackType:()C
tableswitch { // 65 - 74
65: 8
66: 16
67: 16
68: 14
69: 16
70: 16
71: 16
72: 16
73: 10
74: 12
default: 16
}
8: StackMap locals: java.util.Map$Entry int
StackMap stack:
ldc "object"
astore 5
start local 5 9: goto 17
end local 5 10: StackMap locals:
StackMap stack:
ldc "int"
astore 5
start local 5 11: goto 17
end local 5 12: StackMap locals:
StackMap stack:
ldc "long"
astore 5
start local 5 13: goto 17
end local 5 14: StackMap locals:
StackMap stack:
ldc "double"
astore 5
start local 5 15: goto 17
end local 5 16: StackMap locals:
StackMap stack:
iload 4
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
astore 5
start local 5 17: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 18: aload 6
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
19: ldc "program point: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
21: ldc " -> "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
24: aload 1
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 4 end local 3 25: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 26: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 ipp Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;
3 27 1 list Ljava/util/List<Ljava/lang/String;>;
4 26 2 iter Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;>;
6 25 3 entry Ljava/util/Map$Entry<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;
7 25 4 bct C
9 10 5 type Ljava/lang/String;
11 12 5 type Ljava/lang/String;
13 14 5 type Ljava/lang/String;
15 16 5 type Ljava/lang/String;
17 25 5 type Ljava/lang/String;
18 25 6 sb Ljava/lang/StringBuilder;
Signature: (Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
ipp final
private void logRecompile(java.lang.String, jdk.nashorn.internal.ir.FunctionNode, java.lang.invoke.MethodType, java.util.Map<java.lang.Integer, jdk.nashorn.internal.codegen.types.Type>);
descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljava/util/Map;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.isEnabled:()Z
ifeq 8
1: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getName:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.runtime.logging.DebugLogger.quote:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
ldc " signature: "
aastore
dup
iconst_3
aload 3
aastore
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:([Ljava/lang/Object;)V
2: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.indent:()V
3: aload 4
invokestatic jdk.nashorn.internal.runtime.CompiledFunction.toStringInvalidations:(Ljava/util/Map;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 6
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.String jdk.nashorn.internal.ir.FunctionNode java.lang.invoke.MethodType java.util.Map top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 5: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
aload 5
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.fine:(Ljava/lang/String;)V
end local 5 6: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.unindent:()V
8: StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction java.lang.String jdk.nashorn.internal.ir.FunctionNode java.lang.invoke.MethodType java.util.Map
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 9 1 reason Ljava/lang/String;
0 9 2 fn Ljdk/nashorn/internal/ir/FunctionNode;
0 9 3 type Ljava/lang/invoke/MethodType;
0 9 4 ipp Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;
5 6 5 str Ljava/lang/String;
Signature: (Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljava/util/Map<Ljava/lang/Integer;Ljdk/nashorn/internal/codegen/types/Type;>;)V
MethodParameters:
Name Flags
reason final
fn final
type final
ipp final
private synchronized java.lang.invoke.MethodHandle handleRewriteException(jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo, jdk.nashorn.internal.runtime.RewriteException);
descriptor: (Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/runtime/RewriteException;)Ljava/lang/invoke/MethodHandle;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.isEnabled:()Z
ifeq 11
1: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
2: new jdk.nashorn.internal.runtime.events.RecompilationEvent
dup
3: getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
4: aload 2
5: aload 2
invokevirtual jdk.nashorn.internal.runtime.RewriteException.getReturnValueNonDestructive:()Ljava/lang/Object;
6: invokespecial jdk.nashorn.internal.runtime.events.RecompilationEvent.<init>:(Ljava/util/logging/Level;Ljdk/nashorn/internal/runtime/RewriteException;Ljava/lang/Object;)V
iconst_2
anewarray java.lang.Object
dup
iconst_0
7: ldc "caught RewriteException "
aastore
dup
iconst_1
8: aload 2
invokevirtual jdk.nashorn.internal.runtime.RewriteException.getMessageShort:()Ljava/lang/String;
aastore
9: invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:(Ljdk/nashorn/internal/runtime/events/RuntimeEvent;[Ljava/lang/Object;)V
10: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.indent:()V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 12: aload 3
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
if_acmpne 14
13: aload 3
goto 15
14: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 3
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
15: StackMap locals:
StackMap stack: java.lang.invoke.MethodType
astore 4
start local 4 16: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
astore 5
start local 5 17: aload 5
ifnull 18
aload 5
aload 2
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.requestRecompile:(Ljdk/nashorn/internal/runtime/RewriteException;)Z
ifeq 18
iconst_1
goto 19
StackMap locals: java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 6
start local 6 20: aload 5
ifnull 21
aload 5
goto 22
StackMap locals: int
StackMap stack:
21: aload 1
StackMap locals:
StackMap stack: jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo
22: astore 7
start local 7 23: aload 7
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.reparse:()Ljdk/nashorn/internal/ir/FunctionNode;
astore 8
start local 8 24: aload 8
invokevirtual jdk.nashorn.internal.ir.FunctionNode.isCached:()Z
istore 9
start local 9 25: aload 7
aload 8
aload 4
aload 2
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.getCompiler:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljdk/nashorn/internal/runtime/RewriteException;)Ljdk/nashorn/internal/codegen/Compiler;
astore 10
start local 10 26: iload 6
ifne 33
27: aload 0
ldc "Rest-of compilation [STANDALONE] "
aload 8
aload 4
aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.invalidatedProgramPoints:Ljava/util/Map;
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.logRecompile:(Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljava/util/Map;)V
28: aload 0
aload 7
aload 10
aload 8
iload 9
ifeq 29
getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.COMPILE_CACHED_RESTOF:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
goto 30
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode
29: getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.COMPILE_ALL_RESTOF:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.codegen.Compiler$CompilationPhases
30: invokevirtual jdk.nashorn.internal.codegen.Compiler.compile:(Ljdk/nashorn/internal/ir/FunctionNode;Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;)Ljdk/nashorn/internal/ir/FunctionNode;
aload 5
ifnull 31
iconst_1
goto 32
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode
31: iconst_0
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int
32: invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.restOfHandle:(Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/ir/FunctionNode;Z)Ljava/lang/invoke/MethodHandle;
areturn
33: StackMap locals:
StackMap stack:
aload 0
ldc "Deoptimizing recompilation (up to bytecode) "
aload 8
aload 4
aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.invalidatedProgramPoints:Ljava/util/Map;
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.logRecompile:(Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljava/util/Map;)V
34: aload 10
aload 8
iload 9
ifeq 35
getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.RECOMPILE_CACHED_UPTO_BYTECODE:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
goto 36
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode
35: getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.COMPILE_UPTO_BYTECODE:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler
StackMap stack: jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.codegen.Compiler$CompilationPhases
36: invokevirtual jdk.nashorn.internal.codegen.Compiler.compile:(Ljdk/nashorn/internal/ir/FunctionNode;Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;)Ljdk/nashorn/internal/ir/FunctionNode;
astore 8
37: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
ldc "Reusable IR generated"
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.fine:(Ljava/lang/String;)V
38: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
ldc "Generating and installing bytecode from reusable IR..."
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:(Ljava/lang/String;)V
39: aload 0
ldc "Rest-of compilation [CODE PIPELINE REUSE] "
aload 8
aload 4
aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.invalidatedProgramPoints:Ljava/util/Map;
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.logRecompile:(Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/lang/invoke/MethodType;Ljava/util/Map;)V
40: aload 10
aload 8
getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.GENERATE_BYTECODE_AND_INSTALL:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
invokevirtual jdk.nashorn.internal.codegen.Compiler.compile:(Ljdk/nashorn/internal/ir/FunctionNode;Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;)Ljdk/nashorn/internal/ir/FunctionNode;
astore 11
start local 11 41: aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.data:Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.usePersistentCodeCache:()Z
ifeq 50
42: aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.data:Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
astore 12
start local 12 43: aload 12
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getFunctionNodeId:()I
istore 13
start local 13 44: aload 12
aload 4
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.typeMap:(Ljava/lang/invoke/MethodType;)Ljdk/nashorn/internal/codegen/TypeMap;
astore 14
start local 14 45: aload 14
ifnonnull 46
aconst_null
goto 47
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.RecompilableScriptFunctionData int jdk.nashorn.internal.codegen.TypeMap
StackMap stack:
46: aload 14
iload 13
invokevirtual jdk.nashorn.internal.codegen.TypeMap.getParameterTypes:(I)[Ljdk/nashorn/internal/codegen/types/Type;
StackMap locals:
StackMap stack: jdk.nashorn.internal.codegen.types.Type[]
47: astore 15
start local 15 48: iload 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 15
invokestatic jdk.nashorn.internal.runtime.CodeStore.getCacheKey:(Ljava/lang/Object;[Ljdk/nashorn/internal/codegen/types/Type;)Ljava/lang/String;
astore 16
start local 16 49: aload 10
aload 16
aload 11
invokevirtual jdk.nashorn.internal.codegen.Compiler.persistClassInfo:(Ljava/lang/String;Ljdk/nashorn/internal/ir/FunctionNode;)V
end local 16 end local 15 end local 14 end local 13 end local 12 50: StackMap locals:
StackMap stack:
aload 11
invokevirtual jdk.nashorn.internal.ir.FunctionNode.canBeDeoptimized:()Z
istore 12
start local 12 51: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.isEnabled:()Z
ifeq 58
52: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.unindent:()V
53: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
ldc "Done."
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:(Ljava/lang/String;)V
54: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
bipush 6
anewarray java.lang.Object
dup
iconst_0
ldc "Recompiled '"
aastore
dup
iconst_1
aload 8
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getName:()Ljava/lang/String;
aastore
dup
iconst_2
ldc "' ("
aastore
dup
iconst_3
aload 0
invokestatic jdk.nashorn.internal.runtime.Debug.id:(Ljava/lang/Object;)Ljava/lang/String;
aastore
dup
iconst_4
ldc ") "
aastore
dup
iconst_5
iload 12
ifeq 55
ldc "can still be deoptimized."
goto 56
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode int
StackMap stack: jdk.nashorn.internal.runtime.logging.DebugLogger java.lang.Object[] java.lang.Object[] int
55: ldc " is completely deoptimized."
StackMap locals: jdk.nashorn.internal.runtime.CompiledFunction jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.runtime.RewriteException java.lang.invoke.MethodType java.lang.invoke.MethodType jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo int jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo jdk.nashorn.internal.ir.FunctionNode int jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.ir.FunctionNode int
StackMap stack: jdk.nashorn.internal.runtime.logging.DebugLogger java.lang.Object[] java.lang.Object[] int java.lang.String
56: aastore
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:([Ljava/lang/Object;)V
57: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
ldc "Looking up invoker..."
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.finest:(Ljava/lang/String;)V
58: StackMap locals:
StackMap stack:
aload 7
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.data:Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
aload 8
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.lookup:(Ljdk/nashorn/internal/ir/FunctionNode;)Ljava/lang/invoke/MethodHandle;
astore 13
start local 13 59: aload 0
aload 13
aload 3
aload 13
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
60: aload 0
aconst_null
putfield jdk.nashorn.internal.runtime.CompiledFunction.constructor:Ljava/lang/invoke/MethodHandle;
61: aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "Done: "
aastore
dup
iconst_1
aload 0
getfield jdk.nashorn.internal.runtime.CompiledFunction.invoker:Ljava/lang/invoke/MethodHandle;
aastore
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:([Ljava/lang/Object;)V
62: aload 0
aload 7
aload 10
aload 8
getstatic jdk.nashorn.internal.codegen.Compiler$CompilationPhases.GENERATE_BYTECODE_AND_INSTALL_RESTOF:Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
invokevirtual jdk.nashorn.internal.codegen.Compiler.compile:(Ljdk/nashorn/internal/ir/FunctionNode;Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;)Ljdk/nashorn/internal/ir/FunctionNode;
iload 12
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.restOfHandle:(Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/ir/FunctionNode;Z)Ljava/lang/invoke/MethodHandle;
astore 14
start local 14 63: iload 12
ifeq 66
64: aload 7
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.newOptimisticAssumptions:()V
65: goto 67
66: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aload 0
aconst_null
putfield jdk.nashorn.internal.runtime.CompiledFunction.optimismInfo:Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
67: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
68: aload 14
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 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 69 1 oldOptInfo Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
0 69 2 re Ljdk/nashorn/internal/runtime/RewriteException;
12 69 3 type Ljava/lang/invoke/MethodType;
16 69 4 ct Ljava/lang/invoke/MethodType;
17 69 5 currentOptInfo Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
20 69 6 shouldRecompile Z
23 69 7 effectiveOptInfo Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
24 69 8 fn Ljdk/nashorn/internal/ir/FunctionNode;
25 69 9 cached Z
26 69 10 compiler Ljdk/nashorn/internal/codegen/Compiler;
41 69 11 normalFn Ljdk/nashorn/internal/ir/FunctionNode;
43 50 12 data Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
44 50 13 functionNodeId I
45 50 14 typeMap Ljdk/nashorn/internal/codegen/TypeMap;
48 50 15 paramTypes [Ljdk/nashorn/internal/codegen/types/Type;
49 50 16 cacheKey Ljava/lang/String;
51 69 12 canBeDeoptimized Z
59 69 13 newInvoker Ljava/lang/invoke/MethodHandle;
63 69 14 restOf Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
oldOptInfo final
re final
private java.lang.invoke.MethodHandle restOfHandle(jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo, jdk.nashorn.internal.ir.FunctionNode, boolean);
descriptor: (Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;Ljdk/nashorn/internal/ir/FunctionNode;Z)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 1
aload 1
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.CompiledFunction.$assertionsDisabled:Z
ifne 2
aload 2
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getCompileUnit:()Ljdk/nashorn/internal/codegen/CompileUnit;
invokevirtual jdk.nashorn.internal.codegen.CompileUnit.getUnitClassName:()Ljava/lang/String;
ldc "restOf"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
getfield jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo.data:Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
3: aload 2
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getCompileUnit:()Ljdk/nashorn/internal/codegen/CompileUnit;
invokevirtual jdk.nashorn.internal.codegen.CompileUnit.getCode:()Ljava/lang/Class;
4: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 2
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getReturnType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getTypeClass:()Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
5: ldc Ljdk/nashorn/internal/runtime/RewriteException;
aastore
6: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.type:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
7: invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.lookupCodeMethod:(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
8: ldc Ljava/lang/Object;
9: invokestatic jdk.nashorn.internal.runtime.CompiledFunction.changeReturnType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
10: astore 4
start local 4 11: iload 3
ifne 13
12: aload 4
areturn
13: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 4
ldc Ljdk/nashorn/internal/runtime/RewriteException;
aload 0
invokevirtual jdk.nashorn.internal.runtime.CompiledFunction.createRewriteExceptionHandler:()Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.catchException:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/nashorn/internal/runtime/CompiledFunction;
0 14 1 info Ljdk/nashorn/internal/runtime/CompiledFunction$OptimismInfo;
0 14 2 restOfFunction Ljdk/nashorn/internal/ir/FunctionNode;
0 14 3 canBeDeoptimized Z
11 14 4 restOf Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
info final
restOfFunction final
canBeDeoptimized final
private static java.lang.Object newFilter(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifne 1
aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.isPrimitive:(Ljava/lang/Object;)Z
ifne 2
StackMap locals:
StackMap stack:
1: aload 0
goto 3
StackMap locals:
StackMap stack:
2: aload 1
StackMap locals:
StackMap stack: java.lang.Object
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 result Ljava/lang/Object;
0 4 1 allocation Ljava/lang/Object;
MethodParameters:
Name Flags
result final
allocation final
private static java.lang.invoke.MethodHandle findOwnMH(java.lang.String, java.lang.Class<?>, java.lang.Class<?>[]);
descriptor: (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Ljdk/nashorn/internal/runtime/CompiledFunction;
aload 0
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 1
aload 2
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.type:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.findStatic:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
0 1 1 rtype Ljava/lang/Class<*>;
0 1 2 types [Ljava/lang/Class;
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
name final
rtype final
types final
}
SourceFile: "CompiledFunction.java"
NestMembers:
jdk.nashorn.internal.runtime.CompiledFunction$1 jdk.nashorn.internal.runtime.CompiledFunction$2 jdk.nashorn.internal.runtime.CompiledFunction$3 jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public CompilationPhases = jdk.nashorn.internal.codegen.Compiler$CompilationPhases of jdk.nashorn.internal.codegen.Compiler
public abstract LinkLogic = jdk.nashorn.internal.objects.annotations.SpecializedFunction$LinkLogic of jdk.nashorn.internal.objects.annotations.SpecializedFunction
jdk.nashorn.internal.runtime.CompiledFunction$1
jdk.nashorn.internal.runtime.CompiledFunction$2
jdk.nashorn.internal.runtime.CompiledFunction$3
private HandleAndAssumptions = jdk.nashorn.internal.runtime.CompiledFunction$HandleAndAssumptions of jdk.nashorn.internal.runtime.CompiledFunction
private OptimismInfo = jdk.nashorn.internal.runtime.CompiledFunction$OptimismInfo of jdk.nashorn.internal.runtime.CompiledFunction