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.

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);
});

Spezifikationen

Specification
WebAssembly JavaScript Interface
# dom-memory-buffer

Browser-Kompatibilität

Siehe auch