具有此代码:
var a = 'Start';
var b = ' here';
return (document.querySelectorAll + "").toString().toLowerCase().indexOf(a + b) == -1;
在Google Closure编译器之后,此代码将是:
return (document.querySelectorAll + "").toString().toLowerCase().indexOf('Start here') == -1;
如何防止更改此字符串,因为我不需要indexOf'Start here'的参数,这非常重要,因为它恰好是'a + b'?我在此代码上方是否有特定的键,这些键会解释GCC无法编译此代码/字符串?
您可以使用experimental @noinline
annotation,其中:
表示优化不应该内联的函数或变量。
要同时保留@noinline
和a
,请使用:
b
结果:
function x() {
/** @noinline */
var a = 'Start';
/** @noinline */
var b = ' here';
return (document.querySelectorAll + "").toString().toLowerCase().indexOf(a + b) == -1;
}
function x(){var a="Start",b=" here";return-1==(document.querySelectorAll+"").toString().toLowerCase().indexOf(a+b)};