diff options
author | Josh Matthews <josh@joshmatthews.net> | 2016-09-06 19:58:26 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2016-09-22 16:16:58 -0400 |
commit | 27d44c8d1042e5705853b272fc340c76c4d02785 (patch) | |
tree | 5e3eac33d3733a361a3c3d3fd9ecc80c2ec5fb89 /components/script/dom/promise.rs | |
parent | ae81ab3972b0a4064046dce8d0c37a2a375fe385 (diff) | |
download | servo-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.rs | 11 |
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, |