I L*_*YOU 6 javascript c++ firefox emscripten asm.js
那么如何通过例如Google的V8引擎检查它是否像普通的Javascript一样执行,或者使用程序集以近原生性能执行?
如果你只看控制台,Firefox 会告诉你你的 asm.js 是否经过验证。对于上面粘贴的脚本,我得到:
TypeError: asm.js type error: non-expression-statement call must be coerced test.html:23
Run Code Online (Sandbox Code Playgroud)
这表明不是。本例中的第 23 行是:
return +sqrt(square(x) + square(y));
Run Code Online (Sandbox Code Playgroud)
如果我用以下内容替换该行:
return +sqrt(+square(x) + +square(y));
Run Code Online (Sandbox Code Playgroud)
然后错误控制台显示:
Error: successfully compiled asm.js code (total compilation time 0ms)
Run Code Online (Sandbox Code Playgroud)
这意味着一切都工作正常(并且“错误”只是 JS 引擎在这种情况下报告成功的方式的一个虚假怪癖;我提交了https://bugzilla.mozilla.org/show_bug.cgi?id=950527以获取已修复)。
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |