tor-browser

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

gcstats.js (884B)


      1 // |reftest| skip-if(!xulRuntime.shell)
      2 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
      3 /*
      4 * Any copyright is dedicated to the Public Domain.
      5 * http://creativecommons.org/licenses/publicdomain/
      6 */
      7 
      8 function garbage() {
      9  var x;
     10  for (var i = 0; i < 100000; i++)
     11    x = { 'i': i };
     12 }
     13 
     14 setGCCallback({
     15  action: "majorGC",
     16  depth: 1,
     17  phases: "both"
     18 });
     19 
     20 gc();
     21 garbage();
     22 
     23 setGCCallback({
     24  action: "majorGC",
     25  depth: 2,
     26  phases: "both"
     27 });
     28 
     29 gc();
     30 garbage();
     31 
     32 setGCCallback({
     33  action: "majorGC",
     34  depth: 8,
     35  phases: "begin"
     36 });
     37 
     38 gc();
     39 garbage();
     40 
     41 setGCCallback({
     42  action: "minorGC",
     43  phases: "both"
     44 });
     45 
     46 gc();
     47 garbage();
     48 
     49 var caught = false;
     50 try {
     51  setGCCallback({
     52    action: "majorGC",
     53    depth: 10000,
     54    phases: "begin"
     55  });
     56 } catch (e) {
     57  caught = ((""+e).indexOf("Nesting depth too large") >= 0);
     58 }
     59 
     60 reportCompare(caught, true);