WebAssembly.Table.prototype.grow()

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 grow()-Prototyp-Methode des WebAssembly.Table-Objekts erhöht die Größe der Table-Instanz um eine angegebene Anzahl von Elementen, die mit dem bereitgestellten Wert gefüllt werden.

Syntax

js
grow(delta)
grow(delta, value)

Parameter

delta

Die Anzahl der Elemente, um die Sie die Tabelle vergrößern möchten.

value Optional

Das Element, mit dem der neu zugewiesene Speicherplatz gefüllt wird.

Rückgabewert

Die vorherige Länge der Tabelle.

Ausnahmen

RangeError

Wird in einem der folgenden Fälle ausgelöst:

  • Wenn die aktuelle Größe zusammen mit delta die maximale Kapazität der Table-Instanz überschreitet.
  • Wenn der Client nicht genügend Speicher für die Zuweisung hat.
TypeError

Wird ausgelöst, wenn value kein Wert des Elementtyps der Tabelle ist.

Beispiele

Nutzung von grow

Das folgende Beispiel erstellt eine neue WebAssembly-Tabelle mit einer Anfangsgröße von 2 und einer maximalen Größe von 10:

js
const table = new WebAssembly.Table({
  element: "anyfunc",
  initial: 2,
  maximum: 10,
});

Vergrößern Sie die Tabelle um 1 Element mit Table.grow():

js
console.log(table.length); // 2
table.grow(1);
console.log(table.length); // 3

Nutzung von grow mit einem Wert

Das folgende Beispiel erstellt eine neue WebAssembly-Table-Instanz mit einer Anfangsgröße von 0 und einer maximalen Größe von 4 und füllt sie mit einem Objekt:

js
const myObject = { hello: "world" };

const table = new WebAssembly.Table({
  element: "externref",
  initial: 0,
  maximum: 4,
});

Vergrößern Sie die Tabelle um 4 Einheiten und füllen Sie sie mit einem Wert unter Verwendung von WebAssembly.grow():

js
table.grow(4, myObject);
console.log(myObject === table.get(2)); // true

Spezifikationen

Specification
WebAssembly JavaScript Interface
# dom-table-grow

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch