Updated for changed js_strtod and js_strtointeger APIs needed to fix bugs 123565, 123874, 122877, 122882, 123560, and 77391.

This commit is contained in:
waldemar 1998-06-10 21:13:52 +00:00
Родитель aa307d7be3
Коммит 8767d33caa
1 изменённых файлов: 5 добавлений и 8 удалений

Просмотреть файл

@ -664,7 +664,7 @@ retry:
if (JS7_ISDEC(c) || (c == '.' && JS7_ISDEC(PeekChar(ts)))) {
jsint radix;
jschar *endptr;
const jschar *endptr;
jsdouble dval;
radix = 10;
@ -725,16 +725,13 @@ retry:
FINISH_TOKENBUF(&ts->tokenbuf);
if (radix == 10) {
/* Let js_strtod() do the hard work and validity checks. */
if (!js_strtod(ts->tokenbuf.base, &endptr, &dval)) {
js_ReportCompileError(cx, ts,
"floating point literal out of range");
if (!js_strtod(cx, ts->tokenbuf.base, &endptr, &dval)) {
js_ReportCompileError(cx, ts, "out of memory");
RETURN(TOK_ERROR);
}
} else {
/* Let js_strtol() do the hard work, then check for overflow */
if (!js_strtol(ts->tokenbuf.base, &endptr, radix, &dval)) {
js_ReportCompileError(cx, ts, "integer literal too large");
if (!js_strtointeger(cx, ts->tokenbuf.base, &endptr, radix, &dval)) {
js_ReportCompileError(cx, ts, "out of memory");
RETURN(TOK_ERROR);
}
}