Name Description Size
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
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] --- 1406
validate-arraytype-before-timeout-coercion.js --- esid: sec-atomics.notify 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] --- 1416
validate-arraytype-before-value-coercion.js --- esid: sec-atomics.notify 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] --- 1408
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