regress-336409-2.js (1338B)
1 // |reftest| skip-if(!Object.prototype.toSource||(!xulRuntime.shell&&(Android||is64Bit))) slow -- can fail silently due to out of memory, bug 615011 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 = 336409; 9 var summary = 'Integer overflow in js_obj_toSource'; 10 var actual = 'No Crash'; 11 var expect = /(No Crash|InternalError: allocation size overflow|out of memory)/; 12 13 printBugNumber(BUGNUMBER); 14 printStatus (summary); 15 16 expectExitCode(0); 17 expectExitCode(5); 18 19 function createString(n) 20 { 21 var l = n*1024*1024; 22 var r = 'r'; 23 24 while (r.length < l) 25 { 26 r = r + r; 27 } 28 return r; 29 } 30 31 try 32 { 33 var n = 128; 34 printStatus('Creating ' + n + 'MB string'); 35 var r = createString(n); 36 printStatus('Done. length = ' + r.length); 37 printStatus('Creating object'); 38 var o = {f1: r, f2: r, f3: r,f4: r,f5: r, f6: r, f7: r, f8: r,f9: r}; 39 printStatus('object.toSource()'); 40 var rr = o.toSource(); 41 printStatus('Done.'); 42 } 43 catch(ex) 44 { 45 actual = ex + ''; 46 print(actual); 47 } 48 49 reportMatch(expect, actual, summary);