Auto merge of #13174 - servo:error-workers, r=nox

Prepare for error reporting in workers.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13174)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-09-06 12:35:39 -05:00 committed by GitHub
commit 3631e314b9
5 changed files with 15 additions and 79 deletions

View file

@ -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());
}
}
}

View file

@ -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 {