From 60ef6bc46125d34e492a4294622e2791f3c619b5 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 22 Aug 2024 07:42:36 -0400 Subject: Start marking functions that can transitively trigger a GC (#33144) * Mark JS reflector wrappers as CanGc. Signed-off-by: Josh Matthews * Propagate CanGc from reflect_dom_object_with_proto. Signed-off-by: Josh Matthews * Mark DOM constructors as GC operations. Signed-off-by: Josh Matthews --------- Signed-off-by: Josh Matthews --- components/script/dom/staticrange.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'components/script/dom/staticrange.rs') diff --git a/components/script/dom/staticrange.rs b/components/script/dom/staticrange.rs index 84c25e12f47..273beb16ad0 100644 --- a/components/script/dom/staticrange.rs +++ b/components/script/dom/staticrange.rs @@ -15,6 +15,7 @@ use crate::dom::bindings::root::DomRoot; use crate::dom::document::Document; use crate::dom::node::Node; use crate::dom::window::Window; +use crate::script_runtime::CanGc; #[dom_struct] pub struct StaticRange { @@ -41,14 +42,16 @@ impl StaticRange { document: &Document, proto: Option, init: &StaticRangeInit, + can_gc: CanGc, ) -> DomRoot { - StaticRange::new_with_proto(document, proto, init) + StaticRange::new_with_proto(document, proto, init, can_gc) } pub fn new_with_proto( document: &Document, proto: Option, init: &StaticRangeInit, + can_gc: CanGc, ) -> DomRoot { let staticrange = reflect_dom_object_with_proto( Box::new(StaticRange::new_inherited( @@ -59,6 +62,7 @@ impl StaticRange { )), document.window(), proto, + can_gc, ); staticrange } @@ -68,6 +72,7 @@ impl StaticRange { pub fn Constructor( window: &Window, proto: Option, + can_gc: CanGc, init: &StaticRangeInit, ) -> Fallible> { match init.startContainer.type_id() { @@ -83,6 +88,6 @@ impl StaticRange { _ => (), } let document = window.Document(); - Ok(StaticRange::new_with_doc(&document, proto, init)) + Ok(StaticRange::new_with_doc(&document, proto, init, can_gc)) } } -- cgit v1.2.3