Commit Graph

117 Commits

Author SHA1 Message Date
Rick Waldron 131165be7e Atomics.or will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron e1c71a65e2 fixup! Atomics.and will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron 9e7b4e733d Fix license lint & issues 2020-06-24 12:26:41 -04:00
Rick Waldron 2979e917a2 Atomics: fix assertion messages 2020-06-24 12:26:41 -04:00
Rick Waldron 1f977dc9fc Atomics.exchange will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron eb5120a1e9 Atomics.compareExchange will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron f82e09bab0 Atomics.and will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron b4517aa192 Atomics.add will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron 8182e4efc4 Atomics.store will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron 11a1eabcc6 Atomics.load will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron 302f37eeff Atomics.notify changed to always return 0 on non-shared 2020-06-24 12:26:41 -04:00
Rick Waldron f89ea8758b
Atomics.waitAsync: BigInt (#2642)
* Atomics.waitAsync: BigInt

* Atomics.waitAsync: check for function to avoid false positives
2020-06-12 09:57:14 -07:00
Rick Waldron 24b7f5fa99
Atomics.waitAsync: update feature flags (#2641) 2020-05-27 12:11:06 -07:00
Rick Waldron 914ab0280c Atomics.waitAsync: prevent in-agent tests from hanging by checking for Atomics.waitAsync at start of test 2020-05-08 10:01:32 -04:00
Rick Waldron fadb9073d3 Atomics.waitAsync: fix lint trash 2020-04-23 10:32:55 -04:00
Rick Waldron d7e4de1484 Atomics.waitAsync: validate array type; waiter list position, notify before timeout 2020-04-23 10:32:55 -04:00
Rick Waldron 161ce480d1 Atomics.waitAsync: misused symbol args. 2020-04-23 10:32:55 -04:00
Rick Waldron bd5b37e51e Atomics.waitAsync: symbol for timeout throws 2020-04-23 10:32:55 -04:00
Rick Waldron eeb75f60dd Atomics.waitAsync: poisoned object throws 2020-04-23 10:32:55 -04:00
Rick Waldron db9c0ef27c Atomics.waitAsync: out of range index 2020-04-23 10:32:55 -04:00
Rick Waldron 092342098e Atomics.waitAsync: fix lint issues 2020-04-23 10:32:55 -04:00
Rick Waldron c3efb56025 Atomics.waitAsync: make all agent timeouts async 2020-04-23 10:32:55 -04:00
Rick Waldron f03c0c2de3 fixup! Atomics.waitAsync: no spurious wakeup on [operation] 2020-04-23 10:32:55 -04:00
Rick Waldron a46bbfd872 Atomics: drop unused id argument to agent receiveBroadcast handler 2020-04-23 10:32:55 -04:00
Rick Waldron 974a4ffbc5 Atomics.waitAsync: no spurious wakeup on [operation] 2020-04-23 10:32:55 -04:00
Rick Waldron 6d4b4eba98 Atomics.waitAsync: false, nan, negative, null, object zero timeouts 2020-04-23 10:32:55 -04:00
Rick Waldron 4c2ca05790 Atomics.waitAsync: negative index throws 2020-04-23 10:32:55 -04:00
Rick Waldron a196c9307d Atomics.waitAsync: negative timeout 2020-04-23 10:32:55 -04:00
Rick Waldron 677fb82a75 Atomics.waitAsync: false for timeouts, revised. 2020-04-23 10:32:55 -04:00
Rick Waldron 9519cd8448 Atomics.waitAsync: Return Value 2020-04-23 10:32:55 -04:00
Rick Waldron dabcc05199 Atomics.waitAsync: false, nan for timeouts 2020-04-23 10:32:55 -04:00
Rick Waldron c0f0adffdd Atomics.waitAsync: ValidateSharedIntegerTypedArray, ValidateAtomicAccess & Return promiseCapability.[[Promise]] 2020-04-23 10:32:55 -04:00
Rick Waldron 4e48a5692c Atomics.wait: fix esid 2020-04-23 10:32:55 -04:00
Rick Waldron bb37b8812f Atomics.waitAsync: add descriptor, length, name tests 2020-04-23 10:32:55 -04:00
Shu-yu Guo f6b2ccdd09
Use assert instead of the nonexistent assert.ok (#2510) 2020-02-24 15:30:05 -08:00
Jordan Harband a1fbd310e0 `Atomics.store` now normalizes -0 to +0
Per https://github.com/tc39/ecma262/pull/1827
2020-02-13 10:39:14 -05:00
Gus Caplan a53f43e1ce
add missing newlines in tests 2019-11-10 20:18:56 -08:00
Mike Pennisi f26c2a11bd Remove unnecessary "includes" directives
The values defined by the referenced files are not used by these tests.
This makes their inclusion superfluous, which needlessly increases the
time to execute the tests and may confuse some readers.
2019-09-25 13:59:24 -04:00
Leo Balter 1c2bd105fb
Remove shared-nonint-views.js files (#2314)
Ref #2103
2019-08-28 16:23:07 -03:00
André Bargull e48bf299a6 Ensure Atomics functions validate the TypedArray type before coercing the other arguments (#2103) 2019-08-28 16:19:22 -03:00
Rick Waldron e91645c812 Atomics: (bigint) initialize BigInt64Array before calling $262.agent.start(string-of-program-code) 2018-11-20 15:57:39 -05:00
Rick Waldron 8793bf5d57 Atomics: fix running index in notify-with-no-matching-agents-waiting.js
Migrating all tests to this API is necessary to prevent tests from hanging indefinitely when a SAB is sent to a worker but the code in the worker attempts to create a non-sharable TypedArray (something that is not Int32Array or BigInt64Array). When that scenario occurs, an exception is thrown and the agent worker can no longer communicate with any other threads that control the SAB. If the main thread happens to be spinning in the $262.agent.waitUntil() while loop, it will never meet its termination condition and the test will hang indefinitely.

Because we've defined $262.agent.broadcast(SAB) in https://github.com/tc39/test262/blob/master/INTERPRETING.md, there are host implementations that assume compatibility, which must be maintained.
2018-11-20 15:18:14 -05:00
Rick Waldron e4883091b9 Introduce $262.agent.safeBroadcast and migrate Atomics tests.
Migrating all tests to this API is necessary to prevent tests from hanging indefinitely when a SAB is sent to a worker but the code in the worker attempts to create a non-sharable TypedArray (something that is not Int32Array or BigInt64Array). When that scenario occurs, an exception is thrown and the agent worker can no longer communicate with any other threads that control the SAB. If the main thread happens to be spinning in the $262.agent.waitUntil() while loop, it will never meet its termination condition and the test will hang indefinitely.

Because we've defined $262.agent.broadcast(SAB) in https://github.com/tc39/test262/blob/master/INTERPRETING.md, there are host implementations that assume compatibility, which must be maintained.
2018-11-20 15:17:47 -05:00
Kevin Gibbons 89ec038cf2 remove some trailing commas in calls 2018-09-21 10:04:33 -04:00
Kevin Gibbons 92a96f068e Remove bigint feature flag for built-ins/Atomics/wait/was-woken-before-timeout.js 2018-09-19 10:58:34 -04:00
André Bargull d7d154b3bc Remove requirement that ToNumber(value) completes in less than $262.agent.MAX_TIME_EPSILON
$262.agent.MAX_TIME_EPSILON was intended to be used for callers like `Atomics.wait(typedArray, indexNumber, valueNumber, timeoutNumber)` where all parameters with the `Number` suffix denote values which are already Number values. It should not be used for `Atomics.wait(typedArray, indexObject, valueObject, timeoutObject)` where all parameters with the `Object` suffix denote values which are Object values, because in that case we'd require that `ToNumber(objectValue)` (potentially invoked multiple times) completes in less than 100 milliseconds (the default value for MAX_TIME_EPSILON).

Also removes $262.agent.MAX_TIME_EPSILON because it is now no longer used.
2018-08-19 10:29:29 -04:00
André Bargull 0aa1f70c14 Fix typo: nofity -> notify 2018-08-17 07:48:44 -07:00
Leo Balter 6335c39ade fixes after rebase 2018-07-24 15:03:54 -04:00
Leo Balter 1452a22a02 more s/wake/notify 2018-07-24 15:03:54 -04:00
Leo Balter d8bbc281dd First renaming for wake to notify in the wait folder 2018-07-24 15:03:54 -04:00