diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs index 529b1791d59..e298cb184c8 100644 --- a/components/script/dom/globalscope.rs +++ b/components/script/dom/globalscope.rs @@ -313,30 +313,34 @@ impl GlobalScope { // Step 2. self.in_error_reporting_mode.set(true); - // Steps 3-12. + // Steps 3-6. // FIXME(#13195): muted errors. - let event = ErrorEvent::new(self, - atom!("error"), - EventBubbles::DoesNotBubble, - EventCancelable::Cancelable, - error_info.message.as_str().into(), - error_info.filename.as_str().into(), - error_info.lineno, - error_info.column, - value); + let event = ErrorEvent::new( + self, + atom!("error"), + EventBubbles::DoesNotBubble, + EventCancelable::Cancelable, + error_info.message.as_str().into(), + error_info.filename.as_str().into(), + error_info.lineno, + error_info.column, + value, + ); - // Step 13. + // Step 7. let event_status = event.upcast::().fire(self.upcast::()); - // Step 15 + // Step 8. + self.in_error_reporting_mode.set(false); + + // Step 9. if event_status == EventStatus::NotCanceled { + // https://html.spec.whatwg.org/multipage/#runtime-script-errors-2 if let Some(dedicated) = self.downcast::() { dedicated.forward_error_to_worker_object(error_info); } } - // Step 14 - self.in_error_reporting_mode.set(false); } /// Get the `&ResourceThreads` for this global scope. diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 8694b77487b..1a44169fd1c 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -2005,7 +2005,7 @@ impl Window { MessageEvent::dispatch_jsval( this.upcast(), this.upcast(), - message.handle(), + message_clone.handle(), ); }); // FIXME(nox): Why are errors silenced here?