MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

WebAssembly.Table.prototype.get()

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La méthode get(), rattachéee au prototype de  WebAssembly.Table(), permet de récupérer une référence à une fonction stockée dans le tableau WebAssembly grâce à sa position. dans le tableau.

Syntaxe

var funcRef = table.get(index);

Paramètres

index
L'index de la référence de fonction qu'on souhaite récupérer.

Valeur de retour

Une référence de fonction, c'est-à-dire une fonction WebAssembly exportée qui est une enveloppe JavaScript pour manipuler la fonction WebAssembly sous-jacente.

Exceptions

Si index est supérieur ou égal à Table.prototype.length, la méthode lèvera une exception RangeError.

Exemples

Dans l'exemple qui suit (tiré de table.html sur GitHub et qui possède une démonstration), on compile et on instancie le bytecode table.wasm grâce à la méthode utilitaire fetchAndInstantiate(). Ensuite , on récupère les références dans le tableau qui est exporté.

fetchAndInstantiate('table.wasm').then(function(instance) {
  var tbl = instance.exports.tbl;
  console.log(tbl.get(0)());  // 13
  console.log(tbl.get(1)());  // 42
});

On voit ici qu'il faut ajouter des parenthèses après l'appel de get() pour invoquer la fonction obtenue (autrement dit, on doit écrire get(0)() plutôt que get(0)) car get() fournit une fonction plutôt que le résultat de celle-ci.

Spécifications

Spécification État Commentaires
Web Assembly JavaScript API
La définition de 'get()' dans cette spécification.
Projet Brouillon de définition initial pour WebAssembly.

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 57 Pas de support 52 (52)[1] Pas de support (Oui) Pas de support
Fonctionnalité Chrome pour Android Webview Android Edge Mobile Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple 57 57 Pas de support 52.0 (52)[1] Pas de support Pas de support Pas de support

[1] WebAssembly est activé dans Firefox 52+ mais est désactivé pour Firefox 52 Extended Support Release (ESR).

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,