bad-range.js |
---
esid: sec-atomics.notify
description: >
Test range checking of Atomics.notify on arrays that allow atomic operations
info: |
Atomics.notify( typedArray, index, count )
1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
..
includes: [testAtomics.js]
features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray]
--- |
1057 |
bigint |
|
|
browser.js |
|
0 |
count-boundary-cases.js |
---
esid: sec-atomics.notify
description: >
Allowed boundary cases for 'count' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, count )
...
3. If count is undefined, let c be +∞.
4. Else,
a. Let intCount be ? ToInteger(count).
...
ToInteger ( argument )
1. Let number be ? ToNumber(argument).
2. If number is NaN, return +0.
3. If number is +0, -0, +∞, or -∞, return number.
4. Return the number value that is the same sign as number
and whose magnitude is floor(abs(number)).
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1809 |
count-defaults-to-infinity-missing.js |
---
esid: sec-atomics.notify
description: >
Default to +Infinity when missing 'count' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, count )
...
3. If count is undefined, let c be +∞.
...
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2446 |
count-defaults-to-infinity-undefined.js |
---
esid: sec-atomics.notify
description: >
Undefined count arg should result in an infinite count
info: |
Atomics.notify( typedArray, index, count )
3.If count is undefined, let c be +∞.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2399 |
count-from-nans.js |
---
esid: sec-atomics.notify
description: >
NaNs are converted to 0 for 'count' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, count )
...
3. If count is undefined, let c be +∞.
4. Else,
a. Let intCount be ? ToInteger(count).
...
ToInteger ( argument )
...
2. If number is NaN, return +0.
...
includes: [nans.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1077 |
count-symbol-throws.js |
---
esid: sec-atomics.notify
description: >
Return abrupt when symbol passed for 'count' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, count )
...
3. If count is undefined, let c be +∞.
4. Else,
a. Let intCount be ? ToInteger(count).
...
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
951 |
count-tointeger-throws-then-wake-throws.js |
---
esid: sec-atomics.notify
description: >
Return abrupt when ToInteger throws an exception on 'count' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, count )
...
3. If count is undefined, let c be +∞.
4. Else,
a. Let intCount be ? ToInteger(count).
...
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1081 |
descriptor.js |
---
esid: sec-atomics.notify
description: Testing descriptor property of Atomics.notify
includes: [propertyHelper.js]
features: [Atomics]
--- |
498 |
length.js |
---
esid: sec-atomics.notify
description: >
Atomics.notify.length is 3.
info: |
Atomics.notify ( ia, index, count )
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]
--- |
1258 |
name.js |
---
esid: sec-atomics.notify
description: >
Atomics.notify.name is "notify".
includes: [propertyHelper.js]
features: [Atomics]
--- |
577 |
negative-count.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies zero waiters if the count is negative
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1434 |
negative-index-throws.js |
---
esid: sec-atomics.notify
description: >
Throws a RangeError is index < 0
info: |
Atomics.notify( typedArray, index, count )
2.Let i be ? ValidateAtomicAccess(typedArray, index).
...
2.Let accessIndex be ? ToIndex(requestIndex).
...
2.b If integerIndex < 0, throw a RangeError exception
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1361 |
non-int32-typedarray-throws.js |
---
esid: sec-atomics.notify
description: >
Throws a TypeError if typedArray arg is not an Int32Array
info: |
Atomics.notify( typedArray, index, count )
1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
...
5.If onlyInt32 is true, then
If typeName is not "Int32Array", throw a TypeError exception.
features: [Atomics, Float32Array, Float64Array, Int8Array, TypedArray, Uint16Array, Uint8Array, Uint8ClampedArray]
--- |
2558 |
non-shared-bufferdata-count-evaluation-throws.js |
---
esid: sec-atomics.notify
description: >
Evaluates count before returning 0, when TA.buffer is not a SharedArrayBuffer
info: |
Atomics.notify( typedArray, index, count )
Let buffer be ? ValidateIntegerTypedArray(typedArray, true).
...
Else,
Let intCount be ? ToInteger(count).
Let c be max(intCount, 0).
...
If IsSharedArrayBuffer(buffer) is false, return 0.
features: [ArrayBuffer, Atomics, TypedArray]
--- |
927 |
non-shared-bufferdata-index-evaluation-throws.js |
---
esid: sec-atomics.notify
description: >
Evaluates index before returning 0, when TA.buffer is not a SharedArrayBuffer
info: |
Atomics.notify( typedArray, index, count )
Let buffer be ? ValidateIntegerTypedArray(typedArray, true).
Let i be ? ValidateAtomicAccess(typedArray, index).
...
If IsSharedArrayBuffer(buffer) is false, return 0.
features: [ArrayBuffer, Atomics, TypedArray]
--- |
895 |
non-shared-bufferdata-non-shared-int-views-throws.js |
---
esid: sec-atomics.notify
description: >
Atomics.notify throws on non-shared integer TypedArrays
features: [ArrayBuffer, Atomics, TypedArray]
--- |
1227 |
non-shared-bufferdata-returns-0.js |
---
esid: sec-atomics.notify
description: >
Returns 0, when TA.buffer is not a SharedArrayBuffer
info: |
Atomics.notify( typedArray, index, count )
Let buffer be ? ValidateIntegerTypedArray(typedArray, true).
...
If IsSharedArrayBuffer(buffer) is false, return 0.
features: [ArrayBuffer, Atomics, TypedArray]
--- |
840 |
non-shared-int-views.js |
---
esid: sec-atomics.notify
description: >
Test Atomics.notify on non-shared integer TypedArrays
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1408 |
non-views.js |
---
esid: sec-atomics.notify
description: >
Test Atomics.notify on view values other than TypedArrays
includes: [testAtomics.js]
features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray]
--- |
826 |
not-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
Atomics.notify 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]
--- |
1272 |
not-a-typedarray-throws.js |
---
esid: sec-atomics.notify
description: >
Throws a TypeError if the typedArray arg is not a TypedArray object
info: |
Atomics.notify( typedArray, index, count )
1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
...
3.If typedArray does not have a [[TypedArrayName]] internal slot, throw a TypeError exception.
features: [Atomics]
--- |
901 |
not-an-object-throws.js |
---
esid: sec-atomics.notify
description: >
Throws a TypeError if typedArray arg is not an Object
info: |
Atomics.notify( typedArray, index, count )
1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
...
2. if Type(typedArray) is not Object, throw a TypeError exception
features: [Atomics, Symbol]
--- |
1360 |
notify-all-on-loc.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies all waiters on a location, but does not
notify waiters on other locations.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
3325 |
notify-all.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies all waiters if that's what the count is.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1877 |
notify-in-order-one-time.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies agents in the order they are waiting.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2446 |
notify-in-order.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies agents in the order they are waiting.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2446 |
notify-nan.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.nofity nofities zero waiters if the count is NaN
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1498 |
notify-one.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies one waiter if that's what the count is.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2351 |
notify-renotify-noop.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify on awoken waiter is a noop.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1498 |
notify-two.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies two waiters if that's what the count is.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2351 |
notify-with-no-agents-waiting.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies zero waiters if there are no agents waiting.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1179 |
notify-with-no-matching-agents-waiting.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies zero waiters if there are no waiters
at the index specified.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1175 |
notify-zero.js |
---
esid: sec-atomics.notify
description: >
Test that Atomics.notify notifies zero waiters if that's what the count is.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1946 |
null-bufferdata-throws.js |
---
esid: sec-atomics.notify
description: >
A null value for bufferData (detached) throws a TypeError
info: |
Atomics.notify( typedArray, index, count )
Let buffer be ? ValidateIntegerTypedArray(typedArray, true).
...
Let buffer be ? ValidateTypedArray(typedArray).
...
If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
...
If arrayBuffer.[[ArrayBufferData]] is null, return true.
includes: [detachArrayBuffer.js]
features: [ArrayBuffer, Atomics, TypedArray]
--- |
1295 |
out-of-range-index-throws.js |
---
esid: sec-atomics.notify
description: >
Throws a RangeError if value of index arg is out of range
info: |
Atomics.notify( typedArray, index, count )
2.Let i be ? ValidateAtomicAccess(typedArray, index).
...
2.Let accessIndex be ? ToIndex(requestIndex).
...
5. If accessIndex ≥ length, throw a RangeError exception.
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
1294 |
shell.js |
---
description: >
Collection of functions used to interact with Atomics.* operations across agent boundaries.
defines:
- $262.agent.getReportAsync
- $262.agent.getReport
- $262.agent.safeBroadcastAsync
- $262.agent.safeBroadcast
- $262.agent.setTimeout
- $262.agent.tryYield
- $262.agent.trySleep
--- |
13120 |
symbol-for-index-throws.js |
---
esid: sec-atomics.notify
description: >
Return abrupt when ToInteger throws for 'index' argument to Atomics.notify
info: |
Atomics.notify( typedArray, index, value, timeout )
2. Let i be ? ValidateAtomicAccess(typedArray, index).
ValidateAtomicAccess( typedArray, requestIndex )
2. Let accessIndex be ? ToIndex(requestIndex).
ToIndex ( value )
2. Else,
a. Let integerIndex be ? ToInteger(value).
ToInteger(value)
1. Let number be ? ToNumber(argument).
Symbol --> Throw a TypeError exception.
features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray]
--- |
1836 |
undefined-index-defaults-to-zero.js |
---
esid: sec-atomics.notify
description: >
An undefined index arg should translate to 0
info: |
Atomics.notify( typedArray, index, count )
2.Let i be ? ValidateAtomicAccess(typedArray, index).
...
2.Let accessIndex be ? ToIndex(requestIndex).
9.If IsSharedArrayBuffer(buffer) is false, throw a TypeError exception.
...
3.If bufferData is a Data Block, return false
If value is undefined, then
Let index be 0.
includes: [atomicsHelper.js]
features: [Atomics, SharedArrayBuffer, TypedArray]
--- |
2402 |
validate-arraytype-before-count-coercion.js |
---
esid: sec-atomics.notify
description: >
TypedArray type is validated before `count` argument is coerced.
info: |
24.4.12 Atomics.notify ( typedArray, index, count )
1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
...
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]
--- |
1400 |
validate-arraytype-before-index-coercion.js |
---
esid: sec-atomics.notify
description: >
TypedArray type is validated before `index` argument is coerced.
info: |
24.4.12 Atomics.notify ( typedArray, index, count )
1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true).
...
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]
--- |
1400 |