tor-browser

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

shifted-elements2.js (539B)


      1 // Always use the per-element barrier.
      2 gczeal(12);
      3 
      4 function f() {
      5    var arr = [];
      6    for (var i = 0; i < 1000; i++)
      7        arr.push(i);
      8    gc(); // Ensure arr is tenured.
      9 
     10    // Now store a nursery object somewhere in the array, shift elements,
     11    // trigger a GC, and check the post barrier kept the object alive.
     12    for (var i = 0; i < 20; i++)
     13        arr.shift();
     14    for (var i = 0; i < 40; i++)
     15        arr[900] = {x: i};
     16    for (var i = 0; i < 10; i++)
     17        arr.shift();
     18    gc();
     19 
     20    assertEq(arr[890].x, 39);
     21 }
     22 f();