regress-203278-3.js (952B)
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 = 203278; 8 var summary = 'Don\'t crash in recursive js_MarkGCThing'; 9 var actual = 'FAIL'; 10 var expect = 'PASS'; 11 12 printBugNumber(BUGNUMBER); 13 printStatus (summary); 14 15 // Prepare array a to cause O(a.length^2) behaviour in the current 16 // DeutschSchorrWaite implementation 17 18 var a = new Array(1000 * 100); 19 20 var i = a.length; 21 while (i-- != 0) 22 { 23 a[i] = {}; 24 } 25 26 // Prepare linked list that causes recursion during GC with 27 // depth O(list size) 28 29 for (i = 0; i != 50*1000; ++i) 30 { 31 a = [a, a.concat()]; 32 } 33 34 if (typeof gc == 'function') 35 { 36 gc(); 37 } 38 39 actual = 'PASS'; 40 41 reportCompare(expect, actual, summary);