aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/promise.rs
diff options
context:
space:
mode:
authorKamil Niski <kamil.niski@gmail.com>2019-05-04 11:27:21 +0200
committerKamil Niski <kamil.niski@gmail.com>2019-06-29 19:23:17 +0200
commitadb402487e7f8bf2cd0a1db360b16592f5c654ed (patch)
treecd04a40769e20f2a2c63c5eff914dedc4c745e62 /components/script/dom/promise.rs
parent84786add227f2c0a675f4bcca708ac8a70011f6c (diff)
downloadservo-adb402487e7f8bf2cd0a1db360b16592f5c654ed.tar.gz
servo-adb402487e7f8bf2cd0a1db360b16592f5c654ed.zip
Create a helper API for entering a DOM object's compartment
Revert some unnecessary changes Fix fmt errors
Diffstat (limited to 'components/script/dom/promise.rs')
-rw-r--r--components/script/dom/promise.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs
index 9fcb728ae0f..fc1e39406f0 100644
--- a/components/script/dom/promise.rs
+++ b/components/script/dom/promise.rs
@@ -11,7 +11,7 @@
//! native Promise values that refer to the same JS value yet are distinct native objects
//! (ie. address equality for the native objects is meaningless).
-use crate::compartments::InCompartment;
+use crate::compartments::{enter_realm, InCompartment};
use crate::dom::bindings::conversions::root_from_object;
use crate::dom::bindings::error::{Error, Fallible};
use crate::dom::bindings::reflector::{DomObject, MutDomObject, Reflector};
@@ -81,8 +81,7 @@ impl Drop for Promise {
impl Promise {
pub fn new(global: &GlobalScope) -> Rc<Promise> {
- let compartment =
- JSAutoRealm::new(global.get_cx(), global.reflector().get_jsobject().get());
+ let compartment = enter_realm(&*global);
let comp = InCompartment::Entered(&compartment);
Promise::new_in_current_compartment(global, comp)
}
@@ -166,7 +165,7 @@ impl Promise {
T: ToJSValConvertible,
{
let cx = self.global().get_cx();
- let _ac = JSAutoRealm::new(cx, self.reflector().get_jsobject().get());
+ let _ac = enter_realm(&*self);
rooted!(in(cx) let mut v = UndefinedValue());
unsafe {
val.to_jsval(cx, v.handle_mut());
@@ -187,7 +186,7 @@ impl Promise {
T: ToJSValConvertible,
{
let cx = self.global().get_cx();
- let _ac = JSAutoRealm::new(cx, self.reflector().get_jsobject().get());
+ let _ac = enter_realm(&*self);
rooted!(in(cx) let mut v = UndefinedValue());
unsafe {
val.to_jsval(cx, v.handle_mut());
@@ -198,7 +197,7 @@ impl Promise {
#[allow(unsafe_code)]
pub fn reject_error(&self, error: Error) {
let cx = self.global().get_cx();
- let _ac = JSAutoRealm::new(cx, self.reflector().get_jsobject().get());
+ let _ac = enter_realm(&*self);
rooted!(in(cx) let mut v = UndefinedValue());
unsafe {
error.to_jsval(cx, &self.global(), v.handle_mut());