tor-browser

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

bigint-tobool.js (1058B)


      1 var xs = [
      2  // Definitely heap digits.
      3  -(2n ** 1000n),
      4 
      5  // -(2n**64n)
      6  -18446744073709551617n,
      7  -18446744073709551616n,
      8  -18446744073709551615n,
      9 
     10  // -(2n**63n)
     11  -9223372036854775809n,
     12  -9223372036854775808n,
     13  -9223372036854775807n,
     14 
     15  // -(2**32)
     16  -4294967297n,
     17  -4294967296n,
     18  -4294967295n,
     19 
     20  // -(2**31)
     21  -2147483649n,
     22  -2147483648n,
     23  -2147483647n,
     24 
     25  -1n,
     26  0n,
     27  1n,
     28 
     29  // 2**31
     30  2147483649n,
     31  2147483648n,
     32  2147483647n,
     33 
     34  // 2**32
     35  4294967297n,
     36  4294967296n,
     37  4294967295n,
     38 
     39  // 2n**63n
     40  9223372036854775809n,
     41  9223372036854775808n,
     42  9223372036854775807n,
     43 
     44  // 2n**64n
     45  18446744073709551617n,
     46  18446744073709551616n,
     47  18446744073709551615n,
     48 
     49  // Definitely heap digits.
     50  2n ** 1000n,
     51 ];
     52 
     53 function test() {
     54  for (var i = 0; i < 100; ++i) {
     55    var x = xs[i % xs.length];
     56 
     57    // Implicit ToBool(x)
     58    var r = x ? true : false;
     59    assertEq(r, x !== 0n);
     60  }
     61 }
     62 test();
     63 
     64 function testNot() {
     65  for (var i = 0; i < 100; ++i) {
     66    var x = xs[i % xs.length];
     67 
     68    var r = !x;
     69    assertEq(r, x === 0n);
     70  }
     71 }
     72 testNot();