tor-browser

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

array-splice.js (823B)


      1 function test1() {
      2    // splice GetElement calls are observable and should be executed even if
      3    // the return value of splice is unused.
      4    Object.defineProperty(Object.prototype, "0", {get: function() {
      5 c++;
      6    }, set: function() {}});
      7    var arr = [,,,];
      8    var c = 0;
      9    for (var i=0; i<100; i++) {
     10 arr.splice(0, 1);
     11 arr.length = 1;
     12    }
     13 
     14    assertEq(c, 100);
     15 }
     16 test1();
     17 
     18 function test2() {
     19    var arr = [];
     20    for (var i=0; i<100; i++)
     21 arr.push(i);
     22    for (var i=0; i<40; i++)
     23 arr.splice(0, 2);
     24    assertEq(arr.length, 20);
     25    assertEq(arr[0], undefined);
     26    assertEq(arr[1], 81);
     27 }
     28 test2();
     29 
     30 function testNonArray() {
     31    for (var i=0; i<10; i++) {
     32 var o = {splice:[].splice, 0:"a", 1:"b", 2:"c", length:3};
     33 o.splice(0, 2);
     34 assertEq(o.length, 1);
     35 assertEq(o[0], "c");
     36    }
     37 }
     38 testNonArray();