1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 08:37:46 +00:00

LibJS: Add the FinalizationRegistry built-in object

As well as the needed functionality in VM to enqueue and run cleanup
jobs for the FinalizationRegistry instances.
This commit is contained in:
Idan Horowitz 2021-06-15 22:16:17 +03:00 committed by Linus Groh
parent 8c7fe8d6c8
commit de9fa6622a
14 changed files with 365 additions and 20 deletions

View file

@ -244,6 +244,9 @@ public:
void run_queued_promise_jobs();
void enqueue_promise_job(NativeFunction&);
void run_queued_finalization_registry_cleanup_jobs();
void enqueue_finalization_registry_cleanup_job(FinalizationRegistry&);
void promise_rejection_tracker(const Promise&, Promise::RejectionOperation) const;
AK::Function<void()> on_call_stack_emptied;
@ -272,6 +275,8 @@ private:
Vector<NativeFunction*> m_promise_jobs;
Vector<FinalizationRegistry*> m_finalization_registry_cleanup_jobs;
PrimitiveString* m_empty_string { nullptr };
PrimitiveString* m_single_ascii_character_strings[128] {};