regress-336409-1.js (1294B)
1 // |reftest| skip-if(!Object.prototype.toSource||!xulRuntime.shell||Android) slow -- no results reported. 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'; 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 = 64; 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 expect = 'InternalError: allocation size overflow'; 46 actual = ex + ''; 47 print(actual); 48 } 49 50 reportCompare(expect, actual, summary);