tor-browser

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

regress-355497.js (1339B)


      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 = 355497;
      8 var summary = 'Do not overflow stack with Array.slice, getter';
      9 var actual = '';
     10 var expect = '';
     11 
     12 //-----------------------------------------------------------------------------
     13 test();
     14 //-----------------------------------------------------------------------------
     15 
     16 function test()
     17 {
     18  printBugNumber(BUGNUMBER);
     19  printStatus (summary);
     20 
     21  expect = 'InternalError: too much recursion';
     22 
     23  try
     24  {
     25    var a = { length: 1 };
     26    a.__defineGetter__(0, [].slice);
     27    a[0];
     28  }
     29  catch(ex)
     30  {
     31    actual = ex + '';
     32  }
     33  reportCompare(expect, actual, summary + ': 1');
     34 
     35  try
     36  {
     37    var b = { length: 1 };
     38    b.__defineGetter__(0, function () { return Array.prototype.slice.call(b); });
     39    b[0];
     40  }
     41  catch(ex)
     42  {
     43    actual = ex + '';
     44  }
     45  reportCompare(expect, actual, summary + ': 2');
     46 
     47  try
     48  {
     49    var c = [];
     50    c.__defineSetter__(0, c.unshift);
     51    c[0] = 1;
     52  }
     53  catch(ex)
     54  {
     55    actual = ex + '';
     56  }
     57  reportCompare(expect, actual, summary + ': 3');
     58 }