Name Description Size Coverage
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 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). ... 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] --- 1497 -
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 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). ... 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] --- 2707 -
undefined-for-timeout.js --- esid: sec-atomics.waitasync description: > Undefined 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). ... 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] --- 2029 -
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 -