这段代码在 Firefox 中运行良好 - 尽管出于某种原因,将 Uint8Array 更改为 Uint32array 会中断。在这种情况下,我是否需要以不同的方式强制数字?
function Module(stdlib, foreign, heap) {
"use asm";
// Variable Declarations
var els = new stdlib.Uint8Array(heap);
// Function Declarations
function firstn(x) {
x = x|0 //32-bit (int)
var i=0;
for (; (i|0) < (x|0); i = (i+1)|0) {
els[i] = i;
}
}
return { firstn: firstn };
}
buf = ArrayBuffer(1024*8)
f = Module(window,{},buf).firstn;
f(5)
console.log(new Uint8Array(buf));
还有一件事 - 是否可以发送一个数组缓冲区,并引用它产生的最终数组,也可以使用 C++ emscriptem 编译的 asm.js?