diff options
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/js1_5/Regress/regress-57043.js')
-rw-r--r-- | Source/JavaScriptCore/tests/mozilla/js1_5/Regress/regress-57043.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/js1_5/Regress/regress-57043.js b/Source/JavaScriptCore/tests/mozilla/js1_5/Regress/regress-57043.js new file mode 100644 index 0000000..39136a9 --- /dev/null +++ b/Source/JavaScriptCore/tests/mozilla/js1_5/Regress/regress-57043.js @@ -0,0 +1,88 @@ +/* +* The contents of this file are subject to the Netscape Public +* License Version 1.1 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.mozilla.org/NPL/ +* +* Software distributed under the License is distributed on an "AS +* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +* implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is mozilla.org code. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 1998 Netscape Communications Corporation. All +* Rights Reserved. +* +* Contributor(s): pschwartau@netscape.com +* Date: 03 December 2000 +* +* +* SUMMARY: This test arose from Bugzilla bug 57043: +* "Negative integers as object properties: strange behavior!" +* +* We check that object properties may be indexed by signed +* numeric literals, as in assignments like obj[-1] = 'Hello' +* +* NOTE: it should not matter whether we provide the literal with +* quotes around it or not; e.g. these should be equivalent: +* +* obj[-1] = 'Hello' +* obj['-1'] = 'Hello' +*/ +//------------------------------------------------------------------------------------------------- +var bug = 57043; +var summary = 'Indexing object properties by signed numerical literals -' +var statprefix = 'Adding a property to test object with an index of '; +var statsuffix = ', testing it now -'; +var propprefix = 'This is property '; +var obj = new Object(); +var status = ''; var actual = ''; var expect = ''; var value = ''; + + +// various indices to try - +var index = Array(-5000, -507, -3, -2, -1, 0, 1, 2, 3); + + +//------------------------------------------------------------------------------------------------- +test(); +//------------------------------------------------------------------------------------------------- + + +function test() +{ + enterFunc ('test'); + printBugNumber (bug); + printStatus (summary); + + for (j in index) {testProperty(index[j]);} + + exitFunc ('test'); +} + + +function testProperty(i) +{ + status = getStatus(i); + + // try to assign a property using the given index - + obj[i] = value = (propprefix + i); + + // try to read the property back via the index (as number) - + expect = value; + actual = obj[i]; + reportCompare(expect, actual, status); + + // try to read the property back via the index as string - + expect = value; + actual = obj[String(i)]; + reportCompare(expect, actual, status); +} + + +function getStatus(i) +{ + return (statprefix + i + statsuffix); +} |