final class jdk.nashorn.internal.runtime.linker.JavaArgumentConverters
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.runtime.linker.JavaArgumentConverters
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodHandle TO_BOOLEAN;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_STRING;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_DOUBLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_NUMBER;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_LONG;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_LONG_PRIMITIVE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_CHAR;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle TO_CHAR_PRIMITIVE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.Class<?>, java.lang.invoke.MethodHandle> CONVERTERS;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc "toBoolean"
ldc Ljava/lang/Boolean;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_BOOLEAN:Ljava/lang/invoke/MethodHandle;
1: ldc "toString"
ldc Ljava/lang/String;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_STRING:Ljava/lang/invoke/MethodHandle;
2: ldc "toDouble"
ldc Ljava/lang/Double;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_DOUBLE:Ljava/lang/invoke/MethodHandle;
3: ldc "toNumber"
ldc Ljava/lang/Number;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_NUMBER:Ljava/lang/invoke/MethodHandle;
4: ldc "toLong"
ldc Ljava/lang/Long;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG:Ljava/lang/invoke/MethodHandle;
5: ldc "toLongPrimitive"
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
6: ldc "toChar"
ldc Ljava/lang/Character;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_CHAR:Ljava/lang/invoke/MethodHandle;
7: ldc "toCharPrimitive"
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_CHAR_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
8: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
9: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/Number;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_NUMBER:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/String;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_STRING:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
getstatic jdk.nashorn.internal.runtime.JSType.TO_BOOLEAN:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/Boolean;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_BOOLEAN:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_CHAR_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/Character;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_CHAR:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
getstatic jdk.nashorn.internal.runtime.JSType.TO_NUMBER:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/Double;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_DOUBLE:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
ldc Ljava/lang/Long;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG:Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: ldc Ljava/lang/Byte;
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.putLongConverter:(Ljava/lang/Class;)V
20: ldc Ljava/lang/Short;
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.putLongConverter:(Ljava/lang/Class;)V
21: ldc Ljava/lang/Integer;
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.putLongConverter:(Ljava/lang/Class;)V
22: ldc Ljava/lang/Float;
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.putDoubleConverter:(Ljava/lang/Class;)V
23: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/linker/JavaArgumentConverters;
static java.lang.invoke.MethodHandle getConverter(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 targetType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
targetType final
private static java.lang.Boolean toBoolean(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Boolean;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
instanceof java.lang.Boolean
ifeq 2
1: aload 0
checkcast java.lang.Boolean
areturn
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
if_acmpne 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Number
ifeq 10
7: aload 0
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
dstore 1
start local 1 8: dload 1
dconst_0
dcmpl
ifeq 9
dload 1
invokestatic java.lang.Double.isNaN:(D)Z
ifne 9
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
StackMap locals: double
StackMap stack:
9: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 1 10: StackMap locals:
StackMap stack:
aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.isString:(Ljava/lang/Object;)Z
ifeq 13
11: aload 0
checkcast java.lang.CharSequence
invokeinterface java.lang.CharSequence.length:()I
ifle 12
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
StackMap locals:
StackMap stack:
12: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
13: StackMap locals:
StackMap stack:
aload 0
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifeq 15
14: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
15: StackMap locals:
StackMap stack:
aload 0
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.assertUnexpectedType:(Ljava/lang/Object;)Ljava/lang/AssertionError;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 obj Ljava/lang/Object;
8 10 1 num D
MethodParameters:
Name Flags
obj final
private static java.lang.Character toChar(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Character;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Number
ifeq 7
3: aload 0
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
istore 1
start local 1 4: iload 1
iflt 6
iload 1
ldc 65535
if_icmpgt 6
5: iload 1
i2c
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
areturn
6: StackMap locals: int
StackMap stack:
ldc "cant.convert.number.to.char"
iconst_0
anewarray java.lang.String
invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
athrow
end local 1 7: StackMap locals:
StackMap stack:
aload 0
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.toString:(Ljava/lang/Object;)Ljava/lang/String;
astore 1
start local 1 8: aload 1
ifnonnull 10
9: aconst_null
areturn
10: StackMap locals: java.lang.String
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpeq 12
11: ldc "cant.convert.string.to.char"
iconst_0
anewarray java.lang.String
invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
athrow
12: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 o Ljava/lang/Object;
4 7 1 ival I
8 13 1 s Ljava/lang/String;
MethodParameters:
Name Flags
o final
static char toCharPrimitive(java.lang.Object);
descriptor: (Ljava/lang/Object;)C
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.toChar:(Ljava/lang/Object;)Ljava/lang/Character;
astore 1
start local 1 1: aload 1
ifnonnull 2
iconst_0
goto 3
StackMap locals: java.lang.Character
StackMap stack:
2: aload 1
invokevirtual java.lang.Character.charValue:()C
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj0 Ljava/lang/Object;
1 4 1 c Ljava/lang/Character;
MethodParameters:
Name Flags
obj0 final
static java.lang.String toString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.toString:(Ljava/lang/Object;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj final
private static java.lang.Double toDouble(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Double;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Double
ifeq 5
4: aload 1
checkcast java.lang.Double
areturn
5: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Number
ifeq 7
6: aload 1
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
7: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.String
ifeq 9
8: aload 1
checkcast java.lang.String
invokestatic jdk.nashorn.internal.runtime.JSType.toNumber:(Ljava/lang/String;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
9: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.runtime.ConsString
ifeq 11
10: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.runtime.JSType.toNumber:(Ljava/lang/String;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
11: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Boolean
ifeq 15
12: aload 1
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 13
dconst_1
goto 14
StackMap locals:
StackMap stack:
13: dconst_0
StackMap locals:
StackMap stack: double
14: invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
15: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifeq 18
16: aload 1
ldc Ljava/lang/Number;
invokestatic jdk.nashorn.internal.runtime.JSType.toPrimitive:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 1
17: goto 1
18: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
if_acmpne 20
19: ldc NaN
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
20: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.assertUnexpectedType:(Ljava/lang/Object;)Ljava/lang/AssertionError;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 obj0 Ljava/lang/Object;
1 21 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj0 final
private static java.lang.Number toNumber(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Number;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Number
ifeq 5
4: aload 1
checkcast java.lang.Number
areturn
5: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.String
ifeq 7
6: aload 1
checkcast java.lang.String
invokestatic jdk.nashorn.internal.runtime.JSType.toNumber:(Ljava/lang/String;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
7: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.runtime.ConsString
ifeq 9
8: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.runtime.JSType.toNumber:(Ljava/lang/String;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
9: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Boolean
ifeq 13
10: aload 1
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 11
dconst_1
goto 12
StackMap locals:
StackMap stack:
11: dconst_0
StackMap locals:
StackMap stack: double
12: invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
13: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifeq 16
14: aload 1
ldc Ljava/lang/Number;
invokestatic jdk.nashorn.internal.runtime.JSType.toPrimitive:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 1
15: goto 1
16: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
if_acmpne 18
17: ldc NaN
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
areturn
18: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.assertUnexpectedType:(Ljava/lang/Object;)Ljava/lang/AssertionError;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 obj0 Ljava/lang/Object;
1 19 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj0 final
private static java.lang.Long toLong(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Long;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Long
ifeq 5
4: aload 1
checkcast java.lang.Long
areturn
5: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Integer
ifeq 7
6: aload 1
checkcast java.lang.Integer
invokevirtual java.lang.Integer.longValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
7: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Double
ifeq 12
8: aload 1
checkcast java.lang.Double
astore 2
start local 2 9: aload 2
invokevirtual java.lang.Double.doubleValue:()D
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 11
10: lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
11: StackMap locals: java.lang.Double
StackMap stack:
aload 2
invokevirtual java.lang.Double.longValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 2 12: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Float
ifeq 17
13: aload 1
checkcast java.lang.Float
astore 2
start local 2 14: aload 2
invokevirtual java.lang.Float.floatValue:()F
invokestatic java.lang.Float.isInfinite:(F)Z
ifeq 16
15: lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
16: StackMap locals: java.lang.Float
StackMap stack:
aload 2
invokevirtual java.lang.Float.longValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 2 17: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Number
ifeq 19
18: aload 1
checkcast java.lang.Number
invokevirtual java.lang.Number.longValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
19: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.JSType.isString:(Ljava/lang/Object;)Z
ifeq 21
20: aload 1
invokestatic jdk.nashorn.internal.runtime.JSType.toLong:(Ljava/lang/Object;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
21: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Boolean
ifeq 25
22: aload 1
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 23
lconst_1
goto 24
StackMap locals:
StackMap stack:
23: lconst_0
StackMap locals:
StackMap stack: long
24: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
25: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifeq 28
26: aload 1
ldc Ljava/lang/Number;
invokestatic jdk.nashorn.internal.runtime.JSType.toPrimitive:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 1
27: goto 1
28: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
if_acmpne 30
29: aconst_null
areturn
30: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.assertUnexpectedType:(Ljava/lang/Object;)Ljava/lang/AssertionError;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 obj0 Ljava/lang/Object;
1 31 1 obj Ljava/lang/Object;
9 12 2 d Ljava/lang/Double;
14 17 2 f Ljava/lang/Float;
MethodParameters:
Name Flags
obj0 final
private static java.lang.AssertionError assertUnexpectedType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/AssertionError;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected type"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". Guards should have prevented this"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj final
private static long toLongPrimitive(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.toLong:(Ljava/lang/Object;)Ljava/lang/Long;
astore 1
start local 1 1: aload 1
ifnonnull 2
lconst_0
goto 3
StackMap locals: java.lang.Long
StackMap stack:
2: aload 1
invokevirtual java.lang.Long.longValue:()J
StackMap locals:
StackMap stack: long
3: lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj0 Ljava/lang/Object;
1 4 1 l Ljava/lang/Long;
MethodParameters:
Name Flags
obj0 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/linker/JavaArgumentConverters;
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
private static void putDoubleConverter(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=2, args_size=1
start local 0 0: aload 0
invokestatic jdk.dynalink.linker.support.TypeUtilities.getPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
astore 1
start local 1 1: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
aload 1
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.JSType.TO_NUMBER:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.runtime.JSType.TO_NUMBER:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
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.nashorn.internal.lookup.MethodHandleFunctionality.explicitCastArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
aload 0
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_DOUBLE:Ljava/lang/invoke/MethodHandle;
new java.lang.StringBuilder
dup
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Double;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 targetType Ljava/lang/Class<*>;
1 4 1 primitive Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
targetType final
private static void putLongConverter(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=2, args_size=1
start local 0 0: aload 0
invokestatic jdk.dynalink.linker.support.TypeUtilities.getPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
astore 1
start local 1 1: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
aload 1
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG_PRIMITIVE:Ljava/lang/invoke/MethodHandle;
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.nashorn.internal.lookup.MethodHandleFunctionality.explicitCastArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.CONVERTERS:Ljava/util/Map;
aload 0
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.TO_LONG:Ljava/lang/invoke/MethodHandle;
new java.lang.StringBuilder
dup
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Long;
aastore
invokestatic jdk.nashorn.internal.runtime.linker.JavaArgumentConverters.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 targetType Ljava/lang/Class<*>;
1 4 1 primitive Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
targetType final
private static java.lang.Byte byteValue(java.lang.Long);
descriptor: (Ljava/lang/Long;)Ljava/lang/Byte;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual java.lang.Long.byteValue:()B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
StackMap locals:
StackMap stack: java.lang.Byte
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 l Ljava/lang/Long;
MethodParameters:
Name Flags
l final
private static java.lang.Short shortValue(java.lang.Long);
descriptor: (Ljava/lang/Long;)Ljava/lang/Short;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual java.lang.Long.shortValue:()S
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
StackMap locals:
StackMap stack: java.lang.Short
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 l Ljava/lang/Long;
MethodParameters:
Name Flags
l final
private static java.lang.Integer intValue(java.lang.Long);
descriptor: (Ljava/lang/Long;)Ljava/lang/Integer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual java.lang.Long.intValue:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
StackMap locals:
StackMap stack: java.lang.Integer
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 l Ljava/lang/Long;
MethodParameters:
Name Flags
l final
private static java.lang.Float floatValue(java.lang.Double);
descriptor: (Ljava/lang/Double;)Ljava/lang/Float;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual java.lang.Double.floatValue:()F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
StackMap locals:
StackMap stack: java.lang.Float
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 d Ljava/lang/Double;
MethodParameters:
Name Flags
d final
}
SourceFile: "JavaArgumentConverters.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants