Selaa lähdekoodia

LibJS: Change GetDurationUnitOptions to require a string for prevStyle

This is an editoral change in the Intl.DurationFormat proposal. See:
https://github.com/tc39/proposal-intl-duration-format/commit/62ee645
Timothy Flynn 2 vuotta sitten
vanhempi
commit
aabd06722f

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp

@@ -238,7 +238,7 @@ bool is_valid_duration_record(Temporal::DurationRecord const& record)
 }
 
 // 1.1.6 GetDurationUnitOptions ( unit, options, baseStyle, stylesList, digitalBase, prevStyle ), https://tc39.es/proposal-intl-duration-format/#sec-getdurationunitoptions
-ThrowCompletionOr<DurationUnitOptions> get_duration_unit_options(VM& vm, String const& unit, Object const& options, StringView base_style, Span<StringView const> styles_list, StringView digital_base, Optional<String> const& previous_style)
+ThrowCompletionOr<DurationUnitOptions> get_duration_unit_options(VM& vm, String const& unit, Object const& options, StringView base_style, Span<StringView const> styles_list, StringView digital_base, StringView previous_style)
 {
     // 1. Let style be ? GetOption(options, unit, "string", stylesList, undefined).
     auto style_value = TRY(get_option(vm, options, unit, OptionType::String, styles_list, Empty {}));

+ 2 - 1
Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.h

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2022, Idan Horowitz <idan.horowitz@serenityos.org>
+ * Copyright (c) 2022, Tim Flynn <trflynn89@serenityos.org>
  *
  * SPDX-License-Identifier: BSD-2-Clause
  */
@@ -222,7 +223,7 @@ struct DurationUnitOptions {
 ThrowCompletionOr<Temporal::DurationRecord> to_duration_record(VM&, Value input);
 i8 duration_sign(Temporal::DurationRecord const&);
 bool is_valid_duration_record(Temporal::DurationRecord const&);
-ThrowCompletionOr<DurationUnitOptions> get_duration_unit_options(VM&, String const& unit, Object const& options, StringView base_style, Span<StringView const> styles_list, StringView digital_base, Optional<String> const& previous_style);
+ThrowCompletionOr<DurationUnitOptions> get_duration_unit_options(VM&, String const& unit, Object const& options, StringView base_style, Span<StringView const> styles_list, StringView digital_base, StringView previous_style);
 ThrowCompletionOr<Vector<PatternPartition>> partition_duration_format_pattern(VM&, DurationFormat const&, Temporal::DurationRecord const& duration);
 
 }

+ 2 - 2
Userland/Libraries/LibJS/Runtime/Intl/DurationFormatConstructor.cpp

@@ -98,8 +98,8 @@ ThrowCompletionOr<Object*> DurationFormatConstructor::construct(FunctionObject&
     // 15. Set durationFormat.[[DataLocale]] to r.[[dataLocale]].
     duration_format->set_data_locale(move(result.data_locale));
 
-    // 16. Let prevStyle be undefined.
-    Optional<String> previous_style;
+    // 16. Let prevStyle be the empty String.
+    auto previous_style = String::empty();
 
     // 17. For each row in Table 1, except the header row, in table order, do
     for (auto const& duration_instances_component : duration_instances_components) {