Bradley Meck wrote:
I was doing some recursive data structure work and ended up with a cyclical
promise that did not use a direct self reference. It can be reduced down to:
```javascript
var af, a = new Promise(f=>af=f);
var bf, b = new Promise(f=>bf=f);
af(b);bf(a); // the problem
a.then(_=>_) // some env/libs need this to start checking status
```
According to https://tc39.github.io/ecma262/#sec-promise-resolve-functions
it looks like this should cause a recursive and infinite set of
`EnqueueJob("PromiseJobs",...)`
I fear that's what the standard says, yes. The ES6 spec does too many
(and in some cases, unreasonably many) `then` calls on promises anyway
to be followed by an efficient promise implementation.
[Promises/A+](https://promisesaplus.com/) in contrast says
| Implementations are encouraged, but not required, to detect such
| recursion and reject promise with an informative TypeError as the
| reason.
Regards,
Bergi
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss