mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:47:45 +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:
parent
8c7fe8d6c8
commit
de9fa6622a
14 changed files with 365 additions and 20 deletions
|
@ -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] {};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue