tor-browser

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

regress-394673.js (1145B)


      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 = 394673;
      8 var summary = 'Parsing long chains of "&&" or "||"';
      9 var actual = 'No Error';
     10 var expect = 'No Error';
     11 
     12 printBugNumber(BUGNUMBER);
     13 printStatus (summary);
     14 
     15 var N = 70*1000;
     16 var counter;
     17 
     18 counter = 0;
     19 var x = build("&&")();
     20 if (x !== true)
     21  throw "Unexpected result: x="+x;
     22 if (counter != N)
     23  throw "Unexpected counter: counter="+counter;
     24 
     25 counter = 0;
     26 var x = build("||")();
     27 if (x !== true)
     28  throw "Unexpected result: x="+x;
     29 if (counter != 1)
     30  throw "Unexpected counter: counter="+counter;
     31 
     32 function build(operation)
     33 {
     34  var counter;
     35  var a = [];
     36  a.push("return f()");
     37  for (var i = 1; i != N - 1; ++i)
     38    a.push("f()");
     39  a.push("f();");
     40  return new Function(a.join(operation));
     41 }
     42 
     43 function f()
     44 {
     45  ++counter;
     46  return true;
     47 }
     48 
     49 reportCompare(expect, actual, summary);