WebAssembly.Memory.prototype.grow()

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 grow(), rattachée au prototype de l'objet Memory, permet d'augmenter la taille de l'espace mémoire correspondant d'un nombre de pages WebAssembly.

Syntaxe

memory.grow(nombre);

Paramètres

nombre
Le nombre de pages WebAssembly duquel on veut augmenter l'espace mémoire correspondant à l'objet courant (une page mémoire WebAssembly correspond à 64 Ko).

Valeur de retour

La taille de l'espace mémoire avant l'extension, exprimée en nombre de pages WebAssembly.

Exemples

Dans le code qui suit, on crée une instance de Memory qui mesure initialement 1 page (soit 64 Ko) et dont la taille maximale est de 10 pages (soit 6,4 Mo).

var memory = new WebAssembly.Memory({initial:10, maximum:100});

Ensuite, on augmente la taille de l'espace mémoire d'une page grâce à la méthode :

const bytesPerPage = 64 * 1024;
console.log(memory.buffer.byteLength / bytesPerPage);  // "1"
console.log(memory.grow(1));                           // "1"
console.log(memory.buffer.byteLength / bytesPerPage);  // "2"

On voit ici que la valeur de grow() indique l'espace utilisé avant l'agrandissement de la mémoire.

Spécifications

Spécification État Commentaires
Web Assembly JavaScript API
La définition de 'grow()' dans cette spécification.
Projet Brouillon de définition initiale 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,