help wanted
Description
Let self.js contain:
goog.provide('x');
x.y = x.y;
Then:
$ java -jar closure-compiler-v20160713.jar --compilation_level ADVANCED --js self.js --js_output_file self-compiled.js
java.lang.NullPointerException
at com.google.javascript.rhino.Node.replaceChild(Node.java:862)
at com.google.javascript.jscomp.CollapseProperties.inlineGlobalAliasIfPossible(CollapseProperties.java:255)
at com.google.javascript.jscomp.CollapseProperties.inlineAliases(CollapseProperties.java:177)
at com.google.javascript.jscomp.CollapseProperties.process(CollapseProperties.java:113)
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:2008)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:735)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:83)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:678)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:675)
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)
With older versions of the compiler you'd get a "node is not a child" error:
$ java -jar closure-compiler-v20160315.jar --compilation_level ADVANCED --js self.js --js_output_file self-compiled.js
java.lang.RuntimeException: node is not a child
at com.google.javascript.rhino.Node.getChildBefore(Node.java:627)
at com.google.javascript.rhino.Node.replaceChild(Node.java:797)
at com.google.javascript.jscomp.CollapseProperties.inlineGlobalAliasIfPossible(CollapseProperties.java:255)
at com.google.javascript.jscomp.CollapseProperties.inlineAliases(CollapseProperties.java:177)
at com.google.javascript.jscomp.CollapseProperties.process(CollapseProperties.java:113)
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:1904)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:700)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:83)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:651)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:648)
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)