mirror of
https://github.com/bellard/quickjs.git
synced 2024-11-22 21:58:12 +08:00
avoid using INT64_MAX in double comparisons because it cannot be exactly represented as a double (bnoordhuis)
This commit is contained in:
parent
1ed38eef33
commit
6f480abbc8
@ -10771,7 +10771,7 @@ static int JS_ToInt64SatFree(JSContext *ctx, int64_t *pres, JSValue val)
|
|||||||
} else {
|
} else {
|
||||||
if (d < INT64_MIN)
|
if (d < INT64_MIN)
|
||||||
*pres = INT64_MIN;
|
*pres = INT64_MIN;
|
||||||
else if (d > INT64_MAX)
|
else if (d >= 0x1p63) /* must use INT64_MAX + 1 because INT64_MAX cannot be exactly represented as a double */
|
||||||
*pres = INT64_MAX;
|
*pres = INT64_MAX;
|
||||||
else
|
else
|
||||||
*pres = (int64_t)d;
|
*pres = (int64_t)d;
|
||||||
@ -55350,7 +55350,8 @@ static JSValue js_atomics_wait(JSContext *ctx,
|
|||||||
}
|
}
|
||||||
if (JS_ToFloat64(ctx, &d, argv[3]))
|
if (JS_ToFloat64(ctx, &d, argv[3]))
|
||||||
return JS_EXCEPTION;
|
return JS_EXCEPTION;
|
||||||
if (isnan(d) || d > INT64_MAX)
|
/* must use INT64_MAX + 1 because INT64_MAX cannot be exactly represented as a double */
|
||||||
|
if (isnan(d) || d >= 0x1p63)
|
||||||
timeout = INT64_MAX;
|
timeout = INT64_MAX;
|
||||||
else if (d < 0)
|
else if (d < 0)
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user