Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
L'objet WebAssembly.Memory est un ArrayBuffer ou SharedArrayBuffer redimensionnable qui contient des octets bruts de mémoire accessibles par un objet WebAssembly.Instance.
WebAssembly et JavaScript permettent tous deux de créer des objets Memory. Si vous souhaitez accéder à la mémoire créée en JS depuis WebAssembly, ou inversement, vous pouvez exporter la mémoire du module vers JavaScript ou importer la mémoire de JavaScript vers le module lors de son instanciation.
À l'origine, vous ne pouviez effectuer des opérations de mémoire que sur une seule mémoire dans le module Wasm, donc bien que plusieurs objets Memory puissent être créés, cela n'avait aucun intérêt. Les implémentations plus récentes permettent aux instructions de mémoire de WebAssembly d'opérer sur une mémoire définie. Pour plus d'informations, voir Mémoires multiples dans Comprendre le format texte WebAssembly.
Note : La mémoire WebAssembly est toujours au format petit-boutiste, quel que soit la plateforme sur laquelle elle est exécutée. Par conséquent, pour des raisons de portabilité, vous devez lire et écrire des valeurs multi-octets en JavaScript en utilisant DataView.
Crée un nouvel objet Memory.
Retourne le tampon contenu dans la mémoire.
Augmente la taille de l'instance de mémoire d'un nombre défini de pages WebAssembly (chacune de 64 KiB). Détache le buffer précédent.
Il existe deux façons d'obtenir un objet WebAssembly.Memory. La première consiste à le construire à partir de JavaScript. L'extrait suivant crée une nouvelle instance de mémoire WebAssembly avec une taille initiale de 10 pages (640 KiB) et une taille maximale de 100 pages (6,4 MiB). Sa propriété buffer retourne un ArrayBuffer.
L'exemple suivant (voir memory.html (angl.) sur GitHub, et la voir en direct (angl.)) récupère et instancie le code binaire chargé « memory.wasm » en utilisant la fonction WebAssembly.instantiateStreaming(), tout en important la mémoire créée à la ligne ci-dessus. Il stocke ensuite des valeurs dans cette mémoire, exporte une fonction, et utilise la fonction exportée pour additionner ces valeurs. Notez l'utilisation de DataView pour accéder à la mémoire afin d'utiliser toujours le format petit-boutiste.
Une autre façon d'obtenir un objet WebAssembly.Memory est de l'avoir exporté par un module WebAssembly. Cette mémoire peut être accédée dans la propriété exports de l'instance WebAssembly (après que la mémoire ait été exportée dans le module WebAssembly). L'exemple suivant importe une mémoire exportée depuis WebAssembly avec le nom memory, puis affiche le premier élément de la mémoire, interprété comme un Uint32Array.
Par défaut, les mémoires WebAssembly ne sont pas partagées. Vous pouvez créer une mémoire partagée depuis JavaScript en passant shared: true dans l'objet d'initialisation du constructeur :
La propriété buffer de cette mémoire retournera un objet SharedArrayBuffer.
| WebAssembly JavaScript Interface # memories |
| Unknown specification |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 17 avr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.