some generator issues
Yuh-Ruey Chen
maian330 at gmail.com
Tue May 8 18:09:02 PDT 2007
Lars T Hansen wrote:
> In a sense, 'this' is really a keyword shorthand for something we can
> think of as 'arguments.receiver'.
>
> I would dearly like to see the arguments object fall into disuse.
> Yuh-Ruey writes he likes to use 'arguments.callee' to reference the
> current function regardless of its name; now we have use cases for
> 'arguments.generator'. IMO this is not moving in the right direction
> :-)
>
> Perhaps what we need is a little more syntax without more keywords.
> Let 'function' and 'generator' be contextual keywords that can appear
> following 'this' without an intervening newline (obviously "function"
> is a keyword already). Then
>
> this function
>
> names the current function without having to worry about the name of
> the function or about looking it up in the nesting scope (ie, it's
> like arguments.callee), and
>
> this generator
>
> names the generator object as the proposed arguments.generator would.
>
> --lars
>
I like it. What's the operator precedence?
I wonder if this can be extended to iterators in general. Since
generator functions are essentially sugar (albeit really awesome sugar +
send() + close()) for iterators, |this generator| could be generalized
to |this iterator|. Although generator-iterators are different from
normal iterators, they are iterators nonetheless. I can't think of any
use cases of the top of my head, and I'm not sure how it would be done,
considering that iterators are a protocol, not some class (i.e. I'm not
sure how ES can determine |this iterator| when the user calls
iter.next() for a user-defined iterator).
More information about the Es4-discuss
mailing list