mirror of
https://github.com/bellard/quickjs.git
synced 2024-11-22 05:38:11 +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 {
|
||||
if (d < 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;
|
||||
else
|
||||
*pres = (int64_t)d;
|
||||
@ -55350,7 +55350,8 @@ static JSValue js_atomics_wait(JSContext *ctx,
|
||||
}
|
||||
if (JS_ToFloat64(ctx, &d, argv[3]))
|
||||
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;
|
||||
else if (d < 0)
|
||||
timeout = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user