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:
InvalidUsernameException 2025-09-23 22:48:22 +02:00 committed by Tim Flynn
parent c6ece554ba
commit 2dd1918b10
2 changed files with 27 additions and 1 deletions

View File

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

View File

@ -220,7 +220,7 @@
},
{
"name": "fast-float",
"version": "8.0.2#0"
"version": "8.1.0#0"
},
{
"name": "ffmpeg",