aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-06-07 00:26:49 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-06-07 00:26:49 +0200
commit27620320f364d5345de3631ec605d1c3b376208f (patch)
tree0dc86a6274658efea308280298dbaaf3a5e97000 /components/script/dom
parentbc52617d3351d64cfd1479c5088b591370529f59 (diff)
downloadservo-27620320f364d5345de3631ec605d1c3b376208f.tar.gz
servo-27620320f364d5345de3631ec605d1c3b376208f.zip
Make report_pending_exception unsafe
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/error.rs10
-rw-r--r--components/script/dom/eventtarget.rs4
-rw-r--r--components/script/dom/workerglobalscope.rs6
3 files changed, 12 insertions, 8 deletions
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs
index a9ee93663e7..ed0b81c4d64 100644
--- a/components/script/dom/bindings/error.rs
+++ b/components/script/dom/bindings/error.rs
@@ -121,12 +121,10 @@ pub unsafe fn throw_dom_exception(cx: *mut JSContext, global: GlobalRef, result:
}
/// Report a pending exception, thereby clearing it.
-pub fn report_pending_exception(cx: *mut JSContext, obj: *mut JSObject) {
- unsafe {
- if JS_IsExceptionPending(cx) {
- let _ac = JSAutoCompartment::new(cx, obj);
- JS_ReportPendingException(cx);
- }
+pub unsafe fn report_pending_exception(cx: *mut JSContext, obj: *mut JSObject) {
+ if JS_IsExceptionPending(cx) {
+ let _ac = JSAutoCompartment::new(cx, obj);
+ JS_ReportPendingException(cx);
}
}
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index ebacde4de4d..9f41abee7d7 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -425,7 +425,9 @@ impl EventTarget {
};
if !rv || handler.ptr.is_null() {
// Step 1.8.2
- report_pending_exception(cx, self.reflector().get_jsobject().get());
+ unsafe {
+ report_pending_exception(cx, self.reflector().get_jsobject().get());
+ }
// Step 1.8.1 / 1.8.3
return None;
}
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 89b4ed59bf9..b10916a4b6e 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -416,6 +416,7 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
impl WorkerGlobalScope {
+ #[allow(unsafe_code)]
pub fn execute_script(&self, source: DOMString) {
let mut rval = RootedValue::new(self.runtime.cx(), UndefinedValue());
match self.runtime.evaluate_script(
@@ -428,7 +429,10 @@ impl WorkerGlobalScope {
// TODO: An error needs to be dispatched to the parent.
// https://github.com/servo/servo/issues/6422
println!("evaluate_script failed");
- report_pending_exception(self.runtime.cx(), self.reflector().get_jsobject().get());
+ unsafe {
+ report_pending_exception(
+ self.runtime.cx(), self.reflector().get_jsobject().get());
+ }
}
}
}