diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:20 +0000 |
commit | 868522aa377a4519adb0b9f402586ab7a41b86ba (patch) | |
tree | 44e805e154a3ace9bd8dbac73843e80d296b7814 /debian/tests/test_modules/atomic-sleep/index.js | |
parent | Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3. (diff) | |
download | node-undici-868522aa377a4519adb0b9f402586ab7a41b86ba.tar.xz node-undici-868522aa377a4519adb0b9f402586ab7a41b86ba.zip |
Adding debian version 5.28.2+dfsg1+~cs23.11.12.3-6.debian/5.28.2+dfsg1+_cs23.11.12.3-6debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/tests/test_modules/atomic-sleep/index.js')
-rw-r--r-- | debian/tests/test_modules/atomic-sleep/index.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/tests/test_modules/atomic-sleep/index.js b/debian/tests/test_modules/atomic-sleep/index.js new file mode 100644 index 0000000..fbfc8b2 --- /dev/null +++ b/debian/tests/test_modules/atomic-sleep/index.js @@ -0,0 +1,38 @@ +'use strict' + +/* global SharedArrayBuffer, Atomics */ + +if (typeof SharedArrayBuffer !== 'undefined' && typeof Atomics !== 'undefined') { + const nil = new Int32Array(new SharedArrayBuffer(4)) + + function sleep (ms) { + // also filters out NaN, non-number types, including empty strings, but allows bigints + const valid = ms > 0 && ms < Infinity + if (valid === false) { + if (typeof ms !== 'number' && typeof ms !== 'bigint') { + throw TypeError('sleep: ms must be a number') + } + throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') + } + + Atomics.wait(nil, 0, 0, Number(ms)) + } + module.exports = sleep +} else { + + function sleep (ms) { + // also filters out NaN, non-number types, including empty strings, but allows bigints + const valid = ms > 0 && ms < Infinity + if (valid === false) { + if (typeof ms !== 'number' && typeof ms !== 'bigint') { + throw TypeError('sleep: ms must be a number') + } + throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') + } + const target = Date.now() + Number(ms) + while (target > Date.now()){} + } + + module.exports = sleep + +} |