Name Description Size
bad-range.js --- esid: sec-atomics.waitasync description: > Test range checking of Atomics.waitAsync on arrays that allow atomic operations info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) ... 2. Let i be ? ValidateAtomicAccess(typedArray, index). ... includes: [testAtomics.js] features: [Atomics.waitAsync, Atomics, SharedArrayBuffer, ArrayBuffer, DataView, Symbol, TypedArray] --- 1480
bigint
browser.js 0
descriptor.js --- esid: sec-atomics.waitasync description: Atomics.waitAsync property descriptor info: | ES Section 17 Every other data property described in clauses 18 through 26 and in Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] features: [Atomics.waitAsync, Atomics] --- 824
false-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > False timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 3245
false-for-timeout.js --- esid: sec-atomics.waitasync description: > False timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, computed-property-names, Symbol, Symbol.toPrimitive, arrow-function] --- 2302
good-views.js --- esid: sec-atomics.waitasync description: > Test Atomics.waitAsync on arrays that allow atomic operations flags: [async] includes: [atomicsHelper.js, asyncHelpers.js] features: [Atomics.waitAsync, Atomics] --- 2358
implicit-infinity-for-timeout.js --- esid: sec-atomics.waitasync description: > Undefined timeout arg is coerced to zero info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). ... Undefined Return NaN. 5.If q is NaN, let t be +∞, else let t be max(q, 0) flags: [async] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, computed-property-names, Symbol, Symbol.toPrimitive, arrow-function] --- 1479
is-function.js --- esid: sec-atomics.waitasync description: Atomics.waitAsync is callable features: [Atomics.waitAsync, Atomics] --- 569
length.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync.length is 4. info: | Atomics.waitAsync ( ia, index, expect, timeout ) 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.waitAsync, Atomics] --- 1319
name.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync.name is "waitAsync". includes: [propertyHelper.js] features: [Atomics.waitAsync, Atomics] --- 631
nan-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > NaN timeout arg should result in an infinite timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 1955
negative-index-throws.js --- esid: sec-atomics.waitasync description: > Throws a RangeError is index < 0 info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). 2. Let i be ? ValidateAtomicAccess(typedArray, index). features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics] --- 2037
negative-timeout-agent.js --- esid: sec-atomics.waitasync description: > Test that Atomics.waitAsync times out with a negative timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 1963
negative-timeout.js --- esid: sec-atomics.waitasync description: > Test that Atomics.waitAsync times out with a negative timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, destructuring-binding, arrow-function] --- 1394
no-spurious-wakeup-no-operation.js --- esid: sec-atomics.waitasync description: > Test that Atomics.waitAsync returns the right result when it timed out and that the time to time out is reasonable. info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2686
no-spurious-wakeup-on-add.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to Add operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2673
no-spurious-wakeup-on-and.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to And operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2673
no-spurious-wakeup-on-compareExchange.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to compareExchange operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2700
no-spurious-wakeup-on-exchange.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to exchange operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2683
no-spurious-wakeup-on-or.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to Or operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2671
no-spurious-wakeup-on-store.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to Store operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2682
no-spurious-wakeup-on-sub.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to Sub operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2673
no-spurious-wakeup-on-xor.js --- esid: sec-atomics.waitasync description: > Waiter does not spuriously notify on index which is subject to xor operation info: | AddWaiter ( WL, waiterRecord ) 5. Append waiterRecord as the last element of WL.[[Waiters]] 6. If waiterRecord.[[Timeout]] is finite, then in parallel, a. Wait waiterRecord.[[Timeout]] milliseconds. b. Perform TriggerTimeout(WL, waiterRecord). TriggerTimeout( WL, waiterRecord ) 3. If waiterRecord is in WL.[[Waiters]], then a. Set waiterRecord.[[Result]] to "timed-out". b. Perform RemoveWaiter(WL, waiterRecord). c. Perform NotifyWaiter(WL, waiterRecord). 4. Perform LeaveCriticalSection(WL). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2673
non-int32-typedarray-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if typedArray arg is not an Int32Array info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 5. If waitable is true, then a. If typeName is not "Int32Array" or "BigInt64Array", throw a TypeError exception. features: [Atomics.waitAsync, Float32Array, Float64Array, Int8Array, TypedArray, Uint16Array, Uint8Array, Uint8ClampedArray, arrow-function, SharedArrayBuffer, Atomics] --- 4860
non-shared-bufferdata-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if typedArray.buffer is not a SharedArrayBuffer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 5. If waitable is true, then a. If typeName is not "Int32Array" or "BigInt64Array", throw a TypeError exception. features: [Atomics.waitAsync, ArrayBuffer, Atomics, TypedArray, arrow-function] --- 1600
not-a-typedarray-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if the typedArray arg is not a TypedArray object info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). RequireInternalSlot ( O, internalSlot ) 1. If Type(O) is not Object, throw a TypeError exception. 2. If O does not have an internalSlot internal slot, throw a TypeError exception. features: [Atomics.waitAsync, arrow-function, Atomics] --- 1620
not-an-object-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if typedArray arg is not an Object info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). RequireInternalSlot ( O, internalSlot ) 1. If Type(O) is not Object, throw a TypeError exception. 2. If O does not have an internalSlot internal slot, throw a TypeError exception. features: [Atomics.waitAsync, Symbol, arrow-function, Atomics] --- 2687
null-bufferdata-throws.js --- esid: sec-atomics.waitasync description: > A null value for bufferData throws a TypeError info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). RequireInternalSlot ( O, internalSlot ) 1. If Type(O) is not Object, throw a TypeError exception. 2. If O does not have an internalSlot internal slot, throw a TypeError exception. includes: [detachArrayBuffer.js] features: [Atomics.waitAsync, ArrayBuffer, Atomics, TypedArray] --- 1839
null-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > null timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Null -> Return +0. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 3263
null-for-timeout.js --- esid: sec-atomics.waitasync description: > null timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Null -> Return +0. features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics, arrow-function] --- 1832
object-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > Object valueOf, toString, toPrimitive Zero timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Object -> Apply the following steps: Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 3488
object-for-timeout.js --- esid: sec-atomics.waitasync description: > Object valueOf, toString, toPrimitive Zero timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Object -> Apply the following steps: Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics, arrow-function] flags: [async] --- 2536
out-of-range-index-throws.js --- esid: sec-atomics.waitasync description: > Throws a RangeError if value of index arg is out of range info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 2. Let i be ? ValidateAtomicAccess(typedArray, index). ... 2.Let accessIndex be ? ToIndex(requestIndex). ... 5. If accessIndex ≥ length, throw a RangeError exception. features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics] --- 2106
poisoned-object-for-timeout-throws-agent.js --- esid: sec-atomics.waitasync description: > False timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2780
poisoned-object-for-timeout-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics] --- 1903
retrieve-length-before-index-coercion.js --- esid: sec-atomics.waitasync description: > TypedArray length is retrieved before index parameter coercion. info: | 25.4.14 Atomics.waitAsync ( typedArray, index, value, timeout ) 1. Return ? DoWait(async, typedArray, index, value, timeout). 25.4.3.14 DoWait ( mode, typedArray, index, value, timeout ) ... 4. Let i be ? ValidateAtomicAccess(taRecord, index). ... 25.4.3.2 ValidateAtomicAccess ( taRecord, requestIndex ) 1. Let length be TypedArrayLength(taRecord). 2. Let accessIndex be ? ToIndex(requestIndex). 3. Assert: accessIndex ≥ 0. 4. If accessIndex ≥ length, throw a RangeError exception. ... features: [Atomics.waitAsync, Atomics, TypedArray, resizable-arraybuffer] --- 1551
returns-result-object-value-is-promise-resolves-to-ok.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync returns a result object containing a property named "value" whose value is a promise that resolves to "ok" and async is true. info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) ... 13. Let promiseCapability be undefined. 14. If mode is async, then a. Set promiseCapability to ! NewPromiseCapability(%Promise%). ... Perform ! CreateDataPropertyOrThrow(_resultObject_, *"async"*, *true*). Perform ! CreateDataPropertyOrThrow(_resultObject_, *"value"*, _promiseCapability_.[[Promise]]). Return _resultObject_. flags: [async] features: [Atomics.waitAsync, TypedArray, SharedArrayBuffer, destructuring-binding, Atomics, arrow-function] --- 2123
returns-result-object-value-is-promise-resolves-to-timed-out.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync returns a result object containing a promise that resolves to "timed-out" and async is true. info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) ... 13. Let promiseCapability be undefined. 14. If mode is async, then a. Set promiseCapability to ! NewPromiseCapability(%Promise%). ... Perform ! CreateDataPropertyOrThrow(_resultObject_, *"async"*, *true*). Perform ! CreateDataPropertyOrThrow(_resultObject_, *"value"*, _promiseCapability_.[[Promise]]). Return _resultObject_. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, TypedArray, SharedArrayBuffer, destructuring-binding, Atomics, arrow-function] --- 2003
returns-result-object-value-is-string-not-equal.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync returns a result object containing a string "not-equal" and async is false. info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) ... 13. Let promiseCapability be undefined. 14. If mode is async, then a. Set promiseCapability to ! NewPromiseCapability(%Promise%). ... Perform ! CreateDataPropertyOrThrow(_resultObject_, *"async"*, *true*). Perform ! CreateDataPropertyOrThrow(_resultObject_, *"value"*, _promiseCapability_.[[Promise]]). Return _resultObject_. features: [Atomics.waitAsync, TypedArray, SharedArrayBuffer, destructuring-binding, Atomics] --- 1701
returns-result-object-value-is-string-timed-out.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync returns a result object containing a string "not-equal" and async is false. info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) ... 13. Let promiseCapability be undefined. 14. If mode is async, then a. Set promiseCapability to ! NewPromiseCapability(%Promise%). ... Perform ! CreateDataPropertyOrThrow(_resultObject_, *"async"*, *true*). Perform ! CreateDataPropertyOrThrow(_resultObject_, *"value"*, _promiseCapability_.[[Promise]]). Return _resultObject_. features: [Atomics.waitAsync, TypedArray, SharedArrayBuffer, destructuring-binding, Atomics] --- 1704
shell.js --- description: | A collection of assertion and wrapper functions for testing asynchronous built-ins. defines: [asyncTest, assert.throwsAsync] --- 15524
symbol-for-index-throws-agent.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, 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. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, Atomics, arrow-function, async-functions] --- 3068
symbol-for-index-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, 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.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics] --- 2698
symbol-for-timeout-throws-agent.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Symbol --> Throw a TypeError exception. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, Atomics, arrow-function, async-functions] --- 2485
symbol-for-timeout-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Symbol --> Throw a TypeError exception. features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics] --- 2197
symbol-for-value-throws-agent.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if value arg is a Symbol info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 5. Otherwise, let v be ? ToInt32(value). ToInt32(value) 1.Let number be ? ToNumber(argument). Symbol --> Throw a TypeError exception. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, Atomics, arrow-function, async-functions] --- 2852
symbol-for-value-throws.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if value arg is a Symbol info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 5. Otherwise, let v be ? ToInt32(value). ToInt32(value) 1.Let number be ? ToNumber(argument). Symbol --> Throw a TypeError exception. features: [Atomics.waitAsync, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray, computed-property-names, Atomics] --- 2369
true-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > True timeout arg should result in an +0 timeout info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2561
true-for-timeout.js --- esid: sec-atomics.waitasync description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). Boolean -> If argument is true, return 1. If argument is false, return +0. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, computed-property-names, Symbol, Symbol.toPrimitive, arrow-function] --- 2257
undefined-for-timeout-agent.js --- esid: sec-atomics.waitasync description: > Undefined timeout arg is coerced to zero info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). ... Undefined Return NaN. 5.If q is NaN, let t be +∞, else let t be max(q, 0) flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2689
undefined-for-timeout.js --- esid: sec-atomics.waitasync description: > Undefined timeout arg is coerced to zero info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 6. Let q be ? ToNumber(timeout). ... Undefined Return NaN. 5.If q is NaN, let t be +∞, else let t be max(q, 0) flags: [async] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, computed-property-names, Symbol, Symbol.toPrimitive, arrow-function] --- 2011
undefined-index-defaults-to-zero-agent.js --- esid: sec-atomics.waitasync description: > Undefined index arg is coerced to zero info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 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. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2807
validate-arraytype-before-index-coercion.js --- esid: sec-atomics.waitasync description: > TypedArray type is validated before `index` argument is coerced. info: | 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 1. If waitable is not present, set waitable to false. 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). 3. Let typeName be typedArray.[[TypedArrayName]]. 4. Let type be the Element Type value in Table 61 for typeName. 5. If waitable is true, then a. If typeName is not "Int32Array" or "BigInt64Array", throw a TypeError exception. 6. Else, a. If ! IsUnclampedIntegerElementType(type) is false and ! IsBigIntElementType(type) is false, throw a TypeError exception. 7. Assert: typedArray has a [[ViewedArrayBuffer]] internal slot. 8. Let buffer be typedArray.[[ViewedArrayBuffer]]. 9. If IsSharedArrayBuffer(buffer) is false, throw a TypeError exception. 10. Return buffer. includes: [testTypedArray.js] features: [Atomics.waitAsync, Atomics, TypedArray, SharedArrayBuffer] --- 2310
validate-arraytype-before-timeout-coercion.js --- esid: sec-atomics.waitasync description: > TypedArray type is validated before `timeout` argument is coerced. info: | 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 1. If waitable is not present, set waitable to false. 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). 3. Let typeName be typedArray.[[TypedArrayName]]. 4. Let type be the Element Type value in Table 61 for typeName. 5. If waitable is true, then a. If typeName is not "Int32Array" or "BigInt64Array", throw a TypeError exception. 6. Else, a. If ! IsUnclampedIntegerElementType(type) is false and ! IsBigIntElementType(type) is false, throw a TypeError exception. 7. Assert: typedArray has a [[ViewedArrayBuffer]] internal slot. 8. Let buffer be typedArray.[[ViewedArrayBuffer]]. 9. If IsSharedArrayBuffer(buffer) is false, throw a TypeError exception. 10. Return buffer. features: [Atomics.waitAsync, Atomics, TypedArray, SharedArrayBuffer] --- 2331
validate-arraytype-before-value-coercion.js --- esid: sec-atomics.waitasync description: > TypedArray type is validated before `value` argument is coerced. info: | 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ValidateSharedIntegerTypedArray ( typedArray [ , waitable ] ) 1. If waitable is not present, set waitable to false. 2. Perform ? RequireInternalSlot(typedArray, [[TypedArrayName]]). 3. Let typeName be typedArray.[[TypedArrayName]]. 4. Let type be the Element Type value in Table 61 for typeName. 5. If waitable is true, then a. If typeName is not "Int32Array" or "BigInt64Array", throw a TypeError exception. 6. Else, a. If ! IsUnclampedIntegerElementType(type) is false and ! IsBigIntElementType(type) is false, throw a TypeError exception. 7. Assert: typedArray has a [[ViewedArrayBuffer]] internal slot. 8. Let buffer be typedArray.[[ViewedArrayBuffer]]. 9. If IsSharedArrayBuffer(buffer) is false, throw a TypeError exception. 10. Return buffer. includes: [testTypedArray.js] features: [Atomics.waitAsync, Atomics, TypedArray, SharedArrayBuffer] --- 2310
value-not-equal-agent.js --- esid: sec-atomics.waitasync description: > Returns "not-equal" when value arg does not match an index in the typedArray info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 16. Let w be ! AtomicLoad(typedArray, i). 17. If v is not equal to w, then a. Perform LeaveCriticalSection(WL). b. If mode is sync, then i. Return the String "not-equal". c. Perform ! Call(capability.[[Resolve]], undefined, « "not-equal" »). d. Return promiseCapability.[[Promise]]. flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2472
value-not-equal.js --- esid: sec-atomics.waitasync description: > Returns "not-equal" when value arg does not match an index in the typedArray info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 16. Let w be ! AtomicLoad(typedArray, i). 17. If v is not equal to w, then a. Perform LeaveCriticalSection(WL). b. If mode is sync, then i. Return the String "not-equal". c. Perform ! Call(capability.[[Resolve]], undefined, « "not-equal" »). d. Return promiseCapability.[[Promise]]. flags: [async] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, computed-property-names, Symbol, Symbol.toPrimitive, Atomics, arrow-function] --- 1936
waiterlist-block-indexedposition-wake.js --- esid: sec-atomics.waitasync description: > Get the correct WaiterList info: | Atomics.waitAsync( typedArray, index, value, timeout ) 1. Return DoWait(async, typedArray, index, value, timeout). DoWait ( mode, typedArray, index, value, timeout ) 11. Let indexedPosition be (i × 4) + offset. 12. Let WL be GetWaiterList(block, indexedPosition). GetWaiterList( block, i ) ... 4. Return the WaiterList that is referenced by the pair (block, i). flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 3212
was-woken-before-timeout.js --- esid: sec-atomics.waitasync description: > Test that Atomics.waitAsync returns the right result when it was awoken before a timeout flags: [async] includes: [atomicsHelper.js] features: [Atomics.waitAsync, SharedArrayBuffer, TypedArray, Atomics, arrow-function, async-functions] --- 2263