Baseline Widely available
The Atomics.xor()
static method computes a bitwise XOR with 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 (0111) XOR 2 (0010) = 5 (0101)
console.log(Atomics.xor(uint8, 0, 2));
// Expected output: 7
console.log(Atomics.load(uint8, 0));
// Expected output: 5
Syntax
Atomics.xor(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 compute the bitwise XOR.
value
The number to compute the bitwise XOR with.
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
.
The bitwise XOR operation yields 1, if a
and b
are different. The truth table for the XOR operation is:
a
b
a ^ b
0 0 0 0 1 1 1 0 1 1 1 0
For example, a bitwise XOR of 5 ^ 1
results in 0100
which is 4 in decimal.
5 0101 1 0001 ---- 4 0100Examples Using xor
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 5;
Atomics.xor(ta, 0, 1); // returns 5, the old value
Atomics.load(ta, 0); // 4
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