domenic at domenicdenicola.com (2013-09-08T00:53:22.273Z)
I can't get the point, why you need to know if the function is a generator or not at a glance? 1. Forcing users to mark the function as a generator is only a duplication. It basically doesn't have any meaning other than double-checking, and fundamental risk for the unintentional creation is still not removed. 2. Even if you know the function is a generator in early, you still need to read the entire source code to get the information about what the generator yields and when it stops.
I can't get the point, why you need to know if the function is a generator or not at a glance? 1. Forcing users to mark the function as a generator is only a duplication. It basically doesn't have any meaning other than double-checking, and fundamental risk for the unintentional creation is still not removed. 2. Even if you know the function is a generator in early, you still need to read the entire source code to get the information about what the generator yields and when it stops. 2013/9/1 Oliver Hunt <oliver at apple.com>: > > On Aug 31, 2013, at 12:15 PM, Yuichi Nishiwaki <yuichi.nishiwaki at gmail.com> wrote: > >> Hi all, I just found a post that the current generator syntax >> (function *) seems have decided in: >> >> https://mail.mozilla.org/pipermail/es-discuss/2011-July/015799.html >> >> 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 >> >> ```js >> 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)? >> > > The reason for the * is substantially (IIRC) to make it possible for an engine > to help prevent developers from unintentionally creating a generator function, > and to make it possible for someone attempting to use a function to identify immediately > whether it is a generator or a regular function. > > --Oliver > >> Thank you. >> >> -- >> Yuichi Nishiwaki >> _______________________________________________ >> es-discuss mailing list >> es-discuss at mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >