On Tue, Sep 3, 2013 at 9:54 PM, François REMY <[email protected]> wrote: > - We don't want to introduce magic stuff where it isn't needed, but we > want to keep most of the power of syntaxic sugar. Iterators are kinda > achievable in pure ES5, only complex to write (state machine) and sometimes > even more to read. However we should probably allow someone that want to > implement is own "yield" logic to do so if he wants to, and not restrict the > Iterator usage to the sole built-in "yield syntax" (this follows the > Extensible Web principles).
It sounds like you are saying that generators are too high-level, and it would be better to expose a lower-level primitive. But what would that lower-level primitive be? What operations would it expose? > When working under this set of assumptions, I came with the following idea: > [...] > Basically, using yield into a function create a state machine for the > function and does run the function normally until the first encountered state > switch (first yield statement here). In some sense, the function is almost > normal, we could barely consider this kind of "yield" like a new kind of > "return" that also return a pointer to a function that allows to continue the > execution. You can totally write that in plain JS which will allow > TypeScript-like compilers to generate for you the ES5-compatible code for > your ES6 iterator, and use it on ES5-compatible browsers the exact same way > you do on an ES6-browser. How is any of this different from generators? http://goo.gl/Flf2ru -j _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

