tor-browser

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

bigint-int64.js (922B)


      1 // |reftest| skip-if(!this.hasOwnProperty("Intl"))
      2 
      3 // Ensure the int64_t optimization when formatting a BigInt value works correctly by testing with
      4 // various integers around the (u)int[32,64] limits.
      5 
      6 const limits = {
      7    int32: {
      8        min: -0x80000000n,
      9        max:  0x7FFFFFFFn,
     10    },
     11    uint32: {
     12        min: 0n,
     13        max: 0xFFFFFFFFn
     14    },
     15    int64: {
     16        min: -0x8000000000000000n,
     17        max:  0x7FFFFFFFFFFFFFFFn,
     18    },
     19    uint64: {
     20        min: 0n,
     21        max: 0xFFFFFFFFFFFFFFFFn
     22    },
     23 };
     24 
     25 const nf = new Intl.NumberFormat("en", {useGrouping: false});
     26 
     27 const diff = 10n;
     28 
     29 for (const int of Object.values(limits)) {
     30    for (let i = -diff; i <= diff; ++i) {
     31        let n = int.min + i;
     32        assertEq(nf.format(n), n.toString());
     33 
     34        let m = int.max + i;
     35        assertEq(nf.format(m), m.toString());
     36    }
     37 }
     38 
     39 if (typeof reportCompare === "function")
     40    reportCompare(true, true);