mirror of https://github.com/tc39/test262.git
76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-atomics.islockfree
|
|
description: >
|
|
Test isLockFree on various non-intuitive arguments
|
|
features: [Atomics]
|
|
---*/
|
|
|
|
assert.sameValue(
|
|
Atomics.isLockFree(hide(3, Number.NaN)),
|
|
false,
|
|
'Atomics.isLockFree(hide(3, Number.NaN)) returns false'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(hide(3, -1)),
|
|
false,
|
|
'Atomics.isLockFree(hide(3, -1)) returns false'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(hide(3, 3.14)),
|
|
false,
|
|
'Atomics.isLockFree(hide(3, 3.14)) returns false'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(hide(3, 0)),
|
|
false,
|
|
'Atomics.isLockFree(hide(3, 0)) returns false'
|
|
);
|
|
|
|
assert.sameValue(
|
|
Atomics.isLockFree('1'),
|
|
Atomics.isLockFree(1),
|
|
'Atomics.isLockFree(\'1\') returns Atomics.isLockFree(1)'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree('3'),
|
|
Atomics.isLockFree(3),
|
|
'Atomics.isLockFree(\'3\') returns Atomics.isLockFree(3)'
|
|
);
|
|
|
|
assert.sameValue(
|
|
Atomics.isLockFree(true),
|
|
Atomics.isLockFree(1),
|
|
'Atomics.isLockFree(true) returns Atomics.isLockFree(1)'
|
|
);
|
|
|
|
assert.sameValue(
|
|
Atomics.isLockFree(1),
|
|
Atomics.isLockFree({valueOf: () => 1}),
|
|
'Atomics.isLockFree(1) returns Atomics.isLockFree({valueOf: () => 1})'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(3),
|
|
Atomics.isLockFree({valueOf: () => 3}),
|
|
'Atomics.isLockFree(3) returns Atomics.isLockFree({valueOf: () => 3})'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(1),
|
|
Atomics.isLockFree({toString: () => '1'}),
|
|
'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => \'1\'})'
|
|
);
|
|
assert.sameValue(
|
|
Atomics.isLockFree(3),
|
|
Atomics.isLockFree({toString: () => '3'}),
|
|
'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => \'3\'})'
|
|
);
|
|
|
|
function hide(k, x) {
|
|
if (k) {
|
|
return hide(k - 3, x) + x;
|
|
}
|
|
return 0;
|
|
}
|