diff --git a/Libraries/LibWeb/HTML/MessagePort.cpp b/Libraries/LibWeb/HTML/MessagePort.cpp index cd528fe7440..e46b7a64182 100644 --- a/Libraries/LibWeb/HTML/MessagePort.cpp +++ b/Libraries/LibWeb/HTML/MessagePort.cpp @@ -47,11 +47,7 @@ MessagePort::MessagePort(JS::Realm& realm) all_message_ports().set(this); } -MessagePort::~MessagePort() -{ - all_message_ports().remove(this); - disentangle(); -} +MessagePort::~MessagePort() = default; void MessagePort::for_each_message_port(Function callback) { @@ -65,6 +61,13 @@ void MessagePort::initialize(JS::Realm& realm) WEB_SET_PROTOTYPE_FOR_INTERFACE(MessagePort); } +void MessagePort::finalize() +{ + Base::finalize(); + all_message_ports().remove(this); + disentangle(); +} + void MessagePort::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); diff --git a/Libraries/LibWeb/HTML/MessagePort.h b/Libraries/LibWeb/HTML/MessagePort.h index 6a718468b6c..8a0968d50ee 100644 --- a/Libraries/LibWeb/HTML/MessagePort.h +++ b/Libraries/LibWeb/HTML/MessagePort.h @@ -68,6 +68,7 @@ private: explicit MessagePort(JS::Realm&); virtual void initialize(JS::Realm&) override; + virtual void finalize() override; virtual void visit_edges(Cell::Visitor&) override; bool is_entangled() const;