regress-329530.js (1088B)
1 // |reftest| skip-if(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 var BUGNUMBER = 329530; 9 var summary = 'Do not crash when calling toString on a deeply nested function'; 10 var actual = 'No Crash'; 11 var expect = 'No Crash'; 12 13 printBugNumber(BUGNUMBER); 14 printStatus (summary); 15 16 expectExitCode(0); 17 expectExitCode(5); 18 19 var nestingLevel = 1000; 20 21 function buildTestFunction(N) { 22 var i, funSourceStart = "", funSourceEnd = ""; 23 for (i=0; i < N; ++i) { 24 funSourceStart += "function testFoo() {"; 25 funSourceEnd += "}"; 26 } 27 return Function(funSourceStart + funSourceEnd); 28 } 29 30 try 31 { 32 var testSource = buildTestFunction(nestingLevel).toString(); 33 printStatus(testSource.length); 34 } 35 catch(ex) 36 { 37 printStatus(ex + ''); 38 } 39 40 41 reportCompare(expect, actual, summary);