final class jdk.nashorn.internal.codegen.TypeEvaluator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.codegen.TypeEvaluator
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodType EMPTY_INVOCATION_TYPE;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final jdk.nashorn.internal.codegen.Compiler compiler;
descriptor: Ljdk/nashorn/internal/codegen/Compiler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.nashorn.internal.runtime.ScriptObject runtimeScope;
descriptor: Ljdk/nashorn/internal/runtime/ScriptObject;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: ldc Ljdk/nashorn/internal/codegen/TypeEvaluator;
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.TypeEvaluator.$assertionsDisabled:Z
3: ldc Ljava/lang/Object;
ldc Ljdk/nashorn/internal/runtime/ScriptFunction;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
putstatic jdk.nashorn.internal.codegen.TypeEvaluator.EMPTY_INVOCATION_TYPE:Ljava/lang/invoke/MethodType;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.nashorn.internal.codegen.Compiler, jdk.nashorn.internal.runtime.ScriptObject);
descriptor: (Ljdk/nashorn/internal/codegen/Compiler;Ljdk/nashorn/internal/runtime/ScriptObject;)V
flags: (0x0000)
Code:
stack=2, 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.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
2: aload 0
aload 2
putfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 4 1 compiler Ljdk/nashorn/internal/codegen/Compiler;
0 4 2 runtimeScope Ljdk/nashorn/internal/runtime/ScriptObject;
MethodParameters:
Name Flags
compiler final
runtimeScope final
boolean hasStringPropertyIterator(jdk.nashorn.internal.ir.Expression);
descriptor: (Ljdk/nashorn/internal/ir/Expression;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.TypeEvaluator.evaluateSafely:(Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/Object;
instanceof jdk.nashorn.internal.runtime.ScriptObject
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 1 1 expr Ljdk/nashorn/internal/ir/Expression;
MethodParameters:
Name Flags
expr final
jdk.nashorn.internal.codegen.types.Type getOptimisticType(jdk.nashorn.internal.ir.Optimistic);
descriptor: (Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x0000)
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.codegen.TypeEvaluator.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.useOptimisticTypes:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
istore 2
start local 2 2: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
iload 2
invokevirtual jdk.nashorn.internal.codegen.Compiler.getInvalidatedProgramPointType:(I)Ljdk/nashorn/internal/codegen/types/Type;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 3
areturn
5: StackMap locals: int jdk.nashorn.internal.codegen.types.Type
StackMap stack:
aload 1
invokeinterface jdk.nashorn.internal.ir.Optimistic.getMostOptimisticType:()Ljdk/nashorn/internal/codegen/types/Type;
astore 4
start local 4 6: aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.TypeEvaluator.getEvaluatedType:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/codegen/types/Type;
astore 5
start local 5 7: aload 5
ifnull 15
8: aload 5
aload 4
invokevirtual jdk.nashorn.internal.codegen.types.Type.widerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifeq 14
9: aload 5
invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
ifne 10
aload 5
invokevirtual jdk.nashorn.internal.codegen.types.Type.isBoolean:()Z
ifeq 11
StackMap locals: jdk.nashorn.internal.codegen.types.Type jdk.nashorn.internal.codegen.types.Type
StackMap stack:
10: getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
goto 12
StackMap locals:
StackMap stack:
11: aload 5
StackMap locals:
StackMap stack: jdk.nashorn.internal.codegen.types.Type
12: astore 6
start local 6 13: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
aload 1
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
aload 6
invokevirtual jdk.nashorn.internal.codegen.Compiler.addInvalidatedProgramPoint:(ILjdk/nashorn/internal/codegen/types/Type;)V
end local 6 14: StackMap locals:
StackMap stack:
aload 5
areturn
15: StackMap locals:
StackMap stack:
aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 16 1 node Ljdk/nashorn/internal/ir/Optimistic;
2 16 2 programPoint I
3 16 3 validType Ljdk/nashorn/internal/codegen/types/Type;
6 16 4 mostOptimisticType Ljdk/nashorn/internal/codegen/types/Type;
7 16 5 evaluatedType Ljdk/nashorn/internal/codegen/types/Type;
13 14 6 newValidType Ljdk/nashorn/internal/codegen/types/Type;
MethodParameters:
Name Flags
node final
private static jdk.nashorn.internal.codegen.types.Type getPropertyType(jdk.nashorn.internal.runtime.ScriptObject, java.lang.String);
descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: jdk.nashorn.internal.runtime.FindProperty
StackMap stack:
aload 2
invokevirtual jdk.nashorn.internal.runtime.FindProperty.getProperty:()Ljdk/nashorn/internal/runtime/Property;
astore 3
start local 3 4: aload 3
invokevirtual jdk.nashorn.internal.runtime.Property.getType:()Ljava/lang/Class;
astore 4
start local 4 5: aload 4
ifnonnull 7
6: aconst_null
areturn
7: StackMap locals: jdk.nashorn.internal.runtime.Property java.lang.Class
StackMap stack:
aload 4
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 9
8: aload 4
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
areturn
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.nashorn.internal.runtime.FindProperty.getOwner:()Ljdk/nashorn/internal/runtime/ScriptObject;
astore 5
start local 5 10: aload 3
aload 5
invokevirtual jdk.nashorn.internal.runtime.Property.hasGetterFunction:(Ljdk/nashorn/internal/runtime/ScriptObject;)Z
ifeq 12
11: getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
areturn
12: StackMap locals: jdk.nashorn.internal.runtime.ScriptObject
StackMap stack:
aload 3
invokevirtual jdk.nashorn.internal.runtime.Property.needsDeclaration:()Z
ifeq 13
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
goto 14
StackMap locals:
StackMap stack:
13: aload 3
aload 5
aload 5
invokevirtual jdk.nashorn.internal.runtime.Property.getObjectValue:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
14: astore 6
start local 6 15: aload 6
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
if_acmpne 17
16: aconst_null
areturn
17: StackMap locals: java.lang.Object
StackMap stack:
aload 6
invokestatic jdk.nashorn.internal.runtime.JSType.unboxedFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
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 18 0 sobj Ljdk/nashorn/internal/runtime/ScriptObject;
0 18 1 name Ljava/lang/String;
1 18 2 find Ljdk/nashorn/internal/runtime/FindProperty;
4 18 3 property Ljdk/nashorn/internal/runtime/Property;
5 18 4 propertyClass Ljava/lang/Class<*>;
10 18 5 owner Ljdk/nashorn/internal/runtime/ScriptObject;
15 18 6 value Ljava/lang/Object;
MethodParameters:
Name Flags
sobj final
name final
void declareLocalSymbol(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.codegen.TypeEvaluator.$assertionsDisabled:Z
ifne 11
1: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.useOptimisticTypes:()Z
ifeq 4
2: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.isOnDemandCompilation:()Z
ifeq 4
3: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
ifnonnull 11
StackMap locals:
StackMap stack:
4: new java.lang.AssertionError
dup
5: new java.lang.StringBuilder
dup
ldc "useOptimistic="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.useOptimisticTypes:()Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
7: ldc " isOnDemand="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.isOnDemandCompilation:()Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
9: ldc " scope="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
aload 1
iconst_0
invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
ifnonnull 13
12: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
aload 1
bipush 7
getstatic jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED:Ljdk/nashorn/internal/runtime/Undefined;
invokevirtual jdk.nashorn.internal.runtime.ScriptObject.addOwnProperty:(Ljava/lang/Object;ILjava/lang/Object;)Ljdk/nashorn/internal/runtime/Property;
pop
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 14 1 symbolName Ljava/lang/String;
MethodParameters:
Name Flags
symbolName final
private java.lang.Object evaluateSafely(jdk.nashorn.internal.ir.Expression);
descriptor: (Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
instanceof jdk.nashorn.internal.ir.IdentNode
ifeq 4
1: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
ifnonnull 2
aconst_null
goto 3
StackMap locals:
StackMap stack:
2: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
aload 1
checkcast jdk.nashorn.internal.ir.IdentNode
invokevirtual jdk.nashorn.internal.ir.IdentNode.getName:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.codegen.TypeEvaluator.evaluatePropertySafely:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
3: areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.ir.AccessNode
ifeq 10
5: aload 1
checkcast jdk.nashorn.internal.ir.AccessNode
astore 2
start local 2 6: aload 0
aload 2
invokevirtual jdk.nashorn.internal.ir.AccessNode.getBase:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.TypeEvaluator.evaluateSafely:(Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/Object;
astore 3
start local 3 7: aload 3
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifne 9
8: aconst_null
areturn
9: StackMap locals: jdk.nashorn.internal.ir.AccessNode java.lang.Object
StackMap stack:
aload 3
checkcast jdk.nashorn.internal.runtime.ScriptObject
aload 2
invokevirtual jdk.nashorn.internal.ir.AccessNode.getProperty:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.codegen.TypeEvaluator.evaluatePropertySafely:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 3 end local 2 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 11 1 expr Ljdk/nashorn/internal/ir/Expression;
6 10 2 accessNode Ljdk/nashorn/internal/ir/AccessNode;
7 10 3 base Ljava/lang/Object;
MethodParameters:
Name Flags
expr final
private static java.lang.Object evaluatePropertySafely(jdk.nashorn.internal.runtime.ScriptObject, java.lang.String);
descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual jdk.nashorn.internal.runtime.ScriptObject.findProperty:(Ljava/lang/Object;Z)Ljdk/nashorn/internal/runtime/FindProperty;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: jdk.nashorn.internal.runtime.FindProperty
StackMap stack:
aload 2
invokevirtual jdk.nashorn.internal.runtime.FindProperty.getProperty:()Ljdk/nashorn/internal/runtime/Property;
astore 3
start local 3 4: aload 2
invokevirtual jdk.nashorn.internal.runtime.FindProperty.getOwner:()Ljdk/nashorn/internal/runtime/ScriptObject;
astore 4
start local 4 5: aload 3
aload 4
invokevirtual jdk.nashorn.internal.runtime.Property.hasGetterFunction:(Ljdk/nashorn/internal/runtime/ScriptObject;)Z
ifeq 7
6: aconst_null
areturn
7: StackMap locals: jdk.nashorn.internal.runtime.Property jdk.nashorn.internal.runtime.ScriptObject
StackMap stack:
aload 3
aload 4
aload 4
invokevirtual jdk.nashorn.internal.runtime.Property.getObjectValue:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/Object;
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 sobj Ljdk/nashorn/internal/runtime/ScriptObject;
0 8 1 name Ljava/lang/String;
1 8 2 find Ljdk/nashorn/internal/runtime/FindProperty;
4 8 3 property Ljdk/nashorn/internal/runtime/Property;
5 8 4 owner Ljdk/nashorn/internal/runtime/ScriptObject;
MethodParameters:
Name Flags
sobj final
name final
private jdk.nashorn.internal.codegen.types.Type getEvaluatedType(jdk.nashorn.internal.ir.Optimistic);
descriptor: (Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
instanceof jdk.nashorn.internal.ir.IdentNode
ifeq 4
1: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
aload 1
checkcast jdk.nashorn.internal.ir.IdentNode
invokevirtual jdk.nashorn.internal.ir.IdentNode.getName:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.codegen.TypeEvaluator.getPropertyType:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/types/Type;
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.ir.AccessNode
ifeq 10
5: aload 1
checkcast jdk.nashorn.internal.ir.AccessNode
astore 2
start local 2 6: aload 0
aload 2
invokevirtual jdk.nashorn.internal.ir.AccessNode.getBase:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.TypeEvaluator.evaluateSafely:(Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/Object;
astore 3
start local 3 7: aload 3
instanceof jdk.nashorn.internal.runtime.ScriptObject
ifne 9
8: aconst_null
areturn
9: StackMap locals: jdk.nashorn.internal.ir.AccessNode java.lang.Object
StackMap stack:
aload 3
checkcast jdk.nashorn.internal.runtime.ScriptObject
aload 2
invokevirtual jdk.nashorn.internal.ir.AccessNode.getProperty:()Ljava/lang/String;
invokestatic jdk.nashorn.internal.codegen.TypeEvaluator.getPropertyType:(Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/String;)Ljdk/nashorn/internal/codegen/types/Type;
areturn
end local 3 end local 2 10: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.ir.IndexNode
ifeq 15
11: aload 1
checkcast jdk.nashorn.internal.ir.IndexNode
astore 2
start local 2 12: aload 0
aload 2
invokevirtual jdk.nashorn.internal.ir.IndexNode.getBase:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.TypeEvaluator.evaluateSafely:(Ljdk/nashorn/internal/ir/Expression;)Ljava/lang/Object;
astore 3
start local 3 13: aload 3
instanceof jdk.nashorn.internal.objects.NativeArray
ifne 14
aload 3
instanceof jdk.nashorn.internal.objects.ArrayBufferView
ifeq 28
14: StackMap locals: jdk.nashorn.internal.ir.IndexNode java.lang.Object
StackMap stack:
aload 3
checkcast jdk.nashorn.internal.runtime.ScriptObject
invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getArray:()Ljdk/nashorn/internal/runtime/arrays/ArrayData;
invokevirtual jdk.nashorn.internal.runtime.arrays.ArrayData.getOptimisticType:()Ljdk/nashorn/internal/codegen/types/Type;
areturn
end local 3 end local 2 15: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.nashorn.internal.ir.CallNode
ifeq 28
16: aload 1
checkcast jdk.nashorn.internal.ir.CallNode
astore 2
start local 2 17: aload 2
invokevirtual jdk.nashorn.internal.ir.CallNode.getFunction:()Ljdk/nashorn/internal/ir/Expression;
astore 3
start local 3 18: aload 3
instanceof jdk.nashorn.internal.ir.FunctionNode
ifeq 28
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.getContext:()Ljdk/nashorn/internal/runtime/Context;
invokevirtual jdk.nashorn.internal.runtime.Context.getEnv:()Ljdk/nashorn/internal/runtime/ScriptEnvironment;
getfield jdk.nashorn.internal.runtime.ScriptEnvironment._lazy_compilation:Z
ifeq 28
19: aload 3
checkcast jdk.nashorn.internal.ir.FunctionNode
astore 4
start local 4 20: aload 2
invokevirtual jdk.nashorn.internal.ir.CallNode.getArgs:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 28
21: aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
aload 4
invokevirtual jdk.nashorn.internal.ir.FunctionNode.getId:()I
invokevirtual jdk.nashorn.internal.codegen.Compiler.getScriptFunctionData:(I)Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
astore 5
start local 5 22: aload 5
ifnull 28
23: aload 5
getstatic jdk.nashorn.internal.codegen.TypeEvaluator.EMPTY_INVOCATION_TYPE:Ljava/lang/invoke/MethodType;
aload 0
getfield jdk.nashorn.internal.codegen.TypeEvaluator.runtimeScope:Ljdk/nashorn/internal/runtime/ScriptObject;
invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getReturnType:(Ljava/lang/invoke/MethodType;Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/Class;
invokestatic jdk.nashorn.internal.codegen.types.Type.typeFor:(Ljava/lang/Class;)Ljdk/nashorn/internal/codegen/types/Type;
astore 6
start local 6 24: aload 6
getstatic jdk.nashorn.internal.codegen.types.Type.BOOLEAN:Ljdk/nashorn/internal/codegen/types/Type;
if_acmpne 26
25: getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
areturn
26: StackMap locals: jdk.nashorn.internal.codegen.TypeEvaluator jdk.nashorn.internal.ir.Optimistic jdk.nashorn.internal.ir.CallNode jdk.nashorn.internal.ir.Expression jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.RecompilableScriptFunctionData jdk.nashorn.internal.codegen.types.Type
StackMap stack:
getstatic jdk.nashorn.internal.codegen.TypeEvaluator.$assertionsDisabled:Z
ifne 27
aload 6
getstatic jdk.nashorn.internal.codegen.types.Type.INT:Ljdk/nashorn/internal/codegen/types/BitwiseType;
if_acmpeq 27
aload 6
getstatic jdk.nashorn.internal.codegen.types.Type.NUMBER:Ljdk/nashorn/internal/codegen/types/NumericType;
if_acmpeq 27
aload 6
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
if_acmpeq 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 28: StackMap locals: jdk.nashorn.internal.codegen.TypeEvaluator jdk.nashorn.internal.ir.Optimistic
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/nashorn/internal/codegen/TypeEvaluator;
0 29 1 expr Ljdk/nashorn/internal/ir/Optimistic;
6 10 2 accessNode Ljdk/nashorn/internal/ir/AccessNode;
7 10 3 base Ljava/lang/Object;
12 15 2 indexNode Ljdk/nashorn/internal/ir/IndexNode;
13 15 3 base Ljava/lang/Object;
17 28 2 callExpr Ljdk/nashorn/internal/ir/CallNode;
18 28 3 fnExpr Ljdk/nashorn/internal/ir/Expression;
20 28 4 fn Ljdk/nashorn/internal/ir/FunctionNode;
22 28 5 data Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
24 28 6 returnType Ljdk/nashorn/internal/codegen/types/Type;
MethodParameters:
Name Flags
expr final
}
SourceFile: "TypeEvaluator.java"