-
Bug
-
Resolution: Fixed
-
P2
-
None
-
None
-
b26
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8056545 | emb-9 | Attila Szegedi | P2 | Resolved | Fixed | b26 |
JDK-8064171 | 8u45 | Attila Szegedi | P2 | Resolved | Fixed | b01 |
JDK-8055637 | 8u40 | Attila Szegedi | P2 | Closed | Fixed | b04 |
JDK-8070408 | emb-8u47 | Attila Szegedi | P2 | Resolved | Fixed | team |
This program crashes with the latest Nashorn bits in 9. Assigning x to something before the loop fixes it.
function liveness() {
var x;
for (var i = 0;i < 10; i++) {
x += i;
}
x += "test";
return x;
}
liveness();
Exception in thread "main" java.lang.AssertionError
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.onSelfAssignment(LocalVariableTypesCalculator.java:1389)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterBinaryNode(LocalVariableTypesCalculator.java:447)
at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:315)
at jdk.nashorn.internal.ir.ExpressionStatement.accept(ExpressionStatement.java:62)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterTestFirstLoop(LocalVariableTypesCalculator.java:821)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterForNode(LocalVariableTypesCalculator.java:560)
at jdk.nashorn.internal.ir.ForNode.accept(ForNode.java:91)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextStatement.accept(LexicalContextStatement.java:53)
at jdk.nashorn.internal.ir.LoopNode.accept(LoopNode.java:36)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator$1.leaveFunctionNode(LocalVariableTypesCalculator.java:1229)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.ir.VarNode.accept(VarNode.java:127)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.leaveFunctionNode(LocalVariableTypesCalculator.java:1285)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.codegen.CompilationPhase$9.transform(CompilationPhase.java:277)
at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:685)
at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:524)
at jdk.nashorn.internal.runtime.Context.compile(Context.java:1131)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:1067)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:517)
at jdk.nashorn.tools.Shell.runScripts(Shell.java:314)
at jdk.nashorn.tools.Shell.run(Shell.java:169)
at jdk.nashorn.tools.Shell.main(Shell.java:133)
at jdk.nashorn.tools.Shell.main(Shell.java:112)
function liveness() {
var x;
for (var i = 0;i < 10; i++) {
x += i;
}
x += "test";
return x;
}
liveness();
Exception in thread "main" java.lang.AssertionError
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.onSelfAssignment(LocalVariableTypesCalculator.java:1389)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterBinaryNode(LocalVariableTypesCalculator.java:447)
at jdk.nashorn.internal.ir.BinaryNode.accept(BinaryNode.java:315)
at jdk.nashorn.internal.ir.ExpressionStatement.accept(ExpressionStatement.java:62)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterTestFirstLoop(LocalVariableTypesCalculator.java:821)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.enterForNode(LocalVariableTypesCalculator.java:560)
at jdk.nashorn.internal.ir.ForNode.accept(ForNode.java:91)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextStatement.accept(LexicalContextStatement.java:53)
at jdk.nashorn.internal.ir.LoopNode.accept(LoopNode.java:36)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator$1.leaveFunctionNode(LocalVariableTypesCalculator.java:1229)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.ir.VarNode.accept(VarNode.java:127)
at jdk.nashorn.internal.ir.Node.accept(Node.java:240)
at jdk.nashorn.internal.ir.Block.accept(Block.java:152)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.Block.accept(Block.java:391)
at jdk.nashorn.internal.codegen.LocalVariableTypesCalculator.leaveFunctionNode(LocalVariableTypesCalculator.java:1285)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:351)
at jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:46)
at jdk.nashorn.internal.ir.FunctionNode.accept(FunctionNode.java:52)
at jdk.nashorn.internal.codegen.CompilationPhase$9.transform(CompilationPhase.java:277)
at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:685)
at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:524)
at jdk.nashorn.internal.runtime.Context.compile(Context.java:1131)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:1067)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:517)
at jdk.nashorn.tools.Shell.runScripts(Shell.java:314)
at jdk.nashorn.tools.Shell.run(Shell.java:169)
at jdk.nashorn.tools.Shell.main(Shell.java:133)
at jdk.nashorn.tools.Shell.main(Shell.java:112)
- backported by
-
JDK-8056545 Wrong type calculated for ADD operator with undefined operand
- Resolved
-
JDK-8064171 Wrong type calculated for ADD operator with undefined operand
- Resolved
-
JDK-8070408 Wrong type calculated for ADD operator with undefined operand
- Resolved
-
JDK-8055637 Wrong type calculated for ADD operator with undefined operand
- Closed