Оператор if, который, очевидно, всегда неверен, например. if (false)
, закрытие снимает утверждение.Получение Closure/Plovr для удаления функций из if, если это всегда ложно
Мой код выглядит следующим образом:
if (settings.lang === "en"){
lib.doSomething();
}
settings.lang
является константой.
/**
* @type {string}
* @const
*/
settings.lang = "fr" ;
Так что, когда он равен «пт» компилятор может удалить if
и определение lib.doSomething
во время компиляции. Но это не так. Есть ли способ заставить это сделать это?
Прежде чем спросить, почему я не просто удалить этот код для других клиентов, settings.lang
является набор для en
.
какой у вас уровень компиляции? вы пробовали передать его как @define? – lennel
И вам, возможно, придется больше узнать о вашем исходном коде. Быстрая проверка на clos-compiler.appspot.com показывает, что оптимизация, которую вы выполняете, работает, как ожидалось. –
Я думал, что определение может быть ответом. Я определяю goog.DEBUG, но goog.LANG выдает предупреждение plovr. Я не могу найти документацию по использованию @define для пользовательских свойств. – ColBeseder