From b3050855e7cb63b6398540ddb7a5e808ac55be3c Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Mon, 5 Sep 2016 17:14:28 +0200 Subject: [PATCH] Implement report_an_error on GlobalRef. --- components/script/dom/bindings/error.rs | 4 +--- components/script/dom/bindings/global.rs | 10 ++++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index c111bb62a2a..88ed079d2ba 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -245,9 +245,7 @@ pub unsafe fn report_pending_exception(cx: *mut JSContext, dispatch_event: bool) if dispatch_event { let global = global_root_from_context(cx); - if let GlobalRef::Window(window) = global.r() { - window.report_an_error(error_info, value.handle()); - } + global.r().report_an_error(error_info, value.handle()); } } } diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs index bfc3212a9c4..af4cd59a86f 100644 --- a/components/script/dom/bindings/global.rs +++ b/components/script/dom/bindings/global.rs @@ -10,11 +10,13 @@ use devtools_traits::{ScriptToDevtoolsControlMsg, WorkerId}; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::conversions::root_from_object; +use dom::bindings::error::ErrorInfo; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflectable, Reflector}; use dom::window::{self, ScriptHelpers}; use dom::workerglobalscope::WorkerGlobalScope; use ipc_channel::ipc::IpcSender; +use js::jsapi::HandleValue; use js::jsapi::{CurrentGlobalOrNull, GetGlobalForObjectCrossCompartment}; use js::jsapi::{JSContext, JSObject, JS_GetClass, MutableHandleValue}; use js::{JSCLASS_IS_DOMJSCLASS, JSCLASS_IS_GLOBAL}; @@ -285,6 +287,14 @@ impl<'a> GlobalRef<'a> { GlobalRef::Worker(ref worker) => worker.get_runnable_wrapper(), } } + + /// https://html.spec.whatwg.org/multipage/#report-the-error + pub fn report_an_error(&self, error_info: ErrorInfo, value: HandleValue) { + match *self { + GlobalRef::Window(ref window) => window.report_an_error(error_info, value), + GlobalRef::Worker(_) => (), + } + } } impl GlobalRoot {