tor-browser

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

shifted-elements5.js (898B)


      1 function testFreeze() {
      2    var arr = [];
      3    for (var i = 0; i < 20; i++)
      4        arr.push(i);
      5    for (var i = 0; i < 10; i++)
      6        arr.shift();
      7    Object.freeze(arr);
      8    assertEq(arr.length, 10);
      9    arr[0] = -1;
     10    assertEq(arr[0], 10);
     11 }
     12 testFreeze();
     13 testFreeze();
     14 
     15 function testCopyOnWrite() {
     16    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
     17    for (var i = 0; i < 5; i++)
     18        assertEq(arr.shift(), i + 1);
     19    assertEq(arr.toString(), "6,7,8,9");
     20 }
     21 testCopyOnWrite();
     22 testCopyOnWrite();
     23 
     24 function testNonWritableLength() {
     25    var arr = [];
     26    for (var i = 0; i < 20; i++)
     27        arr.push(i);
     28    Object.defineProperty(arr, "length", {writable: false, value: arr.length});
     29    var ex;
     30    try {
     31        arr.shift();
     32    } catch(e) {
     33        ex = e;
     34    }
     35    assertEq(ex instanceof TypeError, true);
     36    assertEq(arr.length, 20);
     37 }
     38 testNonWritableLength();
     39 testNonWritableLength();