summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/extensions/regress-330569.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/non262/extensions/regress-330569.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/non262/extensions/regress-330569.js')
-rw-r--r--js/src/tests/non262/extensions/regress-330569.js91
1 files changed, 91 insertions, 0 deletions
diff --git a/js/src/tests/non262/extensions/regress-330569.js b/js/src/tests/non262/extensions/regress-330569.js
new file mode 100644
index 0000000000..57114781a6
--- /dev/null
+++ b/js/src/tests/non262/extensions/regress-330569.js
@@ -0,0 +1,91 @@
+// |reftest| slow
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+//-----------------------------------------------------------------------------
+var BUGNUMBER = 330569;
+var summary = 'RegExp - throw InternalError on too complex regular expressions';
+var actual = '';
+var expect = '';
+
+
+//-----------------------------------------------------------------------------
+test();
+//-----------------------------------------------------------------------------
+
+function test()
+{
+ printBugNumber(BUGNUMBER);
+ printStatus (summary);
+
+ var s;
+ expect = 'InternalError: regular expression too complex';
+
+ s = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' +
+ '<html>\n' +
+ '<head>\n' +
+ '<meta http-equiv="content-type" content="text/html; charset=windows-1250">\n' +
+ '<meta name="generator" content="PSPad editor, www.pspad.com">\n' +
+ '<title></title>\n'+
+ '</head>\n' +
+ '<body>\n' +
+ '<!-- hello -->\n' +
+ '<script language="JavaScript">\n' +
+ 'var s = document. body. innerHTML;\n' +
+ 'var d = s. replace (/<!--(.*|\n)*-->/, "");\n' +
+ 'alert (d);\n' +
+ '</script>\n' +
+ '</body>\n' +
+ '</html>\n';
+
+ try
+ {
+ /<!--(.*|\n)*-->/.exec(s);
+ }
+ catch(ex)
+ {
+ actual = ex + '';
+ }
+
+ reportCompare(expect, actual, summary + ': /<!--(.*|\\n)*-->/.exec(s)');
+
+ function testre( re, n ) {
+ for ( var i= 0; i <= n; ++i ) {
+ re.test( Array( i+1 ).join() );
+ }
+ }
+
+ try
+ {
+ testre( /(?:,*)*x/, 22 );
+ }
+ catch(ex)
+ {
+ actual = ex + '';
+ }
+
+ reportCompare(expect, actual, summary + ': testre( /(?:,*)*x/, 22 )');
+
+ try
+ {
+ testre( /(?:,|,)*x/, 22 );
+ }
+ catch(ex)
+ {
+ actual = ex + '';
+ }
+
+ reportCompare(expect, actual, summary + ': testre( /(?:,|,)*x/, 22 )');
+
+ try
+ {
+ testre( /(?:,|,|,|,|,)*x/, 10 );
+ }
+ catch(ex)
+ {
+ actual = ex + '';
+ }
+ reportCompare(expect, actual, summary + ': testre( /(?:,|,|,|,|,)*x/, 10 )');
+}