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

WebAssembly.Table.prototype.set() - 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

WebAssembly.Table.prototype.set()

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.

La mthode set() de l'objet WebAssembly.Table permet de modifier une rfrence stocke un index donn par une valeur diffrente.

Dans cet article

Syntaxe

js
set(index, value)

Paramtres

index

L'index de la rfrence de la fonction qu'on souhaite modifier.

value

La valeur par laquelle on souhaite remplacer la rfrence. Cette valeur doit tre une valeur du type d'lment du tableau. Selon le type, il peut s'agir d'une fonction WebAssembly exporte, d'une enveloppe JavaScript pour une fonction Wasm sous-jacente, ou d'une rfrence hte.

Valeur de retour

Aucune (undefined).

Exceptions

Exemples

Utiliser la mthode set()

L'exemple suivant (voir  table2.html  code source (angl.) et version en direct (angl.)) cre une nouvelle instance de tableau WebAssembly avec une taille initiale de deux rfrences. Nous affichons ensuite la longueur du tableau et le contenu des deux index (ces valeurs sont obtenues l'aide de Table.prototype.get()) pour montrer que la longueur est de deux, et que les index ne contiennent actuellement aucune rfrence de fonction (ils retournent actuellement null).

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

Nous crons ensuite un objet d'importation qui contient une rfrence au tableau :

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

Enfin, nous chargeons et instancions un module Wasm (table2.wasm) en utilisant WebAssembly.instantiateStreaming(), affichons la longueur du tableau, et invoquons les deux fonctions rfrences qui sont maintenant stockes dans le tableau. Le module  table2.wasm  ajoute deux rfrences de fonction au tableau, qui affichent chacune une valeur simple (voir reprsentation textuelle (angl.)) :

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

Notez qu'il faut inclure un second oprateur d'appel de fonction la fin de l'accesseur pour rellement invoquer la fonction rfrence et afficher la valeur stocke l'intrieur (par exemple, get(0)() plutt que get(0)).

Cet exemple montre que nous crons et accdons au tableau depuis JavaScript, mais que le mme tableau est visible et appelable l'intrieur de l'instance Wasm aussi.

Spcifications

Spcification
WebAssembly JavaScript Interface
# dom-table-set

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page