From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- js/src/tests/non262/regress/regress-346801.js | 73 +++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 js/src/tests/non262/regress/regress-346801.js (limited to 'js/src/tests/non262/regress/regress-346801.js') 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); +} -- cgit v1.2.3