diff --git a/core/src/avm2/object.rs b/core/src/avm2/object.rs index e096b6611..78c66ab9b 100644 --- a/core/src/avm2/object.rs +++ b/core/src/avm2/object.rs @@ -19,6 +19,7 @@ use gc_arena::{Collect, GcCell, MutationContext}; use ruffle_macros::enum_trait_object; use std::cell::{Ref, RefMut}; use std::fmt::Debug; +use std::hash::{Hash, Hasher}; mod array_object; mod bytearray_object; @@ -931,3 +932,17 @@ impl<'gc> Object<'gc> { a.as_ptr() == b.as_ptr() } } + +impl<'gc> PartialEq for Object<'gc> { + fn eq(&self, other: &Self) -> bool { + Object::ptr_eq(*self, *other) + } +} + +impl<'gc> Eq for Object<'gc> {} + +impl<'gc> Hash for Object<'gc> { + fn hash(&self, state: &mut H) { + self.as_ptr().hash(state); + } +}