abstract class jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
super_class: java.lang.Object
{
final boolean isOptimistic;
descriptor: Z
flags: (0x0010) ACC_FINAL
private final jdk.nashorn.internal.ir.Expression expression;
descriptor: Ljdk/nashorn/internal/ir/Expression;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.nashorn.internal.ir.Optimistic optimistic;
descriptor: Ljdk/nashorn/internal/ir/Optimistic;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds resultBounds;
descriptor: Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final jdk.nashorn.internal.codegen.CodeGenerator this$0;
descriptor: Ljdk/nashorn/internal/codegen/CodeGenerator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
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=1, locals=0, args_size=0
0: ldc Ljdk/nashorn/internal/codegen/CodeGenerator;
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.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.nashorn.internal.codegen.CodeGenerator, jdk.nashorn.internal.ir.Optimistic, jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds);
descriptor: (Ljdk/nashorn/internal/codegen/CodeGenerator;Ljdk/nashorn/internal/ir/Optimistic;Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
2: aload 0
aload 2
checkcast jdk.nashorn.internal.ir.Expression
putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
3: aload 0
aload 3
putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
4: aload 0
aload 2
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.isOptimistic:(Ljdk/nashorn/internal/ir/Optimistic;)Z
ifeq 6
5: aload 3
aload 2
checkcast jdk.nashorn.internal.ir.Expression
invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
invokestatic jdk.nashorn.internal.codegen.types.Type.generic:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
aload 3
getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.widest:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.narrowerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifeq 6
iconst_1
goto 7
StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation jdk.nashorn.internal.codegen.CodeGenerator jdk.nashorn.internal.ir.Optimistic jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds
StackMap stack: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation
6: iconst_0
7: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation jdk.nashorn.internal.codegen.CodeGenerator jdk.nashorn.internal.ir.Optimistic jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds
StackMap stack: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int
putfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
8: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 9
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 9
aload 1
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.useOptimisticTypes:()Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 10 2 optimistic Ljdk/nashorn/internal/ir/Optimistic;
0 10 3 resultBounds Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
MethodParameters:
Name Flags
this$0 final
optimistic final
resultBounds final
jdk.nashorn.internal.codegen.MethodEmitter emit();
descriptor: ()Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.emit:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
jdk.nashorn.internal.codegen.MethodEmitter emit(int);
descriptor: (I)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x0000)
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
istore 2
start local 2 1: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifne 2
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
iload 2
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.isContinuationEntryPoint:(I)Z
ifne 2
iconst_0
goto 3
StackMap locals: int
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
iload 2
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.isCurrentContinuationEntryPoint:(I)Z
istore 4
start local 4 5: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
iload 1
isub
istore 5
start local 5 6: aload 0
iload 1
iload 3
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.storeStack:(IZ)I
pop
7: aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.loadStack:()V
8: aload 0
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
iload 5
isub
iload 3
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.storeStack:(IZ)I
istore 6
start local 6 9: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 12
iload 3
iload 6
iconst_m1
if_icmpeq 10
iconst_1
goto 11
StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int
StackMap stack: int
10: iconst_0
StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int
StackMap stack: int int
11: if_icmpeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifne 13
iload 4
ifeq 14
StackMap locals:
StackMap stack:
13: new jdk.nashorn.internal.codegen.Label
dup
ldc "after_consume_stack"
invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
goto 15
StackMap locals:
StackMap stack:
14: aconst_null
StackMap locals:
StackMap stack: jdk.nashorn.internal.codegen.Label
15: astore 9
start local 9 16: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 24
17: new jdk.nashorn.internal.codegen.Label
dup
ldc "try_optimistic"
invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
astore 7
start local 7 18: new java.lang.StringBuilder
dup
aload 9
ifnonnull 19
ldc ""
goto 20
StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label top jdk.nashorn.internal.codegen.Label
StackMap stack: new 18 new 18
19: aload 9
invokevirtual jdk.nashorn.internal.codegen.Label.toString:()Ljava/lang/String;
StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label top jdk.nashorn.internal.codegen.Label
StackMap stack: new 18 new 18 java.lang.String
20: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_handler"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
start local 10 21: new jdk.nashorn.internal.codegen.Label
dup
aload 10
invokespecial jdk.nashorn.internal.codegen.Label.<init>:(Ljava/lang/String;)V
astore 8
start local 8 22: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 7
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.label:(Ljdk/nashorn/internal/codegen/Label;)V
end local 10 23: goto 26
end local 8 end local 7 24: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int top top jdk.nashorn.internal.codegen.Label
StackMap stack:
aconst_null
dup
astore 8
start local 8 25: astore 7
start local 7 26: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.consumeStack:()V
27: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 29
28: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 7
aload 9
aload 8
ldc Ljdk/nashorn/internal/runtime/UnwarrantedOptimismException;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter._try:(Ljdk/nashorn/internal/codegen/Label;Ljdk/nashorn/internal/codegen/Label;Ljdk/nashorn/internal/codegen/Label;Ljava/lang/Class;)V
29: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifne 30
iload 4
ifeq 52
30: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 9
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.label:(Ljdk/nashorn/internal/codegen/Label;)V
31: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
iconst_0
iload 5
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalLoadsOnStack:(II)[I
astore 10
start local 10 32: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 33
aload 10
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.everyStackValueIsLocalLoad:([I)Z
ifne 33
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 10
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
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;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
33: StackMap locals: int[]
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalVariableTypes:()Ljava/util/List;
astore 11
start local 11 34: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getUsedSlotsWithLiveTemporaries:()I
istore 12
start local 12 35: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 11
iconst_0
iload 12
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getWidestLiveLocals:(Ljava/util/List;)Ljava/util/List;
astore 13
start local 13 36: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 37
aload 10
iload 12
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.everyLocalLoadIsValid:([II)Z
ifne 37
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 10
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ~ "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 13
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
37: StackMap locals: java.util.List int java.util.List
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 39
38: aload 0
aload 13
aload 8
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.addUnwarrantedOptimismHandlerLabel:(Ljava/util/List;Ljdk/nashorn/internal/codegen/Label;)V
39: StackMap locals:
StackMap stack:
iload 4
ifeq 52
40: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getContinuationInfo:()Ljdk/nashorn/internal/codegen/CodeGenerator$ContinuationInfo;
astore 14
start local 14 41: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 42
aload 14
ifnonnull 42
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "no continuation info found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.access$0:(Ljdk/nashorn/internal/codegen/CodeGenerator;)Ljdk/nashorn/internal/ir/LexicalContext;
checkcast jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext
invokevirtual jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext.getCurrentFunction:()Ljdk/nashorn/internal/ir/FunctionNode;
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
42: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo
StackMap stack:
getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 43
aload 14
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.hasTargetLabel:()Z
ifeq 43
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
43: StackMap locals:
StackMap stack:
aload 14
aload 9
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setTargetLabel:(Ljdk/nashorn/internal/codegen/Label;)V
44: aload 14
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getHandlerLabel:()Ljdk/nashorn/internal/codegen/Label;
aload 9
invokevirtual jdk.nashorn.internal.codegen.Label.markAsOptimisticContinuationHandlerFor:(Ljdk/nashorn/internal/codegen/Label;)V
45: aload 14
aload 13
invokeinterface java.util.List.size:()I
putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.lvarCount:I
46: aload 14
aload 10
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setStackStoreSpec:([I)V
47: aload 14
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getTypesFromStack:(I)[Ljdk/nashorn/internal/codegen/types/Type;
iload 5
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast jdk.nashorn.internal.codegen.types.Type[]
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setStackTypes:([Ljdk/nashorn/internal/codegen/types/Type;)V
48: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 49
aload 14
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getStackStoreSpec:()[I
arraylength
aload 14
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.getStackTypes:()[Ljdk/nashorn/internal/codegen/types/Type;
arraylength
if_icmpeq 49
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
49: StackMap locals:
StackMap stack:
aload 14
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.peekType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.setReturnValueType:(Ljdk/nashorn/internal/codegen/types/Type;)V
50: aload 14
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getLastLineNumber:()I
putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.lineNumber:I
51: aload 14
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.catchLabels:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast jdk.nashorn.internal.codegen.Label
putfield jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo.catchLabel:Ljdk/nashorn/internal/codegen/Label;
end local 14 end local 13 end local 12 end local 11 end local 10 52: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int int int int jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label jdk.nashorn.internal.codegen.Label
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
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 53 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 53 1 ignoredArgCount I
1 53 2 programPoint I
4 53 3 optimisticOrContinuation Z
5 53 4 currentContinuationEntryPoint Z
6 53 5 stackSizeOnEntry I
9 53 6 liveLocalsCount I
18 24 7 beginTry Ljdk/nashorn/internal/codegen/Label;
26 53 7 beginTry Ljdk/nashorn/internal/codegen/Label;
22 24 8 catchLabel Ljdk/nashorn/internal/codegen/Label;
25 53 8 catchLabel Ljdk/nashorn/internal/codegen/Label;
16 53 9 afterConsumeStack Ljdk/nashorn/internal/codegen/Label;
21 23 10 catchLabelName Ljava/lang/String;
32 52 10 localLoads [I
34 52 11 localTypesList Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
35 52 12 usedLocals I
36 52 13 localTypes Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
41 52 14 ci Ljdk/nashorn/internal/codegen/CodeGenerator$ContinuationInfo;
MethodParameters:
Name Flags
ignoredArgCount final
private int storeStack(int, boolean);
descriptor: (IZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=19, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getStackSize:()I
istore 3
start local 3 3: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
iload 3
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getTypesFromStack:(I)[Ljdk/nashorn/internal/codegen/types/Type;
astore 4
start local 4 4: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
iconst_0
iload 3
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalLoadsOnStack:(II)[I
astore 5
start local 5 5: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getUsedSlotsWithLiveTemporaries:()I
istore 6
start local 6 6: iload 3
iload 1
isub
istore 7
start local 7 7: iconst_0
istore 8
start local 8 8: goto 10
9: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int jdk.nashorn.internal.codegen.types.Type[] int[] int int int
StackMap stack:
iinc 8 1
10: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmpge 11
aload 5
iload 8
iaload
iconst_m1
if_icmpne 9
11: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmplt 13
12: iload 6
ireturn
13: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 14: iload 8
istore 10
start local 10 15: goto 19
16: StackMap locals: int int
StackMap stack:
aload 5
iload 10
iaload
iconst_m1
if_icmpne 18
17: iload 9
aload 4
iload 10
aaload
invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
iadd
istore 9
18: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
19: iload 10
iload 3
if_icmplt 16
end local 10 20: iload 6
iload 9
iadd
istore 10
start local 10 21: iconst_0
istore 11
start local 11 22: iload 3
istore 12
start local 12 23: goto 34
24: StackMap locals: int int
StackMap stack:
aload 5
iload 12
iaload
istore 13
start local 13 25: iload 13
iconst_m1
if_icmpne 33
26: aload 4
iload 12
aaload
astore 14
start local 14 27: aload 14
invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
istore 15
start local 15 28: iload 10
iload 15
isub
istore 10
29: iload 12
iload 7
if_icmplt 31
30: iload 11
iload 15
iadd
istore 11
31: StackMap locals: int jdk.nashorn.internal.codegen.types.Type int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 14
iload 10
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.storeTemp:(Ljdk/nashorn/internal/codegen/types/Type;I)V
end local 15 end local 14 32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.pop:()Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
end local 13 34: StackMap locals:
StackMap stack:
iload 12
iinc 12 -1
iload 8
if_icmpgt 24
end local 12 35: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 36
iload 10
iload 6
if_icmpeq 36
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
36: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.getLocalVariableTypes:()Ljava/util/List;
astore 12
start local 12 37: iload 8
istore 13
start local 13 38: goto 55
39: StackMap locals: java.util.List int
StackMap stack:
aload 5
iload 13
iaload
istore 14
start local 14 40: aload 4
iload 13
aaload
astore 15
start local 15 41: iload 14
iconst_m1
if_icmpeq 42
iconst_1
goto 43
StackMap locals: int jdk.nashorn.internal.codegen.types.Type
StackMap stack:
42: iconst_0
StackMap locals:
StackMap stack: int
43: istore 16
start local 16 44: iload 16
ifeq 45
iload 14
goto 46
StackMap locals: int
StackMap stack:
45: iload 10
StackMap locals:
StackMap stack: int
46: istore 17
start local 17 47: aload 12
iload 17
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast jdk.nashorn.internal.codegen.types.Type
astore 18
start local 18 48: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 18
iload 17
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljdk/nashorn/internal/codegen/types/Type;I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
49: iload 16
ifeq 52
50: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 15
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.convert:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
51: goto 54
52: StackMap locals: int jdk.nashorn.internal.codegen.types.Type
StackMap stack:
getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 53
aload 18
aload 15
if_acmpeq 53
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
53: StackMap locals:
StackMap stack:
iload 10
aload 18
invokevirtual jdk.nashorn.internal.codegen.types.Type.getSlots:()I
iadd
istore 10
end local 18 end local 17 end local 16 end local 15 end local 14 54: StackMap locals: jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation int int int jdk.nashorn.internal.codegen.types.Type[] int[] int int int int int int java.util.List int
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
55: iload 13
iload 3
if_icmplt 39
end local 13 56: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 57
iload 10
iload 6
iload 9
iadd
if_icmpeq 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals:
StackMap stack:
iload 10
iload 11
isub
ireturn
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 58 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 58 1 ignoreArgCount I
0 58 2 optimisticOrContinuation Z
3 58 3 stackSize I
4 58 4 stackTypes [Ljdk/nashorn/internal/codegen/types/Type;
5 58 5 localLoadsOnStack [I
6 58 6 usedSlots I
7 58 7 firstIgnored I
8 58 8 firstNonLoad I
14 58 9 tempSlotsNeeded I
15 20 10 i I
21 58 10 lastTempSlot I
22 58 11 ignoreSlotCount I
23 35 12 i I
25 34 13 loadSlot I
27 32 14 type Ljdk/nashorn/internal/codegen/types/Type;
28 32 15 slots I
37 58 12 localTypesList Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
38 56 13 i I
40 54 14 loadSlot I
41 54 15 stackType Ljdk/nashorn/internal/codegen/types/Type;
44 54 16 isLoad Z
47 54 17 lvarSlot I
48 54 18 lvarType Ljdk/nashorn/internal/codegen/types/Type;
MethodParameters:
Name Flags
ignoreArgCount final
optimisticOrContinuation final
private void addUnwarrantedOptimismHandlerLabel(java.util.List<jdk.nashorn.internal.codegen.types.Type>, jdk.nashorn.internal.codegen.Label);
descriptor: (Ljava/util/List;Ljdk/nashorn/internal/codegen/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
aload 1
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getLvarTypesDescriptor:(Ljava/util/List;)Ljava/lang/String;
astore 3
start local 3 1: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.access$0:(Ljdk/nashorn/internal/codegen/CodeGenerator;)Ljdk/nashorn/internal/ir/LexicalContext;
checkcast jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext
invokevirtual jdk.nashorn.internal.codegen.CodeGeneratorLexicalContext.getUnwarrantedOptimismHandlers:()Ljava/util/Map;
astore 4
start local 4 2: aload 4
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Collection
astore 5
start local 5 3: aload 5
ifnonnull 6
4: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 5
5: aload 4
aload 3
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.lang.String java.util.Map java.util.Collection
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 2
aload 1
invokeinterface java.util.List.size:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.markLabelAsOptimisticCatchHandler:(Ljdk/nashorn/internal/codegen/Label;I)V
7: aload 5
aload 2
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
8: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 9 1 localTypes Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;
0 9 2 label Ljdk/nashorn/internal/codegen/Label;
1 9 3 lvarTypesDescriptor Ljava/lang/String;
2 9 4 unwarrantedOptimismHandlers Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<Ljdk/nashorn/internal/codegen/Label;>;>;
3 9 5 labels Ljava/util/Collection<Ljdk/nashorn/internal/codegen/Label;>;
Signature: (Ljava/util/List<Ljdk/nashorn/internal/codegen/types/Type;>;Ljdk/nashorn/internal/codegen/Label;)V
MethodParameters:
Name Flags
localTypes final
label final
abstract void loadStack();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
abstract void consumeStack();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
jdk.nashorn.internal.codegen.MethodEmitter dynamicGet(java.lang.String, int, boolean, boolean);
descriptor: (Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x0000)
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
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 2
1: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
aload 1
aload 0
iload 2
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
iload 3
iload 4
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGet:(Ljdk/nashorn/internal/codegen/types/Type;Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
aload 1
iload 2
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
iload 3
iload 4
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGet:(Ljdk/nashorn/internal/codegen/types/Type;Ljava/lang/String;IZZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
end local 4 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/CodeGenerator$OptimisticOperation;
0 3 1 name Ljava/lang/String;
0 3 2 flags I
0 3 3 isMethod Z
0 3 4 isIndex Z
MethodParameters:
Name Flags
name final
flags final
isMethod final
isIndex final
jdk.nashorn.internal.codegen.MethodEmitter dynamicGetIndex(int, boolean);
descriptor: (IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 2
1: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
aload 0
iload 1
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
iload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGetIndex:(Ljdk/nashorn/internal/codegen/types/Type;IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
iload 1
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
iload 2
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicGetIndex:(Ljdk/nashorn/internal/codegen/types/Type;IZ)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 3 1 flags I
0 3 2 isMethod Z
MethodParameters:
Name Flags
flags final
isMethod final
jdk.nashorn.internal.codegen.MethodEmitter dynamicCall(int, int, java.lang.String);
descriptor: (IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 2
1: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
iload 1
aload 0
iload 2
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticFlags:(I)I
aload 3
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicCall:(Ljdk/nashorn/internal/codegen/types/Type;IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.within:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/types/Type;
iload 1
iload 2
invokestatic jdk.nashorn.internal.codegen.CodeGenerator.nonOptimisticFlags:(I)I
aload 3
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.dynamicCall:(Ljdk/nashorn/internal/codegen/types/Type;IILjava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
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/CodeGenerator$OptimisticOperation;
0 3 1 argCount I
0 3 2 flags I
0 3 3 msg Ljava/lang/String;
MethodParameters:
Name Flags
argCount final
flags final
msg final
int getOptimisticFlags(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
sipush 128
ior
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
bipush 15
ishl
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 1 1 flags I
MethodParameters:
Name Flags
flags final
int getProgramPoint();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 1
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_m1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
void convertOptimisticReturnValue();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.isOptimistic:Z
ifeq 11
1: aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.getOptimisticCoercedType:()Ljdk/nashorn/internal/codegen/types/Type;
astore 1
start local 1 2: aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
ifne 11
3: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.optimistic:Ljdk/nashorn/internal/ir/Optimistic;
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
4: aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.isInteger:()Z
ifeq 7
5: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
getstatic jdk.nashorn.internal.codegen.CodeGenerator.ENSURE_INT: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: goto 11
StackMap locals: jdk.nashorn.internal.codegen.types.Type
StackMap stack:
7: aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.isNumber:()Z
ifeq 10
8: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
getstatic jdk.nashorn.internal.codegen.CodeGenerator.ENSURE_NUMBER: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
9: goto 11
10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
2 11 1 optimisticType Ljdk/nashorn/internal/codegen/types/Type;
void replaceCompileTimeProperty();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
checkcast jdk.nashorn.internal.ir.IdentNode
astore 1
start local 1 1: aload 1
invokevirtual jdk.nashorn.internal.ir.IdentNode.getSymbol:()Ljdk/nashorn/internal/ir/Symbol;
invokevirtual jdk.nashorn.internal.ir.Symbol.getName:()Ljava/lang/String;
astore 2
start local 2 2: getstatic jdk.nashorn.internal.codegen.CompilerConstants.__FILE__:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
3: aload 0
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
invokevirtual jdk.nashorn.internal.runtime.Source.getName:()Ljava/lang/String;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
4: goto 10
StackMap locals: jdk.nashorn.internal.ir.IdentNode java.lang.String
StackMap stack:
5: getstatic jdk.nashorn.internal.codegen.CompilerConstants.__DIR__:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 0
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
invokevirtual jdk.nashorn.internal.runtime.Source.getBase:()Ljava/lang/String;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
7: goto 10
StackMap locals:
StackMap stack:
8: getstatic jdk.nashorn.internal.codegen.CompilerConstants.__LINE__:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.name:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: aload 0
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.getCurrentSource:()Ljdk/nashorn/internal/runtime/Source;
aload 1
invokevirtual jdk.nashorn.internal.ir.IdentNode.position:()I
invokevirtual jdk.nashorn.internal.runtime.Source.getLine:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.replaceCompileTimeProperty:(Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
1 11 1 identNode Ljdk/nashorn/internal/ir/IdentNode;
2 11 2 name Ljava/lang/String;
private void replaceCompileTimeProperty(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.peekType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.String
ifne 2
aload 1
ifnonnull 4
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 1
checkcast java.lang.String
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(Ljava/lang/String;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
3: goto 9
StackMap locals:
StackMap stack:
4: aload 1
instanceof java.lang.Integer
ifeq 8
5: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
aload 1
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.load:(I)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
6: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
getfield jdk.nashorn.internal.codegen.CodeGenerator.method:Ljdk/nashorn/internal/codegen/MethodEmitter;
getstatic jdk.nashorn.internal.codegen.types.Type.OBJECT:Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.codegen.MethodEmitter.convert:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
7: goto 9
8: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.this$0:Ljdk/nashorn/internal/codegen/CodeGenerator;
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator.globalReplaceLocationPropertyPlaceholder:()Ljdk/nashorn/internal/codegen/MethodEmitter;
pop
10: aload 0
invokevirtual jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.convertOptimisticReturnValue:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
0 12 1 propertyValue Ljava/lang/Object;
MethodParameters:
Name Flags
propertyValue final
jdk.nashorn.internal.codegen.types.Type getOptimisticCoercedType();
descriptor: ()Ljdk/nashorn/internal/codegen/types/Type;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.expression:Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.ir.Expression.getType:()Ljdk/nashorn/internal/codegen/types/Type;
astore 1
start local 1 1: getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 2
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.widest:Ljdk/nashorn/internal/codegen/types/Type;
aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.widerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: jdk.nashorn.internal.codegen.types.Type
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.resultBounds:Ljdk/nashorn/internal/codegen/CodeGenerator$TypeBounds;
getfield jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds.narrowest:Ljdk/nashorn/internal/codegen/types/Type;
astore 2
start local 2 3: aload 2
invokevirtual jdk.nashorn.internal.codegen.types.Type.isBoolean:()Z
ifne 4
aload 2
aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.narrowerThan:(Ljdk/nashorn/internal/codegen/types/Type;)Z
ifeq 6
4: StackMap locals: jdk.nashorn.internal.codegen.types.Type
StackMap stack:
getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 5
aload 1
invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
areturn
6: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation.$assertionsDisabled:Z
ifne 7
aload 2
invokevirtual jdk.nashorn.internal.codegen.types.Type.isObject:()Z
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/nashorn/internal/codegen/CodeGenerator$OptimisticOperation;
1 8 1 optimisticType Ljdk/nashorn/internal/codegen/types/Type;
3 8 2 narrowest Ljdk/nashorn/internal/codegen/types/Type;
}
SourceFile: "CodeGenerator.java"
NestHost: jdk.nashorn.internal.codegen.CodeGenerator
InnerClasses:
private ContinuationInfo = jdk.nashorn.internal.codegen.CodeGenerator$ContinuationInfo of jdk.nashorn.internal.codegen.CodeGenerator
private abstract OptimisticOperation = jdk.nashorn.internal.codegen.CodeGenerator$OptimisticOperation of jdk.nashorn.internal.codegen.CodeGenerator
private final TypeBounds = jdk.nashorn.internal.codegen.CodeGenerator$TypeBounds of jdk.nashorn.internal.codegen.CodeGenerator
public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants