diff --git a/Libraries/LibWeb/HTML/ErrorEvent.cpp b/Libraries/LibWeb/HTML/ErrorEvent.cpp
index 76a19b02d78..dc8a3bffa82 100644
--- a/Libraries/LibWeb/HTML/ErrorEvent.cpp
+++ b/Libraries/LibWeb/HTML/ErrorEvent.cpp
@@ -25,7 +25,7 @@ WebIDL::ExceptionOr> ErrorEvent::construct_impl(JS::Realm& r
}
ErrorEvent::ErrorEvent(JS::Realm& realm, FlyString const& event_name, ErrorEventInit const& event_init)
- : DOM::Event(realm, event_name)
+ : DOM::Event(realm, event_name, event_init)
, m_message(event_init.message)
, m_filename(event_init.filename)
, m_lineno(event_init.lineno)
diff --git a/Libraries/LibWeb/MediaSourceExtensions/BufferedChangeEvent.cpp b/Libraries/LibWeb/MediaSourceExtensions/BufferedChangeEvent.cpp
index bddb8402fb8..529c178a757 100644
--- a/Libraries/LibWeb/MediaSourceExtensions/BufferedChangeEvent.cpp
+++ b/Libraries/LibWeb/MediaSourceExtensions/BufferedChangeEvent.cpp
@@ -17,8 +17,8 @@ WebIDL::ExceptionOr> BufferedChangeEvent::construct
return realm.create(realm, type, event_init);
}
-BufferedChangeEvent::BufferedChangeEvent(JS::Realm& realm, AK::FlyString const& type, BufferedChangeEventInit const&)
- : DOM::Event(realm, type)
+BufferedChangeEvent::BufferedChangeEvent(JS::Realm& realm, AK::FlyString const& type, BufferedChangeEventInit const& event_init)
+ : DOM::Event(realm, type, event_init)
{
}
diff --git a/Tests/LibWeb/Text/expected/DOM/cancelable-events.txt b/Tests/LibWeb/Text/expected/DOM/cancelable-events.txt
new file mode 100644
index 00000000000..869bb0d4db8
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/DOM/cancelable-events.txt
@@ -0,0 +1,4 @@
+event=test1 cancelable=false
+event=test2 cancelable=true
+event=test3 cancelable=false
+event=test4 cancelable=true
diff --git a/Tests/LibWeb/Text/expected/wpt-import/dom/events/event-global.txt b/Tests/LibWeb/Text/expected/wpt-import/dom/events/event-global.txt
index 8690e08a540..d32db710d3b 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/dom/events/event-global.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/dom/events/event-global.txt
@@ -2,13 +2,12 @@ Harness status: OK
Found 8 tests
-7 Pass
-1 Fail
+8 Pass
Pass event exists on window, which is initially set to undefined
Pass window.event is only defined during dispatch
Pass window.event is undefined if the target is in a shadow tree (event dispatched outside shadow tree)
Pass window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)
-Fail window.event is undefined inside window.onerror if the target is in a shadow tree (ErrorEvent dispatched inside shadow tree)
+Pass window.event is undefined inside window.onerror if the target is in a shadow tree (ErrorEvent dispatched inside shadow tree)
Pass window.event is set to the current event during dispatch
Pass window.event is set to the current event, which is the event passed to dispatch
Pass window.event is set to the current event, which is the event passed to dispatch (2)
\ No newline at end of file
diff --git a/Tests/LibWeb/Text/input/DOM/cancelable-events.html b/Tests/LibWeb/Text/input/DOM/cancelable-events.html
new file mode 100644
index 00000000000..cb137196c70
--- /dev/null
+++ b/Tests/LibWeb/Text/input/DOM/cancelable-events.html
@@ -0,0 +1,15 @@
+
+
+