tor-browser

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

regress-313763.js (1213B)


      1 /* -*- tab-width: 2; 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 = 313763;
      8 var summary = 'Root jsarray.c creatures';
      9 var actual = '';
     10 var expect = '';
     11 
     12 printBugNumber(BUGNUMBER);
     13 printStatus (summary);
     14 printStatus ('This bug requires TOO_MUCH_GC');
     15 
     16 var N = 0x80000002;
     17 var array = Array(N);
     18 array[N - 1] = 1;
     19 array[N - 2] = 2;
     20 
     21 // Set getter not to wait until engine loops through 2^31 holes in the array.
     22 var LOOP_TERMINATOR = "stop_long_loop";
     23 array.__defineGetter__(N - 2, function() {
     24 		 throw "stop_long_loop";
     25 	       });
     26 
     27 var prepared_string = String(1);
     28 array.__defineGetter__(N - 1, function() {
     29 		 var tmp = prepared_string;
     30 		 prepared_string = null;
     31 		 return tmp;
     32 	       })
     33 
     34 
     35  try {
     36    array.unshift(1);
     37  } catch (e) {
     38    if (e !== LOOP_TERMINATOR)
     39      throw e;
     40  }
     41 
     42 var expect = "1";
     43 var actual = array[N];
     44 printStatus(expect === actual);
     45 
     46 reportCompare(expect, actual, summary);