You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As far as I can tell, all this change requires is removing steps 1, 2, 3, 4, and 5, replacing them all with the sub-steps of step 3. tc39/ecma262#2942 seems to cause Array.fromAsync to implicitly be defined as a built-in async function object, whose [[Call]] method automatically creates a PromiseCapability and Abstract Closure, performs AsyncFunctionStart on them, and returns the resulting promise from PromiseCapability.
I will make a pull request for these changes after #44 is reviewed and merged.
[Edit 2025-04-05: Built-in functions also are able to automatically return Completion Records, so those can also be taken out.]
After #36 was merged, Array.fromAsync spec now depends on tc39/ecma262#2942, just like proposal-async-iterator-helpers.
@bakkot points out that the current spec uses AsyncFunctionStart directly rather than defining Async.fromAsync as a “built-in async function”, which is a new concept defined by tc39/ecma262#2942. (The current spec version still does require tc39/ecma262#2942’s enhancement of AsyncFunctionStart.
We probably should define Async.fromAsync as a “built-in async function object”.
Note that tc39/ecma262#2942 (comment) suggests that the final form of tc39/ecma262#2942 might still not be completely settled.
The text was updated successfully, but these errors were encountered: