1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:57:34 +00:00

LibWeb: Add support for AbortSignal.reason

This commit is contained in:
Luke Wilde 2021-12-10 20:05:12 +00:00 committed by Idan Horowitz
parent 4dbda2d5b4
commit 64040c136e
6 changed files with 40 additions and 14 deletions

View file

@ -42,13 +42,19 @@ public:
void add_abort_algorithm(Function<void()>);
// https://dom.spec.whatwg.org/#dom-abortsignal-aborted
bool aborted() const { return m_aborted; }
// An AbortSignal object is aborted when its abort reason is not undefined.
bool aborted() const { return !m_abort_reason.is_undefined(); }
void signal_abort();
void signal_abort(JS::Value reason);
void set_onabort(HTML::EventHandler);
HTML::EventHandler onabort();
// https://dom.spec.whatwg.org/#dom-abortsignal-reason
JS::Value reason() const { return m_abort_reason; }
void visit_edges(JS::Cell::Visitor&);
// ^EventTarget
virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); }
@ -57,8 +63,9 @@ public:
private:
AbortSignal(Document& document);
// https://dom.spec.whatwg.org/#abortsignal-aborted-flag
bool m_aborted { false };
// https://dom.spec.whatwg.org/#abortsignal-abort-reason
// An AbortSignal object has an associated abort reason, which is a JavaScript value. It is undefined unless specified otherwise.
JS::Value m_abort_reason { JS::js_undefined() };
// https://dom.spec.whatwg.org/#abortsignal-abort-algorithms
// FIXME: This should be a set.