Ignore:
Timestamp:
Feb 1, 2010, 8:42:43 PM (15 years ago)
Author:
[email protected]
Message:

2010-02-01 Kent Tamura <[email protected]>

Reviewed by Darin Adler.

Fix a bug that Math.round() retunrs incorrect results for huge integers
https://bugs.webkit.org/show_bug.cgi?id=34462

  • runtime/MathObject.cpp: (JSC::mathProtoFuncRound): Avoid "arg + 0.5".

2010-02-01 Kent Tamura <[email protected]>

Reviewed by Darin Adler.

Fix a bug that Math.round() retunrs incorrect results for huge integers
https://bugs.webkit.org/show_bug.cgi?id=34462

  • fast/js/math-expected.txt:
  • fast/js/script-tests/math.js: Add test cases for Math.round() for huge numbers.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/MathObject.cpp

    r51334 r54197  
    219219    if (signbit(arg) && arg >= -0.5)
    220220         return jsNumber(exec, -0.0);
    221     return jsNumber(exec, floor(arg + 0.5));
     221    double integer = ceil(arg);
     222    return jsNumber(exec, integer - (integer - arg > 0.5));
    222223}
    223224
Note: See TracChangeset for help on using the changeset viewer.