2

私は最終的に、javascriptコードがエラーや警告なしでGoogleクロージャコンパイラでコンパイルされるようになりました。今度は生成されたコードを再コンパイルしたいのですが、そのコードをコンパイラに貼り付けると、100以上の警告が発生します。そのほとんどはJSC_REDECLARED_VARIABLEといくつかのJSC_INEXISTENT_PROPERTYです。google閉包コンパイラ - ダブルコンパイル

なぜですか?

enter image description here

+0

このエラーを再現する例を表示できますか?例えば、JSC_REDECLARED_VARIABLEエラーは、GCCが同じ変数を少なくとも2回宣言するコードを作成することを意味します。 –

+0

@RobW:ここに問題のスクリーンショットがあります。リストはそのまま続く。 – frenchie

+0

コアjsファイルだけが約4000行あり、どこでも関数呼び出しが可能です。縮小されたデモだけではできません。 – frenchie

答えて

1

私はGoogleの閉鎖コンパイラは、さらに、コンパイルのために意図されたコードを生成しないと思います。

コードを正しくコンパイルするには、いくつかの構造を保持する必要があります。しかし、その余分な構造体はコンパイラによって削除されたものの1つで、コンパイラがなければコードを正しく解釈できません。

コンパイルの方が簡単ですが、高度なコンパイルはできません。

+0

私はまずシンプルモードで自分のコードをコンパイルして、その出力をコピーして高度なコンパイルを作成しようとしました。同じ問題です。 function(...){... a =新しい代入を得る関数のパラメータが好きではない – frenchie

+0

ベストはおそらく一度だけコンパイルすることです。なぜ2回コンパイルしたいのですか? –

+0

私は二重難読化を行う予定ですので、Googleコンパイラによって生成されたコードが難読化器に貼り付ける前にどのように見えるかを見たいと思っていました。しかし、二重の何かが最良のことではないかもしれません。 – frenchie

0

REDECLARED_VARIABLEはエラーではなく警告です。これは、開発者に問題の可能性があることを示すためのものです。開発者は、何をしているのか、コンパイラが何をしているのかを知っているなら、これを無視するかもしれません。

関連する問題