ECMAScript proposal: Generator Arrow Functions

Authors: Sergey Rubanov

Champion: Hemanth HM, Brendan Eich (?)

Stage: Stage 1 of the TC39 process.

Motivation

Experience so far has been that people love arrow functions and generators and want a generator arrow. — Brendan Eich

Both arrow functions and generators are available since ES2015. Often people want to use generator arrow and this proposal (which was raised years ago) should solve their needs.

Use cases

Possible solutions

Discussion of future syntax: https://github.com/tc39/proposal-generator-arrow-functions/issues/2

Arrow function syntax

// Irregular
() =*> ...

// not the same order as in regular generator functions
() =>* ...

// also wrong order
() *=> ...

// ASI hazard
*() => ...

Introduce new generator keyword for both function and arrow function

generator function() {}
const foo = async generator function() {};

class Foo {
  x = 1
  // No more ASI hazard!
  generator foo() {}
}

TC39 meeting notes

Prior discussions

Implementations

  • none yet