diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/non262/regress/regress-204210.js | |
parent | Initial commit. (diff) | |
download | firefox-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 '')
-rw-r--r-- | js/src/tests/non262/regress/regress-204210.js | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/js/src/tests/non262/regress/regress-204210.js b/js/src/tests/non262/regress/regress-204210.js new file mode 100644 index 0000000000..0c079abaac --- /dev/null +++ b/js/src/tests/non262/regress/regress-204210.js @@ -0,0 +1,116 @@ +/* -*- 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. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * + * Date: 29 April 2003 + * SUMMARY: eval() is not a constructor, but don't crash on |new eval();| + * + * See http://bugzilla.mozilla.org/show_bug.cgi?id=204210 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 204210; +var summary = "eval() is not a constructor, but don't crash on |new eval();|"; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + +printBugNumber(BUGNUMBER); +printStatus(summary); + +/* + * Just testing that we don't crash on any of these constructs - + */ + + +/* + * global scope - + */ +try +{ + var x = new eval(); + new eval(); +} +catch(e) +{ +} + + +/* + * function scope - + */ +f(); +function f() +{ + try + { + var x = new eval(); + new eval(); + } + catch(e) + { + } +} + + +/* + * eval scope - + */ +var s = ''; +s += 'try'; +s += '{'; +s += ' var x = new eval();'; +s += ' new eval();'; +s += '}'; +s += 'catch(e)'; +s += '{'; +s += '}'; +eval(s); + + +/* + * some combinations of scope - + */ +s = ''; +s += 'function g()'; +s += '{'; +s += ' try'; +s += ' {'; +s += ' var x = new eval();'; +s += ' new eval();'; +s += ' }'; +s += ' catch(e)'; +s += ' {'; +s += ' }'; +s += '}'; +s += 'g();'; +eval(s); + + +function h() +{ + var s = ''; + s += 'function f()'; + s += '{'; + s += ' try'; + s += ' {'; + s += ' var x = new eval();'; + s += ' new eval();'; + s += ' }'; + s += ' catch(e)'; + s += ' {'; + s += ' }'; + s += '}'; + s += 'f();'; + eval(s); +} +h(); + +reportCompare('No Crash', 'No Crash', ''); |