Google封闭编译器不会删除标有@define注释的无法访问的代码

时间:2015-10-20 16:10:41

标签: javascript google-closure-compiler

为什么在使用SIMPLE_OPTIMIZATIONS进行编译后此代码不会导致空字符串

/**
 * @define {boolean}
 */
var TEST = false;
(function() {
    if (TEST) {
        foo();
    }
})();

而我得到以下内容?

var TEST=!1;(function(){TEST&&foo()})();

if无法访问,但闭包编译器不会删除代码 通过"高级优化"结果是我期望的(空的)但是"简单的优化"给出上述结果。为何如此区别?在这两种情况下都不会执行代码。

修改
如果我删除了闭包,那么if块也会被删除。为什么关闭这不会发生?

1 个答案:

答案 0 :(得分:1)

我相信如果使用“高级优化”

将会删除它