Name Description Size Coverage
bad-range.js --- esid: sec-atomics.wait description: > Test range checking of Atomics.wait on arrays that allow atomic operations info: | Atomics.wait( typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... includes: [testAtomics.js] features: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, Symbol, TypedArray] --- 1062 -
bigint -
browser.js 0 -
cannot-suspend-throws.js --- esid: sec-atomics.wait description: > Atomics.wait throws if agent cannot be suspended, CanBlock is false info: | Assuming [[CanBlock]] is false for the main host. Atomics.wait( typedArray, index, value, timeout ) ... (after args validation) 6. Let B be AgentCanSuspend(). 7. If B is false, throw a TypeError exception. ... features: [Atomics, SharedArrayBuffer, TypedArray] flags: [CanBlockIsFalse] --- 1078 -
descriptor.js --- esid: sec-atomics.wait description: Testing descriptor property of Atomics.wait includes: [propertyHelper.js] features: [Atomics] --- 492 -
false-for-timeout-agent.js --- esid: sec-atomics.wait description: > False timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Boolean -> If argument is true, return 1. If argument is false, return +0. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2103 -
false-for-timeout.js --- esid: sec-atomics.wait description: > False timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Boolean -> If argument is true, return 1. If argument is false, return +0. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] flags: [CanBlockIsTrue] --- 1510 -
good-views.js --- esid: sec-atomics.wait description: > Test Atomics.wait on arrays that allow atomic operations, in an Agent that is allowed to wait. includes: [atomicsHelper.js] features: [Atomics] --- 1960 -
length.js --- esid: sec-atomics.wait description: > Atomics.wait.length is 4. info: | Atomics.wait ( 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] --- 1260 -
name.js --- esid: sec-atomics.wait description: > Atomics.wait.name is "wait". includes: [propertyHelper.js] features: [Atomics] --- 567 -
nan-for-timeout.js --- esid: sec-atomics.wait description: > NaN timeout arg should result in an infinite timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4.Let q be ? ToNumber(timeout). ... Undefined Return NaN. 5.If q is NaN, let t be +∞, else let t be max(q, 0) includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1516 -
negative-index-throws.js --- esid: sec-atomics.wait description: > Throws a RangeError is index < 0 info: | Atomics.wait( typedArray, index, value, timeout ) 2.Let i be ? ValidateAtomicAccess(typedArray, index). ... 2.Let accessIndex be ? ToIndex(requestIndex). ... 2.b If integerIndex < 0, throw a RangeError exception features: [Atomics, SharedArrayBuffer, TypedArray] --- 1399 -
negative-timeout-agent.js --- esid: sec-atomics.wait description: > Test that Atomics.wait times out with a negative timeout includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1347 -
negative-timeout.js --- esid: sec-atomics.wait description: > Test that Atomics.wait times out with a negative timeout features: [Atomics, SharedArrayBuffer, TypedArray] flags: [CanBlockIsTrue] --- 896 -
no-spurious-wakeup-no-operation.js --- esid: sec-atomics.wait description: > Test that Atomics.wait returns the right result when it timed out and that the time to time out is reasonable. info: | 17. Let awoken be Suspend(WL, W, t). 18. If awoken is true, then a. Assert: W is not on the list of waiters in WL. 19. Else, a.Perform RemoveWaiter(WL, W). includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1945 -
no-spurious-wakeup-on-add.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to Add operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1707 -
no-spurious-wakeup-on-and.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to And operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1707 -
no-spurious-wakeup-on-compareExchange.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to compareExchange operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1734 -
no-spurious-wakeup-on-exchange.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to exchange operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1717 -
no-spurious-wakeup-on-or.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to Or operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1705 -
no-spurious-wakeup-on-store.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to Store operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1718 -
no-spurious-wakeup-on-sub.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to Sub operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1707 -
no-spurious-wakeup-on-xor.js --- esid: sec-atomics.wait description: > Waiter does not spuriously notify on index which is subject to xor operation includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1707 -
non-int32-typedarray-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if typedArray arg is not an Int32Array info: | Atomics.wait( typedArray, index, value, timeout ) 1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 5.If onlyInt32 is true, then If typeName is not "Int32Array", throw a TypeError exception. features: [Atomics, Float32Array, Float64Array, Int8Array, TypedArray, Uint16Array, Uint8Array, Uint8ClampedArray] --- 2621 -
non-shared-bufferdata-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if typedArray.buffer is not a SharedArrayBuffer info: | Atomics.wait( typedArray, index, value, timeout ) 1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 9.If IsSharedArrayBuffer(buffer) is false, throw a TypeError exception. ... 4.If bufferData is a Data Block, return false. features: [ArrayBuffer, Atomics, TypedArray] --- 1063 -
not-a-typedarray-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if the typedArray arg is not a TypedArray object info: | Atomics.wait( typedArray, index, value, timeout ) 1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 3.If typedArray does not have a [[TypedArrayName]] internal slot, throw a TypeError exception. features: [Atomics] --- 903 -
not-an-object-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if typedArray arg is not an Object info: | Atomics.wait( typedArray, index, value, timeout ) 1.Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 2. if Type(typedArray) is not Object, throw a TypeError exception features: [Atomics, Symbol] --- 1419 -
null-bufferdata-throws.js --- esid: sec-atomics.wait description: > A null value for bufferData (detached) throws a TypeError info: | Atomics.wait( typedArray, index, value, timeout ) Let buffer be ? ValidateIntegerTypedArray(typedArray, true). ... Let buffer be ? ValidateTypedArray(typedArray). ... If IsDetachedBuffer(buffer) is true, throw a TypeError exception. ... If arrayBuffer.[[ArrayBufferData]] is null, return true. includes: [detachArrayBuffer.js] features: [ArrayBuffer, Atomics, TypedArray] --- 1308 -
null-for-timeout-agent.js --- esid: sec-atomics.wait description: > False timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Null -> Return +0. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2044 -
null-for-timeout.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Null -> Return +0. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] flags: [CanBlockIsTrue] --- 1472 -
object-for-timeout-agent.js --- esid: sec-atomics.wait description: > False timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Null -> Return +0. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2120 -
object-for-timeout.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Object -> Apply the following steps: Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] flags: [CanBlockIsTrue] --- 1658 -
out-of-range-index-throws.js --- esid: sec-atomics.wait description: > Throws a RangeError if value of index arg is out of range info: | Atomics.wait( 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, SharedArrayBuffer, TypedArray] --- 1412 -
poisoned-object-for-timeout-throws-agent.js --- esid: sec-atomics.wait description: > False timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Null -> Return +0. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2172 -
poisoned-object-for-timeout-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Object -> Apply the following steps: Let primValue be ? ToPrimitive(argument, hint Number). Return ? ToNumber(primValue). features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 1421 -
retrieve-length-before-index-coercion.js --- esid: sec-atomics.wait description: > TypedArray length is retrieved before index parameter coercion. info: | 25.4.13 Atomics.wait ( typedArray, index, value, timeout ) 1. Return ? DoWait(sync, 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, TypedArray, resizable-arraybuffer] --- 1430 -
shell.js --- description: > Collection of functions used to interact with Atomics.* operations across agent boundaries. defines: - $262.agent.getReportAsync - $262.agent.getReport - $262.agent.safeBroadcastAsync - $262.agent.safeBroadcast - $262.agent.setTimeout - $262.agent.tryYield - $262.agent.trySleep --- 11923 -
symbol-for-index-throws-agent.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( 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. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 2534 -
symbol-for-index-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 2. Let i be ? ValidateAtomicAccess(typedArray, index). ValidateAtomicAccess( typedArray, requestIndex ) 2. Let accessIndex be ? ToIndex(requestIndex). ToIndex ( value ) 2. Else, a. Let integerIndex be ? ToInteger(value). ToInteger(value) 1. Let number be ? ToNumber(argument). Symbol --> Throw a TypeError exception. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 1876 -
symbol-for-timeout-throws-agent.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Symbol --> Throw a TypeError exception. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 1913 -
symbol-for-timeout-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Symbol --> Throw a TypeError exception. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 1481 -
symbol-for-value-throws-agent.js --- esid: sec-atomics.wait description: > Throws a TypeError if value arg is a Symbol info: | Atomics.wait( typedArray, index, value, timeout ) 3. Let v be ? ToInt32(value). ToInt32(value) 1.Let number be ? ToNumber(argument). Symbol --> Throw a TypeError exception. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 2270 -
symbol-for-value-throws.js --- esid: sec-atomics.wait description: > Throws a TypeError if value arg is a Symbol info: | Atomics.wait( typedArray, index, value, timeout ) 3. Let v be ? ToInt32(value). ToInt32(value) 1.Let number be ? ToNumber(argument). Symbol --> Throw a TypeError exception. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] --- 1596 -
true-for-timeout-agent.js --- esid: sec-atomics.wait description: > True timeout arg should result in an +0 timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Boolean -> If argument is true, return 1. If argument is false, return +0. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2099 -
true-for-timeout.js --- esid: sec-atomics.wait description: > Throws a TypeError if index arg can not be converted to an Integer info: | Atomics.wait( typedArray, index, value, timeout ) 4. Let q be ? ToNumber(timeout). Boolean -> If argument is true, return 1. If argument is false, return +0. features: [Atomics, SharedArrayBuffer, Symbol, Symbol.toPrimitive, TypedArray] flags: [CanBlockIsTrue] --- 1528 -
undefined-for-timeout.js --- esid: sec-atomics.wait description: > Undefined timeout arg should result in an infinite timeout info: | Atomics.wait( typedArray, index, value, timeout ) 4.Let q be ? ToNumber(timeout). ... Undefined Return NaN. 5.If q is NaN, let t be +∞, else let t be max(q, 0) includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2285 -
undefined-index-defaults-to-zero.js --- esid: sec-atomics.wait description: > An undefined index arg should translate to 0 info: | Atomics.wait( 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. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1928 -
validate-arraytype-before-index-coercion.js --- esid: sec-atomics.wait description: > TypedArray type is validated before `index` argument is coerced. info: | 24.4.11 Atomics.wait ( typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 24.4.1.1 ValidateSharedIntegerTypedArray ( typedArray [ , onlyInt32 ] ) ... 4. Let typeName be typedArray.[[TypedArrayName]]. 5. If onlyInt32 is true, then a. If typeName is not "Int32Array", throw a TypeError exception. 6. Else, a. If typeName is not "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array", or "Uint32Array", throw a TypeError exception. ... includes: [testTypedArray.js] features: [Atomics, TypedArray] --- 1370 -
validate-arraytype-before-timeout-coercion.js --- esid: sec-atomics.wait description: > TypedArray type is validated before `timeout` argument is coerced. info: | 24.4.11 Atomics.wait ( typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 24.4.1.1 ValidateSharedIntegerTypedArray ( typedArray [ , onlyInt32 ] ) ... 4. Let typeName be typedArray.[[TypedArrayName]]. 5. If onlyInt32 is true, then a. If typeName is not "Int32Array", throw a TypeError exception. 6. Else, a. If typeName is not "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array", or "Uint32Array", throw a TypeError exception. ... includes: [testTypedArray.js] features: [Atomics, TypedArray] --- 1378 -
validate-arraytype-before-value-coercion.js --- esid: sec-atomics.wait description: > TypedArray type is validated before `value` argument is coerced. info: | 24.4.11 Atomics.wait ( typedArray, index, value, timeout ) 1. Let buffer be ? ValidateSharedIntegerTypedArray(typedArray, true). ... 24.4.1.1 ValidateSharedIntegerTypedArray ( typedArray [ , onlyInt32 ] ) ... 4. Let typeName be typedArray.[[TypedArrayName]]. 5. If onlyInt32 is true, then a. If typeName is not "Int32Array", throw a TypeError exception. 6. Else, a. If typeName is not "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array", or "Uint32Array", throw a TypeError exception. ... includes: [testTypedArray.js] features: [Atomics, TypedArray] --- 1370 -
value-not-equal.js --- esid: sec-atomics.wait description: > Returns "not-equal" when value arg does not match an index in the typedArray info: | Atomics.wait( typedArray, index, value, timeout ) 3.Let v be ? ToInt32(value). ... 14.If v is not equal to w, then a.Perform LeaveCriticalSection(WL). b. Return the String "not-equal". includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1879 -
wait-index-value-not-equal.js --- esid: sec-atomics.wait description: > Returns "not-equal" when value of index is not equal info: | Atomics.wait( typedArray, index, value, timeout ) 14.If v is not equal to w, then a.Perform LeaveCriticalSection(WL). b. Return the String "not-equal". includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 1936 -
waiterlist-block-indexedposition-wake.js --- esid: sec-atomics.wait description: > Get the correct WaiterList info: | Atomics.wait( typedArray, index, value, timeout ) ... 11. Let WL be GetWaiterList(block, indexedPosition). ... GetWaiterList( block, i ) ... 4. Return the WaiterList that is referenced by the pair (block, i). includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2333 -
waiterlist-order-of-operations-is-fifo.js --- esid: sec-atomics.wait description: > New waiters should be applied to the end of the list and woken by order they entered the list (FIFO) info: | Atomics.wait( typedArray, index, value, timeout ) 16.Perform AddWaiter(WL, W). ... 3.Add W to the end of the list of waiters in WL. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2957 -
was-woken-before-timeout.js --- esid: sec-atomics.wait description: > Test that Atomics.wait returns the right result when it was awoken before a timeout info: | Atomics.wait( 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. includes: [atomicsHelper.js] features: [Atomics, SharedArrayBuffer, TypedArray] --- 2055 -