diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /js/src/tests/non262/regress/regress-168347.js | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/non262/regress/regress-168347.js')
-rw-r--r-- | js/src/tests/non262/regress/regress-168347.js | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/js/src/tests/non262/regress/regress-168347.js b/js/src/tests/non262/regress/regress-168347.js new file mode 100644 index 0000000000..cdacb78a53 --- /dev/null +++ b/js/src/tests/non262/regress/regress-168347.js @@ -0,0 +1,183 @@ +/* -*- 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: 13 Sep 2002 + * SUMMARY: Testing F.toString() + * See http://bugzilla.mozilla.org/show_bug.cgi?id=168347 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 168347; +var summary = "Testing F.toString()"; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; +var FtoString = ''; +var sFunc = ''; + +sFunc += 'function F()'; +sFunc += '{'; +sFunc += ' var f = arguments.callee;'; +sFunc += ' f.i = 0;'; +sFunc += ''; +sFunc += ' try'; +sFunc += ' {'; +sFunc += ' f.i = f.i + 1;'; +sFunc += ' print("i = i+1 succeeded \ti = " + f.i);'; +sFunc += ' }'; +sFunc += ' catch(e)'; +sFunc += ' {'; +sFunc += ' print("i = i+1 failed with " + e + "\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ''; +sFunc += ' try'; +sFunc += ' {'; +sFunc += ' ++f.i;'; +sFunc += ' print("++i succeeded \t\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ' catch(e)'; +sFunc += ' {'; +sFunc += ' print("++i failed with " + e + "\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ''; +sFunc += ' try'; +sFunc += ' {'; +sFunc += ' f.i++;'; +sFunc += ' print("i++ succeeded \t\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ' catch(e)'; +sFunc += ' {'; +sFunc += ' print("i++ failed with " + e + "\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ''; +sFunc += ' try'; +sFunc += ' {'; +sFunc += ' --f.i;'; +sFunc += ' print("--i succeeded \t\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ' catch(e)'; +sFunc += ' {'; +sFunc += ' print("--i failed with " + e + "\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ''; +sFunc += ' try'; +sFunc += ' {'; +sFunc += ' f.i--;'; +sFunc += ' print("i-- succeeded \t\ti = " + f.i);'; +sFunc += ' }'; +sFunc += ' catch(e)'; +sFunc += ' {'; +sFunc += ' print("i-- failed with " + e + "\ti = " + f.i);'; +sFunc += ' }'; +sFunc += '}'; + + +/* + * Use sFunc to define the function F. The test + * then rests on comparing F.toString() to sFunc. + */ +eval(sFunc); + + +/* + * There are trivial whitespace differences between F.toString() + * and sFunc. So strip out whitespace before comparing them - + */ +sFunc = stripWhite(sFunc); +FtoString = stripWhite(F.toString()); + + +/* + * Break comparison into sections to make any failures + * easier for the developer to track down - + */ +status = inSection(1); +actual = FtoString.substring(0,100); +expect = sFunc.substring(0,100); +addThis(); + +status = inSection(2); +actual = FtoString.substring(100,200); +expect = sFunc.substring(100,200); +addThis(); + +status = inSection(3); +actual = FtoString.substring(200,300); +expect = sFunc.substring(200,300); +addThis(); + +status = inSection(4); +actual = FtoString.substring(300,400); +expect = sFunc.substring(300,400); +addThis(); + +status = inSection(5); +actual = FtoString.substring(400,500); +expect = sFunc.substring(400,500); +addThis(); + +status = inSection(6); +actual = FtoString.substring(500,600); +expect = sFunc.substring(500,600); +addThis(); + +status = inSection(7); +actual = FtoString.substring(600,700); +expect = sFunc.substring(600,700); +addThis(); + +status = inSection(8); +actual = FtoString.substring(700,800); +expect = sFunc.substring(700,800); +addThis(); + +status = inSection(9); +actual = FtoString.substring(800,900); +expect = sFunc.substring(800,900); +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + +/* + * Remove any whitespace characters; also + * any escaped tabs or escaped newlines. + */ +function stripWhite(str) +{ + var re = /\s|\\t|\\n/g; + return str.replace(re, ''); +} + + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i<UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } +} |