Bug 581067 - U+FEFF should be a WhiteSpace character (change in ES5 from ES3). r=cdleary

--HG--
extra : rebase_source : 38947caa8d4f21d0867137d0933495061a88d052
This commit is contained in:
Jeff Walden 2010-07-22 22:28:33 -05:00
parent e009ebc027
commit 496e7515a9
2 changed files with 7 additions and 2 deletions

View File

@ -752,15 +752,18 @@ extern const bool js_alnum[];
#define JS_ISDIGIT(c) (JS_CTYPE(c) == JSCT_DECIMAL_DIGIT_NUMBER)
const jschar BYTE_ORDER_MARK = 0xFEFF;
const jschar NO_BREAK_SPACE = 0x00A0;
static inline bool
JS_ISSPACE(jschar c)
{
unsigned w = c;
if (w < 256)
return (w <= ' ' && (w == ' ' || (9 <= w && w <= 0xD))) || w == 0xA0;
return (w <= ' ' && (w == ' ' || (9 <= w && w <= 0xD))) || w == NO_BREAK_SPACE;
return (JS_CCODE(w) & 0x00070000) == 0x00040000;
return w == BYTE_ORDER_MARK || (JS_CCODE(w) & 0x00070000) == 0x00040000;
}
#define JS_ISPRINT(c) ((c) < 128 && isprint(c))

View File

@ -218,6 +218,8 @@ for ( var space = " ", HEX_STRING = "0x0", HEX_VALUE = 0, POWER = 0;
HEX_VALUE += Math.pow(16,POWER)*15;
}
new TestCase(SECTION, "parseInt(BOM + '123', 10)", 123, parseInt("\uFEFF" + "123", 10));
// a few tests with negative numbers
for ( HEX_STRING = "-0x0", HEX_VALUE = 0, POWER = 0; POWER < 15; POWER++, HEX_STRING = HEX_STRING +"f" ) {
new TestCase( SECTION, "parseInt("+HEX_STRING+")", HEX_VALUE, parseInt(HEX_STRING) );