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] --- 1163
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] --- 698
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] --- 2928
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] --- 1985
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] --- 2232
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] --- 1162
is-function.js --- esid: sec-atomics.waitasync description: Atomics.waitAsync is callable features: [Atomics.waitAsync, Atomics] --- 443
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] --- 1193
name.js --- esid: sec-atomics.waitasync description: > Atomics.waitAsync.name is "waitAsync". includes: [propertyHelper.js] features: [Atomics.waitAsync, Atomics] --- 505
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] --- 1638
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] --- 1720
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] --- 1646
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] --- 1077
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] --- 2369
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] --- 2356
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] --- 2356
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] --- 2383
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] --- 2366
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] --- 2354
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] --- 2365
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] --- 2356
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] --- 2356
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] --- 4543
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] --- 1474
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] --- 1494
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] --- 2561
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] --- 1713
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] --- 2946
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] --- 1515
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] --- 3171
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] --- 2219
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] --- 1789
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] --- 2463
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] --- 1586
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] --- 1806
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] --- 1686
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] --- 1384
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] --- 1387
shell.js --- description: | A collection of assertion and wrapper functions for testing asynchronous built-ins. defines: [asyncTest, assert.throwsAsync] --- 15501
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] --- 2751
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] --- 2381
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] --- 2168
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] --- 1880
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] --- 2535
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] --- 2052
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] --- 2244
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] --- 1940
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] --- 2372
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] --- 1694
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] --- 2490
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] --- 2029
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] --- 2014
validate-arraytype-before-value-coercion.js --- esid: sec-atomics.notify 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] --- 2026
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] --- 2155
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] --- 1619
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] --- 2895
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] --- 1946