google / google/closure-compiler
Compiler crash with "Unexpected variable"
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
``` javascript
var listener;
self.addEventListener('click', listener = function(event) {
console.log(listener);
});
```
This piece of code makes it crash in ADVANCED compilation. In SIMPLE compilation level is everything ok. I was not able to reproduce it via debugger.
```
media/js/test.js:3: ERROR - variable listener is undeclared
console.log(listener);
^
1 error(s), 0 warning(s), 100.0% typed
java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
Unexpected variable listener
Node(NAME listener): media/js/test.js:3:13
console.log(listener);
Parent(CALL): media/js/test.js:3:1
console.log(listener);
at com.google.javascript.jscomp.VarCheck.visit(VarCheck.java:208)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:646)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:733)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:640)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:677)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:634)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:718)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:642)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots(NodeTraversal.java:347)
at com.google.javascript.jscomp.VarCheck.process(VarCheck.java:146)
at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:285)
at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:217)
at com.google.javascript.jscomp.Compiler.optimize(Compiler.java:2046)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:748)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:83)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:690)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:687)
at com.google.javascript.jscomp.CompilerExecutor$2.call(CompilerExecutor.java:93)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unexpected variable listener
... 33 more
```
Contributor guide
Assessment
This issue has not been assessed yet.