HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
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.
View in English Always switch to English
Le constructeur WebAssembly.Memory() crée un nouvel objet Memory dont la propriété buffer est un ArrayBuffer redimensionnable qui contient les octets de mémoire bruts accessibles par une instance WebAssembly.
WebAssembly.Memory()
Memory
buffer
ArrayBuffer
Un espace mémoire créé depuis du code JavaScript ou depuis du code WebAssembly sera accessible et modifiable (mutable) depuis JavaScript et depuis WebAssembly.
var maMemoire = new WebAssembly.Memory(descripteurMemoire);
descripteurMemoire
Un objet qui contient les propriétés suivantes :
initial
La taille initiale de cet espace mémoire WebAssembly, exprimée en nombre de pages WebAssembly.
maximum
La taille maximale autorisée pour cet espace mémoire WebAssembly, exprimée en nombre de pages WebAssembly. Lorsque ce paramètre est utilisé, il est fournit comme indication au moteur pour que celui-ci réserve l'espace mémoire correspondant. Toutefois, le moteur peut choisir d'ignorer cette indication. Dans la plupart des cas, il n'est pas nécessaire d'indiquer un maximum pour les modules WebAssembly.
Note : Une page mémoire WebAssembly correspond à une taille fixe de 65 536 octets, soit environ 64 Ko.
TypeError
RangeError
Aucune.
Toutes les instances de Memory héritent des propriétés du prototype du constructeur Memory() qui peut être utilisé afin de modifier le comportement de l'ensemble des instances de Memory.
Memory()
Memory.prototype.constructor
Renvoie la fonction qui a créé l'instance de l'objet. Par défaut, c'est le constructeur WebAssembly.Memory().
Memory.prototype.buffer
Une propriété d'accesseur qui renvoie le tampon contenu dans l'espace mémoire.
Memory.prototype.grow()
Cette méthode permet d'augmenter la taille de l'espace mémoire d'un nombre de pages donné (dont chacune mesure 64 Ko).
Il existe deux façons de créer un objet WebAssembly.Memory. La première consiste à le créer explicitement en JavaScript. Avec l'instruction qui suit, on crée un espace mémoire avec une taille initiale de 10 pages (soit 640 Ko) et une taille maximale de 100 pages (soit 6,4 Mo).
WebAssembly.Memory
var memoire = new WebAssembly.Memory({ initial: 10, maximum: 100 });
La seconde méthode permettant d'obtenir un objet WebAssembly.Memory est de l'exporter depuis un module WebAssembly. Dans l'exemple suivant (cf. le fichier memory.html sur GitHub ainsi que le résultat obtenu) on récupère et on instancie le bytecode memory.wasm grâce à la méthode WebAssembly.instantiateStreaming() tout en important la mémoire créée à la ligne précédente. Ensuite, on enregistre des valeurs au sein de cette mémoire puis on exporte une fonction qu'on utilise pour additionner certaines valeurs.
memory.wasm
WebAssembly.instantiateStreaming()
WebAssembly.instantiateStreaming(fetch("memory.wasm"), { js: { mem: memory }, }).then((obj) => { var i32 = new Uint32Array(memory.buffer); for (var i = 0; i < 10; i++) { i32[i] = i; } var sum = obj.instance.exports.accumulate(0, 10); console.log(sum); });
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.