# Multiple generators improvements and syntax sugar

**URL:** <https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274>\
**Category:** 💡 Ideas\
**Tags:** proposal\
**Created:** [March 23, 2020, 3:33pm UTC](https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274 "2020-03-23T15:33:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Misiur](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/misiur/32/283_2.png) [@Misiur](https://es.discourse.group/u/Misiur)\
**Post date:** [March 23, 2020, 3:33pm UTC](https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274/1 "2020-03-23T15:33:06Z")

</div>

Seeking for champion

[Proposal draft](https://github.com/Misiur/proposal-multiple-generators/blob/8ca2c476def26c3f5231461fe52cbabd93830059/spec.md)

---

<div class="post-metadata">

**Author:** ![bergus](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/bergus/32/152_2.png) [@bergus](https://es.discourse.group/u/bergus)\
**Post date:** [March 23, 2020, 6:55pm UTC](https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274/2 "2020-03-23T18:55:49Z")

</div>

Hi,  
to be honest I don't see much of a difference between

```javascript
for (const item of multi[^alt]) …
const arr = [...multi[^other]];

```

and

```javascript
for (const item of multi.alt()) …
const arr = [...multi.other()];

```

So where exactly is the benefit?

---

<div class="post-metadata">

**Author:** ![Misiur](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/misiur/32/283_2.png) [@Misiur](https://es.discourse.group/u/Misiur)\
**Post date:** [March 23, 2020, 7:53pm UTC](https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274/3 "2020-03-23T19:53:25Z")

</div>

I'd say a quick switch of default iterator implementation. Adding an alias for a generator function. Skipping misleading function call as well.

Related question, is it possible to alias a function?

```javascript
class Foo
{
  *bar() {}
  *baralias() (this.bar)
  // Normally used like
  *barnormal() { return this.bar.bind(this); }
}

```

---

<div class="post-metadata">

**Author:** ![bergus](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/bergus/32/152_2.png) [@bergus](https://es.discourse.group/u/bergus)\
**Post date:** [March 24, 2020, 1:18pm UTC](https://es.discourse.group/t/multiple-generators-improvements-and-syntax-sugar/274/4 "2020-03-24T13:18:04Z")

</div>

The function call is not misleading at all, why do you think it is confusing?

> [@Misiur](#):
>
> is it possible to alias a function?

Sure, you can just write

```javascript
class Foo {
   *bar() { … }
   get alias() { return this.bar }
}

```

or

```javascript
Foo.prototype.anotherAlias = Foo.prototype.bar;

```
