tor-browser

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

regress-351973.js (1287B)


      1 // |reftest| skip-if(!Object.prototype.toSource)
      2 
      3 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
      4 /* This Source Code Form is subject to the terms of the Mozilla Public
      5 * License, v. 2.0. If a copy of the MPL was not distributed with this
      6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      7 
      8 //-----------------------------------------------------------------------------
      9 var BUGNUMBER = 351973;
     10 var summary = 'GC hazard with unrooted ids in Object.toSource';
     11 var actual = 'No Crash';
     12 var expect = 'No Crash';
     13 
     14 
     15 //-----------------------------------------------------------------------------
     16 test();
     17 //-----------------------------------------------------------------------------
     18 
     19 function test()
     20 {
     21  printBugNumber(BUGNUMBER);
     22  printStatus (summary);
     23 
     24  function removeAllProperties(o)
     25  {
     26    for (var prop in o)
     27      delete o[prop];
     28    for (var i = 0; i != 50*1000; ++i) {
     29      var tmp = Math.sqrt(i+0.2);
     30      tmp = 0;
     31    }
     32    if (typeof gc == "function")
     33      gc();
     34  }
     35 
     36  function run_test()
     37  {
     38 
     39    var o = {};
     40    o.first = { toSource: function() { removeAllProperties(o); } };
     41    for (var i = 0; i != 10; ++i) {
     42      o[Math.sqrt(i + 0.1)] = 1;
     43    }
     44    return o.toSource();
     45  }
     46 
     47  print(run_test());
     48 
     49  reportCompare(expect, actual, summary);
     50 }