tor-browser

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

array-toString-recursion.js (1036B)


      1 /*
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/licenses/publicdomain/
      4 */
      5 
      6 //-----------------------------------------------------------------------------
      7 var BUGNUMBER = 635389;
      8 var summary = 'Infinite recursion via [].{toString,toLocaleString,join}';
      9 
     10 print(BUGNUMBER + ": " + summary);
     11 
     12 /**************
     13 * BEGIN TEST *
     14 **************/
     15 
     16 try
     17 {
     18  var x = [];
     19  x.join = Array.prototype.toString;
     20  "" + x;
     21  throw new Error("should have thrown");
     22 }
     23 catch (e)
     24 {
     25  assertEq(e instanceof InternalError, true,
     26           "should have thrown for over-recursion");
     27 }
     28 
     29 try
     30 {
     31  var x = { toString: Array.prototype.toString, join: Array.prototype.toString };
     32  "" + x;
     33  throw new Error("should have thrown");
     34 }
     35 catch (e)
     36 {
     37  assertEq(e instanceof InternalError, true,
     38           "should have thrown for over-recursion");
     39 }
     40 
     41 /******************************************************************************/
     42 
     43 if (typeof reportCompare === "function")
     44  reportCompare(true, true);
     45 
     46 print("All tests passed!");