From 149e442c2416c3997455073db2059607436203a1 Mon Sep 17 00:00:00 2001 From: Srikavin Ramkumar Date: Thu, 23 Mar 2023 04:44:26 -0400 Subject: [PATCH] LibWeb: Iterate codepoints instead of characters in is_valid_name --- Userland/Libraries/LibWeb/DOM/Document.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 1d00c3cf20..7e2c3fbc88 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -1882,14 +1882,17 @@ static inline bool is_valid_name_character(u32 code_point) bool Document::is_valid_name(DeprecatedString const& name) { - if (name.is_empty()) + auto code_points = Utf8View { name }; + auto it = code_points.begin(); + if (code_points.is_empty()) return false; - if (!is_valid_name_start_character(name[0])) + if (!is_valid_name_start_character(*it)) return false; + ++it; - for (size_t i = 1; i < name.length(); ++i) { - if (!is_valid_name_character(name[i])) + for (; it != code_points.end(); ++it) { + if (!is_valid_name_character(*it)) return false; }