Почему этот код не приводит к пустой строке после компиляции с SIMPLE_OPTIMIZATIONS
/**
* @define {boolean}
*/
var TEST = false;
(function() {
if (TEST) {
foo();
}
})();
а вместо этого я получаю следующее?
var TEST=!1;(function(){TEST&&foo()})();
if
недоступен, но компилятор замыкания не удаляет код.
С «расширенными оптимизациями» результат такой, как я ожидаю (пусто), но «простые оптимизации» дают вышеуказанный результат. Почему эта разница? Код никогда не будет выполнен в обоих случаях.
EDIT:
Если я удалю замыкание, блок if
тоже будет удален. Почему при замыкании этого не происходит?