Atomics.add()
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.
TheAtomics.add()
staticmethod adds a given value at a given position in the array and returns the old value atthat position. This atomic operation guarantees that no other write happens until themodified value is written back.
Try it
// Create a SharedArrayBuffer with a size in bytesconst buffer = new SharedArrayBuffer(16);const uint8 = new Uint8Array(buffer);uint8[0] = 7;// 7 + 2 = 9console.log(Atomics.add(uint8, 0, 2));// Expected output: 7console.log(Atomics.load(uint8, 0));// Expected output: 9
Syntax
js
Atomics.add(typedArray, index, value)
Parameters
typedArray
An integer typed array. One of
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
,BigInt64Array
, orBigUint64Array
.index
The position in the
typedArray
to add avalue
to.value
The number to add.
Return value
The old value at the given position(typedArray[index]
).
Exceptions
TypeError
Thrown if
typedArray
is not one of the allowed integer types.RangeError
Thrown if
index
is out of bounds in thetypedArray
.
Examples
Using add()
js
const sab = new SharedArrayBuffer(1024);const ta = new Uint8Array(sab);Atomics.add(ta, 0, 12); // returns 0, the old valueAtomics.load(ta, 0); // 12
Specifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-atomics.add |