bad-range.js |
---
esid: sec-atomics.exchange
description: >
Test range checking of Atomics.exchange on arrays that allow atomic operations
includes: [testAtomics.js, testTypedArray.js]
features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray]
--- |
1124 |
bigint |
|
|
browser.js |
|
0 |
descriptor.js |
---
esid: sec-atomics.exchange
description: Testing descriptor property of Atomics.exchange
includes: [propertyHelper.js]
features: [Atomics]
--- |
504 |
expected-return-value.js |
---
esid: sec-atomics.exchange
description: >
Atomics.and returns the value that existed at the
index prior to the operation.
info: |
Atomics.exchange( typedArray, index, value )
1. Return ? AtomicReadModifyWrite(typedArray, index, value, second).
AtomicReadModifyWrite( typedArray, index, value, op )
...
9. Return GetModifySetValueInBuffer(buffer, indexedPosition,
elementType, v, op).
GetModifySetValueInBuffer( arrayBuffer,
byteIndex, type, value, op [ , isLittleEndian ] )
...
16. Return RawBytesToNumber(type, rawBytesRead, isLittleEndian).
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1501 |
good-views.js |
---
esid: sec-atomics.exchange
description: Test Atomics.exchange on arrays that allow atomic operations.
includes: [testAtomics.js, testTypedArray.js]
features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray]
--- |
2425 |
length.js |
---
esid: sec-atomics.exchange
description: >
Atomics.exchange.length is 3.
info: |
Atomics.exchange ( ia, index, val )
17 ECMAScript Standard Built-in Objects:
Every built-in Function object, including constructors, has a length
property whose value is an integer. Unless otherwise specified, this
value is equal to the largest number of named arguments shown in the
subclause headings for the function description, including optional
parameters. However, rest parameters shown using the form “...name”
are not included in the default argument count.
Unless otherwise specified, the length property of a built-in Function
object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }.
includes: [propertyHelper.js]
features: [Atomics]
--- |
1264 |
name.js |
---
esid: sec-atomics.exchange
description: >
Atomics.exchange.name is "exchange".
includes: [propertyHelper.js]
features: [Atomics]
--- |
587 |
non-shared-bufferdata.js |
---
esid: sec-atomics.exchange
description: >
Atomics.exchange will operate on TA when TA.buffer is not a SharedArrayBuffer
includes: [testTypedArray.js]
features: [ArrayBuffer, Atomics, TypedArray]
--- |
802 |
non-shared-int-views-throws.js |
---
esid: sec-atomics.add
description: >
Atomics.add throws when operating on non-sharable integer TypedArrays
includes: [testTypedArray.js]
features: [ArrayBuffer, Atomics, TypedArray]
--- |
769 |
non-views.js |
---
esid: sec-atomics.exchange
description: >
Test Atomics.exchange on view values other than TypedArrays
includes: [testAtomics.js]
features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray]
--- |
802 |
nonshared-int-views.js |
---
esid: sec-atomics.exchange
description: >
Atomics.exchange throws when operating on non-sharable integer TypedArrays
includes: [testTypedArray.js]
features: [ArrayBuffer, Atomics, TypedArray]
--- |
798 |
not-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
Atomics.exchange does not implement [[Construct]], is not new-able
info: |
ECMAScript Function Objects
Built-in function objects that are not identified as constructors do not
implement the [[Construct]] internal method unless otherwise specified in
the description of a particular function.
sec-evaluatenew
...
7. If IsConstructor(constructor) is false, throw a TypeError exception.
...
includes: [isConstructor.js]
features: [Reflect.construct, Atomics, arrow-function, TypedArray, SharedArrayBuffer]
--- |
1280 |
shell.js |
---
description: |
Test if a given function is a constructor function.
defines: [isConstructor]
features: [Reflect.construct]
--- |
596 |
validate-arraytype-before-index-coercion.js |
---
esid: sec-atomics.exchange
description: >
TypedArray type is validated before `index` argument is coerced.
info: |
24.4.5 Atomics.exchange ( typedArray, index, value )
1. Return ? AtomicReadModifyWrite(typedArray, index, value, second).
24.4.1.11 AtomicReadModifyWrite ( typedArray, index, value, op )
1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray).
...
24.4.1.1 ValidateSharedIntegerTypedArray ( typedArray [ , onlyInt32 ] )
...
4. Let typeName be typedArray.[[TypedArrayName]].
5. If onlyInt32 is true, then
a. If typeName is not "Int32Array", throw a TypeError exception.
6. Else,
a. If typeName is not "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array",
or "Uint32Array", throw a TypeError exception.
...
includes: [testTypedArray.js]
features: [Atomics, TypedArray]
--- |
1471 |
validate-arraytype-before-value-coercion.js |
---
esid: sec-atomics.exchange
description: >
TypedArray type is validated before `value` argument is coerced.
info: |
24.4.5 Atomics.exchange ( typedArray, index, value )
1. Return ? AtomicReadModifyWrite(typedArray, index, value, second).
24.4.1.11 AtomicReadModifyWrite ( typedArray, index, value, op )
1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray).
...
24.4.1.1 ValidateSharedIntegerTypedArray ( typedArray [ , onlyInt32 ] )
...
4. Let typeName be typedArray.[[TypedArrayName]].
5. If onlyInt32 is true, then
a. If typeName is not "Int32Array", throw a TypeError exception.
6. Else,
a. If typeName is not "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array",
or "Uint32Array", throw a TypeError exception.
...
includes: [testTypedArray.js]
features: [Atomics, TypedArray]
--- |
1471 |