google / google/closure-compiler
IllegalStateException when using binary assignment operator on string length
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
Input for `SIMPLE_OPTIMIZATIONS`:
```
"a".length >>= 1
```
Error output:
```
Exception in thread "main" java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
NUMBER 1.0 1 [length: 10] [source_file: /tmp/tmp.qsePRZO5l5]
Node(ASSIGN_RSH): /tmp/tmp.qsePRZO5l5:1:0
"a".length >>= 1
Parent(CALL): /tmp/tmp.qsePRZO5l5:1:0
"a".length >>= 1
at com.google.common.base.Preconditions.checkState(Preconditions.java:507)
at com.google.javascript.rhino.IR.assign(IR.java:433)
at com.google.javascript.jscomp.PeepholeFoldConstants.tryUnfoldAssignOp(PeepholeFoldConstants.java:566)
at com.google.javascript.jscomp.PeepholeFoldConstants.tryFoldBinaryOperator(PeepholeFoldConstants.java:152)
at com.google.javascript.jscomp.PeepholeFoldConstants.optimizeSubtree(PeepholeFoldConstants.java:100)
at com.google.javascript.jscomp.PeepholeOptimizationsPass$PeepCallback.visit(PeepholeOptimizationsPass.java:82)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:867)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:979)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:863)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:979)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:863)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:979)
at com.google.javascript.jscomp.NodeTraversal.handleScript(NodeTraversal.java:804)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:839)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:979)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:863)
at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:371)
at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:381)
at com.google.javascript.jscomp.NodeTraversal.traverseScopeRoots(NodeTraversal.java:592)
at com.google.javascript.jscomp.NodeTraversal.traverseScopeRoots(NodeTraversal.java:573)
at com.google.javascript.jscomp.PeepholeOptimizationsPass.process(PeepholeOptimizationsPass.java:67)
at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:328)
at com.google.javascript.jscomp.PhaseOptimizer$Loop.process(PhaseOptimizer.java:473)
at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:237)
at com.google.javascript.jscomp.Compiler.performOptimizations(Compiler.java:2380)
at com.google.javascript.jscomp.Compiler.lambda$stage2Passes$1(Compiler.java:780)
at com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:129)
at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:807)
at com.google.javascript.jscomp.Compiler.stage2Passes(Compiler.java:777)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:667)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:634)
at examples.CompilerTest.main(CompilerTest.java:67)
Caused by: java.lang.IllegalStateException: NUMBER 1.0 1 [length: 10] [source_file: /tmp/tmp.qsePRZO5l5]
... 32 more
```
Affects: v20190415 and current master (2375110b30ccb83b0a550c8c3d46c526e3896d62)
Contributor guide
Assessment
This issue has not been assessed yet.