WebAssembly.Memory.prototype.buffer
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.
Die schreibgeschützte buffer
-Prototyp-Eigenschaft des WebAssembly.Memory
-Objekts gibt den Puffer zurück, der im Speicher enthalten ist. Abhängig davon, ob der Speicher mit shared: true
konstruiert wurde oder nicht, ist der Puffer entweder ein ArrayBuffer
oder ein SharedArrayBuffer
.
Beispiele
Verwendung von buffer
Das folgende Beispiel (siehe memory.html auf GitHub, und live ansehen) lädt und instanziiert den geladenen memory.wasm-Bytecode mit der Funktion WebAssembly.instantiateStreaming()
, während es den in der obigen Zeile erstellten Speicher importiert. Anschließend speichert es einige Werte in diesem Speicher, exportiert eine Funktion und verwendet die exportierte Funktion, um diese Werte zu summieren.
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);
});
Spezifikationen
Specification |
---|
WebAssembly JavaScript Interface # dom-memory-buffer |