'function *' is not mandatory

Yuichi Nishiwaki yuichi.nishiwaki at gmail.com
Sat Aug 31 12:15:04 PDT 2013

Hi all, I just found a post that the current generator syntax
(function *) seems have decided in:


According to the post, the biggest reason the star syntax is adopted
for now is that you cannot write empty generators with star-less
functions in a consistent simple way. But the situation has changed,
and in the current spec (rev 17) yield* is now capable of taking any
kind of iterator, so you can make empty generators just like

function * () {
    yield * [];

This looks enough good and simple at least to me. And I wonder if even
now generators still need to be declared with 'star's. What are the
advantages of 'star'ed generators rather than 'star'-lesses? If not
exist, shouldn't it be removed (for the simplicity)?

Thank you.

Yuichi Nishiwaki

More information about the es-discuss mailing list