tor-browser

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

regress-341877-02.js (1205B)


      1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 //-----------------------------------------------------------------------------
      7 var BUGNUMBER = 341877;
      8 var summary = 'GC hazard with for-in loop';
      9 var actual = 'No Crash';
     10 var expect = 'No Crash';
     11 
     12 printBugNumber(BUGNUMBER);
     13 printStatus (summary);
     14 
     15 var obj = { };
     16 
     17 var prop = "xsomePropety".substr(1);
     18 
     19 obj.first = "first"
     20 
     21  obj[prop] = 1;
     22 
     23 for (var elem in obj) {
     24  var tmp = elem.toString();
     25  delete obj[prop];
     26  // ensure that prop is cut from all roots
     27  prop = "xsomePropety".substr(2);
     28  obj[prop] = 2;
     29  delete obj[prop];
     30  prop = null;
     31  if (typeof gc == 'function')
     32    gc();
     33  for (var i = 0; i != 50000; ++i) {
     34    var tmp = 1 / 3;
     35    tmp /= 10;
     36  }
     37  for (var i = 0; i != 1000; ++i) {
     38    // Make string with 11 characters that would take
     39    // (11 + 1) * 2 bytes or sizeof(JSAtom) so eventually
     40    // malloc will ovewrite just freed atoms.
     41    var tmp2 = Array(12).join(' ');
     42  }
     43 }
     44 
     45 reportCompare(expect, actual, summary);