summaryrefslogtreecommitdiff
path: root/test/built-ins/Atomics/wake/wake-nan.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/built-ins/Atomics/wake/wake-nan.js')
-rw-r--r--test/built-ins/Atomics/wake/wake-nan.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/built-ins/Atomics/wake/wake-nan.js b/test/built-ins/Atomics/wake/wake-nan.js
new file mode 100644
index 000000000..945f503ff
--- /dev/null
+++ b/test/built-ins/Atomics/wake/wake-nan.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: >
+ Test that Atomics.wake wakes zero waiters if the count is NaN
+---*/
+
+$.agent.start(
+`
+$.agent.receiveBroadcast(function (sab) {
+ var ia = new Int32Array(sab);
+ $.agent.report(Atomics.wait(ia, 0, 0, 1000)); // We will timeout eventually
+ $.agent.leaving();
+})
+`);
+
+var ia = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
+
+$.agent.broadcast(ia.buffer);
+$.agent.sleep(500); // Give the agent a chance to wait
+assert.sameValue(Atomics.wake(ia, 0, NaN), 0); // Don't actually wake it
+assert.sameValue(getReport(), "timed-out");
+
+function getReport() {
+ var r;
+ while ((r = $.agent.getReport()) == null)
+ $.agent.sleep(100);
+ return r;
+}