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);