<?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>160925</bug_id>
          
          <creation_ts>2016-08-16 17:31:27 -0700</creation_ts>
          <short_desc>Remove invalid assertion in the DFG backend&apos;s GetById emitter.</short_desc>
          <delta_ts>2016-08-17 14:03:00 -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>WebKit Local 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>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220683</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-16 17:31:27 -0700</bug_when>
    <thetext>The DFG bytecode parser will force an OSR exit if it sees an op_get_by_id or op_get_by_val with a SpecNone prediction.  Hence, it is safe to emit code for the GetById node even if its prediction is SpecNone.  The GetById node may still be seen by the DFG backend, but it is valid for it to have a SpecNone prediction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220686</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-16 17:33:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/27248961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220689</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-16 17:43:43 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; The DFG bytecode parser will force an OSR exit if it sees an op_get_by_id or
&gt; op_get_by_val with a SpecNone prediction.  Hence, it is safe to emit code
&gt; for the GetById node even if its prediction is SpecNone.  The GetById node
&gt; may still be seen by the DFG backend, but it is valid for it to have a
&gt; SpecNone prediction.

This may not be true.  In my test locally, I&apos;m seeing the assertion without a ForceOSRExit node preceding the GetById node.  I&apos;ll investigate further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220928</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-17 12:45:06 -0700</bug_when>
    <thetext>My initial read of the code was wrong and misleading.  The GetById assertion that the node&apos;s prediction not be SpecNone in the DFG backend is just plain wrong.  It assumes that we can never have a GetById node without a type prediction, but that is not true.  The following test case proves otherwise:

    function foo() {
        &quot;use strict&quot;;
        return --arguments[&quot;callee&quot;];
    }

Will remove the assertion.  Nothing else needs to change as the DFG is working correctly without the assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220950</commentid>
    <comment_count>4</comment_count>
      <attachid>286325</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-17 13:52:13 -0700</bug_when>
    <thetext>Created attachment 286325
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220954</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-08-17 14:03:00 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r204570: &lt;http://trac.webkit.org/r204570&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286325</attachid>
            <date>2016-08-17 13:52:13 -0700</date>
            <delta_ts>2016-08-17 13:55:19 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-160925.patch</filename>
            <type>text/plain</type>
            <size>3621</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDQ1NjkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgYW4gaW52YWxpZCBhc3NlcnRpb24gaW4gdGhlIERGRyBiYWNr
ZW5kJ3MgR2V0QnlJZCBlbWl0dGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwOTI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzI0ODk2MT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9kZmctZ2V0LWJ5LWlkLXNob3VsZC1ub3QtYXNzZXJ0LW5vbi1udWxsLXByZWRpY3Rpb24uanM6
IEFkZGVkLgorCiAyMDE2LTA4LTE2ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDQ0NjQuCkluZGV4OiBKU1Rl
c3RzL3N0cmVzcy9kZmctZ2V0LWJ5LWlkLXNob3VsZC1ub3QtYXNzZXJ0LW5vbi1udWxsLXByZWRp
Y3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvZGZnLWdldC1ieS1pZC1zaG91
bGQtbm90LWFzc2VydC1ub24tbnVsbC1wcmVkaWN0aW9uLmpzCShub25leGlzdGVudCkKKysrIEpT
VGVzdHMvc3RyZXNzL2RmZy1nZXQtYnktaWQtc2hvdWxkLW5vdC1hc3NlcnQtbm9uLW51bGwtcHJl
ZGljdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisvL0AgcnVuRGVmYXVs
dAorLy8gVGhpcyB0ZXN0IHNob3VsZCBub3QgY3Jhc2guCisKK2Z1bmN0aW9uIGZvbygpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgcmV0dXJuIC0tYXJndW1lbnRzWyJjYWxsZWUiXTsKK307CisK
K2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb28oKTsKKyAgICAgICAgfSBjYXRjaChlKSB7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3Rlc3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjA0NTY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA4LTE3ICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgYW4gaW52YWxpZCBhc3NlcnRp
b24gaW4gdGhlIERGRyBiYWNrZW5kJ3MgR2V0QnlJZCBlbWl0dGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTI1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNzI0ODk2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgREZHIGJhY2tlbmQncyBHZXRCeUlkIGFzc2VydGlvbiB0aGF0IHRoZSBu
b2RlJ3MgcHJlZGljdGlvbiBub3QgYmUgU3BlY05vbmUKKyAgICAgICAgaXMganVzdCBwbGFpbiB3
cm9uZy4gIEl0IGFzc3VtZXMgdGhhdCB3ZSBjYW4gbmV2ZXIgaGF2ZSBhIEdldEJ5SWQgbm9kZSB3
aXRob3V0IGEKKyAgICAgICAgdHlwZSBwcmVkaWN0aW9uLCBidXQgdGhpcyBpcyBub3QgdHJ1ZS4g
IFRoZSBmb2xsb3dpbmcgdGVzdCBjYXNlIHByb3ZlcyBvdGhlcndpc2U6CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIC0tYXJndW1lbnRzWyJjYWxsZWUiXTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICBXaWxsIHJlbW92ZSB0aGUgYXNzZXJ0aW9uLiAgTm90aGluZyBlbHNlIG5lZWRzIHRv
IGNoYW5nZSBhcyB0aGUgREZHIGlzIHdvcmtpbmcKKyAgICAgICAgY29ycmVjdGx5IHdpdGhvdXQg
dGhlIGFzc2VydGlvbi4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxNi0wOC0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgSGVhcDo6Y29sbGVjdEFsbEdhcmJhZ2UoKSBzaG91bGQgd29y
ayB3aXRoIEpTQ191c2VJbW1vcnRhbE9iamVjdHM9dHJ1ZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNp
b24gMjA0NTY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE3NSw4ICs0MTc1LDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNhc2UgR2V0QnlJ
ZDogewotICAgICAgICBBU1NFUlQobm9kZS0+cHJlZGljdGlvbigpKTsKLSAgICAgICAgCiAgICAg
ICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgQ2Vs
bFVzZTogewogICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDIwNDU2OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQx
MjAsOCArNDEyMCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICB9CiAKICAgICBjYXNlIEdldEJ5SWQ6IHsKLSAgICAgICAgQVNTRVJUKG5vZGUtPnByZWRp
Y3Rpb24oKSk7Ci0KICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsK
ICAgICAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
</data>
<flag name="review"
          id="309875"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>