'function *' is not mandatory

Yuichi Nishiwaki yuichi.nishiwaki at gmail.com
Sat Aug 31 12:55:27 PDT 2013


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
>


More information about the es-discuss mailing list