La méthode statique Atomics.sub() permet de soustraire une valeur donnée à une position donnée du tableau partagé. Elle renvoie l'ancienne valeur qui était contenue dans le tableau avant l'opération. Cette opération atomique garantit qu'aucune autre opération d'écriture n'est appliquée tant que la valeur modifiée n'est pas écrite.

Syntaxe

Atomics.sub(typedArray, index, valeur)

Paramètres

typedArray
Un tableau typé entier partagé parmi Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array ou Uint32Array.
index
La position du tableau typé typedArray à laquelle on veut soustraire valeur.
valeur
La quantité qu'on souhaite soustraire.

Valeur de retour

L'ancienne valeur qui était contenue à (typedArray[index]).

Exceptions levées

  • Cette méthode lève TypeError si le type de typedArray n'est pas un des types entiers autorisés.
  • Cette méthode lève TypeError si typedArray n'est pas tableau typé partagé.
  • Cette méthode lève RangeError si index est en dehors des limites de typedArray.

Exemples

var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
ta[0] = 48;

Atomics.sub(ta, 0, 12); // renvoie 48, l'ancienne valeur
Atomics.load(ta, 0);    // 36

Spécifications

Spécification État Commentaires
ECMAScript Latest Draft (ECMA-262)
La définition de 'Atomics.sub' dans cette spécification.
Projet Définition initiale avec ES2017.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 68
Support complet 68
Aucun support 60 — 63
Notes
Notes Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This was a temporary removal while mitigations were put in place.
Edge Support complet 16
Notes
Support complet 16
Notes
Notes Support was removed to mitigate speculative execution side-channel attacks (Windows blog).
Firefox Support complet 57
Notes Désactivée
Support complet 57
Notes Désactivée
Notes Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Désactivée From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Aucun support 55 — 57
Aucun support 46 — 55
Désactivée
Désactivée From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Aucun support NonOpera Aucun support NonSafari Aucun support 10.1 — ?WebView Android Aucun support 60 — 63
Notes
Aucun support 60 — 63
Notes
Notes Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Chrome Android Aucun support 60 — 63
Notes
Aucun support 60 — 63
Notes
Notes Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Edge Mobile ? Firefox Android Support complet 57
Notes Désactivée
Support complet 57
Notes Désactivée
Notes Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
Désactivée From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Aucun support 55 — 57
Aucun support 46 — 55
Désactivée
Désactivée From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Support complet 8.10.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,