2016-09-05 3 views
1

を報告しない私は、次のGoogleの閉鎖コンパイラ実行した:コマンドを使用して、Googleの閉鎖コンパイラは、ゼロ除算

alert(1/0); 

java -jar node_modules\google-closure-compiler\compiler.jar --warning_level=VERBOSE test.js 

をし、それが何かを報告しません。

デバイド

0により、このエラーが分母であなたその算術除算式を意味します。私は、参照(https://developers.google.com/closure/compiler/docs/error-ref)が約

JSC_DIVIDE_BY_0_ERROR言及ので、それはdevideゼロによるについて何かを言う期待しました実行時に0で除算すると実行時エラーが発生します。

私もJSC_BITWISE_OPERAND_OUT_OF_RANGEのコード例テストしてみた:

var y = 1024 * 1024 * 1024 * 2 >> 2; 

をし、この場合には、Googleの閉鎖コンパイラは正確に問題を指摘しています。

test.js:2: WARNING - Operand out of range, bitwise operation will lose information: NUMBER 2.147483648E9 2 [length: 22] [source_file: test.js] 
var y = 1024 * 1024 * 1024 * 2 >> 2; 
     ^

トップソースコードにはどのようにしてJSC_DIVIDE_BY_0_ERRORを取得できますか?

+0

*「実行時に0で除算すると実行時エラーが発生します。」* - JavaScriptではゼロで除算した値が「無限大」ではありません。 (あなたのアルゴリズムでは* logic *エラーかもしれませんが、例外の意味ではランタイムエラーではありません) – nnnnnn

+0

クロージャコンパイラを参照する記述が正しくないと言っていますか?とにかく、私はここで実行時に何が起こるか気にしない。私はそれを静的にクロージャコンパイラを使用してチェックしたい。 – xylosper

+1

JavaScriptがどのように動作しているかのデモが意図されているのであれば間違いは間違いですが、Closure Compilerのオプションがどのように動作するはずです。 (ゼロによる除算を静的にチェックすることに関しては、コードが '1/x'と言うとコンパイラは実行時に' x'が何になるのかを知ることができないので、定数でしかできません。 – nnnnnn

答えて

1

JSC_DIVIDE_BY_0_ERRORエラーはコンパイラのソースコードに存在しなくなりました。で検索することができます。そのため、エラーチェックが削除されている必要があります。

現在、Closure Compilerのドキュメントは、古くからさまざまなページに散在しています。

+0

2011年3月に削除されました – John