corner-cases.js (2008B)
1 // |reftest| skip-if(!this.hasOwnProperty('Atomics')) -- Atomics is not enabled unconditionally 2 // Copyright (C) 2017 Mozilla Corporation. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-atomics.islockfree 7 description: > 8 Test isLockFree on various non-intuitive arguments 9 features: [Atomics] 10 ---*/ 11 12 assert.sameValue( 13 Atomics.isLockFree(hide(3, Number.NaN)), 14 false, 15 'Atomics.isLockFree(hide(3, Number.NaN)) returns false' 16 ); 17 assert.sameValue( 18 Atomics.isLockFree(hide(3, -1)), 19 false, 20 'Atomics.isLockFree(hide(3, -1)) returns false' 21 ); 22 assert.sameValue( 23 Atomics.isLockFree(hide(3, 3.14)), 24 false, 25 'Atomics.isLockFree(hide(3, 3.14)) returns false' 26 ); 27 assert.sameValue( 28 Atomics.isLockFree(hide(3, 0)), 29 false, 30 'Atomics.isLockFree(hide(3, 0)) returns false' 31 ); 32 33 assert.sameValue( 34 Atomics.isLockFree('1'), 35 Atomics.isLockFree(1), 36 'Atomics.isLockFree(\'1\') returns Atomics.isLockFree(1)' 37 ); 38 assert.sameValue( 39 Atomics.isLockFree('3'), 40 Atomics.isLockFree(3), 41 'Atomics.isLockFree(\'3\') returns Atomics.isLockFree(3)' 42 ); 43 44 assert.sameValue( 45 Atomics.isLockFree(true), 46 Atomics.isLockFree(1), 47 'Atomics.isLockFree(true) returns Atomics.isLockFree(1)' 48 ); 49 50 assert.sameValue( 51 Atomics.isLockFree(1), 52 Atomics.isLockFree({valueOf: () => 1}), 53 'Atomics.isLockFree(1) returns Atomics.isLockFree({valueOf: () => 1})' 54 ); 55 assert.sameValue( 56 Atomics.isLockFree(3), 57 Atomics.isLockFree({valueOf: () => 3}), 58 'Atomics.isLockFree(3) returns Atomics.isLockFree({valueOf: () => 3})' 59 ); 60 assert.sameValue( 61 Atomics.isLockFree(1), 62 Atomics.isLockFree({toString: () => '1'}), 63 'Atomics.isLockFree(1) returns Atomics.isLockFree({toString: () => \'1\'})' 64 ); 65 assert.sameValue( 66 Atomics.isLockFree(3), 67 Atomics.isLockFree({toString: () => '3'}), 68 'Atomics.isLockFree(3) returns Atomics.isLockFree({toString: () => \'3\'})' 69 ); 70 71 function hide(k, x) { 72 if (k) { 73 return hide(k - 3, x) + x; 74 } 75 return 0; 76 } 77 78 reportCompare(0, 0);