diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-09-07 12:56:22 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-09-07 12:42:56 +0000 |
commit | 4b72555d0a325a94c73697e8a1a5b56472f83565 (patch) | |
tree | fff4f1a5855667fd692f65e7e97069d6e90f1790 /src/qml/jsruntime | |
parent | 1e600a94302aa1f6b5f3a639929c496f7215e386 (diff) |
Fix a corner case in Math.max()
Change-Id: I9dffaec95b01757fb21466617d055def2edeeb30
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r-- | src/qml/jsruntime/qv4mathobject.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4mathobject.cpp b/src/qml/jsruntime/qv4mathobject.cpp index e176235786..2943df2984 100644 --- a/src/qml/jsruntime/qv4mathobject.cpp +++ b/src/qml/jsruntime/qv4mathobject.cpp @@ -396,8 +396,10 @@ ReturnedValue MathObject::method_max(const FunctionObject *, const Value *, cons double mx = -qt_inf(); for (int i = 0, ei = argc; i < ei; ++i) { double x = argv[i].toNumber(); - if (x > mx || std::isnan(x)) + if ((x == 0 && mx == x && copySign(1.0, x) == 1.0) + || (x > mx) || std::isnan(x)) { mx = x; + } } RETURN_RESULT(Encode::smallestNumber(mx)); } |