diff --git a/Libraries/LibJS/Runtime/StringOrSymbol.h b/Libraries/LibJS/Runtime/StringOrSymbol.h index 01ca65b6ce..b8d031affb 100644 --- a/Libraries/LibJS/Runtime/StringOrSymbol.h +++ b/Libraries/LibJS/Runtime/StringOrSymbol.h @@ -135,6 +135,13 @@ public: return *this; } + unsigned hash() const + { + if (is_string()) + return static_cast(m_ptr)->hash(); + return ptr_hash(as_symbol()); + } + private: ALWAYS_INLINE u64 bits() const { @@ -155,10 +162,6 @@ template<> struct AK::Traits : public GenericTraits { static unsigned hash(const JS::StringOrSymbol& key) { - if (key.is_string()) - return key.as_string().hash(); - if (key.is_symbol()) - return ptr_hash(key.as_symbol()); - return 0; + return key.hash(); } };