Przeglądaj źródła

LibWeb: Don't crash on Document.createElement() with emoji in tag name

Once again, we were mistakenly using StringBuilder's append(char) when
we really wanted append_code_point(u32).
Andreas Kling 1 rok temu
rodzic
commit
0d74ced9b5

+ 1 - 0
Tests/LibWeb/Text/expected/DOM/createElement-with-emoji-in-tag-name.txt

@@ -0,0 +1 @@
+PASS (Didn't crash)

+ 7 - 0
Tests/LibWeb/Text/input/DOM/createElement-with-emoji-in-tag-name.html

@@ -0,0 +1,7 @@
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        const e = document.createElement("🧐");
+        println("PASS (Didn't crash)");
+    });
+</script>

+ 1 - 1
Userland/Libraries/LibWeb/Infra/Strings.cpp

@@ -113,7 +113,7 @@ ErrorOr<String> to_ascii_uppercase(StringView string)
     auto utf8_view = Utf8View { string };
     for (u32 code_point : utf8_view) {
         code_point = AK::to_ascii_uppercase(code_point);
-        TRY(string_builder.try_append(code_point));
+        string_builder.append_code_point(code_point);
     }
     return string_builder.to_string();
 }