aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorchickenleaf <lashwinib@gmail.com>2024-11-02 19:57:59 +0530
committerGitHub <noreply@github.com>2024-11-02 14:27:59 +0000
commit900d13fc2f785fa48346e6cfe2b1ab91790e4f5f (patch)
tree22bf5b0bbcc742c1149d9dcc1a15e2561d0c86a2 /components/script/dom
parentf47cc927a0934097fd97b0ad7595c43e22c5ca40 (diff)
downloadservo-900d13fc2f785fa48346e6cfe2b1ab91790e4f5f.tar.gz
servo-900d13fc2f785fa48346e6cfe2b1ab91790e4f5f.zip
frozen array in XRInputSourcesChangeEvent, update `to_frozen_array` doc (#34100)
* frozen array in XRInputSourcesChangeEvent, update o_frozen_array doc Signed-off-by: L Ashwin B <lashwinib@gmail.com> * simplified changes Signed-off-by: L Ashwin B <lashwinib@gmail.com> * added tests Signed-off-by: L Ashwin B <lashwinib@gmail.com> --------- Signed-off-by: L Ashwin B <lashwinib@gmail.com>
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/utils.rs2
-rw-r--r--components/script/dom/xrinputsourceschangeevent.rs15
2 files changed, 5 insertions, 12 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index c3f6bf66971..c9cbbae2723 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -116,7 +116,7 @@ impl Clone for DOMJSClass {
}
unsafe impl Sync for DOMJSClass {}
-/// Returns a JSVal representing a frozen array of ports
+/// Returns a JSVal representing the frozen JavaScript array
pub fn to_frozen_array<T: ToJSValConvertible>(convertibles: &[T], cx: SafeJSContext) -> JSVal {
rooted!(in(*cx) let mut ports = UndefinedValue());
unsafe { convertibles.to_jsval(*cx, ports.handle_mut()) };
diff --git a/components/script/dom/xrinputsourceschangeevent.rs b/components/script/dom/xrinputsourceschangeevent.rs
index b44bc17382a..dc28cefa812 100644
--- a/components/script/dom/xrinputsourceschangeevent.rs
+++ b/components/script/dom/xrinputsourceschangeevent.rs
@@ -3,9 +3,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use dom_struct::dom_struct;
-use js::conversions::ToJSValConvertible;
use js::jsapi::Heap;
-use js::jsval::{JSVal, UndefinedValue};
+use js::jsval::JSVal;
use js::rust::HandleObject;
use servo_atoms::Atom;
@@ -17,6 +16,7 @@ use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::reflector::{reflect_dom_object_with_proto, DomObject};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
+use crate::dom::bindings::utils::to_frozen_array;
use crate::dom::event::Event;
use crate::dom::globalscope::GlobalScope;
use crate::dom::window::Window;
@@ -87,15 +87,8 @@ impl XRInputSourcesChangeEvent {
}
let _ac = enter_realm(global);
let cx = GlobalScope::get_cx();
- unsafe {
- rooted!(in(*cx) let mut added_val = UndefinedValue());
- added.to_jsval(*cx, added_val.handle_mut());
- changeevent.added.set(added_val.get());
- rooted!(in(*cx) let mut removed_val = UndefinedValue());
- removed.to_jsval(*cx, removed_val.handle_mut());
- changeevent.removed.set(removed_val.get());
- }
-
+ changeevent.added.set(to_frozen_array(added, cx));
+ changeevent.removed.set(to_frozen_array(removed, cx));
changeevent
}
}