Inactive
Classification: Syntactic Change
Human Validated: KW
Title: Generator arrow functions
Authors: Sergey Rubanov, Brendan Eich
Withdrawn: no interested champions in February 2024
Last Presented: 2016-09-29
Stage Upgrades:
Stage 1: 2019-10-21
Stage 2: NA
Stage 2.7: NA
Stage 3: NA
Stage 4: NA
Last Commit: 2020-07-25
Topics: iterators functions
Keywords: generator lambda
GitHub Link: https://github.com/tc39/proposal-generator-arrow-functions
GitHub Note Link: https://github.com/tc39/notes/blob/HEAD/meetings/2016-09/sept-27.md#11ic-generator-arrow-functions

Proposal Description:

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