summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibJS/Lexer.cpp7
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();
}