google / google/closure-compiler
Internal Compiler Error - Unexpected variable
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
I have a JS project with much automatically generated code. It's working since many versions of my code and of closure compiler, but now I get an 'Internal Compiler Error' (in Line 741, see the end of this post).
The JS code defines many global string constants, and one of it, called $_$, seems to trigger the issue. Curiously the same string constant is used several times above line 741 without errors.
``` javascript
...
var $_$ = "";
...
function fnSetupGenRealtimeReference()
{
fnSetupGenGroupBegin($_$); // Line 741
...
}
```
(How can I attach the complete JS code to this issue?)
I'm using this compiler: http://dl.google.com/closure-compiler/compiler-20150126.zip. When I go back to this version, the code compiles again without errors: http://dl.google.com/closure-compiler/compiler-20140110.zip. All newer releases I found in the wiki at https://github.com/google/closure-compiler/wiki/Binary-Downloads show the same internal compiler error.
Here is the compiler-20150126's console output:
``` code
>java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js setup_10.js --js_output_file setup.js
java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
Unexpected variable $_$
Node(NAME $_$): setup\generated\setup_10.js:741:22
fnSetupGenGroupBegin($_$);
Parent(CALL): setup\generated\setup_10.js:741:1
fnSetupGenGroupBegin($_$);
at com.google.javascript.jscomp.VarCheck.visit(VarCheck.java:198)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:588)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:582)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:582)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:582)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:622)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:574)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:582)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:582)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots(NodeTraversal.java:318)
at com.google.javascript.jscomp.VarCheck.process(VarCheck.java:140)
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:1972)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:765)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:96)
at com.google.javascript.jscomp.Compiler$3.call(Compiler.java:657)
at com.google.javascript.jscomp.Compiler$3.call(Compiler.java:654)
at com.google.javascript.jscomp.Compiler$4.call(Compiler.java:701)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Unexpected variable $_$
... 23 more
```
Contributor guide
Assessment
This issue has not been assessed yet.