final class jdk.nashorn.internal.codegen.OptimisticTypesCalculator extends jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.codegen.OptimisticTypesCalculator
super_class: jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
{
final jdk.nashorn.internal.codegen.Compiler compiler;
descriptor: Ljdk/nashorn/internal/codegen/Compiler;
flags: (0x0010) ACC_FINAL
final java.util.Deque<java.util.BitSet> neverOptimistic;
descriptor: Ljava/util/Deque;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Deque<Ljava/util/BitSet;>;
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/OptimisticTypesCalculator;
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.OptimisticTypesCalculator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.nashorn.internal.codegen.Compiler);
descriptor: (Ljdk/nashorn/internal/codegen/Compiler;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
2: aload 0
aload 1
putfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 4 1 compiler Ljdk/nashorn/internal/codegen/Compiler;
MethodParameters:
Name Flags
compiler final
public boolean enterAccessNode(jdk.nashorn.internal.ir.AccessNode);
descriptor: (Ljdk/nashorn/internal/ir/AccessNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.AccessNode.getBase:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 accessNode Ljdk/nashorn/internal/ir/AccessNode;
MethodParameters:
Name Flags
accessNode final
public boolean enterPropertyNode(jdk.nashorn.internal.ir.PropertyNode);
descriptor: (Ljdk/nashorn/internal/ir/PropertyNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "__proto__"
aload 1
invokevirtual jdk.nashorn.internal.ir.PropertyNode.getKeyName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.PropertyNode.getValue:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.enterPropertyNode:(Ljdk/nashorn/internal/ir/PropertyNode;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 3 1 propertyNode Ljdk/nashorn/internal/ir/PropertyNode;
MethodParameters:
Name Flags
propertyNode final
public boolean enterBinaryNode(jdk.nashorn.internal.ir.BinaryNode);
descriptor: (Ljdk/nashorn/internal/ir/BinaryNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.isAssignment:()Z
ifeq 9
1: aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.lhs:()Ljdk/nashorn/internal/ir/Expression;
astore 2
start local 2 2: aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.isSelfModifying:()Z
ifne 4
3: aload 0
aload 2
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
4: StackMap locals: jdk.nashorn.internal.ir.Expression
StackMap stack:
aload 2
instanceof jdk.nashorn.internal.ir.IdentNode
ifeq 14
5: aload 2
checkcast jdk.nashorn.internal.ir.IdentNode
invokevirtual jdk.nashorn.internal.ir.IdentNode.getSymbol:()Ljdk/nashorn/internal/ir/Symbol;
astore 3
start local 3 6: aload 3
invokevirtual jdk.nashorn.internal.ir.Symbol.isInternal:()Z
ifeq 14
aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.rhs:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.ir.Expression.isSelfModifying:()Z
ifne 14
7: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.rhs:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
end local 3 end local 2 8: goto 14
StackMap locals:
StackMap stack:
9: aload 1
getstatic jdk.nashorn.internal.parser.TokenType.INSTANCEOF:Ljdk/nashorn/internal/parser/TokenType;
invokevirtual jdk.nashorn.internal.ir.BinaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
ifne 12
10: aload 1
getstatic jdk.nashorn.internal.parser.TokenType.EQ_STRICT:Ljdk/nashorn/internal/parser/TokenType;
invokevirtual jdk.nashorn.internal.ir.BinaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
ifne 12
11: aload 1
getstatic jdk.nashorn.internal.parser.TokenType.NE_STRICT:Ljdk/nashorn/internal/parser/TokenType;
invokevirtual jdk.nashorn.internal.ir.BinaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
ifeq 14
12: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.lhs:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
13: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.BinaryNode.rhs:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
14: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 15 1 binaryNode Ljdk/nashorn/internal/ir/BinaryNode;
2 8 2 lhs Ljdk/nashorn/internal/ir/Expression;
6 8 3 symbol Ljdk/nashorn/internal/ir/Symbol;
MethodParameters:
Name Flags
binaryNode final
public boolean enterCallNode(jdk.nashorn.internal.ir.CallNode);
descriptor: (Ljdk/nashorn/internal/ir/CallNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.CallNode.getFunction:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 callNode Ljdk/nashorn/internal/ir/CallNode;
MethodParameters:
Name Flags
callNode final
public boolean enterCatchNode(jdk.nashorn.internal.ir.CatchNode);
descriptor: (Ljdk/nashorn/internal/ir/CatchNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.CatchNode.getExceptionCondition:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 catchNode Ljdk/nashorn/internal/ir/CatchNode;
MethodParameters:
Name Flags
catchNode final
public boolean enterExpressionStatement(jdk.nashorn.internal.ir.ExpressionStatement);
descriptor: (Ljdk/nashorn/internal/ir/ExpressionStatement;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.ExpressionStatement.getExpression:()Ljdk/nashorn/internal/ir/Expression;
astore 2
start local 2 1: aload 2
invokevirtual jdk.nashorn.internal.ir.Expression.isSelfModifying:()Z
ifne 3
2: aload 0
aload 2
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
3: StackMap locals: jdk.nashorn.internal.ir.Expression
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 4 1 expressionStatement Ljdk/nashorn/internal/ir/ExpressionStatement;
1 4 2 expr Ljdk/nashorn/internal/ir/Expression;
MethodParameters:
Name Flags
expressionStatement final
public boolean enterForNode(jdk.nashorn.internal.ir.ForNode);
descriptor: (Ljdk/nashorn/internal/ir/ForNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.ForNode.isForInOrOf:()Z
ifeq 3
1: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.ForNode.getModify:()Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimisticLoopTest:(Ljdk/nashorn/internal/ir/LoopNode;)V
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 5 1 forNode Ljdk/nashorn/internal/ir/ForNode;
MethodParameters:
Name Flags
forNode final
public boolean enterFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 2
aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.codegen.Compiler.isOnDemandCompilation:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 4 1 functionNode Ljdk/nashorn/internal/ir/FunctionNode;
MethodParameters:
Name Flags
functionNode final
public boolean enterIfNode(jdk.nashorn.internal.ir.IfNode);
descriptor: (Ljdk/nashorn/internal/ir/IfNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.IfNode.getTest:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 ifNode Ljdk/nashorn/internal/ir/IfNode;
MethodParameters:
Name Flags
ifNode final
public boolean enterIndexNode(jdk.nashorn.internal.ir.IndexNode);
descriptor: (Ljdk/nashorn/internal/ir/IndexNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.IndexNode.getBase:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 indexNode Ljdk/nashorn/internal/ir/IndexNode;
MethodParameters:
Name Flags
indexNode final
public boolean enterTernaryNode(jdk.nashorn.internal.ir.TernaryNode);
descriptor: (Ljdk/nashorn/internal/ir/TernaryNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.TernaryNode.getTest:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 ternaryNode Ljdk/nashorn/internal/ir/TernaryNode;
MethodParameters:
Name Flags
ternaryNode final
public boolean enterUnaryNode(jdk.nashorn.internal.ir.UnaryNode);
descriptor: (Ljdk/nashorn/internal/ir/UnaryNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic jdk.nashorn.internal.parser.TokenType.NOT:Ljdk/nashorn/internal/parser/TokenType;
invokevirtual jdk.nashorn.internal.ir.UnaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
ifne 1
aload 1
getstatic jdk.nashorn.internal.parser.TokenType.NEW:Ljdk/nashorn/internal/parser/TokenType;
invokevirtual jdk.nashorn.internal.ir.UnaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.UnaryNode.getExpression:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 3 1 unaryNode Ljdk/nashorn/internal/ir/UnaryNode;
MethodParameters:
Name Flags
unaryNode final
public boolean enterVarNode(jdk.nashorn.internal.ir.VarNode);
descriptor: (Ljdk/nashorn/internal/ir/VarNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.ir.VarNode.getName:()Ljdk/nashorn/internal/ir/IdentNode;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 varNode Ljdk/nashorn/internal/ir/VarNode;
MethodParameters:
Name Flags
varNode final
public boolean enterObjectNode(jdk.nashorn.internal.ir.ObjectNode);
descriptor: (Ljdk/nashorn/internal/ir/ObjectNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.ObjectNode.getSplitRanges:()Ljava/util/List;
ifnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.enterObjectNode:(Ljdk/nashorn/internal/ir/ObjectNode;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 3 1 objectNode Ljdk/nashorn/internal/ir/ObjectNode;
MethodParameters:
Name Flags
objectNode
public boolean enterLiteralNode(jdk.nashorn.internal.ir.LiteralNode<?>);
descriptor: (Ljdk/nashorn/internal/ir/LiteralNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.LiteralNode.isArray:()Z
ifeq 2
aload 1
checkcast jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode
invokevirtual jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode.getSplitRanges:()Ljava/util/List;
ifnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.enterLiteralNode:(Ljdk/nashorn/internal/ir/LiteralNode;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 3 1 literalNode Ljdk/nashorn/internal/ir/LiteralNode<*>;
Signature: (Ljdk/nashorn/internal/ir/LiteralNode<*>;)Z
MethodParameters:
Name Flags
literalNode
public boolean enterWhileNode(jdk.nashorn.internal.ir.WhileNode);
descriptor: (Ljdk/nashorn/internal/ir/WhileNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimisticLoopTest:(Ljdk/nashorn/internal/ir/LoopNode;)V
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 whileNode Ljdk/nashorn/internal/ir/WhileNode;
MethodParameters:
Name Flags
whileNode final
protected jdk.nashorn.internal.ir.Node leaveDefault(jdk.nashorn.internal.ir.Node);
descriptor: (Ljdk/nashorn/internal/ir/Node;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof jdk.nashorn.internal.ir.Optimistic
ifeq 2
1: aload 0
aload 1
checkcast jdk.nashorn.internal.ir.Optimistic
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.leaveOptimistic:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 3 1 node Ljdk/nashorn/internal/ir/Node;
MethodParameters:
Name Flags
node final
public jdk.nashorn.internal.ir.Node leaveFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 2 1 functionNode Ljdk/nashorn/internal/ir/FunctionNode;
MethodParameters:
Name Flags
functionNode final
public jdk.nashorn.internal.ir.Node leaveIdentNode(jdk.nashorn.internal.ir.IdentNode);
descriptor: (Ljdk/nashorn/internal/ir/IdentNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.IdentNode.getSymbol:()Ljdk/nashorn/internal/ir/Symbol;
astore 2
start local 2 1: aload 2
ifnonnull 4
2: getstatic jdk.nashorn.internal.codegen.OptimisticTypesCalculator.$assertionsDisabled:Z
ifne 3
aload 1
invokevirtual jdk.nashorn.internal.ir.IdentNode.isPropertyName:()Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: jdk.nashorn.internal.ir.Symbol
StackMap stack:
aload 1
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.nashorn.internal.ir.Symbol.isBytecodeLocal:()Z
ifeq 6
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.nashorn.internal.ir.Symbol.isParam:()Z
ifeq 8
aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.lc:Ljdk/nashorn/internal/ir/LexicalContext;
invokevirtual jdk.nashorn.internal.ir.LexicalContext.getCurrentFunction:()Ljdk/nashorn/internal/ir/FunctionNode;
invokevirtual jdk.nashorn.internal.ir.FunctionNode.isVarArg:()Z
ifeq 8
7: aload 1
aload 1
invokevirtual jdk.nashorn.internal.ir.IdentNode.getMostPessimisticType:()Ljdk/nashorn/internal/codegen/types/Type;
invokevirtual jdk.nashorn.internal.ir.IdentNode.setType:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/ir/IdentNode;
areturn
8: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.codegen.OptimisticTypesCalculator.$assertionsDisabled:Z
ifne 9
aload 2
invokevirtual jdk.nashorn.internal.ir.Symbol.isScope:()Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.leaveOptimistic:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 10 1 identNode Ljdk/nashorn/internal/ir/IdentNode;
1 10 2 symbol Ljdk/nashorn/internal/ir/Symbol;
MethodParameters:
Name Flags
identNode final
private jdk.nashorn.internal.ir.Expression leaveOptimistic(jdk.nashorn.internal.ir.Optimistic);
descriptor: (Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
istore 2
start local 2 1: iload 2
invokestatic jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid:(I)Z
ifeq 3
aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast java.util.BitSet
iload 2
invokevirtual java.util.BitSet.get:(I)Z
ifne 3
2: aload 1
aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.compiler:Ljdk/nashorn/internal/codegen/Compiler;
aload 1
invokevirtual jdk.nashorn.internal.codegen.Compiler.getOptimisticType:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/codegen/types/Type;
invokeinterface jdk.nashorn.internal.ir.Optimistic.setType:(Ljdk/nashorn/internal/codegen/types/Type;)Ljdk/nashorn/internal/ir/Optimistic;
checkcast jdk.nashorn.internal.ir.Expression
areturn
3: StackMap locals: int
StackMap stack:
aload 1
checkcast jdk.nashorn.internal.ir.Expression
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 4 1 opt Ljdk/nashorn/internal/ir/Optimistic;
1 4 2 pp I
MethodParameters:
Name Flags
opt final
private void tagNeverOptimistic(jdk.nashorn.internal.ir.Expression);
descriptor: (Ljdk/nashorn/internal/ir/Expression;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof jdk.nashorn.internal.ir.Optimistic
ifeq 4
1: aload 1
checkcast jdk.nashorn.internal.ir.Optimistic
invokeinterface jdk.nashorn.internal.ir.Optimistic.getProgramPoint:()I
istore 2
start local 2 2: iload 2
invokestatic jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid:(I)Z
ifeq 4
3: aload 0
getfield jdk.nashorn.internal.codegen.OptimisticTypesCalculator.neverOptimistic:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast java.util.BitSet
iload 2
invokevirtual java.util.BitSet.set:(I)V
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 5 1 expr Ljdk/nashorn/internal/ir/Expression;
2 4 2 pp I
MethodParameters:
Name Flags
expr final
private void tagNeverOptimisticLoopTest(jdk.nashorn.internal.ir.LoopNode);
descriptor: (Ljdk/nashorn/internal/ir/LoopNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.LoopNode.getTest:()Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
aload 2
invokevirtual jdk.nashorn.internal.ir.JoinPredecessorExpression.getExpression:()Ljdk/nashorn/internal/ir/Expression;
invokevirtual jdk.nashorn.internal.codegen.OptimisticTypesCalculator.tagNeverOptimistic:(Ljdk/nashorn/internal/ir/Expression;)V
3: StackMap locals: jdk.nashorn.internal.ir.JoinPredecessorExpression
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/nashorn/internal/codegen/OptimisticTypesCalculator;
0 4 1 loopNode Ljdk/nashorn/internal/ir/LoopNode;
1 4 2 test Ljdk/nashorn/internal/ir/JoinPredecessorExpression;
MethodParameters:
Name Flags
loopNode final
}
SourceFile: "OptimisticTypesCalculator.java"
InnerClasses:
public final ArrayLiteralNode = jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode of jdk.nashorn.internal.ir.LiteralNode
public final SplitRange = jdk.nashorn.internal.ir.Splittable$SplitRange of jdk.nashorn.internal.ir.Splittable