那么我如何检查它是通过 Google 的 V8 引擎像普通 Javascript 一样执行还是使用汇编以接近 native 的性能执行?
最佳答案
如果你只看控制台,Firefox 会告诉你你的 asm.js 是否通过验证。对于上面粘贴的脚本,我得到:
TypeError: asm.js type error: non-expression-statement call must be coerced test.html:23
这表明不是。本例中的第 23 行是:
return +sqrt(square(x) + square(y));
如果我用这个替换那行:
return +sqrt(+square(x) + +square(y));
然后错误控制台显示:
Error: successfully compiled asm.js code (total compilation time 0ms)
这意味着它一切正常(在这种情况下,“错误”只是 JS 引擎如何报告成功的一个虚假的怪癖;我提交了 https://bugzilla.mozilla.org/show_bug.cgi?id=950527 来解决这个问题)。
关于javascript - 如何检查 Firefox 是否使用 asm.js 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596063/