On Aug 10, 2015, at 1:35 AM, Jordan Harband wrote:

> I interpreted this spec text (and the included generator code example) to 
> mean that the first "next" is the thing that determines the keys to be 
> enumerated - since the generator function body (including the Reflect.ownKeys 
> call) is not executed until that point.

The generator-based definition was intended to only be an informative example 
of a conforming enumeration algorithm. Anything it does that goes beyond 
requirements stated in the  normative prose should not be considered a 
normative requirement. The deferral of all setup processing to the first  
`next` call is simply an artifact of the how generators works.

> 
> The question was also raised on that linked bug, why does the spec leave 
> behavior undefined for keys added during enumeration? It seems like the spec 
> should either dictate that added keys are *not* enumerated, or, that they are 
> *always* enumerated.

See my previous reply.  When decisions about for-in were made for ES6, TC39 was 
not yet ready to try to mandate a normative enumeration order or other 
historically unspecified for-in semantic details. This could be reconsider in a 
future edition.

Allen


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to