<?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>146002</bug_id>
          
          <creation_ts>2015-06-15 20:27:05 -0700</creation_ts>
          <short_desc>FTL boolify() UntypedUse is wrong in the masquerades-as-undefined case</short_desc>
          <delta_ts>2015-06-16 12:18:35 -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>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1102144</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-06-15 20:27:05 -0700</bug_when>
    <thetext>It makes non-masquerading objects boolify to False instead of True.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102145</commentid>
    <comment_count>1</comment_count>
      <attachid>254927</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-06-15 20:29:20 -0700</bug_when>
    <thetext>Created attachment 254927
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102263</commentid>
    <comment_count>2</comment_count>
      <attachid>254927</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-16 10:41:11 -0700</bug_when>
    <thetext>Comment on attachment 254927
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        * ftl/FTLLowerDFGToLLVM.cpp: Put this in an anonymous namespace. We should have done that all along. It makes it easier to add debug code.

Should we be using anonymous namespaces throughout WebKit instead of “static” to make things local to a file? A while back this made debugging harder, which I think is why we didn’t do that at the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102291</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-16 11:32:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/21393673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102303</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-06-16 12:07:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 254927 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254927&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        * ftl/FTLLowerDFGToLLVM.cpp: Put this in an anonymous namespace. We should have done that all along. It makes it easier to add debug code.
&gt; 
&gt; Should we be using anonymous namespaces throughout WebKit instead of
&gt; “static” to make things local to a file? A while back this made debugging
&gt; harder, which I think is why we didn’t do that at the time.

I didn&apos;t know about the debugging issue. Compiler debugging usually involves glorified printf()&apos;s.

My preference is to use anonymous namespaces instead of static, because it allows us to create one block in a module that contains all of the module-local stuff - functions, classes, variables, enums, etc. It&apos;s very liberating - you can use short names.

We&apos;ve been steadily converting the DFG/FTL to use anonymous namespaces for the module-local classes. Each compiler phase usually involves at least one module-local class. That&apos;s really all I&apos;m doing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102307</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-06-16 12:18:35 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/185600</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254927</attachid>
            <date>2015-06-15 20:29:20 -0700</date>
            <delta_ts>2015-06-16 10:41:11 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>3070</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1NTc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE1LTA2LTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIGJvb2xpZnkoKSBVbnR5cGVkVXNlIGlzIHdyb25nIGluIHRoZSBtYXNxdWVyYWRlcy1hcy11
bmRlZmluZWQgY2FzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ2MDAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOiBQdXQgdGhpcyBpbiBhbiBhbm9ueW1v
dXMgbmFtZXNwYWNlLiBXZSBzaG91bGQgaGF2ZSBkb25lIHRoYXQgYWxsIGFsb25nLiBJdCBtYWtl
cyBpdCBlYXNpZXIgdG8gYWRkIGRlYnVnIGNvZGUuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Ym9vbGlmeSk6IEZpeCB0aGUgYnVnLgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9sb2dpY2FsLW5vdC1tYXNxdWVyYWRlcy5qczogQWRkZWQuIFRoaXMgdGVzdCBjcmVhdGVz
IGEgbWFzcXVlcmFkZXIgc28gdGhhdCB0aGUgd2F0Y2hwb2ludCBpcyBpbnZhbGlkLiBQcmV2aW91
c2x5IHRoaXMgd291bGQgZmFpbCBmb3IgdGhlIG5vcm1hbCBvYmplY3QgY2FzZXMuCisgICAgICAg
IChmb28pOgorCiAyMDE1LTA2LTE0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIFtFUzZdIEludHJvZHVjZSAlSXRlcmF0b3JQcm90b3R5cGUlIGFuZCBk
cm9wIGFsbCBYWFhJdGVyYXRvckNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTg1NTY1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDcgKzYzLDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
CiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1zdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxl
Q291bnRlcjsKK25hbWVzcGFjZSB7CisKK3N0ZDo6YXRvbWljPGludD4gY29tcGlsZUNvdW50ZXI7
CiAKICNpZiBBU1NFUlRfRElTQUJMRUQKIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggc3RhdGljIHZv
aWQgZnRsVW5yZWFjaGFibGUoKQpAQCAtNjMwMSw3ICs2MzAzLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG1hc3F1ZXJhZGVzQ2Fz
ZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQm9vbGlmeSB1bnR5cGVkIG1hc3F1ZXJhZGVzIGNh
c2UiKSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
bV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5GYWxzZSkpOworICAgICAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuVHJ1ZSkpOwogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICAgICAg
bV9vdXQudGVzdElzWmVybzgoCkBAIC04NjYwLDYgKzg2NjIsOCBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fdGJhYVN0cnVjdEtpbmQ7CiB9OwogCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UK
Kwogdm9pZCBsb3dlckRGR1RvTExWTShTdGF0ZSYgc3RhdGUpCiB7CiAgICAgTG93ZXJERkdUb0xM
Vk0gbG93ZXJpbmcoc3RhdGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9sb2dpY2FsLW5vdC1tYXNxdWVyYWRlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xvZ2ljYWwtbm90LW1hc3F1ZXJhZGVzLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9sb2dpY2FsLW5v
dC1tYXNxdWVyYWRlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACitmdW5jdGlv
biBmb28odmFsdWUpIHsKKyAgICByZXR1cm4gISF2YWx1ZTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KwordmFyIHRlc3RzID0gWworICAgIFswLCBmYWxzZV0sCisgICAgWzEsIHRydWVdLAorICAgIFsw
LzAsIGZhbHNlXSwKKyAgICBbMC8tMSwgZmFsc2VdLAorICAgIFswLjAsIGZhbHNlXSwKKyAgICBb
IiIsIGZhbHNlXSwKKyAgICBbImYiLCB0cnVlXSwKKyAgICBbImhlbGxvIiwgdHJ1ZV0sCisgICAg
W3t9LCB0cnVlXSwKKyAgICBbW10sIHRydWVdLAorICAgIFtudWxsLCBmYWxzZV0sCisgICAgW3Zv
aWQgMCwgZmFsc2VdLAorICAgIFtmYWxzZSwgZmFsc2VdLAorICAgIFt0cnVlLCB0cnVlXSwKKyAg
ICBbbWFrZU1hc3F1ZXJhZGVyKCksIGZhbHNlXQorXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0ZXN0cy5sZW5ndGg7ICsraikg
eworICAgICAgICB2YXIgaW5wdXQgPSB0ZXN0c1tqXVswXTsKKyAgICAgICAgdmFyIGV4cGVjdGVk
ID0gdGVzdHNbal1bMV07CisgICAgICAgIHZhciByZXN1bHQgPSBmb28oaW5wdXQpOworICAgICAg
ICBpZiAocmVzdWx0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCBmb3IgIiArIGlucHV0ICsgIjogIiArIHJlc3VsdDsKKyAgICB9Cit9Cg==
</data>
<flag name="review"
          id="279943"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>