]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma/LexicalConventions/7.6.js
JavaScriptCore-554.1.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma / LexicalConventions / 7.6.js
1 /* The contents of this file are subject to the Netscape Public
2 * License Version 1.1 (the "License"); you may not use this file
3 * except in compliance with the License. You may obtain a copy of
4 * the License at http://www.mozilla.org/NPL/
5 *
6 * Software distributed under the License is distributed on an "AS
7 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
8 * implied. See the License for the specific language governing
9 * rights and limitations under the License.
10 *
11 * The Original Code is Mozilla Communicator client code, released March
12 * 31, 1998.
13 *
14 * The Initial Developer of the Original Code is Netscape Communications
15 * Corporation. Portions created by Netscape are
16 * Copyright (C) 1998 Netscape Communications Corporation. All
17 * Rights Reserved.
18 *
19 * Contributor(s):
20 *
21 */
22 /**
23 File Name: 7.6.js
24 ECMA Section: Punctuators
25 Description:
26
27 This tests verifies that all ECMA punctutors are recognized as a
28 token separator, but does not attempt to verify the functionality
29 of any punctuator.
30
31 Author: christine@netscape.com
32 Date: 12 november 1997
33 */
34
35 var SECTION = "7.6";
36 var VERSION = "ECMA_1";
37 startTest();
38 var TITLE = "Punctuators";
39
40 writeHeaderToLog( SECTION + " "+ TITLE);
41
42 var testcases = new Array();
43
44 // ==
45 testcases[tc++] = new TestCase( SECTION,
46 "var c,d;c==d",
47 true,
48 eval("var c,d;c==d") );
49
50 // =
51
52 testcases[tc++] = new TestCase( SECTION,
53 "var a=true;a",
54 true,
55 eval("var a=true;a") );
56
57 // >
58 testcases[tc++] = new TestCase( SECTION,
59 "var a=true,b=false;a>b",
60 true,
61 eval("var a=true,b=false;a>b") );
62
63 // <
64 testcases[tc++] = new TestCase( SECTION,
65 "var a=true,b=false;a<b",
66 false,
67 eval("var a=true,b=false;a<b") );
68
69 // <=
70 testcases[tc++] = new TestCase( SECTION,
71 "var a=0xFFFF,b=0X0FFF;a<=b",
72 false,
73 eval("var a=0xFFFF,b=0X0FFF;a<=b") );
74
75 // >=
76 testcases[tc++] = new TestCase( SECTION,
77 "var a=0xFFFF,b=0XFFFE;a>=b",
78 true,
79 eval("var a=0xFFFF,b=0XFFFE;a>=b") );
80
81 // !=
82 testcases[tc++] = new TestCase( SECTION,
83 "var a=true,b=false;a!=b",
84 true,
85 eval("var a=true,b=false;a!=b") );
86
87 testcases[tc++] = new TestCase( SECTION,
88 "var a=false,b=false;a!=b",
89 false,
90 eval("var a=false,b=false;a!=b") );
91 // ,
92 testcases[tc++] = new TestCase( SECTION,
93 "var a=true,b=false;a,b",
94 false,
95 eval("var a=true,b=false;a,b") );
96 // !
97 testcases[tc++] = new TestCase( SECTION,
98 "var a=true,b=false;!a",
99 false,
100 eval("var a=true,b=false;!a") );
101
102 // ~
103 testcases[tc++] = new TestCase( SECTION,
104 "var a=true;~a",
105 -2,
106 eval("var a=true;~a") );
107 // ?
108 testcases[tc++] = new TestCase( SECTION,
109 "var a=true; (a ? 'PASS' : '')",
110 "PASS",
111 eval("var a=true; (a ? 'PASS' : '')") );
112
113 // :
114
115 testcases[tc++] = new TestCase( SECTION,
116 "var a=false; (a ? 'FAIL' : 'PASS')",
117 "PASS",
118 eval("var a=false; (a ? 'FAIL' : 'PASS')") );
119 // .
120
121 testcases[tc++] = new TestCase( SECTION,
122 "var a=Number;a.NaN",
123 NaN,
124 eval("var a=Number;a.NaN") );
125
126 // &&
127 testcases[tc++] = new TestCase( SECTION,
128 "var a=true,b=true;if(a&&b)'PASS';else'FAIL'",
129 "PASS",
130 eval("var a=true,b=true;if(a&&b)'PASS';else'FAIL'") );
131
132 // ||
133 testcases[tc++] = new TestCase( SECTION,
134 "var a=false,b=false;if(a||b)'FAIL';else'PASS'",
135 "PASS",
136 eval("var a=false,b=false;if(a||b)'FAIL';else'PASS'") );
137 // ++
138 testcases[tc++] = new TestCase( SECTION,
139 "var a=false,b=false;++a",
140 1,
141 eval("var a=false,b=false;++a") );
142 // --
143 testcases[tc++] = new TestCase( SECTION,
144 "var a=true,b=false--a",
145 0,
146 eval("var a=true,b=false;--a") );
147 // +
148
149 testcases[tc++] = new TestCase( SECTION,
150 "var a=true,b=true;a+b",
151 2,
152 eval("var a=true,b=true;a+b") );
153 // -
154 testcases[tc++] = new TestCase( SECTION,
155 "var a=true,b=true;a-b",
156 0,
157 eval("var a=true,b=true;a-b") );
158 // *
159 testcases[tc++] = new TestCase( SECTION,
160 "var a=true,b=true;a*b",
161 1,
162 eval("var a=true,b=true;a*b") );
163 // /
164 testcases[tc++] = new TestCase( SECTION,
165 "var a=true,b=true;a/b",
166 1,
167 eval("var a=true,b=true;a/b") );
168 // &
169 testcases[tc++] = new TestCase( SECTION,
170 "var a=3,b=2;a&b",
171 2,
172 eval("var a=3,b=2;a&b") );
173 // |
174 testcases[tc++] = new TestCase( SECTION,
175 "var a=4,b=3;a|b",
176 7,
177 eval("var a=4,b=3;a|b") );
178
179 // |
180 testcases[tc++] = new TestCase( SECTION,
181 "var a=4,b=3;a^b",
182 7,
183 eval("var a=4,b=3;a^b") );
184
185 // %
186 testcases[tc++] = new TestCase( SECTION,
187 "var a=4,b=3;a|b",
188 1,
189 eval("var a=4,b=3;a%b") );
190
191 // <<
192 testcases[tc++] = new TestCase( SECTION,
193 "var a=4,b=3;a<<b",
194 32,
195 eval("var a=4,b=3;a<<b") );
196
197 // >>
198 testcases[tc++] = new TestCase( SECTION,
199 "var a=4,b=1;a>>b",
200 2,
201 eval("var a=4,b=1;a>>b") );
202
203 // >>>
204 testcases[tc++] = new TestCase( SECTION,
205 "var a=1,b=1;a>>>b",
206 0,
207 eval("var a=1,b=1;a>>>b") );
208 // +=
209 testcases[tc++] = new TestCase( SECTION,
210 "var a=4,b=3;a+=b;a",
211 7,
212 eval("var a=4,b=3;a+=b;a") );
213
214 // -=
215 testcases[tc++] = new TestCase( SECTION,
216 "var a=4,b=3;a-=b;a",
217 1,
218 eval("var a=4,b=3;a-=b;a") );
219 // *=
220 testcases[tc++] = new TestCase( SECTION,
221 "var a=4,b=3;a*=b;a",
222 12,
223 eval("var a=4,b=3;a*=b;a") );
224 // +=
225 testcases[tc++] = new TestCase( SECTION,
226 "var a=4,b=3;a+=b;a",
227 7,
228 eval("var a=4,b=3;a+=b;a") );
229 // /=
230 testcases[tc++] = new TestCase( SECTION,
231 "var a=12,b=3;a/=b;a",
232 4,
233 eval("var a=12,b=3;a/=b;a") );
234
235 // &=
236 testcases[tc++] = new TestCase( SECTION,
237 "var a=4,b=5;a&=b;a",
238 4,
239 eval("var a=4,b=5;a&=b;a") );
240
241 // |=
242 testcases[tc++] = new TestCase( SECTION,
243 "var a=4,b=5;a&=b;a",
244 5,
245 eval("var a=4,b=5;a|=b;a") );
246 // ^=
247 testcases[tc++] = new TestCase( SECTION,
248 "var a=4,b=5;a^=b;a",
249 1,
250 eval("var a=4,b=5;a^=b;a") );
251 // %=
252 testcases[tc++] = new TestCase( SECTION,
253 "var a=12,b=5;a%=b;a",
254 2,
255 eval("var a=12,b=5;a%=b;a") );
256 // <<=
257 testcases[tc++] = new TestCase( SECTION,
258 "var a=4,b=3;a<<=b;a",
259 32,
260 eval("var a=4,b=3;a<<=b;a") );
261
262 // >>
263 testcases[tc++] = new TestCase( SECTION,
264 "var a=4,b=1;a>>=b;a",
265 2,
266 eval("var a=4,b=1;a>>=b;a") );
267
268 // >>>
269 testcases[tc++] = new TestCase( SECTION,
270 "var a=1,b=1;a>>>=b;a",
271 0,
272 eval("var a=1,b=1;a>>>=b;a") );
273
274 // ()
275 testcases[tc++] = new TestCase( SECTION,
276 "var a=4,b=3;(a)",
277 4,
278 eval("var a=4,b=3;(a)") );
279 // {}
280 testcases[tc++] = new TestCase( SECTION,
281 "var a=4,b=3;{b}",
282 3,
283 eval("var a=4,b=3;{b}") );
284
285 // []
286 testcases[tc++] = new TestCase( SECTION,
287 "var a=new Array('hi');a[0]",
288 "hi",
289 eval("var a=new Array('hi');a[0]") );
290 // []
291 testcases[tc++] = new TestCase( SECTION,
292 ";",
293 void 0,
294 eval(";") );
295 test();
296
297 function test() {
298 for ( tc=0; tc < testcases.length; tc++ ) {
299 testcases[tc].passed = writeTestCaseResult(
300 testcases[tc].expect,
301 testcases[tc].actual,
302 testcases[tc].description +" = "+
303 testcases[tc].actual );
304
305 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
306 }
307 stopTest();
308 return ( testcases );
309 }