Ignore:
Timestamp:
Oct 10, 2008, 7:53:03 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2008-10-10 Sam Weinig <[email protected]>

Reviewed by Darin Adler.

  • Add a workaround for a bug in ceil in Darwin libc.
  • Remove old workarounds for JS math functions that are not needed anymore.

The math functions are heavily tested by fast/js/math.html.

  • kjs/MathObject.cpp: (JSC::mathProtoFuncAbs): Remove workaround. (JSC::mathProtoFuncCeil): Ditto. (JSC::mathProtoFuncFloor): Ditto.
  • wtf/MathExtras.h: (wtf_ceil): Add ceil workaround for darwin.

LayoutTests:

2008-10-10 Sam Weinig <[email protected]>

Reviewed by Darin Adler.

  • Update tests after fixing ceil(-0.1) behavior on darwin.
  • fast/js/math-expected.txt:
  • fast/js/resources/math.js: Remove code to detect sign of 0 now that the harness can handle it.
  • fast/xpath/4XPath/Core/test_core_functions-expected.txt:
  • fast/xpath/4XPath/Core/test_core_functions.html: Update test expect correct result of -0.
File:
1 edited

Legend:

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

    r36977 r37498  
    115115JSValue* mathProtoFuncAbs(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    116116{
    117     double arg = args.at(exec, 0)->toNumber(exec);
    118     return signbit(arg) ? jsNumber(exec, -arg) : jsNumber(exec, arg);
     117    return jsNumber(exec, fabs(args.at(exec, 0)->toNumber(exec)));
    119118}
    120119
     
    141140JSValue* mathProtoFuncCeil(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    142141{
    143     double arg = args.at(exec, 0)->toNumber(exec);
    144     if (signbit(arg) && arg > -1.0)
    145         return jsNumber(exec, -0.0);
    146     return jsNumber(exec, ceil(arg));
     142    return jsNumber(exec, ceil(args.at(exec, 0)->toNumber(exec)));
    147143}
    148144
     
    159155JSValue* mathProtoFuncFloor(ExecState* exec, JSObject*, JSValue*, const ArgList& args)
    160156{
    161     double arg = args.at(exec, 0)->toNumber(exec);
    162     if (signbit(arg) && arg == 0.0)
    163         return jsNumber(exec, -0.0);
    164     return jsNumber(exec, floor(arg));
     157    return jsNumber(exec, floor(args.at(exec, 0)->toNumber(exec)));
    165158}
    166159
Note: See TracChangeset for help on using the changeset viewer.