string-hex-literal-invalid.js (941B)
1 // Copyright (C) 2017 Ivan Vyshnevskyi. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 esid: sec-number-constructor-number-value 6 description: Invalid hex literals yield NaN 7 info: | 8 HexIntegerLiteral :: 9 0x HexDigits 10 0X HexDigits 11 HexDigits :: 12 HexDigit 13 HexDigits HexDigit 14 HexDigit :: one of 15 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F 16 ---*/ 17 18 assert.sameValue(Number('0xG'), NaN, 'invalid digit'); 19 assert.sameValue(Number('00x0'), NaN, 'leading zero'); 20 assert.sameValue(Number('0x'), NaN, 'omitted digits'); 21 assert.sameValue(Number('+0x10'), NaN, 'plus sign'); 22 assert.sameValue(Number('-0x10'), NaN, 'minus sign'); 23 assert.sameValue(Number('0x10.01'), NaN, 'fractional part'); 24 assert.sameValue(Number('0x1e-10'), NaN, 'exponent part with a minus sign'); 25 assert.sameValue(Number('0x1e+10'), NaN, 'exponent part with a plus sign'); 26 27 reportCompare(0, 0);