public final class jdk.nashorn.internal.codegen.ObjectClassGenerator implements jdk.nashorn.internal.runtime.logging.Loggable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.codegen.ObjectClassGenerator
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodHandle IS_TYPE_GUARD;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String SCOPE_MARKER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "P"
static final int FIELD_PADDING;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
private final jdk.nashorn.internal.runtime.logging.DebugLogger log;
descriptor: Ljdk/nashorn/internal/runtime/logging/DebugLogger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final jdk.nashorn.internal.codegen.types.Type[] FIELD_TYPES_OBJECT;
descriptor: [Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.nashorn.internal.codegen.types.Type[] FIELD_TYPES_DUAL;
descriptor: [Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final jdk.nashorn.internal.codegen.types.Type PRIMITIVE_FIELD_TYPE;
descriptor: Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle GET_DIFFERENT;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle GET_DIFFERENT_UNDEFINED;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static boolean initialized;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private final jdk.nashorn.internal.runtime.Context context;
descriptor: Ljdk/nashorn/internal/runtime/Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean dualFields;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static final java.lang.invoke.MethodHandle PACK_DOUBLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.invoke.MethodHandle UNPACK_DOUBLE;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, 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=11, locals=0, args_size=0
0: ldc Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
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.codegen.ObjectClassGenerator.$assertionsDisabled:Z
3: ldc "isType"
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Class;
aastore
dup
iconst_1
ldc Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.IS_TYPE_GUARD:Ljava/lang/invoke/MethodHandle;
4: iconst_1
anewarray jdk.nashorn.internal.codegen.types.Type
dup
iconst_0
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
aastore
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.FIELD_TYPES_OBJECT:[Ljdk/nashorn/internal/codegen/types/Type;
5: iconst_2
anewarray jdk.nashorn.internal.codegen.types.Type
dup
iconst_0
getstatic jdk.nashorn.internal.codegen.types.Type.LONG:Ljdk/nashorn/internal/codegen/types/Type;
aastore
dup
iconst_1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
aastore
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.FIELD_TYPES_DUAL:[Ljdk/nashorn/internal/codegen/types/Type;
6: getstatic jdk.nashorn.internal.codegen.types.Type.LONG:Ljdk/nashorn/internal/codegen/types/Type;
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.PRIMITIVE_FIELD_TYPE:Ljdk/nashorn/internal/codegen/types/Type;
7: ldc "getDifferent"
ldc Ljava/lang/Object;
iconst_5
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
ldc Ljava/lang/Class;
aastore
dup
iconst_2
ldc Ljava/lang/invoke/MethodHandle;
aastore
dup
iconst_3
ldc Ljava/lang/invoke/MethodHandle;
aastore
dup
iconst_4
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.GET_DIFFERENT:Ljava/lang/invoke/MethodHandle;
8: ldc "getDifferentUndefined"
ldc Ljava/lang/Object;
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.GET_DIFFERENT_UNDEFINED:Ljava/lang/invoke/MethodHandle;
9: iconst_0
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.initialized:Z
10: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Ljava/lang/Double;
ldc "doubleToRawLongBits"
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
aastore
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;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.type:(Ljava/lang/Class;[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;
11: putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.PACK_DOUBLE:Ljava/lang/invoke/MethodHandle;
12: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Ljava/lang/Double;
ldc "longBitsToDouble"
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
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;
13: putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.UNPACK_DOUBLE:Ljava/lang/invoke/MethodHandle;
14: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.nashorn.internal.runtime.Context, boolean);
descriptor: (Ljdk/nashorn/internal/runtime/Context;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.nashorn.internal.codegen.ObjectClassGenerator.context:Ljdk/nashorn/internal/runtime/Context;
2: aload 0
iload 2
putfield jdk.nashorn.internal.codegen.ObjectClassGenerator.dualFields:Z
3: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 4
aload 1
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: jdk.nashorn.internal.codegen.ObjectClassGenerator jdk.nashorn.internal.runtime.Context int
StackMap stack:
aload 0
aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.initLogger:(Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
putfield jdk.nashorn.internal.codegen.ObjectClassGenerator.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
5: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.initialized:Z
ifne 9
6: iconst_1
putstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.initialized:Z
7: iload 2
ifne 9
8: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
ldc "Running with object fields only - this is a deprecated configuration."
invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.warning:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 10 1 context Ljdk/nashorn/internal/runtime/Context;
0 10 2 dualFields Z
MethodParameters:
Name Flags
context final
dualFields final
public jdk.nashorn.internal.runtime.logging.DebugLogger getLogger();
descriptor: ()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
public jdk.nashorn.internal.runtime.logging.DebugLogger initLogger(jdk.nashorn.internal.runtime.Context);
descriptor: (Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual jdk.nashorn.internal.runtime.Context.getLogger:(Ljava/lang/Class;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 1 1 ctxt Ljdk/nashorn/internal/runtime/Context;
MethodParameters:
Name Flags
ctxt final
public static long pack(java.lang.Number);
descriptor: (Ljava/lang/Number;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.lang.Integer
ifeq 2
1: aload 0
invokevirtual java.lang.Number.intValue:()I
i2l
lreturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Long
ifeq 4
3: aload 0
invokevirtual java.lang.Number.longValue:()J
lreturn
4: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Double
ifeq 6
5: aload 0
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lreturn
6: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "cannot pack"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 n Ljava/lang/Number;
MethodParameters:
Name Flags
n final
private static java.lang.String getPrefixName(boolean);
descriptor: (Z)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifeq 1
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_DUAL_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_SINGLE_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 dualFields Z
MethodParameters:
Name Flags
dualFields final
private static java.lang.String getPrefixName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_DUAL_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: iconst_1
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPrefixName:(Z)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JS_OBJECT_SINGLE_FIELD_PREFIX:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
3: iconst_0
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPrefixName:(Z)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Not a structure class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 className Ljava/lang/String;
MethodParameters:
Name Flags
className final
public static java.lang.String getClassName(int, boolean);
descriptor: (IZ)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPrefixName:(Z)Ljava/lang/String;
astore 2
start local 2 1: iload 0
ifeq 2
new java.lang.StringBuilder
dup
ldc "jdk/nashorn/internal/scripts/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 3
2: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "jdk/nashorn/internal/scripts/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 fieldCount I
0 4 1 dualFields Z
1 4 2 prefix Ljava/lang/String;
MethodParameters:
Name Flags
fieldCount final
dualFields final
public static java.lang.String getClassName(int, int, boolean);
descriptor: (IIZ)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
ldc "jdk/nashorn/internal/scripts/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPrefixName:(Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "P"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
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 1 0 fieldCount I
0 1 1 paramCount I
0 1 2 dualFields Z
MethodParameters:
Name Flags
fieldCount final
paramCount final
dualFields final
public static int getFieldCount(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPrefixName:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 2: aload 2
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_0
ireturn
4: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 1
ldc "P"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 3
start local 3 5: iload 3
iconst_m1
if_icmpne 6
aload 1
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
goto 7
StackMap locals: int
StackMap stack:
6: aload 1
aload 2
invokevirtual java.lang.String.length:()I
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
7: invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 clazz Ljava/lang/Class<*>;
1 8 1 name Ljava/lang/String;
2 8 2 prefix Ljava/lang/String;
5 8 3 scopeMarker I
Signature: (Ljava/lang/Class<*>;)I
MethodParameters:
Name Flags
clazz final
public static java.lang.String getFieldName(int, jdk.nashorn.internal.codegen.types.Type);
descriptor: (ILjdk/nashorn/internal/codegen/types/Type;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.getDescriptor:()Ljava/lang/String;
iconst_0
iconst_1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fieldIndex I
0 1 1 type Ljdk/nashorn/internal/codegen/types/Type;
MethodParameters:
Name Flags
fieldIndex final
type final
private void initializeToUndefined(jdk.nashorn.internal.codegen.MethodEmitter, java.lang.String, java.util.List<java.lang.String>);
descriptor: (Ljdk/nashorn/internal/codegen/MethodEmitter;Ljava/lang/String;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.dualFields:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.loadUndefined:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 7: goto 12
8: StackMap locals: java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 9: aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 11
10: aload 1
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup2:()Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
11: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 2
aload 5
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.getDescriptor:()Ljava/lang/String;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.putField:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
end local 5 12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: return
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/codegen/ObjectClassGenerator;
0 14 1 init Ljdk/nashorn/internal/codegen/MethodEmitter;
0 14 2 className Ljava/lang/String;
0 14 3 fieldNames Ljava/util/List<Ljava/lang/String;>;
7 14 4 iter Ljava/util/Iterator<Ljava/lang/String;>;
9 12 5 fieldName Ljava/lang/String;
Signature: (Ljdk/nashorn/internal/codegen/MethodEmitter;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
init final
className final
fieldNames final
public byte[] generate(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ldc "P"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 1: aload 2
iconst_0
aaload
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 3
start local 3 2: aload 2
arraylength
iconst_1
if_icmpne 4
3: aload 0
iload 3
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.generate:(I)[B
areturn
4: StackMap locals: java.lang.String[] int
StackMap stack:
aload 2
iconst_1
aaload
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 5: aload 0
iload 3
iload 4
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.generate:(II)[B
areturn
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/codegen/ObjectClassGenerator;
0 6 1 descriptor Ljava/lang/String;
1 6 2 counts [Ljava/lang/String;
2 6 3 fieldCount I
5 6 4 paramCount I
MethodParameters:
Name Flags
descriptor final
public byte[] generate(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.dualFields:Z
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getClassName:(IZ)Ljava/lang/String;
astore 2
start local 2 1: ldc Ljdk/nashorn/internal/runtime/ScriptObject;
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.className:(Ljava/lang/Class;)Ljava/lang/String;
astore 3
start local 3 2: aload 0
aload 2
aload 3
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.newClassEmitter:(Ljava/lang/String;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/ClassEmitter;
astore 4
start local 4 3: aload 0
aload 4
iload 1
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.addFields:(Ljdk/nashorn/internal/codegen/ClassEmitter;I)Ljava/util/List;
pop
4: aload 4
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newInitMethod:(Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 5
start local 5 5: aload 5
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
6: aload 5
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
7: aload 4
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newInitWithSpillArraysMethod:(Ljdk/nashorn/internal/codegen/ClassEmitter;Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 6
start local 6 8: aload 6
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
9: aload 6
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
10: aload 2
aload 4
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newEmptyInit:(Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)V
11: aload 2
aload 4
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newAllocate:(Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)V
12: aload 0
aload 2
aload 4
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.toByteArray:(Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)[B
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 13 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 13 1 fieldCount I
1 13 2 className Ljava/lang/String;
2 13 3 superName Ljava/lang/String;
3 13 4 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
5 13 5 init Ljdk/nashorn/internal/codegen/MethodEmitter;
8 13 6 initWithSpillArrays Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
fieldCount final
public byte[] generate(int, int);
descriptor: (II)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iload 2
aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.dualFields:Z
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getClassName:(IIZ)Ljava/lang/String;
astore 3
start local 3 1: ldc Ljdk/nashorn/internal/runtime/FunctionScope;
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.className:(Ljava/lang/Class;)Ljava/lang/String;
astore 4
start local 4 2: aload 0
aload 3
aload 4
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.newClassEmitter:(Ljava/lang/String;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/ClassEmitter;
astore 5
start local 5 3: aload 0
aload 5
iload 1
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.addFields:(Ljdk/nashorn/internal/codegen/ClassEmitter;I)Ljava/util/List;
astore 6
start local 6 4: aload 5
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newInitScopeMethod:(Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 7
start local 7 5: aload 0
aload 7
aload 3
aload 6
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.initializeToUndefined:(Ljdk/nashorn/internal/codegen/MethodEmitter;Ljava/lang/String;Ljava/util/List;)V
6: aload 7
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
7: aload 7
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
8: aload 5
ldc Ljdk/nashorn/internal/runtime/FunctionScope;
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newInitWithSpillArraysMethod:(Ljdk/nashorn/internal/codegen/ClassEmitter;Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 8
start local 8 9: aload 0
aload 8
aload 3
aload 6
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.initializeToUndefined:(Ljdk/nashorn/internal/codegen/MethodEmitter;Ljava/lang/String;Ljava/util/List;)V
10: aload 8
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
11: aload 8
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
12: aload 5
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.newInitScopeWithArgumentsMethod:(Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 9
start local 9 13: aload 0
aload 9
aload 3
aload 6
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.initializeToUndefined:(Ljdk/nashorn/internal/codegen/MethodEmitter;Ljava/lang/String;Ljava/util/List;)V
14: aload 9
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
15: aload 9
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
16: aload 0
aload 3
aload 5
invokevirtual jdk.nashorn.internal.codegen.ObjectClassGenerator.toByteArray:(Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)[B
areturn
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 17 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 17 1 fieldCount I
0 17 2 paramCount I
1 17 3 className Ljava/lang/String;
2 17 4 superName Ljava/lang/String;
3 17 5 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
4 17 6 initFields Ljava/util/List<Ljava/lang/String;>;
5 17 7 init Ljdk/nashorn/internal/codegen/MethodEmitter;
9 17 8 initWithSpillArrays Ljdk/nashorn/internal/codegen/MethodEmitter;
13 17 9 initWithArguments Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
fieldCount final
paramCount final
private java.util.List<java.lang.String> addFields(jdk.nashorn.internal.codegen.ClassEmitter, int);
descriptor: (Ljdk/nashorn/internal/codegen/ClassEmitter;I)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
start local 3 1: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.dualFields:Z
ifeq 2
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.FIELD_TYPES_DUAL:[Ljdk/nashorn/internal/codegen/types/Type;
goto 3
StackMap locals: java.util.List
StackMap stack:
2: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.FIELD_TYPES_OBJECT:[Ljdk/nashorn/internal/codegen/types/Type;
StackMap locals:
StackMap stack: jdk.nashorn.internal.codegen.types.Type[]
3: astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 15
6: StackMap locals: jdk.nashorn.internal.codegen.types.Type[] int
StackMap stack:
aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 13
StackMap locals: jdk.nashorn.internal.codegen.ObjectClassGenerator jdk.nashorn.internal.codegen.ClassEmitter int java.util.List jdk.nashorn.internal.codegen.types.Type[] int top int int jdk.nashorn.internal.codegen.types.Type[]
StackMap stack:
7: aload 9
iload 7
aaload
astore 6
start local 6 8: iload 5
aload 6
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getFieldName:(ILjdk/nashorn/internal/codegen/types/Type;)Ljava/lang/String;
astore 10
start local 10 9: aload 1
aload 10
aload 6
invokevirtual jdk.nashorn.internal.codegen.types.Type.getTypeClass:()Ljava/lang/Class;
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.field:(Ljava/lang/String;Ljava/lang/Class;)V
10: aload 6
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
if_acmpne 12
11: aload 3
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 6 12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 8
if_icmplt 7
14: iinc 5 1
StackMap locals: jdk.nashorn.internal.codegen.ObjectClassGenerator jdk.nashorn.internal.codegen.ClassEmitter int java.util.List jdk.nashorn.internal.codegen.types.Type[] int
StackMap stack:
15: iload 5
iload 2
if_icmplt 6
end local 5 16: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 17 1 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
0 17 2 fieldCount I
1 17 3 initFields Ljava/util/List<Ljava/lang/String;>;
4 17 4 fieldTypes [Ljdk/nashorn/internal/codegen/types/Type;
5 16 5 i I
8 12 6 type Ljdk/nashorn/internal/codegen/types/Type;
9 12 10 fieldName Ljava/lang/String;
Signature: (Ljdk/nashorn/internal/codegen/ClassEmitter;I)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
classEmitter final
fieldCount final
private jdk.nashorn.internal.codegen.ClassEmitter newClassEmitter(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/ClassEmitter;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new jdk.nashorn.internal.codegen.ClassEmitter
dup
aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.context:Ljdk/nashorn/internal/runtime/Context;
aload 1
aload 2
iconst_0
anewarray java.lang.String
invokespecial jdk.nashorn.internal.codegen.ClassEmitter.<init>:(Ljdk/nashorn/internal/runtime/Context;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.begin:()V
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 3 1 className Ljava/lang/String;
0 3 2 superName Ljava/lang/String;
1 3 3 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
MethodParameters:
Name Flags
className final
superName final
private static jdk.nashorn.internal.codegen.MethodEmitter newInitMethod(jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.init:([Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 1
start local 1 1: aload 1
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_MAP:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 1
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
1 6 1 init Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
classEmitter final
private static jdk.nashorn.internal.codegen.MethodEmitter newInitWithSpillArraysMethod(jdk.nashorn.internal.codegen.ClassEmitter, java.lang.Class<?>);
descriptor: (Ljdk/nashorn/internal/codegen/ClassEmitter;Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc [J
aastore
dup
iconst_2
ldc [Ljava/lang/Object;
aastore
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.init:([Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 2
start local 2 1: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 2
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 2
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_MAP:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 2
getstatic jdk.nashorn.internal.codegen.types.Type.LONG_ARRAY:Ljdk/nashorn/internal/codegen/types/ArrayType;
iconst_2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 2
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT_ARRAY:Ljdk/nashorn/internal/codegen/types/ArrayType;
iconst_3
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 2
aload 1
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc [J
aastore
dup
iconst_2
ldc [Ljava/lang/Object;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
0 8 1 superClass Ljava/lang/Class<*>;
1 8 2 init Ljdk/nashorn/internal/codegen/MethodEmitter;
Signature: (Ljdk/nashorn/internal/codegen/ClassEmitter;Ljava/lang/Class<*>;)Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
classEmitter final
superClass final
private static jdk.nashorn.internal.codegen.MethodEmitter newInitScopeMethod(jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.init:([Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 1
start local 1 1: aload 1
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_MAP:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_SCOPE:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 1
ldc Ljdk/nashorn/internal/runtime/FunctionScope;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
1 7 1 init Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
classEmitter final
private static jdk.nashorn.internal.codegen.MethodEmitter newInitScopeWithArgumentsMethod(jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljdk/nashorn/internal/codegen/ClassEmitter;)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
dup
iconst_2
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.init:([Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 1
start local 1 1: aload 1
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_MAP:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_SCOPE:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 1
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.INIT_ARGUMENTS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 1
ldc Ljdk/nashorn/internal/runtime/FunctionScope;
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
dup
iconst_1
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
dup
iconst_2
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
1 8 1 init Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
classEmitter final
private static void newEmptyInit(java.lang.String, jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.init:()Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 2
start local 2 1: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 2
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.JAVA_THIS:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.slot:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.loadNull:()Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 2
aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/String;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.returnVoid:()V
6: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 className Ljava/lang/String;
0 8 1 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
1 8 2 emptyInit Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
className final
classEmitter final
private static void newAllocate(java.lang.String, jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getstatic jdk.nashorn.internal.codegen.ClassEmitter$Flag.PUBLIC:Ljdk/nashorn/internal/codegen/ClassEmitter$Flag;
getstatic jdk.nashorn.internal.codegen.ClassEmitter$Flag.STATIC:Ljdk/nashorn/internal/codegen/ClassEmitter$Flag;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
getstatic jdk.nashorn.internal.codegen.CompilerConstants.ALLOCATE:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.method:(Ljava/util/EnumSet;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/MethodEmitter;
astore 2
start local 2 1: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.begin:()V
2: aload 2
aload 0
ldc Ljdk/nashorn/internal/runtime/ScriptObject;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter._new:(Ljava/lang/String;Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dup:()Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 2
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
iconst_0
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
5: aload 2
aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljdk/nashorn/internal/runtime/PropertyMap;
aastore
invokestatic jdk.nashorn.internal.codegen.CompilerConstants.constructorNoLookup:(Ljava/lang/String;[Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.invoke:(Ljdk/nashorn/internal/codegen/CompilerConstants$Call;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter._return:()V
7: aload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.end:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 className Ljava/lang/String;
0 9 1 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
1 9 2 allocate Ljdk/nashorn/internal/codegen/MethodEmitter;
MethodParameters:
Name Flags
className final
classEmitter final
private byte[] toByteArray(java.lang.String, jdk.nashorn.internal.codegen.ClassEmitter);
descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/codegen/ClassEmitter;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.end:()V
1: aload 2
invokevirtual jdk.nashorn.internal.codegen.ClassEmitter.toByteArray:()[B
astore 3
start local 3 2: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.context:Ljdk/nashorn/internal/runtime/Context;
invokevirtual jdk.nashorn.internal.runtime.Context.getEnv:()Ljdk/nashorn/internal/runtime/ScriptEnvironment;
astore 4
start local 4 3: aload 4
aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.log:Ljdk/nashorn/internal/runtime/logging/DebugLogger;
aload 3
aload 1
invokestatic jdk.nashorn.internal.codegen.DumpBytecode.dumpBytecode:(Ljdk/nashorn/internal/runtime/ScriptEnvironment;Ljdk/nashorn/internal/runtime/logging/DebugLogger;[BLjava/lang/String;)V
4: aload 4
getfield jdk.nashorn.internal.runtime.ScriptEnvironment._verify_code:Z
ifeq 6
5: aload 0
getfield jdk.nashorn.internal.codegen.ObjectClassGenerator.context:Ljdk/nashorn/internal/runtime/Context;
aload 3
invokevirtual jdk.nashorn.internal.runtime.Context.verify:([B)V
6: StackMap locals: byte[] jdk.nashorn.internal.runtime.ScriptEnvironment
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/nashorn/internal/codegen/ObjectClassGenerator;
0 7 1 className Ljava/lang/String;
0 7 2 classEmitter Ljdk/nashorn/internal/codegen/ClassEmitter;
2 7 3 code [B
3 7 4 env Ljdk/nashorn/internal/runtime/ScriptEnvironment;
MethodParameters:
Name Flags
className final
classEmitter final
private static getDifferent(, java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;I)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 2
aload 3
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getterForType:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 5
start local 5 1: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 5
aload 5
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 6
start local 6 2: aload 6
aload 0
invokevirtual java.lang.invoke.MethodHandle.invokeExact:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 3: new jdk.nashorn.internal.runtime.UnwarrantedOptimismException
dup
aload 7
iload 4
invokespecial jdk.nashorn.internal.runtime.UnwarrantedOptimismException.<init>:(Ljava/lang/Object;I)V
athrow
end local 7 4: StackMap locals: java.lang.Object java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack: java.lang.Throwable
astore 7
start local 7 5: aload 7
athrow
end local 7 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
start local 7 7: new java.lang.RuntimeException
dup
aload 7
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
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 8 0 receiver Ljava/lang/Object;
0 8 1 forType Ljava/lang/Class<*>;
0 8 2 primitiveGetter Ljava/lang/invoke/MethodHandle;
0 8 3 objectGetter Ljava/lang/invoke/MethodHandle;
0 8 4 programPoint I
1 8 5 sameTypeGetter Ljava/lang/invoke/MethodHandle;
2 8 6 mh Ljava/lang/invoke/MethodHandle;
3 4 7 value Ljava/lang/Object;
5 6 7 e Ljava/lang/Throwable;
7 8 7 e Ljava/lang/Throwable;
Exception table:
from to target type
2 4 4 Class java.lang.Error
2 4 4 Class java.lang.RuntimeException
2 4 6 Class java.lang.Throwable
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;I)Ljava/lang/Object;
MethodParameters:
Name Flags
receiver final
forType final
primitiveGetter final
objectGetter final
programPoint final
private static java.lang.Object getDifferentUndefined(int);
descriptor: (I)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new jdk.nashorn.internal.runtime.UnwarrantedOptimismException
dup
invokestatic jdk.nashorn.internal.runtime.Undefined.getUndefined:()Ljdk/nashorn/internal/runtime/Undefined;
iload 0
invokespecial jdk.nashorn.internal.runtime.UnwarrantedOptimismException.<init>:(Ljava/lang/Object;I)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 programPoint I
MethodParameters:
Name Flags
programPoint final
private static java.lang.invoke.MethodHandle getterForType(java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 4
}
1: StackMap locals:
StackMap stack:
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;
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
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;
areturn
2: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 1
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.UNPACK_DOUBLE:Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
3: StackMap locals:
StackMap stack:
aload 2
areturn
4: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 forType Ljava/lang/Class<*>;
0 5 1 primitiveGetter Ljava/lang/invoke/MethodHandle;
0 5 2 objectGetter Ljava/lang/invoke/MethodHandle;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
forType final
primitiveGetter final
objectGetter final
private static java.lang.invoke.MethodHandle createGetterInner(java.lang.Class<?>, java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.util.List<java.lang.invoke.MethodHandle>, int);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List;I)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=14, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
ifnonnull 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
StackMap locals:
StackMap stack: int
2: istore 6
start local 6 3: aload 1
invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
istore 7
start local 7 4: aload 4
getstatic jdk.nashorn.internal.runtime.JSType.CONVERT_OBJECT_OPTIMISTIC:Ljava/util/List;
if_acmpne 5
iconst_1
goto 6
StackMap locals: int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 8
start local 8 7: aload 0
ifnull 8
aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 8
iconst_1
goto 9
StackMap locals: int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 9
start local 9 10: aload 2
ifnonnull 11
aload 3
goto 13
StackMap locals: int
StackMap stack:
11: iload 9
ifeq 12
aload 2
goto 13
StackMap locals:
StackMap stack:
12: aload 3
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
13: astore 10
start local 10 14: aload 0
ifnonnull 31
15: iload 8
ifeq 30
16: iload 7
iconst_2
if_icmpne 18
17: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.JSType.GET_UNDEFINED:Ljava/util/List;
iconst_2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
18: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
19: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
20: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
21: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.GET_DIFFERENT_UNDEFINED:Ljava/lang/invoke/MethodHandle;
22: iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
23: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
24: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
25: iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
26: ldc Ljava/lang/Object;
aastore
27: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
28: aload 10
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;
29: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
30: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.runtime.JSType.GET_UNDEFINED:Ljava/util/List;
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
31: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 32
aload 2
ifnonnull 32
aload 0
ldc Ljava/lang/Object;
if_acmpeq 32
new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
32: StackMap locals:
StackMap stack:
iload 8
ifeq 64
33: iload 6
iload 7
if_icmpge 37
34: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 35
iload 6
iconst_m1
if_icmpne 35
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
35: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getterForType:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 11
start local 11 36: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 11
aload 11
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.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 11 37: StackMap locals:
StackMap stack:
iload 6
iload 7
if_icmpne 39
38: aload 0
aload 2
aload 3
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getterForType:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
39: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 40
iload 6
iload 7
if_icmpgt 40
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
40: StackMap locals:
StackMap stack:
iload 6
iconst_2
if_icmpne 49
41: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
42: aload 3
43: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
44: aload 4
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
45: iconst_1
iconst_1
anewarray java.lang.Object
dup
iconst_0
46: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
47: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
48: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
49: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
50: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
51: aload 3
52: iconst_0
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
53: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
54: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.GET_DIFFERENT:Ljava/lang/invoke/MethodHandle;
55: iconst_1
iconst_4
anewarray java.lang.Object
dup
iconst_0
56: aload 0
aastore
dup
iconst_1
57: aload 2
aastore
dup
iconst_2
58: aload 3
aastore
dup
iconst_3
59: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
60: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
aastore
61: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
62: aload 3
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;
63: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
64: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 65
iload 8
ifeq 65
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
65: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getterForType:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 11
start local 11 66: iload 6
iconst_2
if_icmpne 70
67: iload 6
iload 7
if_icmpeq 69
68: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 11
getstatic jdk.nashorn.internal.runtime.JSType.CONVERT_OBJECT:Ljava/util/List;
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
69: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 11
areturn
70: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 71
aload 2
ifnonnull 71
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
71: StackMap locals:
StackMap stack:
aload 11
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 12
start local 12 72: iload 6
tableswitch { // 0 - 1
0: 73
1: 74
default: 79
}
73: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 11
aload 12
aload 1
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;
areturn
74: StackMap locals:
StackMap stack:
iload 7
tableswitch { // 0 - 1
0: 75
1: 76
default: 78
}
75: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 11
getstatic jdk.nashorn.internal.runtime.JSType.TO_INT32_D:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
getfield jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.filterReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
76: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 77
aload 12
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 77
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
77: StackMap locals:
StackMap stack:
aload 11
areturn
78: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 11
aload 12
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;
areturn
79: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "=>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
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 80 0 forType Ljava/lang/Class<*>;
0 80 1 type Ljava/lang/Class<*>;
0 80 2 primitiveGetter Ljava/lang/invoke/MethodHandle;
0 80 3 objectGetter Ljava/lang/invoke/MethodHandle;
0 80 4 converters Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 80 5 programPoint I
3 80 6 fti I
4 80 7 ti I
7 80 8 isOptimistic Z
10 80 9 isPrimitiveStorage Z
14 80 10 getter Ljava/lang/invoke/MethodHandle;
36 37 11 tgetter Ljava/lang/invoke/MethodHandle;
66 80 11 tgetter Ljava/lang/invoke/MethodHandle;
72 80 12 tgetterType Ljava/lang/invoke/MethodType;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;I)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
forType final
type final
primitiveGetter final
objectGetter final
converters final
programPoint final
public static java.lang.invoke.MethodHandle createGetter(java.lang.Class<?>, java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
1: aload 1
2: aload 2
3: aload 3
4: iload 4
invokestatic jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid:(I)Z
ifeq 5
getstatic jdk.nashorn.internal.runtime.JSType.CONVERT_OBJECT_OPTIMISTIC:Ljava/util/List;
goto 6
StackMap locals: java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int
StackMap stack: java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
5: getstatic jdk.nashorn.internal.runtime.JSType.CONVERT_OBJECT:Ljava/util/List;
6: StackMap locals: java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int
StackMap stack: java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List
iload 4
7: invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.createGetterInner:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List;I)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 8 0 forType Ljava/lang/Class<*>;
0 8 1 type Ljava/lang/Class<*>;
0 8 2 primitiveGetter Ljava/lang/invoke/MethodHandle;
0 8 3 objectGetter Ljava/lang/invoke/MethodHandle;
0 8 4 programPoint I
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
forType final
type final
primitiveGetter final
objectGetter final
programPoint final
public static java.lang.invoke.MethodHandle createSetter(java.lang.Class<?>, java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 1
aload 0
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
istore 4
start local 4 2: aload 1
invokestatic jdk.nashorn.internal.runtime.JSType.getAccessorTypeIndex:(Ljava/lang/Class;)I
istore 5
start local 5 3: iload 4
iconst_2
if_icmpeq 4
aload 2
ifnonnull 7
4: StackMap locals: int int
StackMap stack:
iload 5
iconst_2
if_icmpne 6
5: aload 3
areturn
6: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 3
aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_1
aload 1
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/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;
areturn
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 6
start local 6 8: iload 4
tableswitch { // 0 - 1
0: 9
1: 13
default: 16
}
9: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
iload 5
tableswitch { // 0 - 1
0: 10
1: 11
default: 12
}
10: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 2
aload 6
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/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;
areturn
11: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 2
iconst_1
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.PACK_DOUBLE: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
12: StackMap locals:
StackMap stack:
aload 3
areturn
13: StackMap locals:
StackMap stack:
iload 5
iconst_2
if_icmpne 15
14: aload 3
areturn
15: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
aload 2
iconst_1
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.PACK_DOUBLE: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;
aload 6
iconst_1
aload 1
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/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;
areturn
16: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "=>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
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 17 0 forType Ljava/lang/Class<*>;
0 17 1 type Ljava/lang/Class<*>;
0 17 2 primitiveSetter Ljava/lang/invoke/MethodHandle;
0 17 3 objectSetter Ljava/lang/invoke/MethodHandle;
2 17 4 fti I
3 17 5 ti I
8 17 6 pmt Ljava/lang/invoke/MethodType;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
forType final
type final
primitiveSetter final
objectSetter final
private static boolean isType(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 0
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 boxedForType Ljava/lang/Class<*>;
0 2 1 x Ljava/lang/Object;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Z
MethodParameters:
Name Flags
boxedForType final
x final
private static java.lang.Class<? extends java.lang.Number> getBoxedType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 2
1: ldc Ljava/lang/Integer;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 4
3: ldc Ljava/lang/Long;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 6
5: ldc Ljava/lang/Double;
areturn
6: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.$assertionsDisabled:Z
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 forType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<+Ljava/lang/Number;>;
MethodParameters:
Name Flags
forType final
public static java.lang.invoke.MethodHandle createGuardBoxedPrimitiveSetter(java.lang.Class<?>, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getBoxedType:(Ljava/lang/Class;)Ljava/lang/Class;
astore 3
start local 3 1: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
2: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
3: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
4: getstatic jdk.nashorn.internal.codegen.ObjectClassGenerator.IS_TYPE_GUARD:Ljava/lang/invoke/MethodHandle;
5: iconst_1
iconst_1
anewarray java.lang.Class
dup
iconst_0
6: ldc Ljava/lang/Object;
aastore
7: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
8: iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
9: aload 3
aastore
10: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
11: getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
12: aload 1
13: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
14: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
15: aload 2
16: invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 forType Ljava/lang/Class<*>;
0 17 1 primitiveSetter Ljava/lang/invoke/MethodHandle;
0 17 2 objectSetter Ljava/lang/invoke/MethodHandle;
1 17 3 boxedForType Ljava/lang/Class<+Ljava/lang/Number;>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
forType final
primitiveSetter final
objectSetter final
static int getPaddedFieldCount(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_4
idiv
iconst_4
imul
iconst_4
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 count I
MethodParameters:
Name Flags
count 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/codegen/ObjectClassGenerator;
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
static jdk.nashorn.internal.runtime.AllocationStrategy createAllocationStrategy(int, boolean);
descriptor: (IZ)Ljdk/nashorn/internal/runtime/AllocationStrategy;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 0
invokestatic jdk.nashorn.internal.codegen.ObjectClassGenerator.getPaddedFieldCount:(I)I
istore 2
start local 2 1: new jdk.nashorn.internal.runtime.AllocationStrategy
dup
iload 2
iload 1
invokespecial jdk.nashorn.internal.runtime.AllocationStrategy.<init>:(IZ)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 thisProperties I
0 2 1 dualFields Z
1 2 2 paddedFieldCount I
MethodParameters:
Name Flags
thisProperties final
dualFields final
}
SourceFile: "ObjectClassGenerator.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
final Flag = jdk.nashorn.internal.codegen.ClassEmitter$Flag of jdk.nashorn.internal.codegen.ClassEmitter
public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants
RuntimeVisibleAnnotations:
jdk.nashorn.internal.runtime.logging.Logger(name = "fields")