Reason why generators do not have references to themselves?

Domenic Denicola domenic at
Fri Jan 24 06:40:36 PST 2014

It seems like this is largely a matter of personal aesthetics ("feels dirty," "hacky," etc.) but nothing is wrong or even hard functionally. Furthermore given the prevalence of code out there that uses such "hacks" without compunction, it seems that your aesthetics are not shared by most.

Maybe the easiest path toward resolving this, um, problem?, is simply adjusting your preferences to recognize this kind of code for the beautiful code it is.

On Jan 24, 2014, at 4:07, "Bradley Meck" <bradley.meck at<mailto:bradley.meck at>> wrote:

Taking note with async polyfills and syntax for a minute. I spent a fair amount of time actually writing the spec of my intent/goal after getting some thought and working things through in my head (varies slightly from old 2011 await):

I can get really close with sweet.js (see gist), but as such I still have to use new when invoking the generator function which feels dirty in my mind.
Perhaps if I did some crazy code transforms to test if the generator function was using await it would work. That would require me to wrap it similar to how task.js and all the other libraries IRC bombarded me with. I think it very strange that they all:

  1. make a promise that will be returned (finalPromise)
  2. call the generator and hook it up to the promise
  3. don't appear to have a clean way to make the generator continue without resolving finalPromise and without forcing the generator to completion
      * bluebird's Promise.coroutine comes closeish but still needs to run the generator to completion

It seems that every approach I am taking gets me slightly closer, but none are a clean way for a generator to iterate itself without some hacky argument passing and wrapping.

PS. Sorry about the horrifying sweet.js macro, but it is functional enough in Chrome with experimental JS from what I tried out.

On Fri, Jan 24, 2014 at 2:18 AM, David Herman <dherman at<mailto:dherman at>> wrote:
On Jan 23, 2014, at 4:49 PM, Brendan Eich <brendan at<mailto:brendan at>> wrote:

> Domenic Denicola wrote:
>> Task.js is still on "JavaScript1.8,"  and is not ES6-compatible. It won't work with modern browsers, or with Regenerator.
> Fork and fix, should be easy. I expect a PR would be accepted in due course. SpiderMonkey seems to have ES6 generator support somewhat there (thanks to Andy Wingo), should be all there soon enough.

Working on it lately, actually. And using regenerator for the tests (\o/)! Also drastically simplifying the library since the customizable scheduler stuff, while kind of neat, is probably less compelling than a minimal library. Down to under 150 lines, unminified with comments, and still shrinking...


es-discuss mailing list
es-discuss at<mailto:es-discuss at>

es-discuss mailing list
es-discuss at<mailto:es-discuss at>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list