diff --git a/AK/Utf16View.h b/AK/Utf16View.h index fadc5bd504..3660174a19 100644 --- a/AK/Utf16View.h +++ b/AK/Utf16View.h @@ -261,8 +261,6 @@ public: if (has_ascii_storage() && other.has_ascii_storage()) { result = __builtin_memcmp(m_string.ascii, other.m_string.ascii, length); - } else if (!has_ascii_storage() && !other.has_ascii_storage()) { - result = __builtin_memcmp(m_string.utf16, other.m_string.utf16, length * sizeof(char16_t)); } else { for (size_t i = 0; i < length; ++i) { auto this_code_unit = code_unit_at(i); diff --git a/Tests/AK/TestUtf16View.cpp b/Tests/AK/TestUtf16View.cpp index 1bcf606453..87759127bb 100644 --- a/Tests/AK/TestUtf16View.cpp +++ b/Tests/AK/TestUtf16View.cpp @@ -482,6 +482,16 @@ TEST_CASE(comparison) EXPECT(u"πŸ˜‚"sv > u"πŸ˜€"sv); EXPECT(!(u"πŸ˜‚"sv <= u"πŸ˜€"sv)); EXPECT(u"πŸ˜‚"sv >= u"πŸ˜€"sv); + + EXPECT(u"ΓΏ"sv < u"Δ€"sv); + EXPECT(!(u"ΓΏ"sv > u"Δ€"sv)); + EXPECT(u"Δ€"sv > u"ΓΏ"sv); + EXPECT(!(u"Δ€"sv < u"ΓΏ"sv)); + + EXPECT(u"❀"sv < u"πŸ˜€"sv); + EXPECT(!(u"❀"sv > u"πŸ˜€"sv)); + EXPECT(u"πŸ˜€"sv > u"❀"sv); + EXPECT(!(u"πŸ˜€"sv < u"❀"sv)); } TEST_CASE(equals_ignoring_case)