Генераторы имеют особый синтаксис. Заключается он в добавлении звёздочки к определениям функций, за исключением стрелочных функций и объявлений геттеров и сеттеров. В результате получаются объявления функций и методов, функциональные выражения, и даже конструкторы.
// Объявление генератораfunction*BindingIdentifer() {}// Ещё одно объявление не слишком анонимного генератораexportdefaultfunction*() {}// Анонимное выражение генератора(function*() {});// Определение методовlet object = {*methodName() {},*["computedName"]() {}};// Определение методов в объявлении классаclassC {*methodName() {}*["computedName"]() {}}// Определение статических методов в объявлении классаclassC {static*methodName() {}static*["computedName"]() {}}// Определение методов в выражении классаletC=class {*methodName() {}*["computedName"]() {}};// Определение статических методов в выражении классаletC=class {static*methodName() {}static*["computedName"]() {}};