mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-08 06:09:58 +00:00
Meta+Tests: Update fast-float to version 8.1.0
This release comes with a fix for a bug where certain unicode emoji
characters encoded in UTF-16 were mistakenly parsed as integers. This
manifested in keys of an JS object being coerced into integers, i.e.
`{ "⤵️": 42 }` would become `{ "5": 42 }`.
Relevant upstream PR: https://github.com/fastfloat/fast_float/pull/325
This commit is contained in:
parent
c6ece554ba
commit
2dd1918b10
Notes:
github-actions[bot]
2025-09-26 01:16:13 +00:00
Author: https://github.com/InvalidUsernameException
Commit: 2dd1918b10
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6286
Reviewed-by: https://github.com/trflynn89
2 changed files with 27 additions and 1 deletions
|
|
@ -611,6 +611,32 @@ TEST_CASE(unsigned_integer)
|
|||
EXPECT(!actual_u64.has_value());
|
||||
}
|
||||
|
||||
TEST_CASE(unicode_emojis_with_low_byte_in_UTF_16_matching_the_value_of_an_ascii_digit)
|
||||
{
|
||||
#define EXPECT_PARSE_TO_FAIL_FOR_EMOJI(string_value) \
|
||||
do { \
|
||||
EXPECT(!AK::parse_number<u32>(string_value##sv).has_value()); \
|
||||
EXPECT(!AK::parse_number<u32>(u##string_value##sv).has_value()); \
|
||||
} while (false)
|
||||
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("ℹ");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("ℹ️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("☸");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("☸️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("☹");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("☹️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("✳");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("✳️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("✴");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("✴️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("⤴");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("⤴️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("⤵");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("⤵️");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("〰");
|
||||
EXPECT_PARSE_TO_FAIL_FOR_EMOJI("〰️");
|
||||
}
|
||||
|
||||
TEST_CASE(octal)
|
||||
{
|
||||
auto value = AK::parse_number<u16>(StringView(), AK::TrimWhitespace::No, 8);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue