1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:57:43 +00:00

LibWeb: Implement window.queueMicrotask(callback)

This API allows authors to schedule a serialized JS callback that will
get invoked at the next spec-allowed opportunity.
This commit is contained in:
Andreas Kling 2021-09-26 14:36:20 +02:00
parent 831fdcaabc
commit a248ec63e3
10 changed files with 144 additions and 19 deletions

View file

@ -21,6 +21,14 @@ public:
void add(NonnullOwnPtr<HTML::Task>);
OwnPtr<HTML::Task> take_first_runnable() { return m_tasks.dequeue(); }
void enqueue(NonnullOwnPtr<HTML::Task> task) { add(move(task)); }
OwnPtr<HTML::Task> dequeue()
{
if (m_tasks.is_empty())
return {};
return m_tasks.dequeue();
}
private:
HTML::EventLoop& m_event_loop;