[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/Global/Global [Back]  [Original]

Constructeur WebAssembly.Global() - WebAssembly | MDN

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

Constructeur WebAssembly.Global()

Baseline Large disponibilit

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.

Le constructeur WebAssembly.Global() permet de crer un nouvel objet Global reprsentant une instance d'une variable globale, accessible depuis le code JavaScript et importable/exportable dans plusieurs instances de WebAssembly.Module. Cela permet la liaison dynamique de plusieurs modules.

Dans cet article

Syntaxe

js
new WebAssembly.Global(descripteur, valeur);

Paramtres

descripteur

Un objet dictionnaire GlobalDescriptor qui contient deux proprits :

  • value: Une chane USVString reprsentant le type de donnes de la variable globale. Elle peut tre i32, i64, f32, ou f64. USVString correspond l'ensemble des diffrentes squences Unicode scalaires possibles. USVString correspond String lorsqu'il est renvoy en JavaScript et est un type gnralement utilis par les API qui effectuent du traitement de texte et qui ont besoin de manipuler une chane de valeurs Unicode scalaire. USVString est quivalent DOMString sauf qu'il n'accepte pas les codets surrogate non appairs. De tels caractres prsents dans une valeur USVString seront convertis par le navigateur en caractres de remplacement Unicode : U+FFFD, ().
  • mutable: Une valeur boolenne qui indique si la variable globale est modifiable ou non. Par dfaut, elle vaut false.
valeur

La valeur que contient la variable. Ce peut tre n'importe quelle valeur dont le type correspond au type de donnes de la variable. Si aucune valeur n'est indique, c'est une valeur 0 type qui est utilise, comme indiqu dans l'algorithme DefaultValue.

Exemples

Crer une nouvelle instance de Global

L'exemple suivant illustre une nouvelle instance de variable globale cre avec le constructeur WebAssembly.Global(). Dans cet exemple, on dfinit une variable globale modifiable, de type i32 avec une valeur initiale 0.

La valeur de la variable globale est ensuite change : d'abord en 42 avec la proprit Global.value, puis en 43 avec la fonction incGlobal() qu'on a exporte du module global.wasm (cette fonction ajoute 1 toute valeur qui lui est fournie et renvoie la valeur obtenue).

js
const output = document.getElementById("output");

function assertEq(msg, got, expected) {
  output.innerHTML += `Test ${msg}: `;
  if (got !== expected)
    output.innerHTML += `CHEC&nbsp;!<br>Rsultat&nbsp; ${got}<br>Attendu&nbsp: ${expected}<br>`;
  else output.innerHTML += `SUCCS&nbsp;! Rsultat&nbsp; ${got}<br>`;
}

assertEq("WebAssembly.Global existe", typeof WebAssembly.Global, "function");

const global = new WebAssembly.Global({ value: "i32", mutable: true }, 0);

WebAssembly.instantiateStreaming(fetch("global.wasm"), { js: { global } }).then(
  ({ instance }) => {
    assertEq(
      "Obtenir une valeur initiale WASM",
      instance.exports.getGlobal(),
      0,
    );
    global.value = 42;
    assertEq(
      "Obtenir une valeur mise  jour depuis le code JS",
      instance.exports.getGlobal(),
      42,
    );
    instance.exports.incGlobal();
    assertEq(
      "Obtenir une valeur mise  jour depuis le code WASM",
      global.value,
      43,
    );
  },
);

Spcifications

Spcification
WebAssembly JavaScript Interface
# dom-global-global

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page