tor-browser

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

1659595.js (1151B)


      1 // Impliclitly converting regular numeric properties to computed numeric
      2 // properties in the parser means checking there's no semantic changes.
      3 
      4 let a = {
      5  0: 0,
      6  1n: 1n,
      7 
      8  get 2() {
      9    return 2;
     10  },
     11  set 2(o) {},
     12 
     13  get 3n() {
     14    return 3n;
     15  },
     16  set 3n(o) {}
     17 };
     18 
     19 assertEq(a[0], 0);
     20 assertEq(a[1n], 1n);
     21 assertEq(a[2], 2);
     22 assertEq(a[3n], 3n);
     23 
     24 function getterName(x) {
     25  return Object.getOwnPropertyDescriptor(a, x).get.name
     26 }
     27 function setterName(x) {
     28  return Object.getOwnPropertyDescriptor(a, x).set.name
     29 }
     30 
     31 assertEq(/get 2/.test(getterName(2)), true)
     32 assertEq(/get 3/.test(getterName(3n)), true)
     33 
     34 assertEq(/set 2/.test(setterName(2)), true)
     35 assertEq(/set 3/.test(setterName(3n)), true)
     36 
     37 let b = {
     38  0: 0,
     39  [0]: 'dupe',
     40  1n: 1,
     41  [1n]: 'dupe',
     42  [2]: 2,
     43  2: 'dupe',
     44  [3n]: 3,
     45  3n: 'dupe'
     46 };
     47 assertEq(b[0], 'dupe');
     48 assertEq(b[1n], 'dupe');
     49 assertEq(b[2], 'dupe');
     50 assertEq(b[3n], 'dupe');
     51 
     52 let c = {
     53  0: 0,
     54  0.0: 'dupe',
     55 };
     56 assertEq(c[0], 'dupe');
     57 
     58 let d = {
     59  0: 0,
     60  '0': 'dupe',
     61 };
     62 assertEq(d[0], 'dupe');
     63 
     64 // Test numeric property destructuring.
     65 let {1: x} = {1: 1};
     66 let {1n: y} = {1n: 1n};
     67 
     68 assertEq(x, 1);
     69 assertEq(y, 1n);