google/closure-compiler

INTERNAL COMPILER ERROR - third_party and jscomp_error conflict

Open

#2 441 ouverte le 16 avr. 2017

Voir sur GitHub
 (4 commentaires) (0 réactions) (0 assignés)Java (1 197 forks)batch import
P3help wanted

Métriques du dépôt

Stars
 (7 176 stars)
Métriques de merge PR
 (Merge moyen 3j 4h) (1 PR mergée en 30 j)

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

Guide contributeur