<?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>12807</bug_id>
          
          <creation_ts>2007-02-18 08:41:51 -0800</creation_ts>
          <short_desc>XPath incorrectly converts NaN to boolean</short_desc>
          <delta_ts>2007-02-20 09:22:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</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>
          
          <blocked>12584</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>22596</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-18 08:41:51 -0800</bug_when>
    <thetext>From the spec: &quot;a number is true if and only if it is neither positive or negative zero nor NaN&quot; - but XPath::Value::toBoolean() only checks for 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22597</commentid>
    <comment_count>1</comment_count>
      <attachid>13227</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-18 09:06:50 -0800</bug_when>
    <thetext>Created attachment 13227
proposed fix

Fixes that, and also the substring-after() function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22603</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-18 13:19:13 -0800</bug_when>
    <thetext>Committed revision 19697.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22674</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-19 13:01:29 -0800</bug_when>
    <thetext>The more elegant and efficient way to fix bugs like this is to take into account the fact that comparison expressions including NaN always return false.

So this change would have been my recommendation:

-            return m_number != 0;
+            return !(m_number == 0); // true for NaN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22766</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-20 00:30:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; +            return !(m_number == 0); // true for NaN

I&apos;m not sure if this idiom can be used here - we want to convert NaN to false, not to true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22767</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-20 00:32:15 -0800</bug_when>
    <thetext>Oh... So, I think there wasn&apos;t any bug here at all - it was the other change in this patch that fixed the bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22773</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-20 00:55:20 -0800</bug_when>
    <thetext>Wrong again - I actually believe the landed fix is correct :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22521</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-20 09:22:33 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Wrong again - I actually believe the landed fix is correct :-)

I believe that no matter which behavior we want for NaN, one of (m_number != 0.0) or !(m_number == 0.0) should work. I&apos;m surprised to hear that&apos;s not true.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13227</attachid>
            <date>2007-02-18 09:06:50 -0800</date>
            <delta_ts>2007-02-18 13:12:06 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>12807r1_patch.txt</filename>
            <type>text/plain</type>
            <size>3882</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5Njk2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDItMTggIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODA3
CisgICAgICAgIFhQYXRoIGluY29ycmVjdGx5IGNvbnZlcnRzIE5hTiB0byBib29sZWFuCisKKyAg
ICAgICAgKiBmYXN0L3hwYXRoL25hbi10by1ib29sZWFuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC94cGF0aC9uYW4tdG8tYm9vbGVhbi5odG1sOiBBZGRlZC4KKwogMjAwNy0w
Mi0xOCAgTWl0eiBQZXR0ZWwgIDxtaXR6QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25hbi10by1ib29sZWFuLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25hbi10by1i
b29sZWFuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveHBh
dGgvbmFuLXRvLWJvb2xlYW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMg
QEAKK1Rlc3QgZm9yIGJ1ZyAxMjgwNzogWFBhdGggaW5jb3JyZWN0bHkgY29udmVydHMgTmFOIHRv
IGJvb2xlYW4uCisKK1NVQ0NFU1MKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zh
c3QveHBhdGgvbmFuLXRvLWJvb2xlYW4tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveHBhdGgvbmFuLXRvLWJvb2xlYW4uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25hbi10by1ib29sZWFuLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25hbi10by1ib29sZWFuLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwNyI+
YnVnIDEyODA3PC9hPjoKK1hQYXRoIGluY29ycmVjdGx5IGNvbnZlcnRzIE5hTiB0byBib29sZWFu
LjwvcD4KKworICA8ZGl2PjwvZGl2PgorICA8ZGl2IGlkPSJyXzAxIj48L2Rpdj4KKworPHNjcmlw
dD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgdHJ5IHsKKworICAgIHJlc3VsdCA9IGRvY3VtZW50
LmV2YWx1YXRlKCIvL2RpdltudW1iZXIoc3Vic3RyaW5nLWFmdGVyKEBpZCwncl8nKSkgb3IgZmFs
c2UoKV0iLCBkb2N1bWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNI
T1RfVFlQRSwgbnVsbCk7CisKKyAgICBpZiAoMSA9PSByZXN1bHQuc25hcHNob3RMZW5ndGgpCisg
ICAgICBkb2N1bWVudC53cml0ZSgiU1VDQ0VTUyIpOworICAgIGVsc2UKKyAgICAgIGRvY3VtZW50
LndyaXRlKCJGQUlMVVJFOiAiICsgcmVzdWx0LnNuYXBzaG90TGVuZ3RoICsgIiByZXN1bHQgbm9k
ZXMgKHNob3VsZCBiZSAxKSIpOworICB9IGNhdGNoIChleCkgeworICAgIGRvY3VtZW50LndyaXRl
KCJGQUlMVVJFOiAiICsgZXgpOworICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QveHBhdGgvbmFuLXRvLWJvb2xlYW4u
aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4
OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gMTk2OTYpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDA3LTAyLTE4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwNworICAgICAgICBYUGF0aCBp
bmNvcnJlY3RseSBjb252ZXJ0cyBOYU4gdG8gYm9vbGVhbgorCisgICAgICAgICogeG1sL1hQYXRo
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OlZhbHVlOjp0b0Jvb2xlYW4pOiBD
b252ZXJ0IE5hTiB0byBmYWxzZS4KKyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN1YnN0cmluZ0FmdGVyOjpkb0V2YWx1YXRlKTog
Rml4IHN1YnN0cmluZy1hZnRlciB0byBhY3R1YWxseSB3b3JrLgorCiAyMDA3LTAyLTE4ICBNaXR6
IFBldHRlbCAgPG1pdHpAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4K
SW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE5Njk1KQorKysgV2ViQ29yZS94
bWwvWFBhdGhGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDQsNyArNTA0LDcgQEAg
VmFsdWUgRnVuU3Vic3RyaW5nQWZ0ZXI6OmRvRXZhbHVhdGUoKSBjbwogICAgIGlmIChpID09IC0x
KQogICAgICAgICByZXR1cm4gIiI7CiAKLSAgICByZXR1cm4gczEuc3Vic3RyaW5nKGkgKyAxKTsK
KyAgICByZXR1cm4gczEuc3Vic3RyaW5nKHMyLmxlbmd0aCgpKTsKIH0KIAogVmFsdWUgRnVuU3Vi
c3RyaW5nOjpkb0V2YWx1YXRlKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoVmFsdWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoVmFsdWUuY3BwCShyZXZpc2lvbiAx
OTY5NSkKKysrIFdlYkNvcmUveG1sL1hQYXRoVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
NSw3ICs5NSw3IEBAIGJvb2wgVmFsdWU6OnRvQm9vbGVhbigpIGNvbnN0CiAgICAgICAgIGNhc2Ug
Qm9vbGVhblZhbHVlOgogICAgICAgICAgICAgcmV0dXJuIG1fYm9vbDsKICAgICAgICAgY2FzZSBO
dW1iZXJWYWx1ZToKLSAgICAgICAgICAgIHJldHVybiBtX251bWJlciAhPSAwOworICAgICAgICAg
ICAgcmV0dXJuIG1fbnVtYmVyICE9IDAgJiYgIWlzbmFuKG1fbnVtYmVyKTsKICAgICAgICAgY2Fz
ZSBTdHJpbmdWYWx1ZToKICAgICAgICAgICAgIHJldHVybiAhbV9zdHJpbmcuaXNFbXB0eSgpOwog
ICAgIH0K
</data>
<flag name="review"
          id="5162"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>