WebAssembly.Memory.prototype.buffer
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年10月以降、すべてのブラウザーで利用可能です。
buffer は WebAssembly.Memory オブジェクトのプロトタイププロパティで、メモリーに含まれるバッファーを返します。メモリーが shared: true で構築されたかどうかによって、バッファーは ArrayBuffer と SharedArrayBuffer のどちらかになります。
例
>buffer の使用
次の例 (GitHub 上の memory.html および動作例も参照) では、 memory.wasm バイトコードを WebAssembly.instantiateStreaming() メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリーにインポートします。それから、メモリーにいくつかの値を格納し、関数をエクスポートして使用し、それらの値を合計します。
js
const memory = new WebAssembly.Memory({
initial: 10,
maximum: 100,
});
WebAssembly.instantiateStreaming(fetch("memory.wasm"), {
js: { mem: memory },
}).then((obj) => {
const summands = new DataView(memory.buffer);
for (let i = 0; i < 10; i++) {
summands.setUint32(i * 4, i, true); // WebAssembly is little endian
}
const sum = obj.instance.exports.accumulate(0, 10);
console.log(sum);
});
仕様書
| 仕様書 |
|---|
| WebAssembly JavaScript Interface> # dom-memory-buffer> |