diff options
-rw-r--r-- | Userland/Libraries/LibJS/Lexer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Userland/Libraries/LibJS/Lexer.cpp b/Userland/Libraries/LibJS/Lexer.cpp index 685e915d2b..43a3952a56 100644 --- a/Userland/Libraries/LibJS/Lexer.cpp +++ b/Userland/Libraries/LibJS/Lexer.cpp @@ -363,9 +363,12 @@ u32 Lexer::current_code_point() const static constexpr const u32 REPLACEMENT_CHARACTER = 0xFFFD; if (m_position == 0) return REPLACEMENT_CHARACTER; - Utf8View utf_8_view { m_source.substring_view(m_position - 1) }; - if (utf_8_view.is_empty()) + auto substring = m_source.substring_view(m_position - 1); + if (substring.is_empty()) return REPLACEMENT_CHARACTER; + if (is_ascii(substring[0])) + return substring[0]; + Utf8View utf_8_view { substring }; return *utf_8_view.begin(); } |