QML_RUNTIME_TESTING should be disabled by default.
[profile/ivi/qtdeclarative.git] / tests / auto / declarative / parserstress / tests / ecma / GlobalObject / 15.1.2.3-1.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  * http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * The Original Code is Mozilla Communicator client code, released
16  * March 31, 1998.
17  *
18  * The Initial Developer of the Original Code is
19  * Netscape Communications Corporation.
20  * Portions created by the Initial Developer are Copyright (C) 1998
21  * the Initial Developer. All Rights Reserved.
22  *
23  * Contributor(s):
24  *
25  * Alternatively, the contents of this file may be used under the terms of
26  * either the GNU General Public License Version 2 or later (the "GPL"), or
27  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28  * in which case the provisions of the GPL or the LGPL are applicable instead
29  * of those above. If you wish to allow use of your version of this file only
30  * under the terms of either the GPL or the LGPL, and not to allow others to
31  * use your version of this file under the terms of the MPL, indicate your
32  * decision by deleting the provisions above and replace them with the notice
33  * and other provisions required by the GPL or the LGPL. If you do not delete
34  * the provisions above, a recipient may use your version of this file under
35  * the terms of any one of the MPL, the GPL or the LGPL.
36  *
37  * ***** END LICENSE BLOCK ***** */
38
39 gTestfile = '15.1.2.3-1.js';
40
41 /**
42    File Name:          15.1.2.3.js
43    ECMA Section:       15.1.2.3 Function properties of the global object:
44    parseFloat( string )
45
46    Description:        The parseFloat function produces a number value dictated
47    by the interpretation of the contents of the string
48    argument defined as a decimal literal.
49
50    When the parseFloat function is called, the following
51    steps are taken:
52
53    1.  Call ToString( string ).
54    2.  Remove leading whitespace Result(1).
55    3.  If neither Result(2) nor any prefix of Result(2)
56    satisfies the syntax of a StrDecimalLiteral,
57    return NaN.
58    4.  Compute the longest prefix of Result(2) which might
59    be Resusult(2) itself, that satisfies the syntax of
60    a StrDecimalLiteral
61    5.  Return the number value for the MV of Result(4).
62
63    Note that parseFloate may interpret only a leading
64    portion of the string as a number value; it ignores any
65    characters that cannot be interpreted as part of the
66    notation of a decimal literal, and no indication is given
67    that such characters were ignored.
68
69    StrDecimalLiteral::
70    Infinity
71    DecimalDigits.DecimalDigits opt ExponentPart opt
72    .DecimalDigits ExponentPart opt
73    DecimalDigits ExponentPart opt
74
75    Author:             christine@netscape.com
76    Date:               28 october 1997
77
78 */
79
80 var SECTION = "15.1.2.3-1";
81 var VERSION = "ECMA_1";
82 var TITLE   = "parseFloat(string)";
83 var BUGNUMBER="none";
84
85 startTest();
86 writeHeaderToLog( SECTION + " "+ TITLE);
87
88 new TestCase( SECTION, "parseFloat.length",     1,              parseFloat.length );
89
90 new TestCase( SECTION, "parseFloat.length = null; parseFloat.length",   1,      eval("parseFloat.length = null; parseFloat.length") );
91 new TestCase( SECTION, "delete parseFloat.length",                      false,  delete parseFloat.length );
92 new TestCase( SECTION, "delete parseFloat.length; parseFloat.length",   1,      eval("delete parseFloat.length; parseFloat.length") );
93 new TestCase( SECTION, "var MYPROPS=''; for ( var p in parseFloat ) { MYPROPS += p }; MYPROPS", "prototype", eval("var MYPROPS=''; for ( var p in parseFloat ) { MYPROPS += p }; MYPROPS") );
94
95 new TestCase( SECTION, "parseFloat()",          Number.NaN,     parseFloat() );
96 new TestCase( SECTION, "parseFloat('')",        Number.NaN,     parseFloat('') );
97
98 new TestCase( SECTION, "parseFloat(' ')",       Number.NaN,     parseFloat(' ') );
99 new TestCase( SECTION, "parseFloat(true)",      Number.NaN,     parseFloat(true) );
100 new TestCase( SECTION, "parseFloat(false)",     Number.NaN,     parseFloat(false) );
101 new TestCase( SECTION, "parseFloat('string')",  Number.NaN,     parseFloat("string") );
102
103 new TestCase( SECTION, "parseFloat('  Infinity')",    Infinity,    parseFloat("Infinity") );
104 new TestCase( SECTION, "parseFloat('  Infinity  ')",      Infinity,    parseFloat('  Infinity  ') );
105
106 new TestCase( SECTION, "parseFloat('Infinity')",    Infinity,    parseFloat("Infinity") );
107 new TestCase( SECTION, "parseFloat(Infinity)",      Infinity,    parseFloat(Infinity) );
108
109
110 new TestCase( SECTION, "parseFloat('  +Infinity')",         +Infinity,    parseFloat("+Infinity") );
111 new TestCase( SECTION, "parseFloat('  -Infinity  ')",      -Infinity,    parseFloat('  -Infinity  ') );
112
113 new TestCase( SECTION, "parseFloat('+Infinity')",    +Infinity,    parseFloat("+Infinity") );
114 new TestCase( SECTION, "parseFloat(-Infinity)",      -Infinity,    parseFloat(-Infinity) );
115
116 new TestCase( SECTION,  "parseFloat('0')",          0,          parseFloat("0") );
117 new TestCase( SECTION,  "parseFloat('-0')",         -0,         parseFloat("-0") );
118 new TestCase( SECTION,  "parseFloat('+0')",          0,         parseFloat("+0") );
119
120 new TestCase( SECTION,  "parseFloat('1')",          1,          parseFloat("1") );
121 new TestCase( SECTION,  "parseFloat('-1')",         -1,         parseFloat("-1") );
122 new TestCase( SECTION,  "parseFloat('+1')",          1,         parseFloat("+1") );
123
124 new TestCase( SECTION,  "parseFloat('2')",          2,          parseFloat("2") );
125 new TestCase( SECTION,  "parseFloat('-2')",         -2,         parseFloat("-2") );
126 new TestCase( SECTION,  "parseFloat('+2')",          2,         parseFloat("+2") );
127
128 new TestCase( SECTION,  "parseFloat('3')",          3,          parseFloat("3") );
129 new TestCase( SECTION,  "parseFloat('-3')",         -3,         parseFloat("-3") );
130 new TestCase( SECTION,  "parseFloat('+3')",          3,         parseFloat("+3") );
131
132 new TestCase( SECTION,  "parseFloat('4')",          4,          parseFloat("4") );
133 new TestCase( SECTION,  "parseFloat('-4')",         -4,         parseFloat("-4") );
134 new TestCase( SECTION,  "parseFloat('+4')",          4,         parseFloat("+4") );
135
136 new TestCase( SECTION,  "parseFloat('5')",          5,          parseFloat("5") );
137 new TestCase( SECTION,  "parseFloat('-5')",         -5,         parseFloat("-5") );
138 new TestCase( SECTION,  "parseFloat('+5')",          5,         parseFloat("+5") );
139
140 new TestCase( SECTION,  "parseFloat('6')",          6,          parseFloat("6") );
141 new TestCase( SECTION,  "parseFloat('-6')",         -6,         parseFloat("-6") );
142 new TestCase( SECTION,  "parseFloat('+6')",          6,         parseFloat("+6") );
143
144 new TestCase( SECTION,  "parseFloat('7')",          7,          parseFloat("7") );
145 new TestCase( SECTION,  "parseFloat('-7')",         -7,         parseFloat("-7") );
146 new TestCase( SECTION,  "parseFloat('+7')",          7,         parseFloat("+7") );
147
148 new TestCase( SECTION,  "parseFloat('8')",          8,          parseFloat("8") );
149 new TestCase( SECTION,  "parseFloat('-8')",         -8,         parseFloat("-8") );
150 new TestCase( SECTION,  "parseFloat('+8')",          8,         parseFloat("+8") );
151
152 new TestCase( SECTION,  "parseFloat('9')",          9,          parseFloat("9") );
153 new TestCase( SECTION,  "parseFloat('-9')",         -9,         parseFloat("-9") );
154 new TestCase( SECTION,  "parseFloat('+9')",          9,         parseFloat("+9") );
155
156 new TestCase( SECTION,  "parseFloat('3.14159')",    3.14159,    parseFloat("3.14159") );
157 new TestCase( SECTION,  "parseFloat('-3.14159')",   -3.14159,   parseFloat("-3.14159") );
158 new TestCase( SECTION,  "parseFloat('+3.14159')",   3.14159,    parseFloat("+3.14159") );
159
160 new TestCase( SECTION,  "parseFloat('3.')",         3,          parseFloat("3.") );
161 new TestCase( SECTION,  "parseFloat('-3.')",        -3,         parseFloat("-3.") );
162 new TestCase( SECTION,  "parseFloat('+3.')",        3,          parseFloat("+3.") );
163
164 new TestCase( SECTION,  "parseFloat('3.e1')",       30,         parseFloat("3.e1") );
165 new TestCase( SECTION,  "parseFloat('-3.e1')",      -30,        parseFloat("-3.e1") );
166 new TestCase( SECTION,  "parseFloat('+3.e1')",      30,         parseFloat("+3.e1") );
167
168 new TestCase( SECTION,  "parseFloat('3.e+1')",       30,         parseFloat("3.e+1") );
169 new TestCase( SECTION,  "parseFloat('-3.e+1')",      -30,        parseFloat("-3.e+1") );
170 new TestCase( SECTION,  "parseFloat('+3.e+1')",      30,         parseFloat("+3.e+1") );
171
172 new TestCase( SECTION,  "parseFloat('3.e-1')",       .30,         parseFloat("3.e-1") );
173 new TestCase( SECTION,  "parseFloat('-3.e-1')",      -.30,        parseFloat("-3.e-1") );
174 new TestCase( SECTION,  "parseFloat('+3.e-1')",      .30,         parseFloat("+3.e-1") );
175
176 // StrDecimalLiteral:::  .DecimalDigits ExponentPart opt
177
178 new TestCase( SECTION,  "parseFloat('.00001')",     0.00001,    parseFloat(".00001") );
179 new TestCase( SECTION,  "parseFloat('+.00001')",    0.00001,    parseFloat("+.00001") );
180 new TestCase( SECTION,  "parseFloat('-0.0001')",    -0.00001,   parseFloat("-.00001") );
181
182 new TestCase( SECTION,  "parseFloat('.01e2')",      1,          parseFloat(".01e2") );
183 new TestCase( SECTION,  "parseFloat('+.01e2')",     1,          parseFloat("+.01e2") );
184 new TestCase( SECTION,  "parseFloat('-.01e2')",     -1,         parseFloat("-.01e2") );
185
186 new TestCase( SECTION,  "parseFloat('.01e+2')",      1,         parseFloat(".01e+2") );
187 new TestCase( SECTION,  "parseFloat('+.01e+2')",     1,         parseFloat("+.01e+2") );
188 new TestCase( SECTION,  "parseFloat('-.01e+2')",     -1,        parseFloat("-.01e+2") );
189
190 new TestCase( SECTION,  "parseFloat('.01e-2')",      0.0001,    parseFloat(".01e-2") );
191 new TestCase( SECTION,  "parseFloat('+.01e-2')",     0.0001,    parseFloat("+.01e-2") );
192 new TestCase( SECTION,  "parseFloat('-.01e-2')",     -0.0001,   parseFloat("-.01e-2") );
193
194 //  StrDecimalLiteral:::    DecimalDigits ExponentPart opt
195
196 new TestCase( SECTION,  "parseFloat('1234e5')",     123400000,  parseFloat("1234e5") );
197 new TestCase( SECTION,  "parseFloat('+1234e5')",    123400000,  parseFloat("+1234e5") );
198 new TestCase( SECTION,  "parseFloat('-1234e5')",    -123400000, parseFloat("-1234e5") );
199
200 new TestCase( SECTION,  "parseFloat('1234e+5')",    123400000,  parseFloat("1234e+5") );
201 new TestCase( SECTION,  "parseFloat('+1234e+5')",   123400000,  parseFloat("+1234e+5") );
202 new TestCase( SECTION,  "parseFloat('-1234e+5')",   -123400000, parseFloat("-1234e+5") );
203
204 new TestCase( SECTION,  "parseFloat('1234e-5')",     0.01234,  parseFloat("1234e-5") );
205 new TestCase( SECTION,  "parseFloat('+1234e-5')",    0.01234,  parseFloat("+1234e-5") );
206 new TestCase( SECTION,  "parseFloat('-1234e-5')",    -0.01234, parseFloat("-1234e-5") );
207
208
209 new TestCase( SECTION,  "parseFloat(0)",          0,          parseFloat(0) );
210 new TestCase( SECTION,  "parseFloat(-0)",         -0,         parseFloat(-0) );
211
212 new TestCase( SECTION,  "parseFloat(1)",          1,          parseFloat(1) );
213 new TestCase( SECTION,  "parseFloat(-1)",         -1,         parseFloat(-1) );
214
215 new TestCase( SECTION,  "parseFloat(2)",          2,          parseFloat(2) );
216 new TestCase( SECTION,  "parseFloat(-2)",         -2,         parseFloat(-2) );
217
218 new TestCase( SECTION,  "parseFloat(3)",          3,          parseFloat(3) );
219 new TestCase( SECTION,  "parseFloat(-3)",         -3,         parseFloat(-3) );
220
221 new TestCase( SECTION,  "parseFloat(4)",          4,          parseFloat(4) );
222 new TestCase( SECTION,  "parseFloat(-4)",         -4,         parseFloat(-4) );
223
224 new TestCase( SECTION,  "parseFloat(5)",          5,          parseFloat(5) );
225 new TestCase( SECTION,  "parseFloat(-5)",         -5,         parseFloat(-5) );
226
227 new TestCase( SECTION,  "parseFloat(6)",          6,          parseFloat(6) );
228 new TestCase( SECTION,  "parseFloat(-6)",         -6,         parseFloat(-6) );
229
230 new TestCase( SECTION,  "parseFloat(7)",          7,          parseFloat(7) );
231 new TestCase( SECTION,  "parseFloat(-7)",         -7,         parseFloat(-7) );
232
233 new TestCase( SECTION,  "parseFloat(8)",          8,          parseFloat(8) );
234 new TestCase( SECTION,  "parseFloat(-8)",         -8,         parseFloat(-8) );
235
236 new TestCase( SECTION,  "parseFloat(9)",          9,          parseFloat(9) );
237 new TestCase( SECTION,  "parseFloat(-9)",         -9,         parseFloat(-9) );
238
239 new TestCase( SECTION,  "parseFloat(3.14159)",    3.14159,    parseFloat(3.14159) );
240 new TestCase( SECTION,  "parseFloat(-3.14159)",   -3.14159,   parseFloat(-3.14159) );
241
242 new TestCase( SECTION,  "parseFloat(3.)",         3,          parseFloat(3.) );
243 new TestCase( SECTION,  "parseFloat(-3.)",        -3,         parseFloat(-3.) );
244
245 new TestCase( SECTION,  "parseFloat(3.e1)",       30,         parseFloat(3.e1) );
246 new TestCase( SECTION,  "parseFloat(-3.e1)",      -30,        parseFloat(-3.e1) );
247
248 new TestCase( SECTION,  "parseFloat(3.e+1)",       30,         parseFloat(3.e+1) );
249 new TestCase( SECTION,  "parseFloat(-3.e+1)",      -30,        parseFloat(-3.e+1) );
250
251 new TestCase( SECTION,  "parseFloat(3.e-1)",       .30,         parseFloat(3.e-1) );
252 new TestCase( SECTION,  "parseFloat(-3.e-1)",      -.30,        parseFloat(-3.e-1) );
253
254
255 new TestCase( SECTION,  "parseFloat(3.E1)",       30,         parseFloat(3.E1) );
256 new TestCase( SECTION,  "parseFloat(-3.E1)",      -30,        parseFloat(-3.E1) );
257
258 new TestCase( SECTION,  "parseFloat(3.E+1)",       30,         parseFloat(3.E+1) );
259 new TestCase( SECTION,  "parseFloat(-3.E+1)",      -30,        parseFloat(-3.E+1) );
260
261 new TestCase( SECTION,  "parseFloat(3.E-1)",       .30,         parseFloat(3.E-1) );
262 new TestCase( SECTION,  "parseFloat(-3.E-1)",      -.30,        parseFloat(-3.E-1) );
263
264 // StrDecimalLiteral:::  .DecimalDigits ExponentPart opt
265
266 new TestCase( SECTION,  "parseFloat(.00001)",     0.00001,    parseFloat(.00001) );
267 new TestCase( SECTION,  "parseFloat(-0.0001)",    -0.00001,   parseFloat(-.00001) );
268
269 new TestCase( SECTION,  "parseFloat(.01e2)",      1,          parseFloat(.01e2) );
270 new TestCase( SECTION,  "parseFloat(-.01e2)",     -1,         parseFloat(-.01e2) );
271
272 new TestCase( SECTION,  "parseFloat(.01e+2)",      1,         parseFloat(.01e+2) );
273 new TestCase( SECTION,  "parseFloat(-.01e+2)",     -1,        parseFloat(-.01e+2) );
274
275 new TestCase( SECTION,  "parseFloat(.01e-2)",      0.0001,    parseFloat(.01e-2) );
276 new TestCase( SECTION,  "parseFloat(-.01e-2)",     -0.0001,   parseFloat(-.01e-2) );
277
278 //  StrDecimalLiteral:::    DecimalDigits ExponentPart opt
279
280 new TestCase( SECTION,  "parseFloat(1234e5)",     123400000,  parseFloat(1234e5) );
281 new TestCase( SECTION,  "parseFloat(-1234e5)",    -123400000, parseFloat(-1234e5) );
282
283 new TestCase( SECTION,  "parseFloat(1234e+5)",    123400000,  parseFloat(1234e+5) );
284 new TestCase( SECTION,  "parseFloat(-1234e+5)",   -123400000, parseFloat(-1234e+5) );
285
286 new TestCase( SECTION,  "parseFloat(1234e-5)",     0.01234,  parseFloat(1234e-5) );
287 new TestCase( SECTION,  "parseFloat(-1234e-5)",    -0.01234, parseFloat(-1234e-5) );
288
289 // hex cases should all return 0  (0 is the longest string that satisfies a StringDecimalLiteral)
290
291 new TestCase( SECTION,  "parseFloat('0x0')",        0,         parseFloat("0x0"));
292 new TestCase( SECTION,  "parseFloat('0x1')",        0,         parseFloat("0x1"));
293 new TestCase( SECTION,  "parseFloat('0x2')",        0,         parseFloat("0x2"));
294 new TestCase( SECTION,  "parseFloat('0x3')",        0,         parseFloat("0x3"));
295 new TestCase( SECTION,  "parseFloat('0x4')",        0,         parseFloat("0x4"));
296 new TestCase( SECTION,  "parseFloat('0x5')",        0,         parseFloat("0x5"));
297 new TestCase( SECTION,  "parseFloat('0x6')",        0,         parseFloat("0x6"));
298 new TestCase( SECTION,  "parseFloat('0x7')",        0,         parseFloat("0x7"));
299 new TestCase( SECTION,  "parseFloat('0x8')",        0,         parseFloat("0x8"));
300 new TestCase( SECTION,  "parseFloat('0x9')",        0,         parseFloat("0x9"));
301 new TestCase( SECTION,  "parseFloat('0xa')",        0,         parseFloat("0xa"));
302 new TestCase( SECTION,  "parseFloat('0xb')",        0,         parseFloat("0xb"));
303 new TestCase( SECTION,  "parseFloat('0xc')",        0,         parseFloat("0xc"));
304 new TestCase( SECTION,  "parseFloat('0xd')",        0,         parseFloat("0xd"));
305 new TestCase( SECTION,  "parseFloat('0xe')",        0,         parseFloat("0xe"));
306 new TestCase( SECTION,  "parseFloat('0xf')",        0,         parseFloat("0xf"));
307 new TestCase( SECTION,  "parseFloat('0xA')",        0,         parseFloat("0xA"));
308 new TestCase( SECTION,  "parseFloat('0xB')",        0,         parseFloat("0xB"));
309 new TestCase( SECTION,  "parseFloat('0xC')",        0,         parseFloat("0xC"));
310 new TestCase( SECTION,  "parseFloat('0xD')",        0,         parseFloat("0xD"));
311 new TestCase( SECTION,  "parseFloat('0xE')",        0,         parseFloat("0xE"));
312 new TestCase( SECTION,  "parseFloat('0xF')",        0,         parseFloat("0xF"));
313
314 new TestCase( SECTION,  "parseFloat('0X0')",        0,         parseFloat("0X0"));
315 new TestCase( SECTION,  "parseFloat('0X1')",        0,         parseFloat("0X1"));
316 new TestCase( SECTION,  "parseFloat('0X2')",        0,         parseFloat("0X2"));
317 new TestCase( SECTION,  "parseFloat('0X3')",        0,         parseFloat("0X3"));
318 new TestCase( SECTION,  "parseFloat('0X4')",        0,         parseFloat("0X4"));
319 new TestCase( SECTION,  "parseFloat('0X5')",        0,         parseFloat("0X5"));
320 new TestCase( SECTION,  "parseFloat('0X6')",        0,         parseFloat("0X6"));
321 new TestCase( SECTION,  "parseFloat('0X7')",        0,         parseFloat("0X7"));
322 new TestCase( SECTION,  "parseFloat('0X8')",        0,         parseFloat("0X8"));
323 new TestCase( SECTION,  "parseFloat('0X9')",        0,         parseFloat("0X9"));
324 new TestCase( SECTION,  "parseFloat('0Xa')",        0,         parseFloat("0Xa"));
325 new TestCase( SECTION,  "parseFloat('0Xb')",        0,         parseFloat("0Xb"));
326 new TestCase( SECTION,  "parseFloat('0Xc')",        0,         parseFloat("0Xc"));
327 new TestCase( SECTION,  "parseFloat('0Xd')",        0,         parseFloat("0Xd"));
328 new TestCase( SECTION,  "parseFloat('0Xe')",        0,         parseFloat("0Xe"));
329 new TestCase( SECTION,  "parseFloat('0Xf')",        0,         parseFloat("0Xf"));
330 new TestCase( SECTION,  "parseFloat('0XA')",        0,         parseFloat("0XA"));
331 new TestCase( SECTION,  "parseFloat('0XB')",        0,         parseFloat("0XB"));
332 new TestCase( SECTION,  "parseFloat('0XC')",        0,         parseFloat("0XC"));
333 new TestCase( SECTION,  "parseFloat('0XD')",        0,         parseFloat("0XD"));
334 new TestCase( SECTION,  "parseFloat('0XE')",        0,         parseFloat("0XE"));
335 new TestCase( SECTION,  "parseFloat('0XF')",        0,         parseFloat("0XF"));
336 new TestCase( SECTION,  "parseFloat('  0XF  ')",    0,         parseFloat("  0XF  "));
337
338 // hex literals should still succeed
339
340 new TestCase( SECTION,  "parseFloat(0x0)",        0,          parseFloat(0x0));
341 new TestCase( SECTION,  "parseFloat(0x1)",        1,          parseFloat(0x1));
342 new TestCase( SECTION,  "parseFloat(0x2)",        2,          parseFloat(0x2));
343 new TestCase( SECTION,  "parseFloat(0x3)",        3,          parseFloat(0x3));
344 new TestCase( SECTION,  "parseFloat(0x4)",        4,          parseFloat(0x4));
345 new TestCase( SECTION,  "parseFloat(0x5)",        5,          parseFloat(0x5));
346 new TestCase( SECTION,  "parseFloat(0x6)",        6,          parseFloat(0x6));
347 new TestCase( SECTION,  "parseFloat(0x7)",        7,          parseFloat(0x7));
348 new TestCase( SECTION,  "parseFloat(0x8)",        8,          parseFloat(0x8));
349 new TestCase( SECTION,  "parseFloat(0x9)",        9,          parseFloat(0x9));
350 new TestCase( SECTION,  "parseFloat(0xa)",        10,         parseFloat(0xa));
351 new TestCase( SECTION,  "parseFloat(0xb)",        11,         parseFloat(0xb));
352 new TestCase( SECTION,  "parseFloat(0xc)",        12,         parseFloat(0xc));
353 new TestCase( SECTION,  "parseFloat(0xd)",        13,         parseFloat(0xd));
354 new TestCase( SECTION,  "parseFloat(0xe)",        14,         parseFloat(0xe));
355 new TestCase( SECTION,  "parseFloat(0xf)",        15,         parseFloat(0xf));
356 new TestCase( SECTION,  "parseFloat(0xA)",        10,         parseFloat(0xA));
357 new TestCase( SECTION,  "parseFloat(0xB)",        11,         parseFloat(0xB));
358 new TestCase( SECTION,  "parseFloat(0xC)",        12,         parseFloat(0xC));
359 new TestCase( SECTION,  "parseFloat(0xD)",        13,         parseFloat(0xD));
360 new TestCase( SECTION,  "parseFloat(0xE)",        14,         parseFloat(0xE));
361 new TestCase( SECTION,  "parseFloat(0xF)",        15,         parseFloat(0xF));
362
363 new TestCase( SECTION,  "parseFloat(0X0)",        0,          parseFloat(0X0));
364 new TestCase( SECTION,  "parseFloat(0X1)",        1,          parseFloat(0X1));
365 new TestCase( SECTION,  "parseFloat(0X2)",        2,          parseFloat(0X2));
366 new TestCase( SECTION,  "parseFloat(0X3)",        3,          parseFloat(0X3));
367 new TestCase( SECTION,  "parseFloat(0X4)",        4,          parseFloat(0X4));
368 new TestCase( SECTION,  "parseFloat(0X5)",        5,          parseFloat(0X5));
369 new TestCase( SECTION,  "parseFloat(0X6)",        6,          parseFloat(0X6));
370 new TestCase( SECTION,  "parseFloat(0X7)",        7,          parseFloat(0X7));
371 new TestCase( SECTION,  "parseFloat(0X8)",        8,          parseFloat(0X8));
372 new TestCase( SECTION,  "parseFloat(0X9)",        9,          parseFloat(0X9));
373 new TestCase( SECTION,  "parseFloat(0Xa)",        10,         parseFloat(0Xa));
374 new TestCase( SECTION,  "parseFloat(0Xb)",        11,         parseFloat(0Xb));
375 new TestCase( SECTION,  "parseFloat(0Xc)",        12,         parseFloat(0Xc));
376 new TestCase( SECTION,  "parseFloat(0Xd)",        13,         parseFloat(0Xd));
377 new TestCase( SECTION,  "parseFloat(0Xe)",        14,         parseFloat(0Xe));
378 new TestCase( SECTION,  "parseFloat(0Xf)",        15,         parseFloat(0Xf));
379 new TestCase( SECTION,  "parseFloat(0XA)",        10,         parseFloat(0XA));
380 new TestCase( SECTION,  "parseFloat(0XB)",        11,         parseFloat(0XB));
381 new TestCase( SECTION,  "parseFloat(0XC)",        12,         parseFloat(0XC));
382 new TestCase( SECTION,  "parseFloat(0XD)",        13,         parseFloat(0XD));
383 new TestCase( SECTION,  "parseFloat(0XE)",        14,         parseFloat(0XE));
384 new TestCase( SECTION,  "parseFloat(0XF)",        15,         parseFloat(0XF));
385
386
387 // A StringNumericLiteral may not use octal notation
388
389 new TestCase( SECTION,  "parseFloat('00')",        0,         parseFloat("00"));
390 new TestCase( SECTION,  "parseFloat('01')",        1,         parseFloat("01"));
391 new TestCase( SECTION,  "parseFloat('02')",        2,         parseFloat("02"));
392 new TestCase( SECTION,  "parseFloat('03')",        3,         parseFloat("03"));
393 new TestCase( SECTION,  "parseFloat('04')",        4,         parseFloat("04"));
394 new TestCase( SECTION,  "parseFloat('05')",        5,         parseFloat("05"));
395 new TestCase( SECTION,  "parseFloat('06')",        6,         parseFloat("06"));
396 new TestCase( SECTION,  "parseFloat('07')",        7,         parseFloat("07"));
397 new TestCase( SECTION,  "parseFloat('010')",       10,        parseFloat("010"));
398 new TestCase( SECTION,  "parseFloat('011')",       11,        parseFloat("011"));
399
400 // A StringNumericLIteral may have any number of leading 0 digits
401
402 new TestCase( SECTION,  "parseFloat('001')",        1,         parseFloat("001"));
403 new TestCase( SECTION,  "parseFloat('0001')",       1,         parseFloat("0001"));
404 new TestCase( SECTION,  "parseFloat('  0001  ')",       1,         parseFloat("  0001  "));
405
406 // an octal numeric literal should be treated as an octal
407
408 new TestCase( SECTION,  "parseFloat(00)",        0,         parseFloat(00));
409 new TestCase( SECTION,  "parseFloat(01)",        1,         parseFloat(01));
410 new TestCase( SECTION,  "parseFloat(02)",        2,         parseFloat(02));
411 new TestCase( SECTION,  "parseFloat(03)",        3,         parseFloat(03));
412 new TestCase( SECTION,  "parseFloat(04)",        4,         parseFloat(04));
413 new TestCase( SECTION,  "parseFloat(05)",        5,         parseFloat(05));
414 new TestCase( SECTION,  "parseFloat(06)",        6,         parseFloat(06));
415 new TestCase( SECTION,  "parseFloat(07)",        7,         parseFloat(07));
416 new TestCase( SECTION,  "parseFloat(010)",       8,        parseFloat(010));
417 new TestCase( SECTION,  "parseFloat(011)",       9,        parseFloat(011));
418
419 // A StringNumericLIteral may have any number of leading 0 digits
420
421 new TestCase( SECTION,  "parseFloat(001)",        1,         parseFloat(001));
422 new TestCase( SECTION,  "parseFloat(0001)",       1,         parseFloat(0001));
423
424 // make sure it's reflexive
425 new TestCase( SECTION,  "parseFloat(Math.PI)",      Math.PI,        parseFloat(Math.PI));
426 new TestCase( SECTION,  "parseFloat(Math.LN2)",     Math.LN2,       parseFloat(Math.LN2));
427 new TestCase( SECTION,  "parseFloat(Math.LN10)",    Math.LN10,      parseFloat(Math.LN10));
428 new TestCase( SECTION,  "parseFloat(Math.LOG2E)",   Math.LOG2E,     parseFloat(Math.LOG2E));
429 new TestCase( SECTION,  "parseFloat(Math.LOG10E)",  Math.LOG10E,    parseFloat(Math.LOG10E));
430 new TestCase( SECTION,  "parseFloat(Math.SQRT2)",   Math.SQRT2,     parseFloat(Math.SQRT2));
431 new TestCase( SECTION,  "parseFloat(Math.SQRT1_2)", Math.SQRT1_2,   parseFloat(Math.SQRT1_2));
432
433 new TestCase( SECTION,  "parseFloat(Math.PI+'')",      Math.PI,        parseFloat(Math.PI+''));
434 new TestCase( SECTION,  "parseFloat(Math.LN2+'')",     Math.LN2,       parseFloat(Math.LN2+''));
435 new TestCase( SECTION,  "parseFloat(Math.LN10+'')",    Math.LN10,      parseFloat(Math.LN10+''));
436 new TestCase( SECTION,  "parseFloat(Math.LOG2E+'')",   Math.LOG2E,     parseFloat(Math.LOG2E+''));
437 new TestCase( SECTION,  "parseFloat(Math.LOG10E+'')",  Math.LOG10E,    parseFloat(Math.LOG10E+''));
438 new TestCase( SECTION,  "parseFloat(Math.SQRT2+'')",   Math.SQRT2,     parseFloat(Math.SQRT2+''));
439 new TestCase( SECTION,  "parseFloat(Math.SQRT1_2+'')", Math.SQRT1_2,   parseFloat(Math.SQRT1_2+''));
440
441 test();