今日Google Closure Compilerのプロパティの名前変更に関する問題が見つかりました。Google Closure Compilerでは、一部のプロパティの名前が変更されることはありませんか?
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
// ADD YOUR CODE HERE
console.info({
foo: 'bar',
index: 10,
bla: 'x'
});
いつもにコンパイルされます:このコードは、なぜ誰かが私を説明することができれば幸せになる
console.info({b:"bar",index:10,a:"x"});
プロパティ「インデックス」いくつかの別の名前に変更されることはありません。問題はなぜですか?それを強制的にリネームする方法は?
これはかなりトリッキーなものです。クロージャコンパイラ開発者の1人によるこの問題コメントは、いくつかの洞察を提供するかもしれません:https://github.com/google/closure-compiler/issues/1054#issuecomment-127026064。 – ach
はい、これはクールですが、Object.prototypeには「インデックス」メンバーはまったくありません。 – Ruslan
@Ruslan FYIこれは意図した動作です。コンパイラは既知のプロパティ名をチェックし、それらの名前を変更しないようにします – user120242