~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to Source/JavaScriptCore/tests/mozilla/ecma/GlobalObject/15.1.2.3-1.js

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
ImportĀ upstreamĀ versionĀ 2.3

Show diffs side-by-side

added added

removed removed

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