/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* * *Date:08February2003 *SUMMARY:Parserrecursionshouldcheckstackoverflow * *Seehttp://bugzilla.mozilla.org/show_bug.cgi?id=192414 *
*/ //----------------------------------------------------------------------------- var UBound = 0; var BUGNUMBER = 192414; var summary = 'Parser recursion should check stack overflow'; var status = ''; var statusitems = []; var actual = ''; var actualvalues = []; var expect= ''; var expectedvalues = [];
/* *Wewillformanevalstringtosettheresult-variable|actual|. *Togetafeelforthis,supposeNwere3.Thentheevalstringis *'actual=(1&(1&(1&1)));'Theexpectedvalueaftereval()is1.
*/
status = inSection(1); var N = 10000; var left = repeat_str('(1&', N); var right = repeat_str(')', N); var str = 'actual = '.concat(left, '1', right, ';'); try
{
eval(str);
} catch (e)
{ /* *AnexceptionduringthisevalisOK,astheruntimecanthrowone *inresponsetotoodeeprecursion.Wehaven'tcrashed;good!
*/
actual = 1;
}
expect = 1;
addThis();
function repeat_str(str, repeat_count)
{ var arr = new Array(--repeat_count); while (repeat_count != 0)
arr[--repeat_count] = str; return str.concat.apply(str, arr);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.