2015-07-21 55 views
0

我想通過設置相應的字段來配置GoogleClosure編譯器的CompilerOptions。但是,當我調用setRemoveDeadCode()方法激活簡單模式下的死代碼刪除時,只會報告「無法訪問的代碼」警告,並且不會刪除死代碼。這是爲什麼?谷歌關閉編譯器:通過設置CompilerOptions刪除死代碼

的代碼就像下面:

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

我做的僅僅是激活setRemoveDeadCode()的方法createOptions()結束,但禁用其他選項。在其他選項(如setCoalesceVariableNames())上做同樣的事情可以正常工作。任何見解,將不勝感激。

回答

1

RemoveDeadCode選項會觸發一個傳遞,查看副作用和控制流圖。你可以看看它通過查看單元測試:

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

它看起來並不恆定值。然而,還有一個選項是「摺疊常數」(通過setFoldConstants),它將以固定條件移除if

+0

謝謝,你說得對。我想到了它們對編譯優化的影響。 – Aliu