<?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>189757</bug_id>
          
          <creation_ts>2018-09-19 11:24:12 -0700</creation_ts>
          <short_desc>AI rule for MultiPutByOffset executes its effects in the wrong order</short_desc>
          <delta_ts>2018-10-03 16:28:21 -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 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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zhunkibatu</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1461053</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-19 11:24:12 -0700</bug_when>
    <thetext>Look at this code:
```
        observeTransitions(clobberLimit, transitions);
        if (forNode(node-&gt;child1()).changeStructure(m_graph, newSet) == Contradiction)
            m_state.setIsValid(false);
        setForNode(node-&gt;child2(), resultingValue);
        if (!!originalValue &amp;&amp; !resultingValue)
            m_state.setIsValid(false);
```

However, we first need to execute the last three lines before the first three lines. This is because that&apos;s how the execution of the node happens at runtime. This can lead to bad results when resultingValue is the same as the base, e.g:
```
o.f = o;
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461054</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-19 11:25:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/43535257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461064</commentid>
    <comment_count>2</comment_count>
      <attachid>350139</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-19 12:02:10 -0700</bug_when>
    <thetext>Created attachment 350139
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461066</commentid>
    <comment_count>3</comment_count>
      <attachid>350139</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-09-19 12:06:29 -0700</bug_when>
    <thetext>Comment on attachment 350139
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461113</commentid>
    <comment_count>4</comment_count>
      <attachid>350139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 14:00:15 -0700</bug_when>
    <thetext>Comment on attachment 350139
patch

Clearing flags on attachment: 350139

Committed r236223: &lt;https://trac.webkit.org/changeset/236223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461114</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 14:00:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466227</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-03 16:28:21 -0700</bug_when>
    <thetext>*** Bug 188694 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350139</attachid>
            <date>2018-09-19 12:02:10 -0700</date>
            <delta_ts>2018-09-19 14:00:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4019</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzYyMTMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE4LTA5LTE5ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIEFJIHJ1bGUgZm9yIE11bHRpUHV0QnlPZmZzZXQgZXhlY3V0ZXMgaXRz
IGVmZmVjdHMgaW4gdGhlIHdyb25nIG9yZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODk3NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzNTM1
MjU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL211bHRpLXB1dC1ieS1vZmZzZXQtbXVzdC1maWx0ZXItdmFsdWUtYmVmb3JlLWZpbHRl
cmluZy1iYXNlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChGb28pOgorICAg
ICAgICAoZyk6CisKIDIwMTgtMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIEVuc3VyZSB0aGF0IEZvckluQ29udGV4dHMgYXJlIGludmFsaWRhdGVkIGlmIHRo
ZWlyIGxvb3AgbG9jYWwgaXMgb3Zlci13cml0dGVuLgpJbmRleDogSlNUZXN0cy9zdHJlc3MvbXVs
dGktcHV0LWJ5LW9mZnNldC1tdXN0LWZpbHRlci12YWx1ZS1iZWZvcmUtZmlsdGVyaW5nLWJhc2Uu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvbXVsdGktcHV0LWJ5LW9mZnNldC1tdXN0
LWZpbHRlci12YWx1ZS1iZWZvcmUtZmlsdGVyaW5nLWJhc2UuanMJKG5vbmV4aXN0ZW50KQorKysg
SlNUZXN0cy9zdHJlc3MvbXVsdGktcHV0LWJ5LW9mZnNldC1tdXN0LWZpbHRlci12YWx1ZS1iZWZv
cmUtZmlsdGVyaW5nLWJhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAorLy9A
IHJ1bkRlZmF1bHQoIi0tY29sbGVjdENvbnRpbnVvdXNseT0xIiwgIi0tdXNlQ29uY3VycmVudEpJ
VD0wIiwgIi0tdXNlQ29uY3VycmVudEdDPTEiKQorCitmdW5jdGlvbiBmb28ob28pIHsKKyAgICBv
by54ID0gNDsKKyAgICBvby55ID0gNDsKKyAgICBvby5lID0gb287CisgICAgb28uZSA9IDc7Cisg
ICAgb28uZiA9IDg7Cit9Citub0lubGluZShmb28pOworCitmdW5jdGlvbiBGb28oKSB7CisgICAg
Zm9vKHRoaXMpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKSB7CisgICAg
ZygpOworfQorCitmdW5jdGlvbiBnKCl7CisgICAgZm9vKHtmOjh9KTsKKyAgICBuZXcgRm9vKCk7
CisgICAgbmV3IEZvbygpOworICAgIG5ldyBGb28oKTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMjM2MTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA5LTE5ICBTYWFtIGJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIEFJIHJ1bGUgZm9yIE11bHRpUHV0
QnlPZmZzZXQgZXhlY3V0ZXMgaXRzIGVmZmVjdHMgaW4gdGhlIHdyb25nIG9yZGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk3NTcKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQzNTM1MjU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBBSSBydWxlIGZvciBNdWx0aVB1dEJ5T2Zmc2V0IHdhcyBl
eGVjdXRpbmcgZWZmZWN0cyBpbiB0aGUgd3Jvbmcgb3JkZXIuCisgICAgICAgIEl0IGZpcnN0IGV4
ZWN1dGVkIHRoZSB0cmFuc2l0aW9uIGVmZmVjdHMgYW5kIHRoZSBlZmZlY3RzIG9uIHRoZSBiYXNl
LCBhbmQKKyAgICAgICAgdGhlbiBleGVjdXRlZCB0aGUgZmlsdGVyaW5nIGVmZmVjdHMgb24gdGhl
IHZhbHVlIGJlaW5nIHN0b3JlZC4gSG93ZXZlciwgeW91CisgICAgICAgIGNhbiBlbmQgdXAgd2l0
aCB0aGUgd3JvbmcgdHlwZSB3aGVuIHRoZSBiYXNlIGFuZCB0aGUgdmFsdWUgYmVpbmcgc3RvcmVk
CisgICAgICAgIGFyZSB0aGUgc2FtZS4gRS5nLCBpbiBhIHByb2dyYW0gbGlrZSBgby5mID0gb2Au
IFRoZXNlIGVmZmVjdHMgbmVlZCB0byBoYXBwZW4KKyAgICAgICAgaW4gdGhlIG9wcG9zaXRlIG9y
ZGVyLCBtb2RlbGluZyB3aGF0IGhhcHBlbnMgaW4gdGhlIHJ1bnRpbWUgZXhlY3V0aW5nIG9mCisg
ICAgICAgIE11bHRpUHV0QnlPZmZzZXQuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorCiAyMDE4LTA5LTE3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBn
ZW5lcmF0ZSBDU1NLZXl3b3JkQ29tcGxldGlvbnMgZnJvbSBiYWNrZW5kIHZhbHVlcwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMjM2MTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMjk5LDEyICszMjk5LDE3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgb2JzZXJ2
ZVRyYW5zaXRpb25zKGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbnMpOwotICAgICAgICBpZiAoZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSkuY2hhbmdlU3RydWN0dXJlKG1fZ3JhcGgsIG5ld1NldCkgPT0g
Q29udHJhZGljdGlvbikKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0SXNWYWxpZChmYWxzZSk7Cisg
ICAgICAgIC8vIFdlIG5lZWQgdG8gb3JkZXIgQUkgZXhlY3V0aW5nIHRoZXNlIGVmZmVjdHMgaW4g
dGhlIHNhbWUgb3JkZXIgYXMgdGhleSdyZSBleGVjdXRlZAorICAgICAgICAvLyBhdCBydW50aW1l
LiBUaGlzIGlzIGNyaXRpY2FsIHdoZW4geW91IGhhdmUgSlMgY29kZSBsaWtlIGBvLmYgPSBvO2Au
IFdlIGZpcnN0CisgICAgICAgIC8vIGZpbHRlciB0eXBlcyBvbiBvLCB0aGVuIHRyYW5zaXRpb24g
by4gTm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLiBJZiB3ZSBnb3QKKyAgICAgICAgLy8gdGhpcyBv
cmRlcmluZyB3cm9uZywgd2UgY291bGQgZW5kIHVwIHdpdGggdGhlIHdyb25nIHR5cGUgcmVwcmVz
ZW50aW5nIG8uCiAgICAgICAgIHNldEZvck5vZGUobm9kZS0+Y2hpbGQyKCksIHJlc3VsdGluZ1Zh
bHVlKTsKICAgICAgICAgaWYgKCEhb3JpZ2luYWxWYWx1ZSAmJiAhcmVzdWx0aW5nVmFsdWUpCiAg
ICAgICAgICAgICBtX3N0YXRlLnNldElzVmFsaWQoZmFsc2UpOworCisgICAgICAgIG9ic2VydmVU
cmFuc2l0aW9ucyhjbG9iYmVyTGltaXQsIHRyYW5zaXRpb25zKTsKKyAgICAgICAgaWYgKGZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpLmNoYW5nZVN0cnVjdHVyZShtX2dyYXBoLCBuZXdTZXQpID09IENv
bnRyYWRpY3Rpb24pCisgICAgICAgICAgICBtX3N0YXRlLnNldElzVmFsaWQoZmFsc2UpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>