mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-03 08:08:43 +00:00
LibWasm: Fix comparisons between 0.0 and -0.0
According to the spec, -0.0 < 0.0.
This commit is contained in:
parent
c103001f16
commit
31c7e98a4a
Notes:
sideshowbarker
2024-07-17 21:16:31 +09:00
Author: https://github.com/dzfrias
Commit: 31c7e98a4a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/459
Reviewed-by: https://github.com/alimpfard
1 changed files with 12 additions and 16 deletions
|
@ -329,14 +329,12 @@ struct Minimum {
|
|||
auto operator()(Lhs lhs, Rhs rhs) const
|
||||
{
|
||||
if constexpr (IsFloatingPoint<Lhs> || IsFloatingPoint<Rhs>) {
|
||||
if (isnan(lhs))
|
||||
return lhs;
|
||||
if (isnan(rhs))
|
||||
return rhs;
|
||||
if (isinf(lhs))
|
||||
return lhs > 0 ? rhs : lhs;
|
||||
if (isinf(rhs))
|
||||
return rhs > 0 ? lhs : rhs;
|
||||
if (isnan(lhs) || isnan(rhs)) {
|
||||
return isnan(lhs) ? lhs : rhs;
|
||||
}
|
||||
if (lhs == 0 && rhs == 0) {
|
||||
return signbit(lhs) ? lhs : rhs;
|
||||
}
|
||||
}
|
||||
return min(lhs, rhs);
|
||||
}
|
||||
|
@ -349,14 +347,12 @@ struct Maximum {
|
|||
auto operator()(Lhs lhs, Rhs rhs) const
|
||||
{
|
||||
if constexpr (IsFloatingPoint<Lhs> || IsFloatingPoint<Rhs>) {
|
||||
if (isnan(lhs))
|
||||
return lhs;
|
||||
if (isnan(rhs))
|
||||
return rhs;
|
||||
if (isinf(lhs))
|
||||
return lhs > 0 ? lhs : rhs;
|
||||
if (isinf(rhs))
|
||||
return rhs > 0 ? rhs : lhs;
|
||||
if (isnan(lhs) || isnan(rhs)) {
|
||||
return isnan(lhs) ? lhs : rhs;
|
||||
}
|
||||
if (lhs == 0 && rhs == 0) {
|
||||
return signbit(lhs) ? rhs : lhs;
|
||||
}
|
||||
}
|
||||
return max(lhs, rhs);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue