<?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>181508</bug_id>
          
          <creation_ts>2018-01-10 17:24:23 -0800</creation_ts>
          <short_desc>Our for-in caching is wrong when we add indexed properties on things in the prototype chain</short_desc>
          <delta_ts>2018-01-11 00:18: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>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>jfbastien</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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1387958</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-01-10 17:24:23 -0800</bug_when>
    <thetext>I was reading the for-in code looking for Speedometer speedups, and the code is clearly wrong when it comes to indexed properties in the prototype chain. Fix should be trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387971</commentid>
    <comment_count>1</comment_count>
      <attachid>330999</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-01-10 17:49:14 -0800</bug_when>
    <thetext>Created attachment 330999
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387987</commentid>
    <comment_count>2</comment_count>
      <attachid>330999</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-10 18:15:15 -0800</bug_when>
    <thetext>Comment on attachment 330999
patch

r=me, nice catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388144</commentid>
    <comment_count>3</comment_count>
      <attachid>330999</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-11 00:16:11 -0800</bug_when>
    <thetext>Comment on attachment 330999
patch

Clearing flags on attachment: 330999

Committed r226767: &lt;https://trac.webkit.org/changeset/226767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388145</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-11 00:16:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388146</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-11 00:18:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/36430219&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330999</attachid>
            <date>2018-01-10 17:49:14 -0800</date>
            <delta_ts>2018-01-11 00:16:11 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>5507</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjY3NDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIE91ciBmb3ItaW4gY2FjaGluZyBpcyB3cm9uZyB3aGVuIHdlIGFkZCBp
bmRleGVkIHByb3BlcnRpZXMgb24gdGhpbmdzIGluIHRoZSBwcm90b3R5cGUgY2hhaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTUwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2Zvci1p
bi1wcm90b3R5cGUtd2l0aC1pbmRleGVkLXByb3BlcnRpZXMtc2hvdWxkLXByZXZlbnQtY2FjaGlu
Zy5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQpOgorICAgICAgICAodGVzdDEuZm9vKToKKyAg
ICAgICAgKHRlc3QxKToKKyAgICAgICAgKHRlc3QyLmZvbyk6CisgICAgICAgICh0ZXN0Mik6CisK
IDIwMTgtMDEtMDkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFT
U0VSVElPTiBGQUlMRUQ6IHBhaXIuc2Vjb25kLT5tX3R5cGUgJiBQcm9wZXJ0eU5vZGU6OkdldHRl
cgpJbmRleDogSlNUZXN0cy9zdHJlc3MvZm9yLWluLXByb3RvdHlwZS13aXRoLWluZGV4ZWQtcHJv
cGVydGllcy1zaG91bGQtcHJldmVudC1jYWNoaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
c3RyZXNzL2Zvci1pbi1wcm90b3R5cGUtd2l0aC1pbmRleGVkLXByb3BlcnRpZXMtc2hvdWxkLXBy
ZXZlbnQtY2FjaGluZy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9mb3ItaW4t
cHJvdG90eXBlLXdpdGgtaW5kZXhlZC1wcm9wZXJ0aWVzLXNob3VsZC1wcmV2ZW50LWNhY2hpbmcu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NyBAQAorInVzZSBzdHJpY3QiOworCitmdW5j
dGlvbiBhc3NlcnQoYikgeworICAgIGlmICghYikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yOwor
fQorCisKK2Z1bmN0aW9uIHRlc3QxKCkgeworICAgIGZ1bmN0aW9uIGZvbyhvKSB7CisgICAgICAg
IGxldCByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgcCBpbiBvKQorICAgICAgICAgICAg
cmVzdWx0LnB1c2gocCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIG5vSW5s
aW5lKGZvbyk7CisKKyAgICBsZXQgcCA9IHt9OworICAgIGxldCB4ID0ge19fcHJvdG9fXzogcH07
CisgICAgcFswXSA9IDI1OworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7ICsraSkgeworICAg
ICAgICBsZXQgcmVzdWx0ID0gZm9vKHgpOworICAgICAgICBhc3NlcnQocmVzdWx0Lmxlbmd0aCA9
PT0gMSk7CisgICAgICAgIGFzc2VydChyZXN1bHRbMF0gPT09ICIwIik7CisgICAgfQorCisgICAg
cFsxXSA9IDMwOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7ICsraSkgeworICAgICAgICBs
ZXQgcmVzdWx0ID0gZm9vKHgpOworICAgICAgICBhc3NlcnQocmVzdWx0Lmxlbmd0aCA9PT0gMik7
CisgICAgICAgIGFzc2VydChyZXN1bHRbMF0gPT09ICIwIik7CisgICAgICAgIGFzc2VydChyZXN1
bHRbMV0gPT09ICIxIik7CisgICAgfQorCisgICAgcFsyXSA9IHt9OworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMjA7ICsraSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gZm9vKHgpOworICAgICAg
ICBhc3NlcnQocmVzdWx0Lmxlbmd0aCA9PT0gMyk7CisgICAgICAgIGFzc2VydChyZXN1bHRbMF0g
PT09ICIwIik7CisgICAgICAgIGFzc2VydChyZXN1bHRbMV0gPT09ICIxIik7CisgICAgICAgIGFz
c2VydChyZXN1bHRbMl0gPT09ICIyIik7CisgICAgfQorfQordGVzdDEoKTsKKworZnVuY3Rpb24g
dGVzdDIoKSB7CisgICAgZnVuY3Rpb24gZm9vKG8pIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtd
OworICAgICAgICBmb3IgKGxldCBwIGluIG8pCisgICAgICAgICAgICByZXN1bHQucHVzaChwKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgbm9JbmxpbmUoZm9vKTsKKworICAg
IGxldCBwID0ge307CisgICAgbGV0IHggPSB7X19wcm90b19fOiBwfTsKKyAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGZvbyh4KTsKKyAgICAg
ICAgYXNzZXJ0KHJlc3VsdC5sZW5ndGggPT09IDApOworICAgIH0KKworICAgIHBbMF0gPSAzMDsK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IGZvbyh4KTsKKyAgICAgICAgYXNzZXJ0KHJlc3VsdC5sZW5ndGggPT09IDEpOworICAgICAgICBh
c3NlcnQocmVzdWx0WzBdID09PSAiMCIpOworICAgIH0KKworICAgIHBbMV0gPSB7fTsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGZvbyh4
KTsKKyAgICAgICAgYXNzZXJ0KHJlc3VsdC5sZW5ndGggPT09IDIpOworICAgICAgICBhc3NlcnQo
cmVzdWx0WzBdID09PSAiMCIpOworICAgICAgICBhc3NlcnQocmVzdWx0WzFdID09PSAiMSIpOwor
ICAgIH0KK30KK3Rlc3QyKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIyNjc0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wMS0xMCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KKworICAgICAgICBPdXIgZm9yLWluIGNhY2hpbmcgaXMgd3Jvbmcgd2hlbiB3ZSBh
ZGQgaW5kZXhlZCBwcm9wZXJ0aWVzIG9uIHRoaW5ncyBpbiB0aGUgcHJvdG90eXBlIGNoYWluCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE1MDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPdXIgZm9yLWlu
IGNhY2hpbmcgd291bGQgY2FjaGUgc3RydWN0dXJlIGNoYWlucyB0aGF0IGhhZCBwcm90b3R5cGVz
IHdpdGgKKyAgICAgICAgaW5kZXhlZCBwcm9wZXJ0aWVzLiBDbGVhcmx5IHRoaXMgaXMgd3Jvbmcu
IFRoaXMgY2FjaGluZyBicmVha3Mgd2hlbiBhIHByb3RvdHlwZQorICAgICAgICBhZGRzIG5ldyBp
bmRleGVkIHByb3BlcnRpZXMuIFdlIHdvdWxkIGNvbnRpbnVlIHRvIGVudW1lcmF0ZSB0aGUgb2xk
IGNhY2hlZAorICAgICAgICBzdGF0ZSBvZiBwcm9wZXJ0aWVzLCBhbmQgbm90IGluY2x1ZGUgdGhl
IG5ldyBpbmRleGVkIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBUaGUgb2xkIGNvZGUg
dXNlZCB0byBwcmV2ZW50IGNhY2hpbmcgb25seSBpZiB0aGUgYmFzZSBzdHJ1Y3R1cmUgaGFkCisg
ICAgICAgIGluZGV4ZWQgcHJvcGVydGllcy4gVGhpcyBwYXRjaCBleHRlbmRzIGl0IHRvIHByZXZl
bnQgY2FjaGluZyBpZiB0aGUKKyAgICAgICAgYmFzZSwgb3IgYW55IHN0cnVjdHVyZSBpbiB0aGUg
cHJvdG90eXBlIGNoYWluLCBoYXMgaW5kZXhlZCBwcm9wZXJ0aWVzLgorCisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNhbkNhY2hlUHJv
cGVydHlOYW1lRW51bWVyYXRvciBjb25zdCk6CisKIDIwMTgtMDEtMTAgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMjY2NjcgYW5kIHIyMjY2NzMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDIyNjc0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNDYsMTMg
KzEyNDYsMTcgQEAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBTdHJ1Y3R1cmU6OmNhYwogCiBi
b29sIFN0cnVjdHVyZTo6Y2FuQ2FjaGVQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKCkgY29uc3QKIHsK
LSAgICBpZiAoaXNEaWN0aW9uYXJ5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
IChoYXNJbmRleGVkUHJvcGVydGllcyhpbmRleGluZ1R5cGUoKSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBhdXRvIGNhbkNhY2hlID0gW10gKGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJl
KSB7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoaGFzSW5kZXhlZFByb3BlcnRpZXMoc3RydWN0dXJl
LT5pbmRleGluZ1R5cGUoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlm
IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OwogCi0g
ICAgaWYgKHR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygpKQorICAgIGlmICgh
Y2FuQ2FjaGUodGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cnVjdHVyZUNo
YWluKiBzdHJ1Y3R1cmVDaGFpbiA9IG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCk7CkBAIC0x
MjYwLDEyICsxMjY0LDEzIEBAIGJvb2wgU3RydWN0dXJlOjpjYW5DYWNoZVByb3BlcnR5TmFtZUVu
dW0KICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogc3RydWN0dXJlID0gc3RydWN0dXJlQ2hh
aW4tPmhlYWQoKTsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBpZiAoIXN0cnVjdHVyZS0+
Z2V0KCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+Z2V0KCkt
PmlzRGljdGlvbmFyeSgpIHx8IHN0cnVjdHVyZS0+Z2V0KCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcygpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlm
ICghY2FuQ2FjaGUoc3RydWN0dXJlLT5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIHN0cnVjdHVyZSsrOwogICAgIH0KLSAgICAKKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiB0cnVlOwogfQogICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>