有没有办法在不重命名的情况下在 Closure 编译器中启用死代码消除?

Is there a way to enable dead code elimination in Closure compiler, without renaming?

我想检查某些代码是否被 Closure 编译器消除了死代码,但是当所有内容都重命名时很难做到这一点。

看起来 "advanced optimizations" 同时启用了重命名和 DCE,没有任何粒度。

有没有办法实现标题中的问题?

最简单的方法是使用 --debug 标志,如此处所述:

https://github.com/google/closure-compiler/wiki/Flags-and-Options

这使用了另一种重命名方案,将原始名称保留为新名称的一部分。这对于尝试了解哪些内容将被重命名为高级优化的一部分以及哪些内容不会被重命名也很有用。

否则,使用 Java API 可以完全控制 运行 的优化并使用 CompilerOptions#setRenamingPolicy[1][= 直接禁用重命名12=]

[1] https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/CompilerOptions.java#L1565