mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
LibJS+LibLocale: Port Intl.DateTimeFormat to String
This commit is contained in:
committed by
Linus Groh
parent
970e9df245
commit
b2097f4059
Notes:
sideshowbarker
2024-07-17 07:31:31 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/b2097f4059 Pull-request: https://github.com/SerenityOS/serenity/pull/17202
@@ -170,7 +170,7 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
|
||||
// Non-standard, default_hour_cycle will be empty if Unicode data generation is disabled.
|
||||
if (!default_hour_cycle.has_value()) {
|
||||
date_time_format.set_time_zone(default_time_zone());
|
||||
date_time_format.set_time_zone(TRY_OR_THROW_OOM(vm, String::from_utf8(default_time_zone())));
|
||||
return &date_time_format;
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
}
|
||||
|
||||
// 32. Set dateTimeFormat.[[TimeZone]] to timeZone.
|
||||
date_time_format.set_time_zone(time_zone.to_deprecated_string());
|
||||
date_time_format.set_time_zone(move(time_zone));
|
||||
|
||||
// 33. Let formatOptions be a new Record.
|
||||
::Locale::CalendarPattern format_options {};
|
||||
@@ -317,12 +317,12 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
|
||||
// b. Let styles be dataLocaleData.[[styles]].[[<resolvedCalendar>]].
|
||||
// c. Let bestFormat be DateTimeStyleFormat(dateStyle, timeStyle, styles).
|
||||
best_format = date_time_style_format(data_locale, date_time_format);
|
||||
best_format = MUST_OR_THROW_OOM(date_time_style_format(vm, data_locale, date_time_format));
|
||||
}
|
||||
// 43. Else,
|
||||
else {
|
||||
// a. Let formats be dataLocaleData.[[formats]].[[<resolvedCalendar>]].
|
||||
auto formats = ::Locale::get_calendar_available_formats(data_locale, date_time_format.calendar());
|
||||
auto formats = TRY_OR_THROW_OOM(vm, ::Locale::get_calendar_available_formats(data_locale, date_time_format.calendar()));
|
||||
|
||||
// b. If matcher is "basic", then
|
||||
if (TRY(matcher.as_string().utf8_string_view()) == "basic"sv) {
|
||||
@@ -347,7 +347,7 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
}
|
||||
});
|
||||
|
||||
DeprecatedString pattern;
|
||||
String pattern;
|
||||
Vector<::Locale::CalendarRangePattern> range_patterns;
|
||||
|
||||
// 45. If dateTimeFormat.[[Hour]] is undefined, then
|
||||
@@ -368,7 +368,7 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
}
|
||||
|
||||
// b. Let rangePatterns be bestFormat.[[rangePatterns12]].
|
||||
range_patterns = ::Locale::get_calendar_range12_formats(data_locale, date_time_format.calendar(), best_format->skeleton);
|
||||
range_patterns = TRY_OR_THROW_OOM(vm, ::Locale::get_calendar_range12_formats(data_locale, date_time_format.calendar(), best_format->skeleton));
|
||||
}
|
||||
// 47. Else,
|
||||
else {
|
||||
@@ -376,7 +376,7 @@ ThrowCompletionOr<DateTimeFormat*> initialize_date_time_format(VM& vm, DateTimeF
|
||||
pattern = move(best_format->pattern);
|
||||
|
||||
// b. Let rangePatterns be bestFormat.[[rangePatterns]].
|
||||
range_patterns = ::Locale::get_calendar_range_formats(data_locale, date_time_format.calendar(), best_format->skeleton);
|
||||
range_patterns = TRY_OR_THROW_OOM(vm, ::Locale::get_calendar_range_formats(data_locale, date_time_format.calendar(), best_format->skeleton));
|
||||
}
|
||||
|
||||
// 48. Set dateTimeFormat.[[Pattern]] to pattern.
|
||||
|
||||
Reference in New Issue
Block a user