Reviewed by Anders.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 16 Feb 2007 21:56:43 +0000 (21:56 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 16 Feb 2007 21:56:43 +0000 (21:56 +0000)
commit9babc1f1b7c1072611ad9ddfdfe827d334d32279
tree6616e637a120220b8bd569ca6b4a3a9a2c382741
parent83b542cb2b67223b23969268f8780d2ae05faf45
    Reviewed by Anders.

        - fix <rdar://problem/5000216> JavaScriptGlue framework started turning all CFNumbers
          into signed 32bit values

        Circumstantial evidence seems to indicate that JavaScriptGlue was depending on a bug
        in CFNumber where CFNumberIsFloatType was returning true for 64-bit integer values.

        * JSUtils.cpp: (JSObjectKJSValue): Removed the call to CFNumberIsFloatType in the
        conversion of numeric values, and always use kCFNumberDoubleType, since double is
        the internal format of numbers in JavaScriptCore. There's no value to having a
        separate code path for integers. There's also no reason to check the return value
        from CFNumberGetValue -- if it returns false it still does the best it can to convert
        to a double, which is what we want.

        * UserObjectImp.cpp: (UserObjectImp::toString): Removed a similar code path that
        tried to handle integers separate from double. Instead, always use a double. For
        compatibility, use a format without a decimal point when CFNumberIsFloatType returns
        false. Also removed a bogus cast to float; the "%f" format string takes a double,
        not a float, so all the cast did was cut down on precision.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@19666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptGlue/ChangeLog
JavaScriptGlue/JSUtils.cpp
JavaScriptGlue/UserObjectImp.cpp