<?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>143396</bug_id>
          
          <creation_ts>2015-04-03 19:17:28 -0700</creation_ts>
          <short_desc>In the 64-bit DFG and FTL, Array::Double case for HasIndexedProperty should set its result to true when all is well</short_desc>
          <delta_ts>2015-04-06 15:49:24 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082746</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-03 19:17:28 -0700</bug_when>
    <thetext>Currently, all other cases do set the result to true when in the successful path.  Only the Array::Double case has neglected to do so.  This bug does is only present in the 64-bit DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082747</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-03 19:20:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/20096787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083165</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-06 14:19:16 -0700</bug_when>
    <thetext>Turns out that the FTL implementation of HasIndexedProperty has a similar but different problem.  In this case, the FTL is setting the boolean result.  However, the value that it is setting it with needs to be inverted.

Michael helped me out with figuring out how to invert said bit.  My tests appear to be passing now.  Patch for fix coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083168</commentid>
    <comment_count>3</comment_count>
      <attachid>250226</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-06 14:44:34 -0700</bug_when>
    <thetext>Created attachment 250226
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083170</commentid>
    <comment_count>4</comment_count>
      <attachid>250226</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-06 14:48:03 -0700</bug_when>
    <thetext>Comment on attachment 250226
the patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=250226&amp;action=review

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4712
&gt; -                m_out.doubleNotEqualOrUnordered(doubleValue, doubleValue));
&gt; -            m_out.branch(checkHoleResult.value(), rarely(slowCase), usually(continuation));
&gt; +                m_out.bitNot(m_out.doubleNotEqualOrUnordered(doubleValue, doubleValue)));
&gt; +            m_out.branch(checkHoleResult.value(), usually(continuation), rarely(slowCase));

You should just use doubleEqual() instead of bitNot(doubleNotEqualOrUnordered)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083171</commentid>
    <comment_count>5</comment_count>
      <attachid>250228</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-06 14:53:23 -0700</bug_when>
    <thetext>Created attachment 250228
patch 2: with Fil&apos;s better doubles comparison.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083185</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-06 15:49:24 -0700</bug_when>
    <thetext>Thanks.  Landed in r182444: &lt;http://trac.webkit.org/r182444&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250226</attachid>
            <date>2015-04-06 14:44:34 -0700</date>
            <delta_ts>2015-04-06 14:53:23 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-143396.patch</filename>
            <type>text/plain</type>
            <size>6815</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyNDM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA0LTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
biB0aGUgNjQtYml0IERGRyBhbmQgRlRMLCBBcnJheTo6RG91YmxlIGNhc2UgZm9yIEhhc0luZGV4
ZWRQcm9wZXJ0eSBzaG91bGQgc2V0IGl0cyByZXN1bHQgdG8gdHJ1ZSB3aGVuIGFsbCBpcyB3ZWxs
LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQzMzk2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBERkcgd2FzIG5lZ2xlY3Rpbmcg
dG8gc2V0IHRoZSByZXN1bHQgYm9vbGVhbi4gIFRoZSBGVEwgd2FzIHNldHRpbmcgaXQgd2l0aAor
ICAgICAgICBhbiBpbnZlcnRlZCB2YWx1ZS4gIEJvdGggb2YgdGhlc2UgYXJlIG5vdyByZXNvbHZl
ZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUhhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Zvci1pbi1hcnJh
eS1tb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKC4pOgorICAgICAgICAodGVzdCk6CisKIDIwMTUt
MDQtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
W0VTNl0gREZHIGFuZCBGVEwgc2hvdWxkIGJlIGF3YXJlIG9mIHRoYXQgU3RyaW5nQ29uc3RydWN0
b3IgYmVoYXZpb3IgZm9yIHN5bWJvbHMgYmVjb21lcyBkaWZmZXJlbnQgZnJvbSBUb1N0cmluZwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCShyZXZpc2lvbiAxODIzMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDg0LDYgKzQ0ODQsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICAgICAgICAg
IG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBp
bmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzY3JhdGNoRlBSKTsKICAgICAg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBzY3JhdGNoRlBSLCBzY3JhdGNoRlBSKSk7Cisg
ICAgICAgICAgICBtb3ZlVHJ1ZVRvKHJlc3VsdEdQUik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6IHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lv
biAxODIzMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZN
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwOCw4ICs0NzA4LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oY2hlY2tIb2xlLCBz
bG93Q2FzZSk7CiAgICAgICAgICAgICBMVmFsdWUgZG91YmxlVmFsdWUgPSBtX291dC5sb2FkRG91
YmxlKGJhc2VJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpOwog
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9vdXQuYW5jaG9y
KAotICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQoZG91Ymxl
VmFsdWUsIGRvdWJsZVZhbHVlKSk7Ci0gICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xl
UmVzdWx0LnZhbHVlKCksIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoY29udGludWF0aW9uKSk7
CisgICAgICAgICAgICAgICAgbV9vdXQuYml0Tm90KG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9y
ZGVyZWQoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKSkpOworICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKGNoZWNrSG9sZVJlc3VsdC52YWx1ZSgpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVs
eShzbG93Q2FzZSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhz
bG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dS
ZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuZXF1YWwoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Zvci1pbi1hcnJheS1tb2RlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZm9yLWluLWFycmF5LW1vZGUuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Zvci1pbi1h
cnJheS1tb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwordmFyIGZ1bmNBcmdBbmRCb2R5U3Ry
ID0KKyIoYXJyKSB7IiArICJcbiIgKworIiAgICB2YXIgc3VtID0gMDsiICsgIlxuIiArCisiICAg
IGZvciAodmFyIGkgaW4gYXJyKSIgKyAiXG4iICsKKyIgICAgICAgIHN1bSArPSBhcnJbaV07IiAr
ICJcbiIgKworIiAgICByZXR1cm4gc3VtOyIgKyAiXG4iICsKKyJ9IjsKKwordmFyIHRlc3REYXRh
ID0geworICAgICJBcnJheVdpdGhVbmRlY2lkZWQiOiB7IGluOiBbXSwgb3V0OiAwIH0sCisgICAg
IkFycmF5V2l0aEludDMyIjogeyBpbjogWyAxLCAyLCAzIF0sIG91dDogNiB9LAorICAgICJBcnJh
eVdpdGhDb250aWd1b3VzIjogeyBpbjogWyAiYSIsICJiIiwgImMiIF0sIG91dDogIjBhYmMiIH0s
CisgICAgIkFycmF5V2l0aERvdWJsZSI6IHsgaW46IFsxMC4yNSwgMjAuMjUsIDMwLjI1IF0sIG91
dDogNjAuNzUgfSwKKyAgICAiQXJyYXlXaXRoQXJyYXlTdG9yYWdlIjogeyBpbjogWyAiYSIsICJi
IiwgImMiIF0sIG91dDogIjBhYmMxMDAwIiB9LCAvLyBUaGUgaW4gYXJyYXkgd2lsbCBiZSBhdWdt
ZW50ZWQgYmVsb3cuCisgICAgIkFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UiOiB7IGluOiBb
ICJhIiwgImIiLCAiYyIgXSwgb3V0OiAiMGFiYzEwIiB9LCAvLyB0aGUgaW4gYXJyYXkgd2lsbCBi
ZSBhdWdtZW50ZWQgYmVsb3cuCisKKyAgICAiTm9uQXJyYXlXaXRoVW5kZWNpZGVkIjogeyBpbjog
e30sIG91dDogMCB9LAorICAgICJOb25BcnJheVdpdGhJbnQzMiI6IHsgaW46IHsgIjAiOjEsICIx
IjoyLCAiMiI6MyB9LCBvdXQ6IDYgfSwKKyAgICAiTm9uQXJyYXlXaXRoQ29udGlndW91cyI6IHsg
aW46IHsgIjAiOiJhIiwgIjEiOiJiIiwgIjIiOiJjIiB9LCBvdXQ6ICIwYWJjIiB9LAorICAgICJO
b25BcnJheVdpdGhEb3VibGUiOiB7IGluOiB7ICIwIjoxMC4yNSwgIjEiOjIwLjI1LCAiMiI6MzAu
MjUgfSwgb3V0OiA2MC43NSB9LAorICAgICJOb25BcnJheVdpdGhBcnJheVN0b3JhZ2UiOiB7IGlu
OiB7ICIwIjoiYSIsICIxIjoiYiIsICIyIjoiYyIgfSwgb3V0OiAiMGFiYzEwMDAiIH0sIC8vIFRo
ZSBpbiBvYmogd2lsbCBiZSBhdWdtZW50ZWQgYmVsb3cuCisgICAgIk5vbkFycmF5V2l0aFNsb3dQ
dXRBcnJheVN0b3JhZ2UiOiB7IGluOiB7ICIwIjoiYSIsICIxIjoiYiIsICIyIjoiYyIgfSwgb3V0
OiAiMGFiYzEwIiB9LCAvLyB0aGUgaW4gb2JqIHdpbGwgYmUgYXVnbWVudGVkIGJlbG93LgorfTsK
KworCit2YXIgbyA9IHsgYTogMTAgfTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG8sIHsKKyAg
ICAiMCI6IHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuYTsgfSwKKyAg
ICAgICAgc2V0OiBmdW5jdGlvbih4KSB7IHRoaXMuYSA9IHg7IH0sCisgICAgfSwKK30pOworCit0
ZXN0RGF0YVsiQXJyYXlXaXRoQXJyYXlTdG9yYWdlIl0uaW5bMTAwMF0gPSAxMDAwOwordGVzdERh
dGFbIkFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UiXS5pbi5fX3Byb3RvX18gPSBvOwordGVz
dERhdGFbIk5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSJdLmluWyIxMDAwIl0gPSAxMDAwOwordGVz
dERhdGFbIk5vbkFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UiXS5pbi5fX3Byb3RvX18gPSBv
OworCit2YXIgbnVtYmVyT2ZGYWlsdXJlcyA9IDA7CisKK2Z1bmN0aW9uIHRlc3QobmFtZSwgZGF0
YSkgeworICAgIGV2YWwoImZ1bmN0aW9uICIgKyBuYW1lICsgZnVuY0FyZ0FuZEJvZHlTdHIpOwor
ICAgIG5vSW5saW5lKG5hbWUpOworCisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgIHZhciBw
cmV2aW91c1Jlc3VsdDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIGV4cGVjdGVkID0gZGF0YS5vdXQ7CisgICAgICAgIHZhciBhY3R1YWwgPSBldmFs
KG5hbWUgKyAiKGRhdGEuaW4pIik7CisKKyAgICAgICAgaWYgKChhY3R1YWwgIT0gZXhwZWN0ZWQp
ICYmIChhY3R1YWwgIT0gcHJldmlvdXNSZXN1bHQpKSB7CisgICAgICAgICAgICBwcmludCgiRkFJ
TDogIiArIG5hbWUgKyAiOiBleHBlY3RlZDogIiArIGV4cGVjdGVkICsgIiwgYWN0dWFsOiAiICsg
YWN0dWFsICsgIiwgc3RhcnRpbmcgQCBsb29wIGl0ZXJhdGlvbiAiICsgaSk7CisgICAgICAgICAg
ICBwcmV2aW91c1Jlc3VsdCA9IGFjdHVhbDsKKyAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICBudW1iZXJPZkZhaWx1cmVzKys7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Zv
ciAobmFtZSBpbiB0ZXN0RGF0YSkKKyAgICB0ZXN0KG5hbWUsIHRlc3REYXRhW25hbWVdKTsKKwor
aWYgKG51bWJlck9mRmFpbHVyZXMpCisgICAgdGhyb3cgIkVycm9yOiBudW1iZXIgb2YgZmFpbHVy
ZXMgZm91bmQ6ICIgKyBudW1iZXJPZkZhaWx1cmVzOwo=
</data>
<flag name="review"
          id="275052"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250228</attachid>
            <date>2015-04-06 14:53:23 -0700</date>
            <delta_ts>2015-04-06 15:11:16 -0700</delta_ts>
            <desc>patch 2: with Fil&apos;s better doubles comparison.</desc>
            <filename>bug-143396.patch</filename>
            <type>text/plain</type>
            <size>6831</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyNDM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA0LTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJ
biB0aGUgNjQtYml0IERGRyBhbmQgRlRMLCBBcnJheTo6RG91YmxlIGNhc2UgZm9yIEhhc0luZGV4
ZWRQcm9wZXJ0eSBzaG91bGQgc2V0IGl0cyByZXN1bHQgdG8gdHJ1ZSB3aGVuIGFsbCBpcyB3ZWxs
LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQzMzk2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBERkcgd2FzIG5lZ2xlY3Rpbmcg
dG8gc2V0IHRoZSByZXN1bHQgYm9vbGVhbi4gIFRoZSBGVEwgd2FzIHNldHRpbmcgaXQgd2l0aAor
ICAgICAgICBhbiBpbnZlcnRlZCB2YWx1ZS4gIEJvdGggb2YgdGhlc2UgYXJlIG5vdyByZXNvbHZl
ZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGls
ZUhhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Zvci1pbi1hcnJh
eS1tb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKC4pOgorICAgICAgICAodGVzdCk6CisKIDIwMTUt
MDQtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
W0VTNl0gREZHIGFuZCBGVEwgc2hvdWxkIGJlIGF3YXJlIG9mIHRoYXQgU3RyaW5nQ29uc3RydWN0
b3IgYmVoYXZpb3IgZm9yIHN5bWJvbHMgYmVjb21lcyBkaWZmZXJlbnQgZnJvbSBUb1N0cmluZwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCShyZXZpc2lvbiAxODIzMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDg0LDYgKzQ0ODQsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICAgICAgICAg
IG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBp
bmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzY3JhdGNoRlBSKTsKICAgICAg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBzY3JhdGNoRlBSLCBzY3JhdGNoRlBSKSk7Cisg
ICAgICAgICAgICBtb3ZlVHJ1ZVRvKHJlc3VsdEdQUik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6IHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lv
biAxODIzMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZN
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwNyw5ICs0NzA3LDggQEAgcHJpdmF0ZToKIAogICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhjaGVja0hvbGUs
IHNsb3dDYXNlKTsKICAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IG1fb3V0LmxvYWRE
b3VibGUoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSk7
Ci0gICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNo
b3IoCi0gICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChkb3Vi
bGVWYWx1ZSwgZG91YmxlVmFsdWUpKTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hv
bGVSZXN1bHQudmFsdWUoKSwgcmFyZWx5KHNsb3dDYXNlKSwgdXN1YWxseShjb250aW51YXRpb24p
KTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFu
Y2hvcihtX291dC5kb3VibGVFcXVhbChkb3VibGVWYWx1ZSwgZG91YmxlVmFsdWUpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHQudmFsdWUoKSwgdXN1YWxseShjb250
aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmVxdWFsKApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mb3ItaW4tYXJyYXktbW9kZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Zvci1pbi1h
cnJheS1tb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mb3ItaW4tYXJyYXktbW9kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK3ZhciBm
dW5jQXJnQW5kQm9keVN0ciA9CisiKGFycikgeyIgKyAiXG4iICsKKyIgICAgdmFyIHN1bSA9IDA7
IiArICJcbiIgKworIiAgICBmb3IgKHZhciBpIGluIGFycikiICsgIlxuIiArCisiICAgICAgICBz
dW0gKz0gYXJyW2ldOyIgKyAiXG4iICsKKyIgICAgcmV0dXJuIHN1bTsiICsgIlxuIiArCisifSI7
CisKK3ZhciB0ZXN0RGF0YSA9IHsKKyAgICAiQXJyYXlXaXRoVW5kZWNpZGVkIjogeyBpbjogW10s
IG91dDogMCB9LAorICAgICJBcnJheVdpdGhJbnQzMiI6IHsgaW46IFsgMSwgMiwgMyBdLCBvdXQ6
IDYgfSwKKyAgICAiQXJyYXlXaXRoQ29udGlndW91cyI6IHsgaW46IFsgImEiLCAiYiIsICJjIiBd
LCBvdXQ6ICIwYWJjIiB9LAorICAgICJBcnJheVdpdGhEb3VibGUiOiB7IGluOiBbMTAuMjUsIDIw
LjI1LCAzMC4yNSBdLCBvdXQ6IDYwLjc1IH0sCisgICAgIkFycmF5V2l0aEFycmF5U3RvcmFnZSI6
IHsgaW46IFsgImEiLCAiYiIsICJjIiBdLCBvdXQ6ICIwYWJjMTAwMCIgfSwgLy8gVGhlIGluIGFy
cmF5IHdpbGwgYmUgYXVnbWVudGVkIGJlbG93LgorICAgICJBcnJheVdpdGhTbG93UHV0QXJyYXlT
dG9yYWdlIjogeyBpbjogWyAiYSIsICJiIiwgImMiIF0sIG91dDogIjBhYmMxMCIgfSwgLy8gdGhl
IGluIGFycmF5IHdpbGwgYmUgYXVnbWVudGVkIGJlbG93LgorCisgICAgIk5vbkFycmF5V2l0aFVu
ZGVjaWRlZCI6IHsgaW46IHt9LCBvdXQ6IDAgfSwKKyAgICAiTm9uQXJyYXlXaXRoSW50MzIiOiB7
IGluOiB7ICIwIjoxLCAiMSI6MiwgIjIiOjMgfSwgb3V0OiA2IH0sCisgICAgIk5vbkFycmF5V2l0
aENvbnRpZ3VvdXMiOiB7IGluOiB7ICIwIjoiYSIsICIxIjoiYiIsICIyIjoiYyIgfSwgb3V0OiAi
MGFiYyIgfSwKKyAgICAiTm9uQXJyYXlXaXRoRG91YmxlIjogeyBpbjogeyAiMCI6MTAuMjUsICIx
IjoyMC4yNSwgIjIiOjMwLjI1IH0sIG91dDogNjAuNzUgfSwKKyAgICAiTm9uQXJyYXlXaXRoQXJy
YXlTdG9yYWdlIjogeyBpbjogeyAiMCI6ImEiLCAiMSI6ImIiLCAiMiI6ImMiIH0sIG91dDogIjBh
YmMxMDAwIiB9LCAvLyBUaGUgaW4gb2JqIHdpbGwgYmUgYXVnbWVudGVkIGJlbG93LgorICAgICJO
b25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIjogeyBpbjogeyAiMCI6ImEiLCAiMSI6ImIi
LCAiMiI6ImMiIH0sIG91dDogIjBhYmMxMCIgfSwgLy8gdGhlIGluIG9iaiB3aWxsIGJlIGF1Z21l
bnRlZCBiZWxvdy4KK307CisKKwordmFyIG8gPSB7IGE6IDEwIH07CitPYmplY3QuZGVmaW5lUHJv
cGVydGllcyhvLCB7CisgICAgIjAiOiB7CisgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJldHVy
biB0aGlzLmE7IH0sCisgICAgICAgIHNldDogZnVuY3Rpb24oeCkgeyB0aGlzLmEgPSB4OyB9LAor
ICAgIH0sCit9KTsKKwordGVzdERhdGFbIkFycmF5V2l0aEFycmF5U3RvcmFnZSJdLmluWzEwMDBd
ID0gMTAwMDsKK3Rlc3REYXRhWyJBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIl0uaW4uX19w
cm90b19fID0gbzsKK3Rlc3REYXRhWyJOb25BcnJheVdpdGhBcnJheVN0b3JhZ2UiXS5pblsiMTAw
MCJdID0gMTAwMDsKK3Rlc3REYXRhWyJOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIl0u
aW4uX19wcm90b19fID0gbzsKKwordmFyIG51bWJlck9mRmFpbHVyZXMgPSAwOworCitmdW5jdGlv
biB0ZXN0KG5hbWUsIGRhdGEpIHsKKyAgICBldmFsKCJmdW5jdGlvbiAiICsgbmFtZSArIGZ1bmNB
cmdBbmRCb2R5U3RyKTsKKyAgICBub0lubGluZShuYW1lKTsKKworICAgIHZhciBmYWlsZWQgPSBm
YWxzZTsKKyAgICB2YXIgcHJldmlvdXNSZXN1bHQ7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgICAgIHZhciBleHBlY3RlZCA9IGRhdGEub3V0OworICAgICAgICB2
YXIgYWN0dWFsID0gZXZhbChuYW1lICsgIihkYXRhLmluKSIpOworCisgICAgICAgIGlmICgoYWN0
dWFsICE9IGV4cGVjdGVkKSAmJiAoYWN0dWFsICE9IHByZXZpb3VzUmVzdWx0KSkgeworICAgICAg
ICAgICAgcHJpbnQoIkZBSUw6ICIgKyBuYW1lICsgIjogZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCAr
ICIsIGFjdHVhbDogIiArIGFjdHVhbCArICIsIHN0YXJ0aW5nIEAgbG9vcCBpdGVyYXRpb24gIiAr
IGkpOworICAgICAgICAgICAgcHJldmlvdXNSZXN1bHQgPSBhY3R1YWw7CisgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgbnVtYmVyT2ZGYWlsdXJlcysrOworICAgICAgICB9
CisgICAgfQorfQorCitmb3IgKG5hbWUgaW4gdGVzdERhdGEpCisgICAgdGVzdChuYW1lLCB0ZXN0
RGF0YVtuYW1lXSk7CisKK2lmIChudW1iZXJPZkZhaWx1cmVzKQorICAgIHRocm93ICJFcnJvcjog
bnVtYmVyIG9mIGZhaWx1cmVzIGZvdW5kOiAiICsgbnVtYmVyT2ZGYWlsdXJlczsK
</data>
<flag name="review"
          id="275055"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>