test262/test/built-ins/Atomics/isLockFree/corner-cases.js

32 lines
1.1 KiB
JavaScript
Raw Normal View History

// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
2017-07-26 23:49:55 +02:00
esid: sec-atomics.islockfree
description: >
Test isLockFree on various non-intuitive arguments
features: [Atomics]
---*/
2018-04-19 16:11:50 +02:00
assert.sameValue(Atomics.isLockFree(hide(3, Number.NaN)), false);
assert.sameValue(Atomics.isLockFree(hide(3, -1)), false);
assert.sameValue(Atomics.isLockFree(hide(3, 3.14)), false);
assert.sameValue(Atomics.isLockFree(hide(3, 0)), false);
assert.sameValue(Atomics.isLockFree('1'), Atomics.isLockFree(1));
assert.sameValue(Atomics.isLockFree('3'), Atomics.isLockFree(3));
assert.sameValue(Atomics.isLockFree(true), Atomics.isLockFree(1));
assert.sameValue(Atomics.isLockFree(1), Atomics.isLockFree({valueOf: () => 1}));
assert.sameValue(Atomics.isLockFree(3), Atomics.isLockFree({valueOf: () => 3}));
assert.sameValue(Atomics.isLockFree(1), Atomics.isLockFree({toString: () => '1'}));
assert.sameValue(Atomics.isLockFree(3), Atomics.isLockFree({toString: () => '3'}));
function hide(k, x) {
2018-04-19 16:11:50 +02:00
if (k) {
return hide(k - 3, x) + x;
2018-04-19 16:11:50 +02:00
}
return 0;
}