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 -->
KaczuH commentedMay 8, 2019
•
edited by SimonSapin
I'm still not sure if the changes are entirely correct.
Replaced occurrences:
JSAutoCompartment::new(global.get_cx(), global.reflector().get_jsobject().get());withfn enter_compartment(object: &DomObject) -> JSAutoCompartmentThere are still occurrences of
JSAutoCompartmentthat i was unable to replace. Could anyone give me a hint if it is possible?./mach build -ddoes not report any errors./mach test-tidydoes not report any errorsThis change is