この質問は少し古いですが、現在のバージョンのClosureCompilerはconst
キーワードを非常にうまく処理します。これはキーワードを置き換えるだけでvar
変数が定数であることを理解するためです。
たとえば、高度なモード(--compilation_level ADVANCED_OPTIMIZATIONS
)とポリフィル--rewrite_polyfills
の書き換え(、これは重要です。前述のように、「[使用しない]const
キーワードはECMAScript標準の一部ではないため」ですが、これにより、var
うまく再生されるように書き換えられます。古いブラウザの場合)
const get_selected_text = (/** @return {function():string} */ function() {
if (window.getSelection || document.getSelection) {
return function () {
const selection = /** @type {function():Object<string,?>} */ (window.getSelection || document.getSelection)();
if (typeof selection['text'] === "string") {
return selection['text'];
} else {
return selection.toString();
}
};
} else if (document.selection && document.selection.type !== "Control") {
return function () {
return document.selection.createRange().text;
};
}
return function () {
return '';
};
})();
のように出てきます
var i=window.getSelection||document.getSelection?function(){var a=(window.getSelection||document.getSelection)();return"string"===typeof a.text?a.text:a.toString()}:document.selection&&"Control"!==document.selection.type?function(){return document.selection.createRange().text}:function(){return""};