<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 27, 2015 at 5:53 PM, Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu" target="_blank">bzbarsky@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On 1/27/15 4:44 PM, Mark S. Miller wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Since the WindowProxy is not a Proxy, or more relevantly, even if it<br>
were a Proxy, the underlying Window is not its target, we can even do<br>
the following:<br>
<br>
When the WindowProxy sees the defineProperty with the omitted<br>
"configurable:" and determines that the underlying Window does not<br>
already have this property. WindowProxy can even preserve the<br>
unwarranted intent expressed in the comment by actually defining a<br>
*non-configurable* own property on the Window itself. However, the<br>
behavior of the WindowProxy is not observably different than our Proxy<br>
example: It acts as if it created a configurable own property on the<br>
WindowProxy of this same name, and then proceeds with the normal<br>
defineProperty behavior, which preserves that alleged configurability.<br>
</blockquote>
<br></span>
I'd like to understand better the suggestion here, because I'm not sure I'm entirely following it.  Specifically, I'd like to understand it in terms of the internal methods defined by <<a href="https://github.com/domenic/window-proxy-spec" target="_blank">https://github.com/domenic/<u></u>window-proxy-spec</a>>.<br>
<br>
Presumably you're proposing that we keep all of that as-is except for [[DefineOwnProperty]], right?<br>
<br>
For [[DefineOwnProperty]], are we basically talking about changing step 1 to:<br>
<br>
1)  If the [[Configurable]] field of Desc is present and Desc.[[Configurable]] is false, then throw a TypeError exception.<br>
<br>
while keeping everything else as-is,</blockquote><div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)">Exactly correct. I didn't realize until reading your reply is that this is all that's necessary -- that it successfully covers all the cases I was thinking about without any further case division.</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> as opposed to the behavior I'd understood we were aiming for, which was:<br>
<br>
1)  If the [[Configurable]] field of Desc is not present or Desc.[[Configurable]] is false, then throw a TypeError exception. </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
?  If so, that's certainly a change that is much more likely to be web-compatible...</blockquote><div><br></div><div>Good! It certainly takes care of the one concrete breakage we know about so far.</div><div><br></div><div><br></div></div><div><br></div>-- <br><div class="gmail_signature">    Cheers,<br>    --MarkM</div>
</div></div>