[[DefineOwnProperty]] wording nit

Allen Wirfs-Brock Allen.Wirfs-Brock at microsoft.com
Thu Sep 17 12:56:25 PDT 2009

Thanks for reading carefully.

There is already a fix to the note listed in the errata at http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft but looking at it again, I think that both interpretations are contextually assumed for different lines of the algorithm. I'll make a pass over it to try to eliminate any such ambiguity and update the errata later today.


>-----Original Message-----
>From: es-discuss-bounces at mozilla.org [mailto:es-discuss-
>bounces at mozilla.org] On Behalf Of Jason Orendorff
>Sent: Thursday, September 17, 2009 12:16 PM
>To: Jeff Walden
>Cc: es-discuss at mozilla.org
>Subject: Re: [[DefineOwnProperty]] wording nit
>On Sat, Sep 12, 2009 at 5:08 AM, Jeff Walden <jwalden+es at mit.edu> wrote:
>> "If a field is absent then the result of any test of its value is
>> false."
>> I believe there are two plausible ways to interpret this: any
>evaluation of
>> desc.[[Something]] when there is no [[Something]] field returns the
>> false, or the result of any comparison which evaluates
>> must be false.
>The second is certainly not how I would have interpreted it cold. It
>doesn't seem like a reasonable interpretation of the text.
>> The difference shows up in step 7b, whose wording is:
>> "Reject, if the [[Enumerable]] fields of current and Desc are the
>> negation of each other."
>> Under the first interpretation, if there is no [[Enumerable]] field in
>> then never Reject.
>> Under the second interpretation, if there is no [[Enumerable]] field
>> Desc, *and* if current.[[Enumerable]] is true, then Reject.
>I think you have the two interpretations reversed here; under the
>second interpretation (the one that doesn't seem reasonable to me), if
>[[Enumerable]] is missing, we never Reject.
>> Past email to this list makes clear the first interpretation was the
>> one.
>(assuming you mean the second interpretation)
>Yow. This is very unintuitive. To me, the spec seems to say the
>opposite of what's intended here.
>Perhaps modifying step 7b to explicitly say "Reject, if [[Enumerable]]
>is present in Desc and...", is a less arcane approach to fixing this.
>(That might not be the only change needed though.)
>es-discuss mailing list
>es-discuss at mozilla.org

More information about the es-discuss mailing list