<?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>173321</bug_id>
          
          <creation_ts>2017-06-13 12:47:07 -0700</creation_ts>
          <short_desc>DFG doesn&apos;t properly handle a property that is change to read only in a prototype</short_desc>
          <delta_ts>2017-06-13 15:42:42 -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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1318748</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-06-13 12:47:07 -0700</bug_when>
    <thetext>Consider the code:

var SimpleObject = function () {
    this.a = 0;
    this.b = 1;
    this.c = 2;
}

var proto = { p: 100 };

SimpleObject.prototype = proto;

var test = function () {
    var o = new SimpleObject();
    o.x = 10;
    o.y = 11;
    return o;
}

The results of calling test() is an object like:
    { a: 0, b: 1, c: 2, p: 100, x: 10, y: 11 }

If you then call
    Object.defineProperty(proto, &quot;a&quot;, { value: 101, writable: false });

The results of calling test() should be an object like:
    { a: 101, b: 1, c: 2, p: 100, x: 10, y: 11 }

The DFG doesn&apos;t check for the ReadOnly case and therefore doesn&apos;t reflect the change in prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318816</commentid>
    <comment_count>1</comment_count>
      <attachid>312808</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-06-13 14:23:00 -0700</bug_when>
    <thetext>Created attachment 312808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318817</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-06-13 14:23:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/28476667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318835</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-06-13 14:52:08 -0700</bug_when>
    <thetext>Committed r218203: &lt;http://trac.webkit.org/changeset/218203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318870</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-06-13 15:42:42 -0700</bug_when>
    <thetext>*** Bug 162567 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312808</attachid>
            <date>2017-06-13 14:23:00 -0700</date>
            <delta_ts>2017-06-13 14:24:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>173321.patch</filename>
            <type>text/plain</type>
            <size>5355</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTgyMDIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE3LTA2LTEzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBw
bGUuY29tPgorCisgICAgICAgIERGRyBkb2Vzbid0IHByb3Blcmx5IGhhbmRsZSBhIHByb3BlcnR5
IHRoYXQgaXMgY2hhbmdlIHRvIHJlYWQgb25seSBpbiBhIHByb3RvdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzIxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDaGFrcmFDb3JlLnlhbWw6IFJl
bmFibGVkIGZpZWxkb3B0cy9vYmp0eXBlc3BlYy1uZXdvYmotaW52YWxpZGF0aW9uLjEuanMuCisg
ICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTczMzIxLmpzOiBBZGRlZCBuZXcgcmVncmVzc2lvbiB0
ZXN0LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoU2ltcGxlT2JqZWN0KToKKyAgICAg
ICAgKHRlc3QpOgorCiAyMDE3LTA2LTEyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFVwZGF0ZSB0ZXN0MjYyIHRlc3QgZXhwZWN0YXRpb24gc2luY2UgcjIxODA4
MiBtYWtlcyBuZXcgdGVzdHMgcGFzcy4KSW5kZXg6IEpTVGVzdHMvQ2hha3JhQ29yZS55YW1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hha3JhQ29yZS55YW1sCShyZXZpc2lvbiAyMTgxMjkpCisr
KyBKU1Rlc3RzL0NoYWtyYUNvcmUueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjA0NCw4ICsyMDQ0
LDcgQEAKIC0gcGF0aDogQ2hha3JhQ29yZS90ZXN0L2ZpZWxkb3B0cy9vYmp0eXBlc3BlYy1uZXdv
YmouMi5qcwogICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJvYmp0
eXBlc3BlYy1uZXdvYmouMi5iYXNlbGluZSIsIFtdCiAtIHBhdGg6IENoYWtyYUNvcmUvdGVzdC9m
aWVsZG9wdHMvb2JqdHlwZXNwZWMtbmV3b2JqLWludmFsaWRhdGlvbi4xLmpzCi0gICMgRklYTUU6
IFJlLWVuYWJsZSBvbmNlIGZsYWtpbmVzcyBpcyByZXNvbHZlZCAoaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU2NykKLSAgY21kOiBydW5DaGFrcmEgOnNraXAsICJO
b0V4Y2VwdGlvbiIsICJvYmp0eXBlc3BlYy1uZXdvYmotaW52YWxpZGF0aW9uLjEuYmFzZWxpbmUi
LCBbXQorICBjbWQ6IHJ1bkNoYWtyYSA6YmFzZWxpbmUsICJOb0V4Y2VwdGlvbiIsICJvYmp0eXBl
c3BlYy1uZXdvYmotaW52YWxpZGF0aW9uLjEuYmFzZWxpbmUiLCBbXQogLSBwYXRoOiBDaGFrcmFD
b3JlL3Rlc3QvZmllbGRvcHRzL29ianR5cGVzcGVjLW5ld29iai1pbnZhbGlkYXRpb24uMi5qcwog
ICAjIERpZmZlcmVudCBiZWhhdmlvciB3aGVuIHJ1biBvbiAzMiBiaXQgSlNDLgogICBjbWQ6IHJ1
bkNoYWtyYSA6c2tpcCwgIk5vRXhjZXB0aW9uIiwgIm9ianR5cGVzcGVjLW5ld29iai1pbnZhbGlk
YXRpb24uMi5iYXNlbGluZSIsIFtdCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MzMy
MS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MzMyMS5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE3MzMyMS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU2IEBACit2YXIgY2hlY2tzID0gMDsKKworZnVuY3Rpb24gc2hvdWxk
QmUobywgdGVzdE9iaikKK3sKKyAgICBjaGVja3MgPSBjaGVja3MgKyAxOworCisgICAgaWYgKG8u
YSAhPSB0ZXN0T2JqLmEpCisgICAgICAgIHRocm93ICJDaGVjayAjIiArIGNoZWNrcyArICIgby5h
IHNob3VsZCBiZSAiICsgdGVzdE9iai5hICsgIiAsIGlzICIgKyBvLmE7CisKKyAgICBpZiAoby5i
ICE9IHRlc3RPYmouYikKKyAgICAgICAgdGhyb3cgIkNoZWNrICMiICsgY2hlY2tzICsgIiBvLmIg
c2hvdWxkIGJlICIgKyB0ZXN0T2JqLmIgKyAiICwgaXMgIiArIG8uYjsKKworICAgIGlmIChvLmMg
IT0gdGVzdE9iai5jKQorICAgICAgICB0aHJvdyAiQ2hlY2sgIyIgKyBjaGVja3MgKyAiIG8uYyBz
aG91bGQgYmUgIiArIHRlc3RPYmouYyArICIgLCBpcyAiICsgby5jOworCisgICAgaWYgKG8ucCAh
PSB0ZXN0T2JqLnApCisgICAgICAgIHRocm93ICJDaGVjayAjIiArIGNoZWNrcyArICIgby5wIHNo
b3VsZCBiZSAiICsgdGVzdE9iai5wICsgIiAsIGlzICIgKyBvLnA7CisKKyAgICBpZiAoby54ICE9
IHRlc3RPYmoueCkKKyAgICAgICAgdGhyb3cgIkNoZWNrICMiICsgY2hlY2tzICsgIiBvLnggc2hv
dWxkIGJlICIgKyB0ZXN0T2JqLnggKyAiICwgaXMgIiArIG8ueDsKKworICAgIGlmIChvLnkgIT0g
dGVzdE9iai55KQorICAgICAgICB0aHJvdyAiQ2hlY2sgIyIgKyBjaGVja3MgKyAiIG8ueSBzaG91
bGQgYmUgIiArIHRlc3RPYmoueSArICIgLCBpcyAiICsgby55OworfQorCit2YXIgdGVzdE9iaklu
aXRpYWwgPSB7IGE6IDAsIGI6IDEsIGM6IDIsIHA6IDEwMCwgeDogMTAsIHk6IDExIH07Cit2YXIg
dGVzdE9iakFmdGVyUmVhZE9ubHlQcm9wZXJ0eSA9IHsgYTogMTAxLCBiOiAxLCBjOiAyLCBwOiAx
MDAsIHg6IDEwLCB5OiAxMSB9OworCit2YXIgU2ltcGxlT2JqZWN0ID0gZnVuY3Rpb24gKCkgewor
ICAgIHRoaXMuYSA9IDA7CisgICAgdGhpcy5iID0gMTsKKyAgICB0aGlzLmMgPSAyOworfQorCit2
YXIgcHJvdG8gPSB7IHA6IDEwMCB9OworCitTaW1wbGVPYmplY3QucHJvdG90eXBlID0gcHJvdG87
CisKK3ZhciB0ZXN0ID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBvID0gbmV3IFNpbXBsZU9iamVj
dCgpOworICAgIG8ueCA9IDEwOworICAgIG8ueSA9IDExOworICAgIHJldHVybiBvOworfQorCitz
aG91bGRCZSh0ZXN0KCksIHRlc3RPYmpJbml0aWFsKTsKK3Nob3VsZEJlKHRlc3QoKSwgdGVzdE9i
akluaXRpYWwpOworc2hvdWxkQmUodGVzdCgpLCB0ZXN0T2JqSW5pdGlhbCk7CisKKy8vIENoYW5n
ZSB0aGUgcHJvdG90eXBlIGNoYWluIGJ5IG1ha2luZyAiYSIgcmVhZC1vbmx5LgorT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHByb3RvLCAiYSIsIHsgdmFsdWU6IDEwMSwgd3JpdGFibGU6IGZhbHNlIH0p
OworCisvLyBSdW4gYSBidW5jaCBvZiB0aW1lcyB0byB0aWVyIHVwLgorZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgaSsrKQorICAgIHNob3VsZEJlKHRlc3QoKSwgdGVzdE9iakFmdGVyUmVhZE9u
bHlQcm9wZXJ0eSk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE4
MjAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE3LTA2LTEzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBw
bGUuY29tPgorCisgICAgICAgIERGRyBkb2Vzbid0IHByb3Blcmx5IGhhbmRsZSBhIHByb3BlcnR5
IHRoYXQgaXMgY2hhbmdlIHRvIHJlYWQgb25seSBpbiBhIHByb3RvdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzIxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgbmVlZCB0byBjaGVjayBmb3Ig
UmVhZE9ubHkgYXMgd2VsbCBhcyBhIG5vdCBiZWluZyBhIFNldHRlciB3aGVuIGNoZWNraW5nCisg
ICAgICAgIGFuIEFic2VuY2VPZlNldHRlci4KKworICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5
Q29uZGl0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlDb25kaXRpb246OmlzU3RpbGxW
YWxpZEFzc3VtaW5nSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50KToKKwogMjAxNy0wNi0xMyAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFczQyBT
ZWN1cmUgQ29udGV4dHMgRHJhZnQgU3BlY2lmaWNhdGlvbgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCShyZXZpc2lv
biAyMTgxMjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25k
aXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDEwIEBAIGJvb2wgUHJvcGVy
dHlDb25kaXRpb246OmlzU3RpbGxWYWxpZEFzc3UKICAgICAgICAgdW5zaWduZWQgY3VycmVudEF0
dHJpYnV0ZXM7CiAgICAgICAgIFByb3BlcnR5T2Zmc2V0IGN1cnJlbnRPZmZzZXQgPSBzdHJ1Y3R1
cmUtPmdldENvbmN1cnJlbnRseSh1aWQoKSwgY3VycmVudEF0dHJpYnV0ZXMpOwogICAgICAgICBp
ZiAoY3VycmVudE9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0KSB7Ci0gICAgICAgICAgICBpZiAoY3Vy
cmVudEF0dHJpYnV0ZXMgJiAoQWNjZXNzb3IgfCBDdXN0b21BY2Nlc3NvcikpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBHaXZlbiB0aGUgYWRkaXRpb24gb2YgdGhlIGNoZWNrIGZvciBSZWFkT25s
eSBhdHRyaWJ1dGVzLCB3ZSBzaG91bGQgcmVmYWN0b3IKKyAgICAgICAgICAgIC8vIGluc3RhbmNl
cyBvZiBBYnNlbmNlT2ZTZXR0ZXIuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzIyIC0gUmVmYWN0b3IgQWJzZW5jZU9mU2V0dGVyIHRv
IHNvbWV0aGluZyBsaWtlIEFic2VuY2VPZlNldEVmZmVjdHMKKyAgICAgICAgICAgIGlmIChjdXJy
ZW50QXR0cmlidXRlcyAmIChSZWFkT25seSB8IEFjY2Vzc29yIHwgQ3VzdG9tQWNjZXNzb3IpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGJlY2F1c2Ugd2UgZXhwZWN0
ZWQgbm90IHRvIGhhdmUgYSBzZXR0ZXIsIGJ1dCB3ZSBoYXZlIG9uZSBhdCBvZmZzZXQgIiwK
</data>
<flag name="review"
          id="333715"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>