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-346801.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-346801.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/js/src/tests/non262/regress/regress-346801.js b/js/src/tests/non262/regress/regress-346801.js new file mode 100644 index 0000000000..c6d6fbaf3b --- /dev/null +++ b/js/src/tests/non262/regress/regress-346801.js @@ -0,0 +1,73 @@ +/* -*- 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/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 346801; +var summary = 'Hang regression from bug 346021'; +var actual = ''; +var expect = 'No Hang'; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + try + { + var Class = { + create: function() { + return function() { + this.initialize.apply(this, arguments); + } + } + } + + Object.extend = function(destination, source) { + print("Start"); +// print(destination); +// print(source); + if(destination==source) + print("Same desination and source!"); + var i = 0; + for (property in source) { +// print(" " + property); + destination[property] = source[property]; + ++i; + if (i > 1000) { + throw "Hang"; + } + } + print("Finish"); + return destination; + } + + var Ajax = { + }; + + Ajax.Base = function() {}; + Ajax.Base.prototype = { + responseIsFailure: function() { } + } + + Ajax.Request = Class.create(); + + Ajax.Request.prototype = Object.extend(new Ajax.Base(), {}); + + Ajax.Updater = Class.create(); + + Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype); + actual = 'No Hang'; + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, summary); +} |