pub(crate) fn reflect_dom_object_with_proto<D, T, U>( obj: Box<T>, global: &U, proto: Option<HandleObject<'_>>, can_gc: CanGc, ) -> DomRoot<T>where D: DomTypes, T: DomObject + DomObjectWrap<D>, U: DerivedFrom<D::GlobalScope>,