The static Atomics.store() method stores a given value at the given position in the array and returns that value.

Syntax

Atomics.store(typedArray, index, value)

Parameters

typedArray
A shared integer typed array. One of Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, or Uint32Array.
index
The position in the typedArray to store a value in.
value
The number to store.

Return value

The value that has been stored.

Exceptions

  • Throws a TypeError, if typedArray is not one of the allowed integer types.
  • Throws a TypeError, if typedArray is not a shared typed array type.
  • Throws a RangeError, if index is out of bounds in the typedArray.

Examples

var buffer = new ArrayBuffer(4);         // common buffer
var float32 = new Float32Array(buffer);  // floating point
var uint32 = new Uint32Array(buffer);    // IEEE754 representation

float32[0] = 0.5;
console.log("0x" + uint32[0].toString(16));

uint32[0] = 0x3f000000;   /// IEEE754 32-bit representation of 0.5
console.log(float32[0]);

Specifications

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Atomics.store' in that specification.
Draft Initial definition in ES2017.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

68

60 — 632

163

574 5

55 — 57

46 — 556

No No10.1 —?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support60 — 63160 — 631 ?

574 5

55 — 57

46 — 556

No No No

1. 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.

2. 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.

3. Support was removed to mitigate speculative execution side-channel attacks (Windows blog).

4. Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).

5. 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.

6. 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.

See also

Document Tags and Contributors

Contributors to this page: ladysilvia, wbamberg, fscholz, lth
Last updated by: ladysilvia,