tor-browser

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

regress-108440.js (1649B)


      1 // |reftest| skip-if(Android) -- bug - nsIDOMWindow.crypto throws NS_ERROR_NOT_IMPLEMENTED on Android
      2 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 /*
      8 *
      9 * Date: 30 October 2001
     10 * SUMMARY: Regression test for bug 108440
     11 * See http://bugzilla.mozilla.org/show_bug.cgi?id=108440
     12 *
     13 * We shouldn't crash trying to add an array as an element of itself (!)
     14 *
     15 * Brendan: "...it appears that Array.prototype.toString is unsafe,
     16 * and what's more, ECMA-262 Edition 3 has no helpful words about
     17 * avoiding recursive death on a cycle."
     18 */
     19 //-----------------------------------------------------------------------------
     20 var BUGNUMBER = 108440;
     21 var summary = "Shouldn't crash trying to add an array as an element of itself";
     22 var self = this;
     23 var temp = '';
     24 
     25 printBugNumber(BUGNUMBER);
     26 printStatus(summary);
     27 
     28 /*
     29 * Explicit test:
     30 */
     31 var a=[];
     32 temp = (a[a.length]=a);
     33 
     34 /*
     35 * Implicit test (one of the properties of |self| is |a|)
     36 */
     37 a=[];
     38 for(var prop in self)
     39 {
     40  temp = prop;
     41  temp = (a[a.length] = self[prop]);
     42 }
     43 
     44 /*
     45 * Stressful explicit test
     46 */
     47 a=[];
     48 for (var i=0; i<10; i++)
     49 {
     50  a[a.length] = a;
     51 }
     52 
     53 /*
     54 * Test toString()
     55 */
     56 a=[];
     57 for (var i=0; i<10; i++)
     58 {
     59  a[a.length] = a.toString();
     60 }
     61 
     62 /*
     63 * Test toSource() - but Rhino doesn't have this, so try...catch it
     64 */
     65 a=[];
     66 try
     67 {
     68  for (var i=0; i<10; i++)
     69  {
     70    a[a.length] = a.toSource();
     71  }
     72 }
     73 catch(e)
     74 {
     75 }
     76 
     77 reportCompare('No Crash', 'No Crash', '');