diff --git a/Libraries/LibWeb/Bindings/MainThreadVM.cpp b/Libraries/LibWeb/Bindings/MainThreadVM.cpp index dd374d493a7..66e4283bca5 100644 --- a/Libraries/LibWeb/Bindings/MainThreadVM.cpp +++ b/Libraries/LibWeb/Bindings/MainThreadVM.cpp @@ -736,7 +736,7 @@ void queue_mutation_observer_microtask(DOM::Document const& document) } } - // 4. If records is not empty, then invoke mo’s callback with « records, mo », and mo. If this throws an exception, catch it, and report the exception. + // 4. If records is not empty, then invoke mo’s callback with « records, mo » and "report", and with callback this value mo. if (!records.is_empty()) { auto& callback = mutation_observer->callback(); auto& realm = callback.callback_context; @@ -748,9 +748,7 @@ void queue_mutation_observer_microtask(DOM::Document const& document) MUST(wrapped_records->create_data_property(property_index, record.ptr())); } - auto result = WebIDL::invoke_callback(callback, mutation_observer, wrapped_records, mutation_observer); - if (result.is_abrupt()) - HTML::report_exception(result, realm); + (void)WebIDL::invoke_callback(callback, mutation_observer, WebIDL::ExceptionBehavior::Report, wrapped_records, mutation_observer); } } diff --git a/Tests/LibWeb/Text/expected/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.txt b/Tests/LibWeb/Text/expected/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.txt new file mode 100644 index 00000000000..7348cd88464 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.txt @@ -0,0 +1,6 @@ +Harness status: OK + +Found 1 tests + +1 Pass +Pass MutationObserver reports the exception from its callback in the callback's global object \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.html b/Tests/LibWeb/Text/input/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.html new file mode 100644 index 00000000000..946c795bd34 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/dom/nodes/MutationObserver-cross-realm-callback-report-exception.html @@ -0,0 +1,32 @@ + + +