Google Closure Compiler:通过设置 CompilerOptions 删除死代码

Google Closure Compiler: remove dead code by setting CompilerOptions

我正在尝试通过设置相应的字段来配置 Google Closure Compiler 的 CompilerOptions。但是我在简单模式下调用setRemoveDeadCode()方法激活去死码时,只报警告"unreachable code",并没有去死码。这是为什么?

代码如下:

if (false) console.log(x);  //dead code which should be removed

我所做的只是激活方法createOptions() 末尾的setRemoveDeadCode(),而停用其他选项。对 setCoalesceVariableNames() 等其他选项执行相同的操作效果很好。任何见解将不胜感激。

RemoveDeadCode 选项触发查看副作用和控制流图的传递。您可以通过查看单元测试了解它的作用:

https://github.com/google/closure-compiler/blob/a1488d59c11fd535ded79d37c11cd418927782ce/test/com/google/javascript/jscomp/UnreachableCodeEliminationTest.java

它不寻找常数值。但是,还有另一个选项,"Fold Constants"(通过 setFoldConstants),它将删除条件不变的 if