diff --git a/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp b/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp index f5215499359..58f6a87abbb 100644 --- a/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp +++ b/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp @@ -407,7 +407,7 @@ Vector format_numeric_hours(VM& vm, DurationFormat const& du for (auto& part : hours_parts) { // a. Append the Record { [[Type]]: part.[[Type]], [[Value]]: part.[[Value]], [[Unit]]: "hour" } to result. - result.unchecked_append({ .type = part.type, .value = part.value.to_utf8_but_should_be_ported_to_utf16(), .unit = "hour"sv }); + result.unchecked_append({ .type = part.type, .value = move(part.value), .unit = "hour"sv }); } // 13. Return result. @@ -472,7 +472,7 @@ Vector format_numeric_minutes(VM& vm, DurationFormat const& for (auto& part : minutes_parts) { // a. Append the Record { [[Type]]: part.[[Type]], [[Value]]: part.[[Value]], [[Unit]]: "minute" } to result. - result.unchecked_append({ .type = part.type, .value = part.value.to_utf8_but_should_be_ported_to_utf16(), .unit = "minute"sv }); + result.unchecked_append({ .type = part.type, .value = move(part.value), .unit = "minute"sv }); } // 14. Return result. @@ -560,7 +560,7 @@ Vector format_numeric_seconds(VM& vm, DurationFormat const& for (auto& part : seconds_parts) { // a. Append the Record { [[Type]]: part.[[Type]], [[Value]]: part.[[Value]], [[Unit]]: "second" } to result. - result.unchecked_append({ .type = part.type, .value = part.value.to_utf8_but_should_be_ported_to_utf16(), .unit = "second"sv }); + result.unchecked_append({ .type = part.type, .value = move(part.value), .unit = "second"sv }); } // 18. Return result. @@ -786,7 +786,7 @@ Vector list_format_parts(VM& vm, DurationFormat const& durat VERIFY(list_part.type == "literal"sv); // ii. Append the Record { [[Type]]: "literal", [[Value]]: listPart.[[Value]], [[Unit]]: empty } to flattenedPartsList. - flattened_parts_list.append({ .type = "literal"sv, .value = list_part.value.to_utf8_but_should_be_ported_to_utf16(), .unit = {} }); + flattened_parts_list.append({ .type = "literal"sv, .value = move(list_part.value), .unit = {} }); } } @@ -922,7 +922,7 @@ Vector partition_duration_format_pattern(VM& vm, DurationFor for (auto& part : parts) { // a. Append the Record { [[Type]]: part.[[Type]], [[Value]]: part.[[Value]], [[Unit]]: numberFormatUnit } to list. - list.unchecked_append({ .type = part.type, .value = part.value.to_utf8_but_should_be_ported_to_utf16(), .unit = number_format_unit.as_string() }); + list.unchecked_append({ .type = part.type, .value = move(part.value), .unit = number_format_unit.as_string() }); } // 11. Append list to result. diff --git a/Libraries/LibJS/Runtime/Intl/DurationFormat.h b/Libraries/LibJS/Runtime/Intl/DurationFormat.h index d11fc96e1af..b5a618b538f 100644 --- a/Libraries/LibJS/Runtime/Intl/DurationFormat.h +++ b/Libraries/LibJS/Runtime/Intl/DurationFormat.h @@ -82,11 +82,11 @@ public: void set_numbering_system(String numbering_system) { m_numbering_system = move(numbering_system); } String const& numbering_system() const { return m_numbering_system; } - void set_hour_minute_separator(String hour_minute_separator) { m_hour_minute_separator = move(hour_minute_separator); } - String const& hour_minute_separator() const { return m_hour_minute_separator; } + void set_hour_minute_separator(Utf16String hour_minute_separator) { m_hour_minute_separator = move(hour_minute_separator); } + Utf16String const& hour_minute_separator() const { return m_hour_minute_separator; } - void set_minute_second_separator(String minute_second_separator) { m_minute_second_separator = move(minute_second_separator); } - String const& minute_second_separator() const { return m_minute_second_separator; } + void set_minute_second_separator(Utf16String minute_second_separator) { m_minute_second_separator = move(minute_second_separator); } + Utf16String const& minute_second_separator() const { return m_minute_second_separator; } void set_style(StringView style) { m_style = style_from_string(style); } Style style() const { return m_style; } @@ -129,10 +129,10 @@ public: private: explicit DurationFormat(Object& prototype); - String m_locale; // [[Locale]] - String m_numbering_system; // [[NumberingSystem]] - String m_hour_minute_separator; // [[HourMinutesSeparator]] - String m_minute_second_separator; // [[MinutesSecondsSeparator]] + String m_locale; // [[Locale]] + String m_numbering_system; // [[NumberingSystem]] + Utf16String m_hour_minute_separator; // [[HourMinutesSeparator]] + Utf16String m_minute_second_separator; // [[MinutesSecondsSeparator]] Style m_style { Style::Long }; // [[Style]] DurationUnitOptions m_years_options; // [[YearsOptions]] @@ -178,7 +178,7 @@ static constexpr auto duration_instances_components = to_array + * Copyright (c) 2024-2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ @@ -72,12 +72,12 @@ DigitalFormat digital_format(StringView locale) digital_format.uses_two_digit_hours = hours.length() == 2; auto hours_minutes_separator = lexer.consume_while(is_not_ascii_digit); - digital_format.hours_minutes_separator = MUST(String::from_utf8(hours_minutes_separator)); + digital_format.hours_minutes_separator = Utf16String::from_utf8(hours_minutes_separator); lexer.ignore_while(is_ascii_digit); auto minutes_seconds_separator = lexer.consume_while(is_not_ascii_digit); - digital_format.minutes_seconds_separator = MUST(String::from_utf8(minutes_seconds_separator)); + digital_format.minutes_seconds_separator = Utf16String::from_utf8(minutes_seconds_separator); locale_data->set_digital_format(move(digital_format)); return *locale_data->digital_format(); diff --git a/Libraries/LibUnicode/DurationFormat.h b/Libraries/LibUnicode/DurationFormat.h index 086c5a3540c..c0d11e2e4c9 100644 --- a/Libraries/LibUnicode/DurationFormat.h +++ b/Libraries/LibUnicode/DurationFormat.h @@ -1,18 +1,18 @@ /* - * Copyright (c) 2024, Tim Flynn + * Copyright (c) 2024-2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once -#include +#include namespace Unicode { struct DigitalFormat { - String hours_minutes_separator { ":"_string }; - String minutes_seconds_separator { ":"_string }; + Utf16String hours_minutes_separator { ":"_utf16 }; + Utf16String minutes_seconds_separator { ":"_utf16 }; bool uses_two_digit_hours { false }; };