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();