]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/mozilla/js1_5/Array/regress-107138.js
JavaScriptCore-461.tar.gz
[apple/javascriptcore.git] / tests / mozilla / js1_5 / Array / regress-107138.js
CommitLineData
b37bf2e1
A
1/*
2* The contents of this file are subject to the Netscape Public
3* License Version 1.1 (the "License"); you may not use this file
4* except in compliance with the License. You may obtain a copy of
5* the License at http://www.mozilla.org/NPL/
6*
7* Software distributed under the License is distributed on an "AS
8* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9* implied. See the License for the specific language governing
10* rights and limitations under the License.
11*
12* The Original Code is mozilla.org code.
13*
14* The Initial Developer of the Original Code is Netscape
15* Communications Corporation. Portions created by Netscape are
16* Copyright (C) 1998 Netscape Communications Corporation.
17* All Rights Reserved.
18*
19* Contributor(s): morse@netscape.com, pschwartau@netscape.com
20* Date: 29 October 2001
21*
22* SUMMARY: Regression test for bug 107138
23* See http://bugzilla.mozilla.org/show_bug.cgi?id=107138
24*
25* The bug: arr['1'] == undefined instead of arr['1'] == 'one'.
26* The bug was intermittent and did not always occur...
27*
28* The cnSTRESS constant defines how many times to repeat this test.
29*/
30//-----------------------------------------------------------------------------
31var UBound = 0;
32var cnSTRESS = 10;
33var cnDASH = '-';
34var bug = 107138;
35var summary = 'Regression test for bug 107138';
36var status = '';
37var statusitems = [];
38var actual = '';
39var actualvalues = [];
40var expect= '';
41var expectedvalues = [];
42
43
44var arr = ['zero', 'one', 'two', 'three', 'four', 'five',
45 'six', 'seven', 'eight', 'nine', 'ten'];
46
47
48// This bug was intermittent. Stress-test it.
49for (var j=0; j<cnSTRESS; j++)
50{
51 status = inSection(j + cnDASH + 1);
52 actual = arr[0];
53 expect = 'zero';
54 addThis();
55
56 status = inSection(j + cnDASH + 2);
57 actual = arr['0'];
58 expect = 'zero';
59 addThis();
60
61 status = inSection(j + cnDASH + 3);
62 actual = arr[1];
63 expect = 'one';
64 addThis();
65
66 status = inSection(j + cnDASH + 4);
67 actual = arr['1'];
68 expect = 'one';
69 addThis();
70
71 status = inSection(j + cnDASH + 5);
72 actual = arr[2];
73 expect = 'two';
74 addThis();
75
76 status = inSection(j + cnDASH + 6);
77 actual = arr['2'];
78 expect = 'two';
79 addThis();
80
81 status = inSection(j + cnDASH + 7);
82 actual = arr[3];
83 expect = 'three';
84 addThis();
85
86 status = inSection(j + cnDASH + 8);
87 actual = arr['3'];
88 expect = 'three';
89 addThis();
90
91 status = inSection(j + cnDASH + 9);
92 actual = arr[4];
93 expect = 'four';
94 addThis();
95
96 status = inSection(j + cnDASH + 10);
97 actual = arr['4'];
98 expect = 'four';
99 addThis();
100
101 status = inSection(j + cnDASH + 11);
102 actual = arr[5];
103 expect = 'five';
104 addThis();
105
106 status = inSection(j + cnDASH + 12);
107 actual = arr['5'];
108 expect = 'five';
109 addThis();
110
111 status = inSection(j + cnDASH + 13);
112 actual = arr[6];
113 expect = 'six';
114 addThis();
115
116 status = inSection(j + cnDASH + 14);
117 actual = arr['6'];
118 expect = 'six';
119 addThis();
120
121 status = inSection(j + cnDASH + 15);
122 actual = arr[7];
123 expect = 'seven';
124 addThis();
125
126 status = inSection(j + cnDASH + 16);
127 actual = arr['7'];
128 expect = 'seven';
129 addThis();
130
131 status = inSection(j + cnDASH + 17);
132 actual = arr[8];
133 expect = 'eight';
134 addThis();
135
136 status = inSection(j + cnDASH + 18);
137 actual = arr['8'];
138 expect = 'eight';
139 addThis();
140
141 status = inSection(j + cnDASH + 19);
142 actual = arr[9];
143 expect = 'nine';
144 addThis();
145
146 status = inSection(j + cnDASH + 20);
147 actual = arr['9'];
148 expect = 'nine';
149 addThis();
150
151 status = inSection(j + cnDASH + 21);
152 actual = arr[10];
153 expect = 'ten';
154 addThis();
155
156 status = inSection(j + cnDASH + 22);
157 actual = arr['10'];
158 expect = 'ten';
159 addThis();
160}
161
162
163//-----------------------------------------------------------------------------
164test();
165//-----------------------------------------------------------------------------
166
167
168
169function addThis()
170{
171 statusitems[UBound] = status;
172 actualvalues[UBound] = actual;
173 expectedvalues[UBound] = expect;
174 UBound++;
175}
176
177
178function test()
179{
180 enterFunc ('test');
181 printBugNumber (bug);
182 printStatus (summary);
183
184 for (var i=0; i<UBound; i++)
185 {
186 reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
187 }
188
189 exitFunc ('test');
190}