124 Commits

Author SHA1 Message Date
Rick Waldron
729fa02951 Atomics: update Atomics.sub to match latest proposed spec change
https://github.com/tc39/ecma262/pull/1908#issuecomment-647614204
2020-06-24 12:26:41 -04:00
Rick Waldron
529cff8ee6 Atomics: corrections 2020-06-24 12:26:41 -04:00
Rick Waldron
7e603ae236 Atomics: fix mispelled harness function name 2020-06-24 12:26:41 -04:00
Rick Waldron
4adc41eccf Atomics.* assertion messages and formatting 2020-06-24 12:26:41 -04:00
Rick Waldron
d3980866c8 Atomics.xor will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron
e4d24694ea Atomics.sub will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
Rick Waldron
5e43594d44 Atomics.store will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
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