MCPcopy Index your code
hub / github.com/nodejs/node / TestAtomicsOperations

Function TestAtomicsOperations

deps/v8/test/mjsunit/typedarray-helpers.js:426–452  ·  view source on GitHub ↗
(ta, index)

Source from the content-addressed store, hash-verified

424}
425
426function TestAtomicsOperations(ta, index) {
427 const one = IsBigIntTypedArray(ta) ? 1n : 1;
428 const two = IsBigIntTypedArray(ta) ? 2n : 2;
429 const three = IsBigIntTypedArray(ta) ? 3n : 3;
430
431 Atomics.store(ta, index, one);
432 assertEquals(one, Atomics.load(ta, index));
433 assertEquals(one, Atomics.exchange(ta, index, two));
434 assertEquals(two, Atomics.load(ta, index));
435 assertEquals(two, Atomics.compareExchange(ta, index, two, three));
436 assertEquals(three, Atomics.load(ta, index));
437
438 assertEquals(three, Atomics.sub(ta, index, two)); // 3 - 2 = 1
439 assertEquals(one, Atomics.load(ta, index));
440
441 assertEquals(one, Atomics.add(ta, index, one)); // 1 + 1 = 2
442 assertEquals(two, Atomics.load(ta, index));
443
444 assertEquals(two, Atomics.or(ta, index, one)); // 2 | 1 = 3
445 assertEquals(three, Atomics.load(ta, index));
446
447 assertEquals(three, Atomics.xor(ta, index, one)); // 3 ^ 1 = 2
448 assertEquals(two, Atomics.load(ta, index));
449
450 assertEquals(two, Atomics.and(ta, index, three)); // 2 & 3 = 2
451 assertEquals(two, Atomics.load(ta, index));
452}
453
454function AssertAtomicsOperationsThrow(ta, index, error) {
455 const one = IsBigIntTypedArray(ta) ? 1n : 1;

Calls 6

IsBigIntTypedArrayFunction · 0.85
addMethod · 0.65
assertEqualsFunction · 0.50
storeMethod · 0.45
loadMethod · 0.45
exchangeMethod · 0.45

Tested by

no test coverage detected