1

因为我们可以通过以下方式将 WebAssembly 内存设置为共享内存WebAssembly.Memory

wasmMemory = new WebAssembly.Memory({
    "initial": NUMBER,
    "maximum": NUMBER,
    "shared": true
});

WebAssembly.Memory.buffer只有一个吸气剂,所以我不能做以下事情:

buff =  new SharedArrayBuffer(NUMBER);
wasmMemory.buffer = buff;

第一个问题

有什么理由这样设计吗。我检查了SPEC但没有找到答案。

也许normal SharedArrayBuffer和 wasm 的底层实现SharedArrayBuffer虽然它们instanceof的 s 是相同的?

或者这个设计还有其他结果吗?

第二个问题

有什么神奇的方法可以把存在SharedArrayBufferWebAssembly.Memory

我想这样做是因为我有一个从原始类扩展的新类SharedArrayBuffer,并且我也想在 wasm 中使用它。

4

1 回答 1

0

我也找不到任何官方解释,但如果我不得不猜测,那是因为每次内存增长时,您的自定义缓冲区都会自动替换为默认缓冲区。

于 2020-08-14T17:56:13.223 回答