From 6c0394bc80963163f36dd273f8e6ed64b177dfa0 Mon Sep 17 00:00:00 2001 From: Taym Haddadi Date: Mon, 2 Sep 2024 11:50:46 +0200 Subject: [PATCH] Impl PartialEq and Eq for DomObject (#33212) * Impl PartialEq and Eq for DomObject Signed-off-by: Taym * move to Eq and PartialEq to domobject_derive Signed-off-by: Taym --------- Signed-off-by: Taym --- components/domobject_derive/lib.rs | 8 ++++++++ components/script/dom/bindings/codegen/CodegenRust.py | 6 ------ components/script/dom/promise.rs | 6 ------ 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/components/domobject_derive/lib.rs b/components/domobject_derive/lib.rs index b49b78ffc3e..1c762a80967 100644 --- a/components/domobject_derive/lib.rs +++ b/components/domobject_derive/lib.rs @@ -57,6 +57,14 @@ fn expand_dom_object(input: syn::DeriveInput) -> proc_macro2::TokenStream { self.#first_field_name.init_reflector(obj); } } + + impl #impl_generics Eq for #name #ty_generics #where_clause {} + + impl #impl_generics PartialEq for #name #ty_generics #where_clause { + fn eq(&self, other: &Self) -> bool { + crate::DomObject::reflector(self) == crate::DomObject::reflector(other) + } + } }; let mut params = proc_macro2::TokenStream::new(); diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index ba23366ab70..46d603955ab 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -3056,12 +3056,6 @@ impl IDLInterface for {name} {{ {check} }} }} - -impl PartialEq for {name} {{ - fn eq(&self, other: &{name}) -> bool {{ - self as *const {name} == other - }} -}} """ diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs index 38e5a9112ac..254c476b577 100644 --- a/components/script/dom/promise.rs +++ b/components/script/dom/promise.rs @@ -52,12 +52,6 @@ pub struct Promise { permanent_js_root: Heap, } -impl PartialEq for Promise { - fn eq(&self, other: &Self) -> bool { - self.reflector == other.reflector - } -} - /// Private helper to enable adding new methods to `Rc`. trait PromiseHelper { fn initialize(&self, cx: SafeJSContext);