initial import
[vuplus_webkit] / Source / JavaScriptCore / 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 }