Fix tonumber("-0").

Reported by bluecheetah001.
This commit is contained in:
Mike Pall 2019-12-08 19:51:33 +01:00
parent de48d00094
commit 45a7e5073c

View File

@ -445,12 +445,11 @@ StrScanFmt lj_strscan_scan(const uint8_t *p, TValue *o, uint32_t opt)
/* Fast path for decimal 32 bit integers. */
if (fmt == STRSCAN_INT && base == 10 &&
(dig < 10 || (dig == 10 && *sp <= '2' && x < 0x80000000u+neg))) {
int32_t y = neg ? -(int32_t)x : (int32_t)x;
if ((opt & STRSCAN_OPT_TONUM)) {
o->n = (double)y;
o->n = neg ? -(double)x : (double)x;
return STRSCAN_NUM;
} else {
o->i = y;
o->i = neg ? -(int32_t)x : (int32_t)x;
return STRSCAN_INT;
}
}