Atomics.or()
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.or()
staticmethod computes a bitwise OR with a given value at a given position in the array, andreturns the old value at that position. This atomic operation guarantees that no otherwrite happens until the modified 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] = 5;// 5 (0101) OR 2 (0010) = 7 (0111)console.log(Atomics.or(uint8, 0, 2));// Expected output: 5console.log(Atomics.load(uint8, 0));// Expected output: 7
Syntax
Atomics.or(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 compute the bitwise OR.value
The number to compute the bitwise OR with.
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
.
Description
The bitwise OR operation yields 1, if eithera
orb
are 1.The truth table for the OR operation is:
a | b | a | b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
For example, a bitwise OR of5 | 1
results in0101
which is 5in decimal.
5 01011 0001 ----5 0101
Examples
Using or
const sab = new SharedArrayBuffer(1024);const ta = new Uint8Array(sab);ta[0] = 2;Atomics.or(ta, 0, 1); // returns 2, the old valueAtomics.load(ta, 0); // 3
Specifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-atomics.or |