tor-browser

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

store-dense-element-hole.js (928B)


      1 // Store an element into a previous hole value and later add more elements
      2 // exceeding the initialised length. Cover both mono- and polymorphic call
      3 // sites.
      4 
      5 function testStoreDenseHole() {
      6  var array = [/* hole */, /* hole */, /* hole */, /* hole */, ];
      7 
      8  function store(ar, index) {
      9    ar[index] = index;
     10  }
     11 
     12  for (var i = 0; i < 10; ++i) {
     13    store(array, i);
     14  }
     15 
     16  assertEq(array.length, 10);
     17  for (var i = 0; i < 10; ++i) {
     18    assertEq(array[i], i);
     19  }
     20 }
     21 testStoreDenseHole();
     22 
     23 function testStoreDenseHolePoly() {
     24  var array = [/* hole */, /* hole */, /* hole */, /* hole */, ];
     25 
     26  function store(ar, index) {
     27    ar[index] = index;
     28  }
     29 
     30  var objects = [array, {}];
     31 
     32  for (var i = 0; i < 10; ++i) {
     33    for (var j = 0; j < objects.length; ++j) {
     34      store(objects[j], i);
     35    }
     36  }
     37 
     38  assertEq(array.length, 10);
     39  for (var i = 0; i < 10; ++i) {
     40    assertEq(array[i], i);
     41  }
     42 }
     43 testStoreDenseHolePoly();