1

明らかに常に false である if ステートメント。if (false)、クロージャーはステートメントを削除します。

私のコードは次のようになります。

if (settings.lang === "en"){
    lib.doSomething();
}

settings.lang定数です。

/** 
 * @type {string}
 * @const 
 */ 
settings.lang = "fr" ;  

したがって、「fr」に等しい場合、コンパイラはコンパイル時ifに と の定義を削除できます。lib.doSomethingしかし、そうではありません。それをさせる方法はありますか?

なぜそのコードを削除しないのかと尋ねる前に: 他のクライアントの場合、settings.lang は に設定されていenます。

4

3 に答える 3

1

コンパイルモード以外のコンパイルモード( plovr のデフォルトで'SIMPLE'あるため、おそらくコンパイルモード)を使用しているようです。高度なコンパイル モードは、デッド コードの削除を行うモードです。'ADVANCED'

于 2013-06-18T02:43:00.883 に答える
1

goog.LANG は goog.define で定義されていますか? 最後に、Plovr が goog.define と互換性がないことを確認しました (最新のコンパイラがありません)。互換性のあるバージョンの Closure Library から始めていることを確認してください。

于 2013-06-18T15:33:58.080 に答える