aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/promise.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2016-09-06 19:58:26 -0400
committerJosh Matthews <josh@joshmatthews.net>2016-09-22 16:16:58 -0400
commit27d44c8d1042e5705853b272fc340c76c4d02785 (patch)
tree5e3eac33d3733a361a3c3d3fd9ecc80c2ec5fb89 /components/script/dom/promise.rs
parentae81ab3972b0a4064046dce8d0c37a2a375fe385 (diff)
downloadservo-27d44c8d1042e5705853b272fc340c76c4d02785.tar.gz
servo-27d44c8d1042e5705853b272fc340c76c4d02785.zip
Add a simple API to reject promises with DOM error values.
Diffstat (limited to 'components/script/dom/promise.rs')
-rw-r--r--components/script/dom/promise.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs
index 6dd45d05219..f167d95bfd2 100644
--- a/components/script/dom/promise.rs
+++ b/components/script/dom/promise.rs
@@ -14,7 +14,7 @@
use dom::bindings::callback::CallbackContainer;
use dom::bindings::codegen::Bindings::PromiseBinding::AnyCallback;
use dom::bindings::conversions::root_from_object;
-use dom::bindings::error::Fallible;
+use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::MutHeapJSVal;
use dom::bindings::reflector::{Reflectable, MutReflectable, Reflector};
@@ -156,6 +156,15 @@ impl Promise {
self.maybe_reject(cx, v.handle());
}
+ #[allow(unsafe_code)]
+ pub fn maybe_reject_error(&self, cx: *mut JSContext, error: Error) {
+ rooted!(in(cx) let mut v = UndefinedValue());
+ unsafe {
+ error.maybe_to_jsval(cx, self.global().r(), v.handle_mut());
+ }
+ self.maybe_reject(cx, v.handle());
+ }
+
#[allow(unrooted_must_root, unsafe_code)]
pub fn maybe_reject(&self,
cx: *mut JSContext,