Baseline Widely available
The Atomics.add()
static method adds a given value at a given position in the array and returns the old value at that position. This atomic operation guarantees that no other write happens until the modified value is written back.
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
uint8[0] = 7;
// 7 + 2 = 9
console.log(Atomics.add(uint8, 0, 2));
// Expected output: 7
console.log(Atomics.load(uint8, 0));
// Expected output: 9
Syntax
Atomics.add(typedArray, index, value)
Parameters
typedArray
An integer typed array. One of Int8Array
, Uint8Array
, Int16Array
, Uint16Array
, Int32Array
, Uint32Array
, BigInt64Array
, or BigUint64Array
.
index
The position in the typedArray
to add a value
to.
value
The number to add.
The old value at the given position (typedArray[index]
).
TypeError
Thrown if typedArray
is not one of the allowed integer types.
RangeError
Thrown if index
is out of bounds in the typedArray
.
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
Atomics.add(ta, 0, 12); // returns 0, the old value
Atomics.load(ta, 0); // 12
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4