tor-browser

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

set-length-sparse-2.js (1263B)


      1 function testDenseAndSparse1() {
      2  var arr = [1, 2, 3, 4, 5];
      3  arr[2000000] = 2;
      4  arr[1000000] = 1;
      5  assertEq(arr.length, 2000001);
      6  arr.length = 1500000;
      7  assertEq(Object.keys(arr).length, 6);
      8  arr.length = 2;
      9  assertEq(Object.keys(arr).length, 2);
     10  assertEq(JSON.stringify(arr), "[1,2]");
     11 }
     12 testDenseAndSparse1();
     13 
     14 function testDenseAndSparse2() {
     15  var arr = [1, 2, 3, 4, 5, 6];
     16  Object.defineProperty(arr, 1, {configurable: true, writable: false, value: -2});
     17  Object.defineProperty(arr, 3, {configurable: true, get: () => -4});
     18  assertEq(JSON.stringify(arr), "[1,-2,3,-4,5,6]");
     19 
     20  arr.length = 4;
     21  assertEq(Object.keys(arr).length, 4);
     22  assertEq(JSON.stringify(arr), "[1,-2,3,-4]");
     23 
     24  arr.length = 3;
     25  assertEq(Object.keys(arr).length, 3);
     26  assertEq(JSON.stringify(arr), "[1,-2,3]");
     27 
     28  arr.length = 2;
     29  assertEq(Object.keys(arr).length, 2);
     30  assertEq(JSON.stringify(arr), "[1,-2]");
     31 
     32  arr.length = 1;
     33  assertEq(Object.keys(arr).length, 1);
     34  assertEq(JSON.stringify(arr), "[1]");
     35 
     36  arr.length = 0;
     37  assertEq(Object.keys(arr).length, 0);
     38  assertEq(JSON.stringify(arr), "[]");
     39 
     40  arr[0] = 11;
     41  arr[1] = 22;
     42  arr[2] = 33;
     43  assertEq(Object.keys(arr).length, 3);
     44  assertEq(JSON.stringify(arr), "[11,22,33]");
     45 }
     46 testDenseAndSparse2();