[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/Table/Table [Back]  [Original]

Constructeur WebAssembly.Table() - WebAssembly | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Constructeur WebAssembly.Table()

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis octobre 2017.

Le constructeur WebAssembly.Table() cre un nouvel objet Table de la taille et du type d'lment donn.

Dans cet article

Syntaxe

js
new WebAssembly.Table(descripteurTable);

Paramtres

descripteurTable

Un objet qui peut contenir les proprits suivantes :

element

Une chane de caractres reprsentant le type de valeur stocker dans la table. Pour le moment, sa valeur ne peut tre que "anyfunc" (indiquant les fonctions).

initial

Le nombre initial d'lments dans la table WebAssembly.

maximum Facultatif

Le nombre maximal d'lments jusqu'auquel la table WebAssembly peut grandir.

Exceptions

  • Si descripteurTable n'est pas un objet, une exception TypeError sera leve.
  • Si maximum est fourni et est infrieur initial, une exception RangeError sera leve.

Exemples

Crer une nouvelle instance d'une Table WebAssembly

Dans l'exemple suivant (voir le code source et la dmo live correspondants), on cre une nouvelle instance d'une table WebAssembly avec une taille initiale de 2 lments. On affiche alors la longueur de la table et son contenu (grce Table.prototype.get() pour montrer que la longueur vaut 2 et que les deux lments sont null.

js
var tbl = new WebAssembly.Table({ initial: 2, element: "anyfunc" });
console.log(tbl.length); // "2"
console.log(tbl.get(0)); // "null"
console.log(tbl.get(1)); // "null"

On peut ensuite crer un objet d'import qui contient la table :

js
var importObj = {
  js: {
    tbl: tbl,
  },
};

Enfin, on charge et on instancie un module WASM (table2.wasm) en utilisant la mthode WebAssembly.instantiateStreaming(). Le module table2.wasm contient deux fonctions (une qui renvoie 42 et l'autre qui renvoie 83) et on stocke ces deux fonctions dans les lments 0 et 1 de la table importe (voir la reprsentation textuelle). Ainsi, aprs l'instanciation, la table a toujours une longueur qui vaut 2 et les lments contiennent dsormais des fonctions WebAssembly exportes qu'on peut appeler depuis le code JavaScript.

js
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
  function (obj) {
    console.log(tbl.length);
    console.log(tbl.get(0)());
    console.log(tbl.get(1)());
  },
);

On notera qu'il faut inclure une deuxime paire de parenthses afin d'invoquer la fonction rfrence et d'afficher la valeur qui y est stocke (on crit donc get(0)() plutt que get(0)) .

Dans cet exemple, on illustre la cration et l'accs la table depuis du code JavaScript, mais cette mme table est visible depuis l'instance WASM galement.

Spcifications

Spcification
WebAssembly JavaScript Interface
# dom-table-table

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page