Is this really the most direct way to get %AsyncIteratorPrototype%?
T.J. Crowder
tj.crowder at farsightsoftware.com
Tue Aug 14 15:57:45 UTC 2018
This is the way I've found so far, allocating as few temporary objects as
possible (one, can't get rid of that temp function):
```js
const AsyncIteratorPrototype =
Object.getPrototypeOf(
Object.getPrototypeOf(
async function*(){}
).prototype
);
```
or, showing the steps more clearly:
```js
const asyncGeneratorFunctionInstance = async function*(){};
const AsyncGeneratorFunction = Object.getPrototypeOf(asyncGen
eratorFunctionInstance);
const AsyncGeneratorPrototype = AsyncGeneratorFunction.prototype;
const AsyncIteratorPrototype = Object.getPrototypeOf(AsyncGen
eratorPrototype);
```
(I could create an async generator by calling that temporary async
generator function, but then I just have to do another
`Object.getPrototypeOf`, so it doesn't really buy me anything.)
Is there something more direct? (Remember that `AsyncGeneratorFunction`
isn't globally exposed like `Function` is. None of the new subclasses of
Function constructors are exposed; according to [this thread][1], there
weren't enough strong use cases [that thread is for `GeneratorFunction`,
but we can extrapolate].)
-- T.J. Crowder
[1]:
https://esdiscuss.org/topic/why-generatorfunction-constructor-isn-t-directly-exposed-to-end-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180814/ec60dc50/attachment-0001.html>
More information about the es-discuss
mailing list