tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);