Axel Rauschmayer wrote:
As an aside, I still feel that two concerns are mixed in a generator function:

* The creation of the generator object. This is where the generator function is like a constructor and where you’d expect `this` to refer to the generator object.

Nope, not a constructor (and if you don't call with 'new', what is 'this', pray tell?).

* The behavior. This is where the generator function is like a real function.

A result of this mixing of concerns is that using `next()` to start a generator feels slightly off and that the argument of that first `next()` invocation is completely ignored.

We've discussed a special generator head form to declare that name, but not for ES6. For now it's Pythonic, except we decided not to throw if the initial .next call passes a non-undefined value.

Alas, I have no idea how to disentangle these concerns, but it would be nice if we were able to.

We're not changing generators at this point, but Nicholas's request for a way to reference the running generator-iterator instance is worth discussing more. It can't and shouldn't be 'this'. Does it violate POLA to provide (via another special form) for all generators? Users can provide their own bindings as noted, so is it a big problem?

I think the task.js reference, and ES7 async/await, point to a better direction: use helpers (libraries now, syntax soon) to automate harder and avoid the need for the "me" reference.

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

Reply via email to