google/closure-compiler

Self-assign failure under ADVANCED

Open

#1.899 aberto em 18 de jul. de 2016

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)Java (1.197 forks)batch import
help wanted

Métricas do repositório

Stars
 (7.176 stars)
Métricas de merge de PR
 (Mesclagem média 3d 4h) (1 fundiu PR em 30d)

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)

Guia do colaborador