diff options
Diffstat (limited to 'js/src/tests/ecma_3/Operators')
-rw-r--r-- | js/src/tests/ecma_3/Operators/11.13.1-001.js | 118 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/11.13.1-002.js | 24 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/11.4.1-001.js | 86 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/11.4.1-002.js | 39 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/browser.js | 0 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/order-01.js | 75 | ||||
-rw-r--r-- | js/src/tests/ecma_3/Operators/shell.js | 0 |
7 files changed, 342 insertions, 0 deletions
diff --git a/js/src/tests/ecma_3/Operators/11.13.1-001.js b/js/src/tests/ecma_3/Operators/11.13.1-001.js new file mode 100644 index 000000000..8df71af80 --- /dev/null +++ b/js/src/tests/ecma_3/Operators/11.13.1-001.js @@ -0,0 +1,118 @@ +/* -*- 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() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i<UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/ecma_3/Operators/11.13.1-002.js b/js/src/tests/ecma_3/Operators/11.13.1-002.js new file mode 100644 index 000000000..4ccc4bb1f --- /dev/null +++ b/js/src/tests/ecma_3/Operators/11.13.1-002.js @@ -0,0 +1,24 @@ +/* -*- 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 = 312354; +var summary = '11.13.1 Simple Assignment should return type of RHS'; +var actual = ''; +var expect = ''; + +// XXX this test should really test each property of the native +// objects, but I'm too lazy. Patches accepted. + +printBugNumber(BUGNUMBER); +printStatus (summary); + +var re = /x/g; +var y = re.lastIndex = "7"; + +expect = "string"; +actual = typeof y; + +reportCompare(expect, actual, summary); diff --git a/js/src/tests/ecma_3/Operators/11.4.1-001.js b/js/src/tests/ecma_3/Operators/11.4.1-001.js new file mode 100644 index 000000000..ea0fb4487 --- /dev/null +++ b/js/src/tests/ecma_3/Operators/11.4.1-001.js @@ -0,0 +1,86 @@ +/* -*- 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: 14 April 2003 + * SUMMARY: |delete x.y| should return |true| if |x| has no property |y| + * See http://bugzilla.mozilla.org/show_bug.cgi?id=201987 + * + */ +//----------------------------------------------------------------------------- +var UBound = 0; +var BUGNUMBER = 201987; +var summary = '|delete x.y| should return |true| if |x| has no property |y|'; +var status = ''; +var statusitems = []; +var actual = ''; +var actualvalues = []; +var expect= ''; +var expectedvalues = []; + + +status = inSection(1); +var x = {}; +actual = delete x.y; +expect = true; +addThis(); + +status = inSection(2); +actual = delete {}.y; +expect = true; +addThis(); + +status = inSection(3); +actual = delete "".y; +expect = true; +addThis(); + +status = inSection(4); +actual = delete /abc/.y; +expect = true; +addThis(); + +status = inSection(5); +actual = delete (new Date()).y; +expect = true; +addThis(); + +status = inSection(6); +var x = 99; +actual = delete x.y; +expect = true; +addThis(); + + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + + + +function addThis() +{ + statusitems[UBound] = status; + actualvalues[UBound] = actual; + expectedvalues[UBound] = expect; + UBound++; +} + + +function test() +{ + enterFunc('test'); + printBugNumber(BUGNUMBER); + printStatus(summary); + + for (var i=0; i<UBound; i++) + { + reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/ecma_3/Operators/11.4.1-002.js b/js/src/tests/ecma_3/Operators/11.4.1-002.js new file mode 100644 index 000000000..41d584386 --- /dev/null +++ b/js/src/tests/ecma_3/Operators/11.4.1-002.js @@ -0,0 +1,39 @@ +/* -*- 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 = 423300; +var summary = '11.4.1 - The delete Operator - delete f()'; +var actual = ''; +var expect = ''; + + +//----------------------------------------------------------------------------- +test(); +//----------------------------------------------------------------------------- + +function f() {} + +function test() +{ + enterFunc ('test'); + printBugNumber(BUGNUMBER); + printStatus (summary); + + expect = true; + + try + { + actual = delete f(); + } + catch(ex) + { + actual = ex + ''; + } + + reportCompare(expect, actual, summary); + + exitFunc ('test'); +} diff --git a/js/src/tests/ecma_3/Operators/browser.js b/js/src/tests/ecma_3/Operators/browser.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma_3/Operators/browser.js diff --git a/js/src/tests/ecma_3/Operators/order-01.js b/js/src/tests/ecma_3/Operators/order-01.js new file mode 100644 index 000000000..38d187a7b --- /dev/null +++ b/js/src/tests/ecma_3/Operators/order-01.js @@ -0,0 +1,75 @@ +/* -*- 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() +{ + enterFunc ('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); + } + + exitFunc ('test'); +} diff --git a/js/src/tests/ecma_3/Operators/shell.js b/js/src/tests/ecma_3/Operators/shell.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma_3/Operators/shell.js |