WebAssembly.Memory.prototype.buffer
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.
The read-onlybuffer
prototype property of theWebAssembly.Memory
object returns the buffer contained in the memory. Depending on whether or not the memory was constructed withshared: true
, the buffer is either anArrayBuffer
or aSharedArrayBuffer
.
Examples
Using buffer
The following example (seememory.html on GitHub, andview it live also) fetches and instantiates the loaded memory.wasm bytecode using theWebAssembly.instantiateStreaming()
function, while importing the memory created in the line above. It then stores some values in that memory, exports a function, and uses the exported function to sum those values.
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);});
Specifications
Specification |
---|
WebAssembly JavaScript Interface # dom-memory-buffer |