tor-browser

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

bigint-number-same-value.js (1075B)


      1 // Copyright (C) 2021 Rick Waldron. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 esid: sec-map.prototype.set
      5 description: >
      6  Observing the expected behavior of keys when a BigInt and Number have
      7  the same value.
      8 info: |
      9  Map.prototype.set ( key , value )
     10 
     11  ...
     12  Let p be the Record {[[key]]: key, [[value]]: value}.
     13  Append p as the last element of entries.
     14  ...
     15 
     16 features: [BigInt]
     17 ---*/
     18 
     19 const number = 9007199254740991;
     20 const bigint = 9007199254740991n;
     21 
     22 const m = new Map([
     23  [number, number],
     24  [bigint, bigint],
     25 ]);
     26 
     27 assert.sameValue(m.size, 2);
     28 assert.sameValue(m.has(number), true);
     29 assert.sameValue(m.has(bigint), true);
     30 
     31 assert.sameValue(m.get(number), number);
     32 assert.sameValue(m.get(bigint), bigint);
     33 
     34 m.delete(number);
     35 assert.sameValue(m.size, 1);
     36 assert.sameValue(m.has(number), false);
     37 m.delete(bigint);
     38 assert.sameValue(m.size, 0);
     39 assert.sameValue(m.has(bigint), false);
     40 
     41 m.set(number, number);
     42 assert.sameValue(m.size, 1);
     43 m.set(bigint, bigint);
     44 assert.sameValue(m.size, 2);
     45 
     46 reportCompare(0, 0);