On Sat, Oct 26, 2013 at 1:01 PM, Lucio Tato <[email protected]> wrote:

> It's really needed to make js syntax more complex in order to implement
> generators?
> It's function* really needed?
>
Yes, because `yield` is only reserved in strict mode code, which means this
is valid today:

  function g() { yield = 1; return yield; }

Since the starred generator function is a new syntactic form, there is no
existing code that it can possibly break by making yield a keyword.



> can you just expose "Generator" as a core function?
> can "yield" be a function-call-like-construct instead of a new language
> construction?
>

No, because there may already be code that defines a function called
`yield`, which would be broken if suddenly yield was a special
language-owned function. Consider this:

  // your code defines this...
  function yield() { return Number.MAX_VALUE; }

  // you then include my library, which exposes this fibonacci():

 function fibonacci() {
>     let [prev, curr] = [0, 1];
>     for (;;) {
>         [prev, curr] = [curr, prev + curr];
>         yield(curr);
>     }}
>
>
What does yield() do? It returns Number.MAX_VALUE every time.


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

Reply via email to