Currently, it's not allowed that arrow functions be generators. I did a bit of searching and couldn't find the original reasoning behind this. `*() => {}` doesn't seem to be a problematic grammar since `foo * () => {}` isn't valid. The problem I do see is the mismatch between the generator class hierarchy and the fact that arrow functions don't have prototypes. I think this could be worked around somehow though.

The use case I've started running into a lot is using Task.js with methods:

```js
class Foo {
  foo() { //--> Promise
    return Task.spawn(*() => {
      const value = yield this.get(this.base + "/foo");
      if (yield this.bar(value)) {
        return true;
      }
    });
  }

  bar(value) { //--> Promise
    /***/
  }

  get(url) { //--> Promise
    /***/
  }
}
```

Without generator arrows, I'm back to using `var self = this` or `.bind(this)`.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to