1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:37:45 +00:00

LibJS: Convert to_show_calendar_option() to ThrowCompletionOr

This commit is contained in:
Linus Groh 2021-09-15 23:45:02 +01:00
parent 509d13cf67
commit 65d26dd25e
5 changed files with 9 additions and 15 deletions

View file

@ -226,12 +226,12 @@ ThrowCompletionOr<String> to_temporal_rounding_mode(GlobalObject& global_object,
}
// 13.11 ToShowCalendarOption ( normalizedOptions ), https://tc39.es/proposal-temporal/#sec-temporal-toshowcalendaroption
Optional<String> to_show_calendar_option(GlobalObject& global_object, Object const& normalized_options)
ThrowCompletionOr<String> to_show_calendar_option(GlobalObject& global_object, Object const& normalized_options)
{
auto& vm = global_object.vm();
// 1. Return ? GetOption(normalizedOptions, "calendarName", « String », « "auto", "always", "never" », "auto").
auto option = TRY_OR_DISCARD(get_option(global_object, normalized_options, vm.names.calendarName, { OptionType::String }, { "auto"sv, "always"sv, "never"sv }, js_string(vm, "auto"sv)));
auto option = TRY(get_option(global_object, normalized_options, vm.names.calendarName, { OptionType::String }, { "auto"sv, "always"sv, "never"sv }, js_string(vm, "auto"sv)));
VERIFY(option.is_string());
return option.as_string().string();

View file

@ -91,7 +91,7 @@ template<typename NumberType>
ThrowCompletionOr<Variant<String, NumberType>> get_string_or_number_option(GlobalObject&, Object const& options, PropertyName const& property, Vector<StringView> const& string_values, NumberType minimum, NumberType maximum, Value fallback);
ThrowCompletionOr<String> to_temporal_overflow(GlobalObject&, Object const& normalized_options);
ThrowCompletionOr<String> to_temporal_rounding_mode(GlobalObject&, Object const& normalized_options, String const& fallback);
Optional<String> to_show_calendar_option(GlobalObject&, Object const& normalized_options);
ThrowCompletionOr<String> to_show_calendar_option(GlobalObject&, Object const& normalized_options);
u64 to_temporal_rounding_increment(GlobalObject&, Object const& normalized_options, Optional<double> dividend, bool inclusive);
Optional<SecondsStringPrecision> to_seconds_string_precision(GlobalObject&, Object const& normalized_options);
Optional<String> to_largest_temporal_unit(GlobalObject&, Object const& normalized_options, Vector<StringView> const& disallowed_units, String const& fallback, Optional<String> auto_value);

View file

@ -459,12 +459,10 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_string)
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
// 4. Let showCalendar be ? ToShowCalendarOption(options).
auto show_calendar = to_show_calendar_option(global_object, *options);
if (vm.exception())
return {};
auto show_calendar = TRY_OR_DISCARD(to_show_calendar_option(global_object, *options));
// 5. Return ? TemporalDateToString(temporalDate, showCalendar).
auto string = temporal_date_to_string(global_object, *temporal_date, *show_calendar);
auto string = temporal_date_to_string(global_object, *temporal_date, show_calendar);
if (vm.exception())
return {};

View file

@ -127,12 +127,10 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::to_string)
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
// 4. Let showCalendar be ? ToShowCalendarOption(options).
auto show_calendar = to_show_calendar_option(global_object, *options);
if (vm.exception())
return {};
auto show_calendar = TRY_OR_DISCARD(to_show_calendar_option(global_object, *options));
// 5. Return ? TemporalMonthDayToString(monthDay, showCalendar).
return js_string(vm, TRY_OR_DISCARD(temporal_month_day_to_string(global_object, *month_day, *show_calendar)));
return js_string(vm, TRY_OR_DISCARD(temporal_month_day_to_string(global_object, *month_day, show_calendar)));
}
// 10.3.9 Temporal.PlainMonthDay.prototype.toLocaleString ( [ locales [ , options ] ] ), https://tc39.es/proposal-temporal/#sec-temporal.plainmonthday.prototype.tolocalestring

View file

@ -248,12 +248,10 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::to_string)
return {};
// 4. Let showCalendar be ? ToShowCalendarOption(options).
auto show_calendar = to_show_calendar_option(global_object, *options);
if (vm.exception())
return {};
auto show_calendar = TRY_OR_DISCARD(to_show_calendar_option(global_object, *options));
// 5. Return ? TemporalYearMonthToString(yearMonth, showCalendar).
return js_string(vm, TRY_OR_DISCARD(temporal_year_month_to_string(global_object, *year_month, *show_calendar)));
return js_string(vm, TRY_OR_DISCARD(temporal_year_month_to_string(global_object, *year_month, show_calendar)));
}
// 9.3.18 Temporal.PlainYearMonth.prototype.toLocaleString ( [ locales [ , options ] ] ), https://tc39.es/proposal-temporal/#sec-temporal.plainyearmonth.prototype.tolocalestring