From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- js/src/tests/non262/operators/11.13.1-001.js | 115 +++++++++++++++++++++ js/src/tests/non262/operators/11.13.1-002.js | 24 +++++ js/src/tests/non262/operators/11.4.1-001.js | 83 +++++++++++++++ js/src/tests/non262/operators/11.4.1-002.js | 36 +++++++ js/src/tests/non262/operators/browser.js | 0 .../instanceof-bound-function-recursion.js | 23 +++++ js/src/tests/non262/operators/order-01.js | 72 +++++++++++++ js/src/tests/non262/operators/shell.js | 0 8 files changed, 353 insertions(+) create mode 100644 js/src/tests/non262/operators/11.13.1-001.js create mode 100644 js/src/tests/non262/operators/11.13.1-002.js create mode 100644 js/src/tests/non262/operators/11.4.1-001.js create mode 100644 js/src/tests/non262/operators/11.4.1-002.js create mode 100644 js/src/tests/non262/operators/browser.js create mode 100644 js/src/tests/non262/operators/instanceof-bound-function-recursion.js create mode 100644 js/src/tests/non262/operators/order-01.js create mode 100644 js/src/tests/non262/operators/shell.js (limited to 'js/src/tests/non262/operators') diff --git a/js/src/tests/non262/operators/11.13.1-001.js b/js/src/tests/non262/operators/11.13.1-001.js new file mode 100644 index 0000000000..ec67f05a65 --- /dev/null +++ b/js/src/tests/non262/operators/11.13.1-001.js @@ -0,0 +1,115 @@ +/* -*- 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: 08 May 2003 + * SUMMARY: JS should evaluate RHS before binding LHS implicit variable + * + * See http://bugzilla.mozilla.org/show_bug.cgi?id=204919 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 204919; +var summary = 'JS should evaluate RHS before binding LHS implicit variable'; +var TEST_PASSED = 'ReferenceError'; +var TEST_FAILED = 'Generated an error, but NOT a ReferenceError!'; +var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +/* + * global scope - + */ +status = inSection(1); +try +{ + x = x; + actual = TEST_FAILED_BADLY; +} +catch(e) +{ + if (e instanceof ReferenceError) + actual = TEST_PASSED; + else + actual = TEST_FAILED; +} +expect = TEST_PASSED; +addThis(); + + +/* + * function scope - + */ +status = inSection(2); +try +{ + (function() {y = y;})(); + actual = TEST_FAILED_BADLY; +} +catch(e) +{ + if (e instanceof ReferenceError) + actual = TEST_PASSED; + else + actual = TEST_FAILED; +} +expect = TEST_PASSED; +addThis(); + + +/* + * eval scope - + */ +status = inSection(3); +try +{ + eval('z = z'); + actual = TEST_FAILED_BADLY; +} +catch(e) +{ + if (e instanceof ReferenceError) + actual = TEST_PASSED; + else + actual = TEST_FAILED; +} +expect = TEST_PASSED; +addThis(); + + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i ({}) instanceof fn, + Error, + "detect runaway recursion delegating instanceof to bound function target"); + +reportCompare(0, 0); diff --git a/js/src/tests/non262/operators/order-01.js b/js/src/tests/non262/operators/order-01.js new file mode 100644 index 0000000000..cab0c9b466 --- /dev/null +++ b/js/src/tests/non262/operators/order-01.js @@ -0,0 +1,72 @@ +/* -*- 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 = 433672; +var summary = 'operator evaluation order'; +var actual = ''; +var expect = ''; + +function makeObject(label) +{ + var o = (function (){}); + + o.label = label; + o.valueOf = (function() { actual += this.label + ' valueOf, '; return Object.prototype.valueOf.call(this); }); + o.toString = (function() { actual += this.label + ' toString, '; return Object.prototype.toString.call(this); }); + + return o; +} + +operators = [ + {section: '11.5.1', operator: '*'}, + {section: '11.5.2', operator: '/'}, + {section: '11.5.3', operator: '%'}, + {section: '11.6.1', operator: '+'}, + {section: '11.6.2', operator: '-'}, + {section: '11.7.1', operator: '<<'}, + {section: '11.7.2', operator: '>>'}, + {section: '11.7.3', operator: '>>>'}, + {section: '11.8.1', operator: '<'}, + {section: '11.8.2', operator: '>'}, + {section: '11.8.3', operator: '<='}, + {section: '11.8.4', operator: '>='}, + {section: '11.10', operator: '&'}, + {section: '11.10', operator: '^'}, + {section: '11.10', operator: '|'}, + {section: '11.13.2', operator: '*='}, + {section: '11.13.2', operator: '/='}, + {section: '11.13.2', operator: '%='}, + {section: '11.13.2', operator: '+='}, + {section: '11.13.2', operator: '<<='}, + {section: '11.13.2', operator: '>>='}, + {section: '11.13.2', operator: '>>>='}, + {section: '11.13.2', operator: '&='}, + {section: '11.13.2', operator: '^='}, + {section: '11.13.2', operator: '|='}, + ]; + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function test() +{ + printBugNumber(BUGNUMBER); + printStatus (summary); + + for (var i = 0; i < operators.length; i++) + { + expect = 'left valueOf, left toString, right valueOf, right toString, '; + actual = ''; + + var left = makeObject('left'); + var right = makeObject('right'); + + eval('left ' + operators[i].operator + ' right'); + + reportCompare(expect, actual, summary + ': ' + operators[i].section + ' ' + operators[i].operator); + } +} diff --git a/js/src/tests/non262/operators/shell.js b/js/src/tests/non262/operators/shell.js new file mode 100644 index 0000000000..e69de29bb2 -- cgit v1.2.3