Mark S. Miller (2015-01-28T18:57:29.000Z)
d at domenic.me (2015-01-28T19:12:22.207Z)
On Wed, Jan 28, 2015 at 8:51 AM, Domenic Denicola <d at domenic.me> wrote: > Assuming W's [[DefineOwnProperty]] is that of an ordinary object, I > believe that takes us through OrdinaryDefineOwnProperty(W, P, Desc). Since > P does not exist on W, and W is extensible, that takes us to > ValidateAndApplyPropertyDescriptor(O, P, true, Desc, undefined). Then > according to step 2.c, " If the value of an attribute field of Desc is > absent, the attribute of the newly created property is set to its default > value." The default value is false, right? So won't this try to define a > non-configurable property on W? In this situation, it will try and succeed. This more closely obeys the intent in the original code (e.g., the comment in the jQuery code), since it creates a non-configurable property on the *Window* W. It does not violate any invariant, since all that's observable on the *WindowProxy* (given the rest of your draft spec, which remain unchanged) is a configurable property of the same name.