| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/Global | [Back] [Original] |
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.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2020.
Un objet WebAssembly.Global reprsente une instance d'une variable globale, accessible depuis le code JavaScript et importable/exportable pour un ou plusieurs modules WebAssembly (WebAssembly.Module). Cela permet de lier dynamiquement plusieurs modules.
WebAssembly.Global()Cre un nouvel objet Global.
GlobalToutes les instances de Global hritent du prototype du constructeur Global(), ce dernier peut tre modifi afin de modifier le comportement de l'ensemble des instances Global.
Global.prototype.constructorRenvoie la fonction qui a cr cette instance d'objet. Par dfaut, c'est le constructeur WebAssembly.Global().
Global.prototype[@@toStringTag]La valeur initiale de la proprit @@toStringTag est la chane de caractres "WebAssembly.Global".
Global.prototype.valueLa valeur contenue au sein de la variable globale. Elle peut tre utilise pour rcuprer ou modifier la valeur de la variable globale.
Global.prototype.valueOf()Une mthode ancienne qui renvoie la valeur contenue au sein de la variable globale.
GlobalDans l'exemple suivant, on montre comment crer une nouvelle instance globale grce au constructeur WebAssembly.Global(). Cette instance globale est dfinie avec le type i32 et est indique comme modifiable. Sa valeur initiale est 0.
On change ensuite la valeur de la variable globale en la passant 42 grce la proprit Global.value puis en la passant 43 grce la fonction incGlobal() qui a t exporte depuis le module global.wasm (cette fonction ajoute 1 n'imorte quelle valeur puis renvoie cette nouvelle valeur).
const output = document.getElementById("output");
function assertEq(msg, res, attendu) {
output.innerHTML += `Test ${msg} : `;
if (res !== attendu)
output.innerHTML += `CHEC !<br>Rsultat : ${res}<br>Attendu : ${attendu}<br>`;
else output.innerHTML += `SUCCS ! Rsultat : ${res}<br>`;
}
assertEq(
"Existence de WebAssembly.Global",
typeof WebAssembly.Global,
"function",
);
const global = new WebAssembly.Global({ value: "i32", mutable: true }, 0);
WebAssembly.instantiateStreaming(fetch("global.wasm"), { js: { global } }).then(
({ instance }) => {
assertEq(
"Obtention de la valeur initiale depuis wasm",
instance.exports.getGlobal(),
0,
);
global.value = 42;
assertEq(
"Obtention de la valeur mise jour en JS depuis wasm",
instance.exports.getGlobal(),
42,
);
instance.exports.incGlobal();
assertEq(
"Obtention de la valeur mise jour ct wasm en JS",
global.value,
43,
);
},
);
Note : Cet exemple est utilisable sur GitHub et son code source est galement disponible.
| Spcification |
|---|
| WebAssembly JavaScript Interface # globals |
Cette page a t modifie le 7 sept. 2025 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |