|
@@ -13,9 +13,20 @@ namespace Web::HTML {
|
|
|
|
|
|
class EventLoop {
|
|
class EventLoop {
|
|
public:
|
|
public:
|
|
|
|
+ enum class Type {
|
|
|
|
+ // https://html.spec.whatwg.org/multipage/webappapis.html#window-event-loop
|
|
|
|
+ Window,
|
|
|
|
+ // https://html.spec.whatwg.org/multipage/webappapis.html#worker-event-loop
|
|
|
|
+ Worker,
|
|
|
|
+ // https://html.spec.whatwg.org/multipage/webappapis.html#worklet-event-loop
|
|
|
|
+ Worklet,
|
|
|
|
+ };
|
|
|
|
+
|
|
EventLoop();
|
|
EventLoop();
|
|
~EventLoop();
|
|
~EventLoop();
|
|
|
|
|
|
|
|
+ Type type() const { return m_type; }
|
|
|
|
+
|
|
TaskQueue& task_queue() { return m_task_queue; }
|
|
TaskQueue& task_queue() { return m_task_queue; }
|
|
TaskQueue const& task_queue() const { return m_task_queue; }
|
|
TaskQueue const& task_queue() const { return m_task_queue; }
|
|
|
|
|
|
@@ -25,6 +36,8 @@ public:
|
|
Task const* currently_running_task() const { return m_currently_running_task; }
|
|
Task const* currently_running_task() const { return m_currently_running_task; }
|
|
|
|
|
|
private:
|
|
private:
|
|
|
|
+ Type m_type { Type::Window };
|
|
|
|
+
|
|
TaskQueue m_task_queue;
|
|
TaskQueue m_task_queue;
|
|
|
|
|
|
// https://html.spec.whatwg.org/multipage/webappapis.html#currently-running-task
|
|
// https://html.spec.whatwg.org/multipage/webappapis.html#currently-running-task
|