mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-12 18:08:15 +02:00
Every Promise allocates two PromiseResolvingFunction cells (resolve and reject). Each cell stored an AK::Function holding a closure, but neither closure captured anything beyond the Promise and AlreadyResolved already present as cell fields. Hoist the two closure bodies into static functions on Promise and dispatch by a Kind enum on the cell. This removes the AK::Function storage embedded in each cell along with its off-GC malloc'd closure capture.
1.6 KiB
1.6 KiB