js/src/tests/ecma/GlobalObject/15.1.2.3-1.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/ecma/GlobalObject/15.1.2.3-1.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,407 @@
     1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +
     1.9 +
    1.10 +/**
    1.11 +   File Name:          15.1.2.3.js
    1.12 +   ECMA Section:       15.1.2.3 Function properties of the global object:
    1.13 +   parseFloat( string )
    1.14 +
    1.15 +   Description:        The parseFloat function produces a number value dictated
    1.16 +   by the interpretation of the contents of the string
    1.17 +   argument defined as a decimal literal.
    1.18 +
    1.19 +   When the parseFloat function is called, the following
    1.20 +   steps are taken:
    1.21 +
    1.22 +   1.  Call ToString( string ).
    1.23 +   2.  Remove leading whitespace Result(1).
    1.24 +   3.  If neither Result(2) nor any prefix of Result(2)
    1.25 +   satisfies the syntax of a StrDecimalLiteral,
    1.26 +   return NaN.
    1.27 +   4.  Compute the longest prefix of Result(2) which might
    1.28 +   be Resusult(2) itself, that satisfies the syntax of
    1.29 +   a StrDecimalLiteral
    1.30 +   5.  Return the number value for the MV of Result(4).
    1.31 +
    1.32 +   Note that parseFloate may interpret only a leading
    1.33 +   portion of the string as a number value; it ignores any
    1.34 +   characters that cannot be interpreted as part of the
    1.35 +   notation of a decimal literal, and no indication is given
    1.36 +   that such characters were ignored.
    1.37 +
    1.38 +   StrDecimalLiteral::
    1.39 +   Infinity
    1.40 +   DecimalDigits.DecimalDigits opt ExponentPart opt
    1.41 +   .DecimalDigits ExponentPart opt
    1.42 +   DecimalDigits ExponentPart opt
    1.43 +
    1.44 +   Author:             christine@netscape.com
    1.45 +   Date:               28 october 1997
    1.46 +
    1.47 +*/
    1.48 +
    1.49 +var SECTION = "15.1.2.3-1";
    1.50 +var VERSION = "ECMA_1";
    1.51 +var TITLE   = "parseFloat(string)";
    1.52 +var BUGNUMBER="none";
    1.53 +
    1.54 +startTest();
    1.55 +writeHeaderToLog( SECTION + " "+ TITLE);
    1.56 +
    1.57 +new TestCase( SECTION, "parseFloat.length",     1,              parseFloat.length );
    1.58 +
    1.59 +new TestCase( SECTION, "parseFloat.length = null; parseFloat.length",   1,      eval("parseFloat.length = null; parseFloat.length") );
    1.60 +new TestCase( SECTION, "delete parseFloat.length",                      false,  delete parseFloat.length );
    1.61 +new TestCase( SECTION, "delete parseFloat.length; parseFloat.length",   1,      eval("delete parseFloat.length; parseFloat.length") );
    1.62 +new TestCase( SECTION, "var MYPROPS=''; for ( var p in parseFloat ) { MYPROPS += p }; MYPROPS", "", eval("var MYPROPS=''; for ( var p in parseFloat ) { MYPROPS += p }; MYPROPS") );
    1.63 +
    1.64 +new TestCase( SECTION, "parseFloat()",          Number.NaN,     parseFloat() );
    1.65 +new TestCase( SECTION, "parseFloat('')",        Number.NaN,     parseFloat('') );
    1.66 +
    1.67 +new TestCase( SECTION, "parseFloat(' ')",       Number.NaN,     parseFloat(' ') );
    1.68 +new TestCase( SECTION, "parseFloat(true)",      Number.NaN,     parseFloat(true) );
    1.69 +new TestCase( SECTION, "parseFloat(false)",     Number.NaN,     parseFloat(false) );
    1.70 +new TestCase( SECTION, "parseFloat('string')",  Number.NaN,     parseFloat("string") );
    1.71 +
    1.72 +new TestCase( SECTION, "parseFloat('  Infinity')",    Infinity,    parseFloat("Infinity") );
    1.73 +new TestCase( SECTION, "parseFloat('  Infinity  ')",      Infinity,    parseFloat('  Infinity  ') );
    1.74 +
    1.75 +new TestCase( SECTION, "parseFloat('Infinity')",    Infinity,    parseFloat("Infinity") );
    1.76 +new TestCase( SECTION, "parseFloat(Infinity)",      Infinity,    parseFloat(Infinity) );
    1.77 +
    1.78 +
    1.79 +new TestCase( SECTION, "parseFloat('  +Infinity')",         +Infinity,    parseFloat("+Infinity") );
    1.80 +new TestCase( SECTION, "parseFloat('  -Infinity  ')",      -Infinity,    parseFloat('  -Infinity  ') );
    1.81 +
    1.82 +new TestCase( SECTION, "parseFloat('+Infinity')",    +Infinity,    parseFloat("+Infinity") );
    1.83 +new TestCase( SECTION, "parseFloat(-Infinity)",      -Infinity,    parseFloat(-Infinity) );
    1.84 +
    1.85 +new TestCase( SECTION,  "parseFloat('0')",          0,          parseFloat("0") );
    1.86 +new TestCase( SECTION,  "parseFloat('-0')",         -0,         parseFloat("-0") );
    1.87 +new TestCase( SECTION,  "parseFloat('+0')",          0,         parseFloat("+0") );
    1.88 +
    1.89 +new TestCase( SECTION,  "parseFloat('1')",          1,          parseFloat("1") );
    1.90 +new TestCase( SECTION,  "parseFloat('-1')",         -1,         parseFloat("-1") );
    1.91 +new TestCase( SECTION,  "parseFloat('+1')",          1,         parseFloat("+1") );
    1.92 +
    1.93 +new TestCase( SECTION,  "parseFloat('2')",          2,          parseFloat("2") );
    1.94 +new TestCase( SECTION,  "parseFloat('-2')",         -2,         parseFloat("-2") );
    1.95 +new TestCase( SECTION,  "parseFloat('+2')",          2,         parseFloat("+2") );
    1.96 +
    1.97 +new TestCase( SECTION,  "parseFloat('3')",          3,          parseFloat("3") );
    1.98 +new TestCase( SECTION,  "parseFloat('-3')",         -3,         parseFloat("-3") );
    1.99 +new TestCase( SECTION,  "parseFloat('+3')",          3,         parseFloat("+3") );
   1.100 +
   1.101 +new TestCase( SECTION,  "parseFloat('4')",          4,          parseFloat("4") );
   1.102 +new TestCase( SECTION,  "parseFloat('-4')",         -4,         parseFloat("-4") );
   1.103 +new TestCase( SECTION,  "parseFloat('+4')",          4,         parseFloat("+4") );
   1.104 +
   1.105 +new TestCase( SECTION,  "parseFloat('5')",          5,          parseFloat("5") );
   1.106 +new TestCase( SECTION,  "parseFloat('-5')",         -5,         parseFloat("-5") );
   1.107 +new TestCase( SECTION,  "parseFloat('+5')",          5,         parseFloat("+5") );
   1.108 +
   1.109 +new TestCase( SECTION,  "parseFloat('6')",          6,          parseFloat("6") );
   1.110 +new TestCase( SECTION,  "parseFloat('-6')",         -6,         parseFloat("-6") );
   1.111 +new TestCase( SECTION,  "parseFloat('+6')",          6,         parseFloat("+6") );
   1.112 +
   1.113 +new TestCase( SECTION,  "parseFloat('7')",          7,          parseFloat("7") );
   1.114 +new TestCase( SECTION,  "parseFloat('-7')",         -7,         parseFloat("-7") );
   1.115 +new TestCase( SECTION,  "parseFloat('+7')",          7,         parseFloat("+7") );
   1.116 +
   1.117 +new TestCase( SECTION,  "parseFloat('8')",          8,          parseFloat("8") );
   1.118 +new TestCase( SECTION,  "parseFloat('-8')",         -8,         parseFloat("-8") );
   1.119 +new TestCase( SECTION,  "parseFloat('+8')",          8,         parseFloat("+8") );
   1.120 +
   1.121 +new TestCase( SECTION,  "parseFloat('9')",          9,          parseFloat("9") );
   1.122 +new TestCase( SECTION,  "parseFloat('-9')",         -9,         parseFloat("-9") );
   1.123 +new TestCase( SECTION,  "parseFloat('+9')",          9,         parseFloat("+9") );
   1.124 +
   1.125 +new TestCase( SECTION,  "parseFloat('3.14159')",    3.14159,    parseFloat("3.14159") );
   1.126 +new TestCase( SECTION,  "parseFloat('-3.14159')",   -3.14159,   parseFloat("-3.14159") );
   1.127 +new TestCase( SECTION,  "parseFloat('+3.14159')",   3.14159,    parseFloat("+3.14159") );
   1.128 +
   1.129 +new TestCase( SECTION,  "parseFloat('3.')",         3,          parseFloat("3.") );
   1.130 +new TestCase( SECTION,  "parseFloat('-3.')",        -3,         parseFloat("-3.") );
   1.131 +new TestCase( SECTION,  "parseFloat('+3.')",        3,          parseFloat("+3.") );
   1.132 +
   1.133 +new TestCase( SECTION,  "parseFloat('3.e1')",       30,         parseFloat("3.e1") );
   1.134 +new TestCase( SECTION,  "parseFloat('-3.e1')",      -30,        parseFloat("-3.e1") );
   1.135 +new TestCase( SECTION,  "parseFloat('+3.e1')",      30,         parseFloat("+3.e1") );
   1.136 +
   1.137 +new TestCase( SECTION,  "parseFloat('3.e+1')",       30,         parseFloat("3.e+1") );
   1.138 +new TestCase( SECTION,  "parseFloat('-3.e+1')",      -30,        parseFloat("-3.e+1") );
   1.139 +new TestCase( SECTION,  "parseFloat('+3.e+1')",      30,         parseFloat("+3.e+1") );
   1.140 +
   1.141 +new TestCase( SECTION,  "parseFloat('3.e-1')",       .30,         parseFloat("3.e-1") );
   1.142 +new TestCase( SECTION,  "parseFloat('-3.e-1')",      -.30,        parseFloat("-3.e-1") );
   1.143 +new TestCase( SECTION,  "parseFloat('+3.e-1')",      .30,         parseFloat("+3.e-1") );
   1.144 +
   1.145 +// StrDecimalLiteral:::  .DecimalDigits ExponentPart opt
   1.146 +
   1.147 +new TestCase( SECTION,  "parseFloat('.00001')",     0.00001,    parseFloat(".00001") );
   1.148 +new TestCase( SECTION,  "parseFloat('+.00001')",    0.00001,    parseFloat("+.00001") );
   1.149 +new TestCase( SECTION,  "parseFloat('-0.0001')",    -0.00001,   parseFloat("-.00001") );
   1.150 +
   1.151 +new TestCase( SECTION,  "parseFloat('.01e2')",      1,          parseFloat(".01e2") );
   1.152 +new TestCase( SECTION,  "parseFloat('+.01e2')",     1,          parseFloat("+.01e2") );
   1.153 +new TestCase( SECTION,  "parseFloat('-.01e2')",     -1,         parseFloat("-.01e2") );
   1.154 +
   1.155 +new TestCase( SECTION,  "parseFloat('.01e+2')",      1,         parseFloat(".01e+2") );
   1.156 +new TestCase( SECTION,  "parseFloat('+.01e+2')",     1,         parseFloat("+.01e+2") );
   1.157 +new TestCase( SECTION,  "parseFloat('-.01e+2')",     -1,        parseFloat("-.01e+2") );
   1.158 +
   1.159 +new TestCase( SECTION,  "parseFloat('.01e-2')",      0.0001,    parseFloat(".01e-2") );
   1.160 +new TestCase( SECTION,  "parseFloat('+.01e-2')",     0.0001,    parseFloat("+.01e-2") );
   1.161 +new TestCase( SECTION,  "parseFloat('-.01e-2')",     -0.0001,   parseFloat("-.01e-2") );
   1.162 +
   1.163 +//  StrDecimalLiteral:::    DecimalDigits ExponentPart opt
   1.164 +
   1.165 +new TestCase( SECTION,  "parseFloat('1234e5')",     123400000,  parseFloat("1234e5") );
   1.166 +new TestCase( SECTION,  "parseFloat('+1234e5')",    123400000,  parseFloat("+1234e5") );
   1.167 +new TestCase( SECTION,  "parseFloat('-1234e5')",    -123400000, parseFloat("-1234e5") );
   1.168 +
   1.169 +new TestCase( SECTION,  "parseFloat('1234e+5')",    123400000,  parseFloat("1234e+5") );
   1.170 +new TestCase( SECTION,  "parseFloat('+1234e+5')",   123400000,  parseFloat("+1234e+5") );
   1.171 +new TestCase( SECTION,  "parseFloat('-1234e+5')",   -123400000, parseFloat("-1234e+5") );
   1.172 +
   1.173 +new TestCase( SECTION,  "parseFloat('1234e-5')",     0.01234,  parseFloat("1234e-5") );
   1.174 +new TestCase( SECTION,  "parseFloat('+1234e-5')",    0.01234,  parseFloat("+1234e-5") );
   1.175 +new TestCase( SECTION,  "parseFloat('-1234e-5')",    -0.01234, parseFloat("-1234e-5") );
   1.176 +
   1.177 +
   1.178 +new TestCase( SECTION,  "parseFloat(0)",          0,          parseFloat(0) );
   1.179 +new TestCase( SECTION,  "parseFloat(-0)",         -0,         parseFloat(-0) );
   1.180 +
   1.181 +new TestCase( SECTION,  "parseFloat(1)",          1,          parseFloat(1) );
   1.182 +new TestCase( SECTION,  "parseFloat(-1)",         -1,         parseFloat(-1) );
   1.183 +
   1.184 +new TestCase( SECTION,  "parseFloat(2)",          2,          parseFloat(2) );
   1.185 +new TestCase( SECTION,  "parseFloat(-2)",         -2,         parseFloat(-2) );
   1.186 +
   1.187 +new TestCase( SECTION,  "parseFloat(3)",          3,          parseFloat(3) );
   1.188 +new TestCase( SECTION,  "parseFloat(-3)",         -3,         parseFloat(-3) );
   1.189 +
   1.190 +new TestCase( SECTION,  "parseFloat(4)",          4,          parseFloat(4) );
   1.191 +new TestCase( SECTION,  "parseFloat(-4)",         -4,         parseFloat(-4) );
   1.192 +
   1.193 +new TestCase( SECTION,  "parseFloat(5)",          5,          parseFloat(5) );
   1.194 +new TestCase( SECTION,  "parseFloat(-5)",         -5,         parseFloat(-5) );
   1.195 +
   1.196 +new TestCase( SECTION,  "parseFloat(6)",          6,          parseFloat(6) );
   1.197 +new TestCase( SECTION,  "parseFloat(-6)",         -6,         parseFloat(-6) );
   1.198 +
   1.199 +new TestCase( SECTION,  "parseFloat(7)",          7,          parseFloat(7) );
   1.200 +new TestCase( SECTION,  "parseFloat(-7)",         -7,         parseFloat(-7) );
   1.201 +
   1.202 +new TestCase( SECTION,  "parseFloat(8)",          8,          parseFloat(8) );
   1.203 +new TestCase( SECTION,  "parseFloat(-8)",         -8,         parseFloat(-8) );
   1.204 +
   1.205 +new TestCase( SECTION,  "parseFloat(9)",          9,          parseFloat(9) );
   1.206 +new TestCase( SECTION,  "parseFloat(-9)",         -9,         parseFloat(-9) );
   1.207 +
   1.208 +new TestCase( SECTION,  "parseFloat(3.14159)",    3.14159,    parseFloat(3.14159) );
   1.209 +new TestCase( SECTION,  "parseFloat(-3.14159)",   -3.14159,   parseFloat(-3.14159) );
   1.210 +
   1.211 +new TestCase( SECTION,  "parseFloat(3.)",         3,          parseFloat(3.) );
   1.212 +new TestCase( SECTION,  "parseFloat(-3.)",        -3,         parseFloat(-3.) );
   1.213 +
   1.214 +new TestCase( SECTION,  "parseFloat(3.e1)",       30,         parseFloat(3.e1) );
   1.215 +new TestCase( SECTION,  "parseFloat(-3.e1)",      -30,        parseFloat(-3.e1) );
   1.216 +
   1.217 +new TestCase( SECTION,  "parseFloat(3.e+1)",       30,         parseFloat(3.e+1) );
   1.218 +new TestCase( SECTION,  "parseFloat(-3.e+1)",      -30,        parseFloat(-3.e+1) );
   1.219 +
   1.220 +new TestCase( SECTION,  "parseFloat(3.e-1)",       .30,         parseFloat(3.e-1) );
   1.221 +new TestCase( SECTION,  "parseFloat(-3.e-1)",      -.30,        parseFloat(-3.e-1) );
   1.222 +
   1.223 +
   1.224 +new TestCase( SECTION,  "parseFloat(3.E1)",       30,         parseFloat(3.E1) );
   1.225 +new TestCase( SECTION,  "parseFloat(-3.E1)",      -30,        parseFloat(-3.E1) );
   1.226 +
   1.227 +new TestCase( SECTION,  "parseFloat(3.E+1)",       30,         parseFloat(3.E+1) );
   1.228 +new TestCase( SECTION,  "parseFloat(-3.E+1)",      -30,        parseFloat(-3.E+1) );
   1.229 +
   1.230 +new TestCase( SECTION,  "parseFloat(3.E-1)",       .30,         parseFloat(3.E-1) );
   1.231 +new TestCase( SECTION,  "parseFloat(-3.E-1)",      -.30,        parseFloat(-3.E-1) );
   1.232 +
   1.233 +// StrDecimalLiteral:::  .DecimalDigits ExponentPart opt
   1.234 +
   1.235 +new TestCase( SECTION,  "parseFloat(.00001)",     0.00001,    parseFloat(.00001) );
   1.236 +new TestCase( SECTION,  "parseFloat(-0.0001)",    -0.00001,   parseFloat(-.00001) );
   1.237 +
   1.238 +new TestCase( SECTION,  "parseFloat(.01e2)",      1,          parseFloat(.01e2) );
   1.239 +new TestCase( SECTION,  "parseFloat(-.01e2)",     -1,         parseFloat(-.01e2) );
   1.240 +
   1.241 +new TestCase( SECTION,  "parseFloat(.01e+2)",      1,         parseFloat(.01e+2) );
   1.242 +new TestCase( SECTION,  "parseFloat(-.01e+2)",     -1,        parseFloat(-.01e+2) );
   1.243 +
   1.244 +new TestCase( SECTION,  "parseFloat(.01e-2)",      0.0001,    parseFloat(.01e-2) );
   1.245 +new TestCase( SECTION,  "parseFloat(-.01e-2)",     -0.0001,   parseFloat(-.01e-2) );
   1.246 +
   1.247 +//  StrDecimalLiteral:::    DecimalDigits ExponentPart opt
   1.248 +
   1.249 +new TestCase( SECTION,  "parseFloat(1234e5)",     123400000,  parseFloat(1234e5) );
   1.250 +new TestCase( SECTION,  "parseFloat(-1234e5)",    -123400000, parseFloat(-1234e5) );
   1.251 +
   1.252 +new TestCase( SECTION,  "parseFloat(1234e+5)",    123400000,  parseFloat(1234e+5) );
   1.253 +new TestCase( SECTION,  "parseFloat(-1234e+5)",   -123400000, parseFloat(-1234e+5) );
   1.254 +
   1.255 +new TestCase( SECTION,  "parseFloat(1234e-5)",     0.01234,  parseFloat(1234e-5) );
   1.256 +new TestCase( SECTION,  "parseFloat(-1234e-5)",    -0.01234, parseFloat(-1234e-5) );
   1.257 +
   1.258 +// hex cases should all return 0  (0 is the longest string that satisfies a StringDecimalLiteral)
   1.259 +
   1.260 +new TestCase( SECTION,  "parseFloat('0x0')",        0,         parseFloat("0x0"));
   1.261 +new TestCase( SECTION,  "parseFloat('0x1')",        0,         parseFloat("0x1"));
   1.262 +new TestCase( SECTION,  "parseFloat('0x2')",        0,         parseFloat("0x2"));
   1.263 +new TestCase( SECTION,  "parseFloat('0x3')",        0,         parseFloat("0x3"));
   1.264 +new TestCase( SECTION,  "parseFloat('0x4')",        0,         parseFloat("0x4"));
   1.265 +new TestCase( SECTION,  "parseFloat('0x5')",        0,         parseFloat("0x5"));
   1.266 +new TestCase( SECTION,  "parseFloat('0x6')",        0,         parseFloat("0x6"));
   1.267 +new TestCase( SECTION,  "parseFloat('0x7')",        0,         parseFloat("0x7"));
   1.268 +new TestCase( SECTION,  "parseFloat('0x8')",        0,         parseFloat("0x8"));
   1.269 +new TestCase( SECTION,  "parseFloat('0x9')",        0,         parseFloat("0x9"));
   1.270 +new TestCase( SECTION,  "parseFloat('0xa')",        0,         parseFloat("0xa"));
   1.271 +new TestCase( SECTION,  "parseFloat('0xb')",        0,         parseFloat("0xb"));
   1.272 +new TestCase( SECTION,  "parseFloat('0xc')",        0,         parseFloat("0xc"));
   1.273 +new TestCase( SECTION,  "parseFloat('0xd')",        0,         parseFloat("0xd"));
   1.274 +new TestCase( SECTION,  "parseFloat('0xe')",        0,         parseFloat("0xe"));
   1.275 +new TestCase( SECTION,  "parseFloat('0xf')",        0,         parseFloat("0xf"));
   1.276 +new TestCase( SECTION,  "parseFloat('0xA')",        0,         parseFloat("0xA"));
   1.277 +new TestCase( SECTION,  "parseFloat('0xB')",        0,         parseFloat("0xB"));
   1.278 +new TestCase( SECTION,  "parseFloat('0xC')",        0,         parseFloat("0xC"));
   1.279 +new TestCase( SECTION,  "parseFloat('0xD')",        0,         parseFloat("0xD"));
   1.280 +new TestCase( SECTION,  "parseFloat('0xE')",        0,         parseFloat("0xE"));
   1.281 +new TestCase( SECTION,  "parseFloat('0xF')",        0,         parseFloat("0xF"));
   1.282 +
   1.283 +new TestCase( SECTION,  "parseFloat('0X0')",        0,         parseFloat("0X0"));
   1.284 +new TestCase( SECTION,  "parseFloat('0X1')",        0,         parseFloat("0X1"));
   1.285 +new TestCase( SECTION,  "parseFloat('0X2')",        0,         parseFloat("0X2"));
   1.286 +new TestCase( SECTION,  "parseFloat('0X3')",        0,         parseFloat("0X3"));
   1.287 +new TestCase( SECTION,  "parseFloat('0X4')",        0,         parseFloat("0X4"));
   1.288 +new TestCase( SECTION,  "parseFloat('0X5')",        0,         parseFloat("0X5"));
   1.289 +new TestCase( SECTION,  "parseFloat('0X6')",        0,         parseFloat("0X6"));
   1.290 +new TestCase( SECTION,  "parseFloat('0X7')",        0,         parseFloat("0X7"));
   1.291 +new TestCase( SECTION,  "parseFloat('0X8')",        0,         parseFloat("0X8"));
   1.292 +new TestCase( SECTION,  "parseFloat('0X9')",        0,         parseFloat("0X9"));
   1.293 +new TestCase( SECTION,  "parseFloat('0Xa')",        0,         parseFloat("0Xa"));
   1.294 +new TestCase( SECTION,  "parseFloat('0Xb')",        0,         parseFloat("0Xb"));
   1.295 +new TestCase( SECTION,  "parseFloat('0Xc')",        0,         parseFloat("0Xc"));
   1.296 +new TestCase( SECTION,  "parseFloat('0Xd')",        0,         parseFloat("0Xd"));
   1.297 +new TestCase( SECTION,  "parseFloat('0Xe')",        0,         parseFloat("0Xe"));
   1.298 +new TestCase( SECTION,  "parseFloat('0Xf')",        0,         parseFloat("0Xf"));
   1.299 +new TestCase( SECTION,  "parseFloat('0XA')",        0,         parseFloat("0XA"));
   1.300 +new TestCase( SECTION,  "parseFloat('0XB')",        0,         parseFloat("0XB"));
   1.301 +new TestCase( SECTION,  "parseFloat('0XC')",        0,         parseFloat("0XC"));
   1.302 +new TestCase( SECTION,  "parseFloat('0XD')",        0,         parseFloat("0XD"));
   1.303 +new TestCase( SECTION,  "parseFloat('0XE')",        0,         parseFloat("0XE"));
   1.304 +new TestCase( SECTION,  "parseFloat('0XF')",        0,         parseFloat("0XF"));
   1.305 +new TestCase( SECTION,  "parseFloat('  0XF  ')",    0,         parseFloat("  0XF  "));
   1.306 +
   1.307 +// hex literals should still succeed
   1.308 +
   1.309 +new TestCase( SECTION,  "parseFloat(0x0)",        0,          parseFloat(0x0));
   1.310 +new TestCase( SECTION,  "parseFloat(0x1)",        1,          parseFloat(0x1));
   1.311 +new TestCase( SECTION,  "parseFloat(0x2)",        2,          parseFloat(0x2));
   1.312 +new TestCase( SECTION,  "parseFloat(0x3)",        3,          parseFloat(0x3));
   1.313 +new TestCase( SECTION,  "parseFloat(0x4)",        4,          parseFloat(0x4));
   1.314 +new TestCase( SECTION,  "parseFloat(0x5)",        5,          parseFloat(0x5));
   1.315 +new TestCase( SECTION,  "parseFloat(0x6)",        6,          parseFloat(0x6));
   1.316 +new TestCase( SECTION,  "parseFloat(0x7)",        7,          parseFloat(0x7));
   1.317 +new TestCase( SECTION,  "parseFloat(0x8)",        8,          parseFloat(0x8));
   1.318 +new TestCase( SECTION,  "parseFloat(0x9)",        9,          parseFloat(0x9));
   1.319 +new TestCase( SECTION,  "parseFloat(0xa)",        10,         parseFloat(0xa));
   1.320 +new TestCase( SECTION,  "parseFloat(0xb)",        11,         parseFloat(0xb));
   1.321 +new TestCase( SECTION,  "parseFloat(0xc)",        12,         parseFloat(0xc));
   1.322 +new TestCase( SECTION,  "parseFloat(0xd)",        13,         parseFloat(0xd));
   1.323 +new TestCase( SECTION,  "parseFloat(0xe)",        14,         parseFloat(0xe));
   1.324 +new TestCase( SECTION,  "parseFloat(0xf)",        15,         parseFloat(0xf));
   1.325 +new TestCase( SECTION,  "parseFloat(0xA)",        10,         parseFloat(0xA));
   1.326 +new TestCase( SECTION,  "parseFloat(0xB)",        11,         parseFloat(0xB));
   1.327 +new TestCase( SECTION,  "parseFloat(0xC)",        12,         parseFloat(0xC));
   1.328 +new TestCase( SECTION,  "parseFloat(0xD)",        13,         parseFloat(0xD));
   1.329 +new TestCase( SECTION,  "parseFloat(0xE)",        14,         parseFloat(0xE));
   1.330 +new TestCase( SECTION,  "parseFloat(0xF)",        15,         parseFloat(0xF));
   1.331 +
   1.332 +new TestCase( SECTION,  "parseFloat(0X0)",        0,          parseFloat(0X0));
   1.333 +new TestCase( SECTION,  "parseFloat(0X1)",        1,          parseFloat(0X1));
   1.334 +new TestCase( SECTION,  "parseFloat(0X2)",        2,          parseFloat(0X2));
   1.335 +new TestCase( SECTION,  "parseFloat(0X3)",        3,          parseFloat(0X3));
   1.336 +new TestCase( SECTION,  "parseFloat(0X4)",        4,          parseFloat(0X4));
   1.337 +new TestCase( SECTION,  "parseFloat(0X5)",        5,          parseFloat(0X5));
   1.338 +new TestCase( SECTION,  "parseFloat(0X6)",        6,          parseFloat(0X6));
   1.339 +new TestCase( SECTION,  "parseFloat(0X7)",        7,          parseFloat(0X7));
   1.340 +new TestCase( SECTION,  "parseFloat(0X8)",        8,          parseFloat(0X8));
   1.341 +new TestCase( SECTION,  "parseFloat(0X9)",        9,          parseFloat(0X9));
   1.342 +new TestCase( SECTION,  "parseFloat(0Xa)",        10,         parseFloat(0Xa));
   1.343 +new TestCase( SECTION,  "parseFloat(0Xb)",        11,         parseFloat(0Xb));
   1.344 +new TestCase( SECTION,  "parseFloat(0Xc)",        12,         parseFloat(0Xc));
   1.345 +new TestCase( SECTION,  "parseFloat(0Xd)",        13,         parseFloat(0Xd));
   1.346 +new TestCase( SECTION,  "parseFloat(0Xe)",        14,         parseFloat(0Xe));
   1.347 +new TestCase( SECTION,  "parseFloat(0Xf)",        15,         parseFloat(0Xf));
   1.348 +new TestCase( SECTION,  "parseFloat(0XA)",        10,         parseFloat(0XA));
   1.349 +new TestCase( SECTION,  "parseFloat(0XB)",        11,         parseFloat(0XB));
   1.350 +new TestCase( SECTION,  "parseFloat(0XC)",        12,         parseFloat(0XC));
   1.351 +new TestCase( SECTION,  "parseFloat(0XD)",        13,         parseFloat(0XD));
   1.352 +new TestCase( SECTION,  "parseFloat(0XE)",        14,         parseFloat(0XE));
   1.353 +new TestCase( SECTION,  "parseFloat(0XF)",        15,         parseFloat(0XF));
   1.354 +
   1.355 +
   1.356 +// A StringNumericLiteral may not use octal notation
   1.357 +
   1.358 +new TestCase( SECTION,  "parseFloat('00')",        0,         parseFloat("00"));
   1.359 +new TestCase( SECTION,  "parseFloat('01')",        1,         parseFloat("01"));
   1.360 +new TestCase( SECTION,  "parseFloat('02')",        2,         parseFloat("02"));
   1.361 +new TestCase( SECTION,  "parseFloat('03')",        3,         parseFloat("03"));
   1.362 +new TestCase( SECTION,  "parseFloat('04')",        4,         parseFloat("04"));
   1.363 +new TestCase( SECTION,  "parseFloat('05')",        5,         parseFloat("05"));
   1.364 +new TestCase( SECTION,  "parseFloat('06')",        6,         parseFloat("06"));
   1.365 +new TestCase( SECTION,  "parseFloat('07')",        7,         parseFloat("07"));
   1.366 +new TestCase( SECTION,  "parseFloat('010')",       10,        parseFloat("010"));
   1.367 +new TestCase( SECTION,  "parseFloat('011')",       11,        parseFloat("011"));
   1.368 +
   1.369 +// A StringNumericLIteral may have any number of leading 0 digits
   1.370 +
   1.371 +new TestCase( SECTION,  "parseFloat('001')",        1,         parseFloat("001"));
   1.372 +new TestCase( SECTION,  "parseFloat('0001')",       1,         parseFloat("0001"));
   1.373 +new TestCase( SECTION,  "parseFloat('  0001  ')",       1,         parseFloat("  0001  "));
   1.374 +
   1.375 +// an octal numeric literal should be treated as an octal
   1.376 +
   1.377 +new TestCase( SECTION,  "parseFloat(00)",        0,         parseFloat(00));
   1.378 +new TestCase( SECTION,  "parseFloat(01)",        1,         parseFloat(01));
   1.379 +new TestCase( SECTION,  "parseFloat(02)",        2,         parseFloat(02));
   1.380 +new TestCase( SECTION,  "parseFloat(03)",        3,         parseFloat(03));
   1.381 +new TestCase( SECTION,  "parseFloat(04)",        4,         parseFloat(04));
   1.382 +new TestCase( SECTION,  "parseFloat(05)",        5,         parseFloat(05));
   1.383 +new TestCase( SECTION,  "parseFloat(06)",        6,         parseFloat(06));
   1.384 +new TestCase( SECTION,  "parseFloat(07)",        7,         parseFloat(07));
   1.385 +new TestCase( SECTION,  "parseFloat(010)",       8,        parseFloat(010));
   1.386 +new TestCase( SECTION,  "parseFloat(011)",       9,        parseFloat(011));
   1.387 +
   1.388 +// A StringNumericLIteral may have any number of leading 0 digits
   1.389 +
   1.390 +new TestCase( SECTION,  "parseFloat(001)",        1,         parseFloat(001));
   1.391 +new TestCase( SECTION,  "parseFloat(0001)",       1,         parseFloat(0001));
   1.392 +
   1.393 +// make sure it's reflexive
   1.394 +new TestCase( SECTION,  "parseFloat(Math.PI)",      Math.PI,        parseFloat(Math.PI));
   1.395 +new TestCase( SECTION,  "parseFloat(Math.LN2)",     Math.LN2,       parseFloat(Math.LN2));
   1.396 +new TestCase( SECTION,  "parseFloat(Math.LN10)",    Math.LN10,      parseFloat(Math.LN10));
   1.397 +new TestCase( SECTION,  "parseFloat(Math.LOG2E)",   Math.LOG2E,     parseFloat(Math.LOG2E));
   1.398 +new TestCase( SECTION,  "parseFloat(Math.LOG10E)",  Math.LOG10E,    parseFloat(Math.LOG10E));
   1.399 +new TestCase( SECTION,  "parseFloat(Math.SQRT2)",   Math.SQRT2,     parseFloat(Math.SQRT2));
   1.400 +new TestCase( SECTION,  "parseFloat(Math.SQRT1_2)", Math.SQRT1_2,   parseFloat(Math.SQRT1_2));
   1.401 +
   1.402 +new TestCase( SECTION,  "parseFloat(Math.PI+'')",      Math.PI,        parseFloat(Math.PI+''));
   1.403 +new TestCase( SECTION,  "parseFloat(Math.LN2+'')",     Math.LN2,       parseFloat(Math.LN2+''));
   1.404 +new TestCase( SECTION,  "parseFloat(Math.LN10+'')",    Math.LN10,      parseFloat(Math.LN10+''));
   1.405 +new TestCase( SECTION,  "parseFloat(Math.LOG2E+'')",   Math.LOG2E,     parseFloat(Math.LOG2E+''));
   1.406 +new TestCase( SECTION,  "parseFloat(Math.LOG10E+'')",  Math.LOG10E,    parseFloat(Math.LOG10E+''));
   1.407 +new TestCase( SECTION,  "parseFloat(Math.SQRT2+'')",   Math.SQRT2,     parseFloat(Math.SQRT2+''));
   1.408 +new TestCase( SECTION,  "parseFloat(Math.SQRT1_2+'')", Math.SQRT1_2,   parseFloat(Math.SQRT1_2+''));
   1.409 +
   1.410 +test();

mercurial