diff --git a/Libraries/LibWeb/HTML/MessagePort.cpp b/Libraries/LibWeb/HTML/MessagePort.cpp
index e46b7a64182..10b0b920277 100644
--- a/Libraries/LibWeb/HTML/MessagePort.cpp
+++ b/Libraries/LibWeb/HTML/MessagePort.cpp
@@ -438,17 +438,28 @@ void MessagePort::close()
disentangle();
}
-#undef __ENUMERATE
-#define __ENUMERATE(attribute_name, event_name) \
- void MessagePort::set_##attribute_name(WebIDL::CallbackType* value) \
- { \
- set_event_handler_attribute(event_name, value); \
- } \
- WebIDL::CallbackType* MessagePort::attribute_name() \
- { \
- return event_handler_attribute(event_name); \
- }
-ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(__ENUMERATE)
-#undef __ENUMERATE
+// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessageerror
+void MessagePort::set_onmessageerror(GC::Ptr value)
+{
+ set_event_handler_attribute(EventNames::messageerror, value);
+}
+
+// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessageerror
+GC::Ptr MessagePort::onmessageerror()
+{
+ return event_handler_attribute(EventNames::messageerror);
+}
+
+// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessage
+void MessagePort::set_onmessage(GC::Ptr value)
+{
+ set_event_handler_attribute(EventNames::message, value);
+}
+
+// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessage
+GC::Ptr MessagePort::onmessage()
+{
+ return event_handler_attribute(EventNames::message);
+}
}
diff --git a/Libraries/LibWeb/HTML/MessagePort.h b/Libraries/LibWeb/HTML/MessagePort.h
index 8a0968d50ee..881e6da333d 100644
--- a/Libraries/LibWeb/HTML/MessagePort.h
+++ b/Libraries/LibWeb/HTML/MessagePort.h
@@ -18,10 +18,6 @@
namespace Web::HTML {
-#define ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(E) \
- E(onmessage, HTML::EventNames::message) \
- E(onmessageerror, HTML::EventNames::messageerror)
-
// https://html.spec.whatwg.org/multipage/web-messaging.html#message-ports
class MessagePort final : public DOM::EventTarget
, public Bindings::Transferable {
@@ -50,12 +46,11 @@ public:
void close();
-#undef __ENUMERATE
-#define __ENUMERATE(attribute_name, event_name) \
- void set_##attribute_name(WebIDL::CallbackType*); \
- WebIDL::CallbackType* attribute_name();
- ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(__ENUMERATE)
-#undef __ENUMERATE
+ void set_onmessageerror(GC::Ptr);
+ GC::Ptr onmessageerror();
+
+ void set_onmessage(GC::Ptr);
+ GC::Ptr onmessage();
// ^Transferable
virtual WebIDL::ExceptionOr transfer_steps(HTML::TransferDataHolder&) override;