<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>7748</bug_id>
          
          <creation_ts>2006-03-12 19:21:01 -0800</creation_ts>
          <short_desc>toPrecision sometimes messes up the last digit on intel Macs</short_desc>
          <delta_ts>2006-04-04 02:00:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>36060</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-03-12 19:21:01 -0800</bug_when>
    <thetext>The JSC implementation of Number.toPrecision sometimes gets a different last digit on intel Macs than on PowerPC Macs or non-Mac intel systems. This is most likely due to a bug in the system pow() function. Nevertheless, I have a patch that works around it by directly coding computation of integer powers of 10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36061</commentid>
    <comment_count>1</comment_count>
      <attachid>7040</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-03-12 19:24:49 -0800</bug_when>
    <thetext>Created attachment 7040
fix by adding intPow10 function

I only replaced toPrecision&apos;s use of pow(10.0, n) with intPow10(n). Should I do the same for toExponential and toFixed (even though we have not yet spotted a specific bug with those)? I am guessing they will face the same problem with pow()&apos;s bad rounding of powers of 10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36068</commentid>
    <comment_count>2</comment_count>
      <attachid>7040</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-12 20:44:17 -0800</bug_when>
    <thetext>Comment on attachment 7040
fix by adding intPow10 function

-          e = static_cast&lt;int&gt;(log10(x));
+          e = static_cast&lt;int&gt;(trunc(log10(x)));

Why that change? Does trunc add value? Why trunc and not floor?

+	      n = floor(x / tens);

Looks like there&apos;s a tab in the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38488</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-04 02:00:52 -0700</bug_when>
    <thetext>Finally landed this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7040</attachid>
            <date>2006-03-12 19:24:49 -0800</date>
            <delta_ts>2006-03-12 20:44:17 -0800</delta_ts>
            <desc>fix by adding intPow10 function</desc>
            <filename>toPrecision-intel-fix.patch.txt</filename>
            <type>text/plain</type>
            <size>3246</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9udW1iZXJfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbnVtYmVyX29i
amVjdC5jcHAJKHJldmlzaW9uIDEzMjY1KQorKysga2pzL251bWJlcl9vYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTYsNiArMTE2LDM2IEBAIHN0YXRpYyBVU3RyaW5nIGNoYXJfc2VxdWVu
Y2UoY2hhciBjLCBpbnQKICAgICByZXR1cm4gVVN0cmluZyhidWYpOwogfQogCitzdGF0aWMgZG91
YmxlIGludFBvdzEwKGludCBlKQoreworICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlICJleHBv
bmVudGlhdGlvbiBieSBzcXVhcmluZyIgYWxnb3JpdGhtIGFuZAorICAvLyBsb25nIGRvdWJsZSB0
byBxdWlja2x5IGFuZCBwcmVjaXNlbHkgY2FsY3VsYXRlIGludGVnZXIgcG93ZXJzIG9mIDEwLjAu
CisKKyAgaWYgKGUgPT0gMCkKKyAgICByZXR1cm4gMS4wOworCisgIGJvb2wgbmVnYXRpdmUgPSBl
IDwgMDsKKyAgdW5zaWduZWQgZXhwID0gbmVnYXRpdmUgPyAtZSA6IGU7CisKKyAgbG9uZyBkb3Vi
bGUgcmVzdWx0ID0gMTAuMDsKKyAgYm9vbCBmb3VuZE9uZSA9IGZhbHNlOworICBmb3IgKGludCBi
aXQgPSAzMTsgYml0ID49IDA7IGJpdC0tKSB7CisgICAgaWYgKCFmb3VuZE9uZSkgeworICAgICAg
aWYgKChleHAgPj4gYml0KSAmIDEpCisgICAgICAgIGZvdW5kT25lID0gdHJ1ZTsKKyAgICB9IGVs
c2UgeworICAgICAgcmVzdWx0ID0gcmVzdWx0ICogcmVzdWx0OworICAgICAgaWYgKChleHAgPj4g
Yml0KSAmIDEpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDEwLjA7CisgICAgfQorICB9CisK
KyAgaWYgKG5lZ2F0aXZlKQorICAgIHJldHVybiAxLjAgLyByZXN1bHQ7CisgIGVsc2UKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiAvLyBFQ01BIDE1LjcuNC4yIC0gMTUuNy40LjcKIEpTVmFsdWUg
Kk51bWJlclByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVj
dCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKIHsKQEAgLTIzOCw3ICsyNjgsNyBAQCBKU1Zh
bHVlICpOdW1iZXJQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uCiAgICAgICBpZiAoIWZyYWN0aW9u
RGlnaXRzLT5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgICAgZG91YmxlIGxvZ3ggPSBmbG9vcihs
b2cxMCh4KSk7CiAgICAgICAgICAgeCAvPSBwb3coMTAuMCwgbG9neCk7Ci0gICAgICAgICAgZG91
YmxlIGZ4ID0gZmxvb3IoeCAqIHBvdygxMC4wLCBmKSkgLyBwb3coMTAuMCxmKTsKKyAgICAgICAg
ICBkb3VibGUgZnggPSBmbG9vcih4ICogcG93KDEwLjAsIGYpKSAvIHBvdygxMC4wLCBmKTsKICAg
ICAgICAgICBkb3VibGUgY3ggPSBjZWlsKHggKiBwb3coMTAuMCwgZikpIC8gcG93KDEwLjAsIGYp
OwogICAgICAgICAgIAogICAgICAgICAgIGlmIChmYWJzKGZ4LXgpIDwgZmFicyhjeC14KSkKQEAg
LTMzMywxNyArMzYzLDE5IEBAIEpTVmFsdWUgKk51bWJlclByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rp
b24KICAgICAgIGludCBwID0gKGludClkcDsKICAgICAgIAogICAgICAgaWYgKHggIT0gMCkgewot
ICAgICAgICAgIGUgPSBzdGF0aWNfY2FzdDxpbnQ+KGxvZzEwKHgpKTsKLSAgICAgICAgICBkb3Vi
bGUgbiA9IGZsb29yKHggLyBwb3coMTAuMCwgZSAtIHAgKyAxKSk7Ci0gICAgICAgICAgaWYgKG4g
PCBwb3coMTAuMCwgcCAtIDEpKSB7CisgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PGludD4odHJ1
bmMobG9nMTAoeCkpKTsKKyAgICAgICAgICBkb3VibGUgdGVucyA9IGludFBvdzEwKGUgLSBwICsg
MSk7CisgICAgICAgICAgZG91YmxlIG4gPSBmbG9vcih4IC8gdGVucyk7CisgICAgICAgICAgaWYg
KG4gPCBpbnRQb3cxMChwIC0gMSkpIHsKICAgICAgICAgICAgICAgZSA9IGUgLSAxOwotICAgICAg
ICAgICAgICBuID0gZmxvb3IoeCAvIHBvdygxMC4wLCBlIC0gcCArIDEpKTsKKyAgICAgICAgICAg
ICAgdGVucyA9IGludFBvdzEwKGUgLSBwICsgMSk7CisJICAgICAgbiA9IGZsb29yKHggLyB0ZW5z
KTsKICAgICAgICAgICB9CiAgICAgICAgICAgCi0gICAgICAgICAgaWYgKGZhYnMoKG4gKyAxKSAq
IHBvdygxMC4wLCBlIC0gcCArIDEpIC0geCkgPCBmYWJzKG4gKiBwb3coMTAuMCwgZSAtIHAgKyAx
KSAtIHgpKQotICAgICAgICAgICAgICBuKys7Ci0gICAgICAgICAgYXNzZXJ0KHBvdygxMC4wLCBw
IC0gMSkgPD0gbik7Ci0gICAgICAgICAgYXNzZXJ0KG4gPCBwb3coMTAuMCwgcCkpOworICAgICAg
ICAgIGlmIChmYWJzKChuICsgMS4wKSAqIHRlbnMgLSB4KSA8PSBmYWJzKG4gKiB0ZW5zIC0geCkp
CisgICAgICAgICAgICArK247CisgICAgICAgICAgYXNzZXJ0KGludFBvdzEwKHAgLSAxKSA8PSBu
KTsKKyAgICAgICAgICBhc3NlcnQobiA8IGludFBvdzEwKHApKTsKICAgICAgICAgICAKICAgICAg
ICAgICBtID0gaW50ZWdlcl9wYXJ0X25vZXhwKG4pOwogICAgICAgICAgIGlmIChlIDwgLTYgfHwg
ZSA+PSBwKSB7CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzI2NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDA2LTAzLTEyICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICAtIGZpeGVk
ICJ0b1ByZWNpc2lvbiBzb21ldGltZXMgbWVzc2VzIHVwIHRoZSBsYXN0IGRpZ2l0IG9uIGludGVs
IE1hY3MiCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzc0OAorCisgICAgICAgICoga2pzL251bWJlcl9vYmplY3QuY3BwOgorICAgICAgICAo
aW50UG93MTApOiBDb21wdXRlIGludGVnZXIgcG93ZXJzIG9mIDEwIHVzaW5nIGV4cG9uZW50aWF0
aW9uIGJ5IHNxdWFyaW5nLgorICAgICAgICAoTnVtYmVyUHJvdG9GdW5jOjpjYWxsQXNGdW5jdGlv
bik6IFVzZSBpbnRQb3cxMChuKSBpbiBwbGFjZSBvZiBhbGwgcG93KDEwLjAsIG4pLAorICAgICAg
ICBwbHVzIGEgYml0IG9mIHJlZmFjdG9yaW5nLgorCiAyMDA2LTAzLTEyICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAbnlwb3AuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4K
</data>
<flag name="review"
          id="1826"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>