tor-browser

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

join-sparse.js (1556B)


      1 const join = Array.prototype.join;
      2 
      3 let obj = { length: 10 };
      4 assertEq(join.call(obj, ""), "");
      5 assertEq(join.call(obj), ",".repeat(9));
      6 assertEq(join.call(obj, "abc"), "abc".repeat(9));
      7 
      8 obj = { [0]: 1, length: 10 };
      9 assertEq(join.call(obj, ""), "1");
     10 assertEq(join.call(obj), "1" + ",".repeat(9));
     11 assertEq(join.call(obj, "abc"), "1" + "abc".repeat(9));
     12 
     13 obj = { [0]: 1, [1]: 2, [2]: 3, [3]: 4, [4]: 5, length: 2 };
     14 assertEq(join.call(obj), "1,2");
     15 assertEq(join.call(obj, ""), "12");
     16 assertEq(join.call(obj, "abc"), "1abc2");
     17 
     18 obj = { [0]: 1, [1]: 2, [2]: {}, [3]: 4, length: 3};
     19 assertEq(join.call(obj), "1,2,[object Object]");
     20 assertEq(join.call(obj, ""), "12[object Object]");
     21 assertEq(join.call(obj, "abc"), "1abc2abc[object Object]");
     22 
     23 assertEq(new Array(10).join(""), "");
     24 assertEq(new Array(10).join(), ",".repeat(9));
     25 assertEq(new Array(10).join("abc"), "abc".repeat(9));
     26 
     27 assertEq(new Array(100).join(), ",".repeat(99));
     28 assertEq(new Array(100).join(""), "");
     29 assertEq(new Array(100).join("abc"), "abc".repeat(99));
     30 
     31 var a = [1];
     32 a.length = 10;
     33 assertEq(a.join(), "1" + ",".repeat(9));
     34 assertEq(a.join(""), "1");
     35 assertEq(a.join("abc"), "1" + "abc".repeat(9));
     36 
     37 var a = [1, 2, 3, 4, 5]
     38 a.length = 2;
     39 assertEq(a.join(), "1,2");
     40 assertEq(a.join(""), "12");
     41 assertEq(a.join("abc"), "1abc2");
     42 
     43 var a = [1, 2, {}, 4];
     44 a.length = 3;
     45 assertEq(a.join(), "1,2,[object Object]");
     46 assertEq(a.join(""), "12[object Object]");
     47 assertEq(a.join("abc"), "1abc2abc[object Object]");
     48 
     49 // Too slow:
     50 // var obj = { [0]: 1, length: 2 ** 33 };
     51 // join.call(obj, "");