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.
Allen >-----Original Message----- >From: [email protected] [mailto:es-discuss- >[email protected]] On Behalf Of Jason Orendorff >Sent: Thursday, September 17, 2009 12:16 PM >To: Jeff Walden >Cc: [email protected] >Subject: Re: [[DefineOwnProperty]] wording nit > >On Sat, Sep 12, 2009 at 5:08 AM, Jeff Walden <[email protected]> wrote: >> "If a field is absent then the result of any test of its value is >logically >> false." >> >> I believe there are two plausible ways to interpret this: any >evaluation of >> desc.[[Something]] when there is no [[Something]] field returns the >value >> false, or the result of any comparison which evaluates >desc.[[Something]] >> 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 >Boolean >> negation of each other." >> >> Under the first interpretation, if there is no [[Enumerable]] field in >Desc, >> then never Reject. >> >> Under the second interpretation, if there is no [[Enumerable]] field >in >> 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 >desired >> 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.) > >-j >_______________________________________________ >es-discuss mailing list >[email protected] >https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

