- From: Tobie Langel <notifications@github.com>
- Date: Mon, 07 Aug 2017 10:39:28 +0000 (UTC)
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/402/review/54618522@github.com>
tobie commented on this pull request. Thanks a lot for making this. Overall this looks really solid! Couple of comments and questions below (this is a part of the spec I'm not super familiar with, so please bear with me if some of those are silly). > + + When the \[[OwnPropertyKeys]] internal method of a [=legacy platform object=] |O| is called, + the following steps are taken: + + 1. Let |keys| be a new empty [=list=] of ECMAScript String and Symbol values. + 1. If |O| [=support indexed properties|supports indexed properties=], then [=list|for each=] |index| of |O|’s + [=supported property indices=], in ascending numerical order, [=list|append=] [=!=] [=ToString=](|index|) to + |keys|. + 1. If |O| [=support named properties|supports named properties=], then [=list|for each=] |P| of |O|’s + [=supported property names=] that is visible according to the [=named property visibility algorithm=], + [=list|append=] |P| to |keys|. + 1. [=list|For each=] |P| of |O|’s own property keys that is a String, in ascending chronological order of + property creation, [=list|append=] |P| to |keys|. + 1. [=list|For each=] |P| of |O|’s own property keys that is a Symbol, in ascending chronological order of + property creation, [=list|append=] |P| to |keys|. + 1. Assert: |keys| has no duplicate items. Why not used an ordered list instead (as you initially) suggested? > @@ -12014,19 +12014,26 @@ However, for [=legacy platform objects=], properties on the object must be enumerated in the following order: -1. If the object [=support indexed properties|supports indexed properties=], then - the object’s [=supported property indices=] are - enumerated first, in numerical order. -1. If the object [=support named properties|supports named properties=] and doesn't implement an [=interface=] with the - [{{LegacyUnenumerableNamedProperties}}] The effects of the [{{LegacyUnenumerableNamedProperties}}] extended attribute seem totally gone from the updated algorithm. Is that on purpose? > -1. Finally, any enumerable own properties or properties from the object’s prototype chain are then enumerated, - in no defined order. - -Note: Future versions of the ECMAScript specification may define a total order for property enumeration. +<div algorithm="to invoke the internal [[OwnPropertyKeys]] method of legacy platform objects"> + + When the \[[OwnPropertyKeys]] internal method of a [=legacy platform object=] |O| is called, + the following steps are taken: + + 1. Let |keys| be a new empty [=list=] of ECMAScript String and Symbol values. + 1. If |O| [=support indexed properties|supports indexed properties=], then [=list|for each=] |index| of |O|’s + [=supported property indices=], in ascending numerical order, [=list|append=] [=!=] [=ToString=](|index|) to + |keys|. + 1. If |O| [=support named properties|supports named properties=], then [=list|for each=] |P| of |O|’s + [=supported property names=] that is visible according to the [=named property visibility algorithm=], + [=list|append=] |P| to |keys|. Are these also in ascending chronological order? > @@ -12014,19 +12014,26 @@ However, for [=legacy platform objects=], properties on the object must be Would be great to add a small blurb here that this is done by the [[OwnPropertyKeys]] method, e.g: ``` This document does not define a complete property enumeration order for [=platform objects=] implementing [=interfaces=] (or for <a href="#es-exception-objects">platform objects representing exceptions</a>). However, it does for [=legacy platform objects=] by defining the \[[OwnPropertyKeys]] method as follows: ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/heycam/webidl/pull/402#pullrequestreview-54618522
Received on Monday, 7 August 2017 10:39:55 UTC