google/closure-compiler

INTERNAL COMPILER ERROR - third_party and jscomp_error conflict

Open

#2,441 opened on Apr 16, 2017

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Java (1,197 forks)batch import
P3help wanted

Repository metrics

Stars
 (7,176 stars)
PR merge metrics
 (Avg merge 3d 4h) (1 merged PR in 30d)

Description

Background

I was trying to run the Closure Compiler on the JS snippet provided by Google Analytics

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-123456789-1', 'auto');
ga('send', 'pageview');

during my build and noticed it didn't like my combination of default flags for regular scripts and added command-line flags for this one file. I've simplified the snippet and arguments down to the smallest amount with a reproducible error. I am filing this bug because closure told me to.

test.js

(function() {
    [].push(arguments);
})();

Runtime error

$ java -jar closure-compiler-v20170409.jar --third_party --jscomp_error '*' test.js
java.lang.RuntimeException: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.

only implemented in ClosureCodingConvention
  Node(CALL): test.js:1:0
(function() {
  Parent(EXPR_RESULT): test.js:1:0
(function() {

	at com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:126)
	at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:753)
	at com.google.javascript.jscomp.Compiler.compile(Compiler.java:723)
	at com.google.javascript.jscomp.Compiler.compile(Compiler.java:693)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.doRun(AbstractCommandLineRunner.java:1080)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.run(AbstractCommandLineRunner.java:492)
	at com.google.javascript.jscomp.CommandLineRunner.main(CommandLineRunner.java:1898)
Caused by: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.

only implemented in ClosureCodingConvention
  Node(CALL): test.js:1:0
(function() {
  Parent(EXPR_RESULT): test.js:1:0
(function() {

	at com.google.javascript.jscomp.CodingConventions$DefaultCodingConvention.extractClassNameIfProvide(CodingConventions.java:438)
	at com.google.javascript.jscomp.CheckProvides$CheckProvidesCallback.visit(CheckProvides.java:70)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:639)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
	at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
	at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:311)
	at com.google.javascript.jscomp.NodeTraversal.traverseEs6(NodeTraversal.java:582)
	at com.google.javascript.jscomp.CheckProvides.hotSwapScript(CheckProvides.java:52)
	at com.google.javascript.jscomp.CheckProvides.process(CheckProvides.java:45)
	at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:304)
	at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:236)
	at com.google.javascript.jscomp.Compiler.check(Compiler.java:892)
	at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:781)
	at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:87)
	at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:726)
	at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:723)
	at com.google.javascript.jscomp.CompilerExecutor$2.call(CompilerExecutor.java:91)
	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.UnsupportedOperationException: only implemented in ClosureCodingConvention
	... 25 more

Contributor guide