aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/promise.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-06-29 13:55:45 -0400
committerGitHub <noreply@github.com>2019-06-29 13:55:45 -0400
commit23c49bbbea2299c56d71b0615173ec92a8c35d36 (patch)
tree48543288806be0cd9c7222fd5302e90b6ebc5b71 /components/script/dom/promise.rs
parent14cddab6990037784b20753b1a42a41b0246f74f (diff)
parentadb402487e7f8bf2cd0a1db360b16592f5c654ed (diff)
downloadservo-23c49bbbea2299c56d71b0615173ec92a8c35d36.tar.gz
servo-23c49bbbea2299c56d71b0615173ec92a8c35d36.zip
Auto merge of #23344 - KaczuH:enter_dom_compartment_wrapper, r=jdm
Enter dom compartment wrapper I'm still not sure if the changes are entirely correct. Replaced occurrences: `JSAutoCompartment::new(global.get_cx(), global.reflector().get_jsobject().get());` with `fn enter_compartment(object: &DomObject) -> JSAutoCompartment` There are still occurrences of `JSAutoCompartment` that i was unable to replace. Could anyone give me a hint if it is possible? ``` → rg -Fi --type rust "JSAutoCompartment::" components/script/compartments.rs 38: JSAutoCompartment::new( components/script/dom/create.rs 159: let _ac = JSAutoCompartment::new( components/script/dom/eventtarget.rs 527: let _ac = JSAutoCompartment::new(cx, self.reflector().get_jsobject().get()); components/script/dom/windowproxy.rs 223: let _ac = JSAutoCompartment::new(cx, window_jsobject.get()); components/script/dom/customelementregistry.rs 337: let _ac = JSAutoCompartment::new(cx, proto_object.get()); 349: let _ac = JSAutoCompartment::new(cx, constructor.get()); 538: let _ac = JSAutoCompartment::new(cx, self.constructor.callback()); 668: let _ac = JSAutoCompartment::new(cx, constructor.callback()); components/script/dom/window.rs 2216: let _ac = JSAutoCompartment::new(cx, obj.get()); components/script/dom/paintworkletglobalscope.rs 254: let _ac = JSAutoCompartment::new(cx, self.worklet_global.reflector().get_jsobject().get()); components/script/dom/globalscope.rs 544: let _ac = JSAutoCompartment::new(cx, globalhandle.get()); components/script/dom/websocket.rs 573: let _ac = JSAutoCompartment::new(cx, ws.reflector().get_jsobject().get()); components/script/dom/workerglobalscope.rs 397: let _ac = JSAutoCompartment::new( components/script/dom/promise.rs 144: let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get()); 156: let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get()); components/script/dom/bindings/htmlconstructor.rs 118: let _ac = JSAutoCompartment::new(window.get_cx(), callee.get()); components/script/dom/bindings/utils.rs 411: let _ac = JSAutoCompartment::new(cx, obj.get()); components/script/dom/bindings/callback.rs 276: let _ac = JSAutoCompartment::new( components/script/dom/bindings/interface.rs 163: let _ac = JSAutoCompartment::new(cx, rval.get()); ``` --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #23266 <!-- Either: --> - [X] These changes do not require tests because no logic was changed only some code extracted to wrapper function <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- 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/23344) <!-- Reviewable:end -->
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());