|
@@ -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();
|
|
|
}
|
|
|
|