diff options
Diffstat (limited to 'Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp')
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp b/Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp index 6c3ba848d4..a816293f04 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intl/DateTimeFormatConstructor.cpp @@ -5,7 +5,9 @@ */ #include <LibJS/Runtime/AbstractOperations.h> +#include <LibJS/Runtime/Array.h> #include <LibJS/Runtime/GlobalObject.h> +#include <LibJS/Runtime/Intl/AbstractOperations.h> #include <LibJS/Runtime/Intl/DateTimeFormat.h> #include <LibJS/Runtime/Intl/DateTimeFormatConstructor.h> @@ -25,6 +27,10 @@ void DateTimeFormatConstructor::initialize(GlobalObject& global_object) // 11.3.1 Intl.DateTimeFormat.prototype, https://tc39.es/ecma402/#sec-intl.datetimeformat.prototype define_direct_property(vm.names.prototype, global_object.intl_date_time_format_prototype(), 0); + + u8 attr = Attribute::Writable | Attribute::Configurable; + define_native_function(vm.names.supportedLocalesOf, supported_locales_of, 1, attr); + define_direct_property(vm.names.length, Value(0), Attribute::Configurable); } @@ -58,4 +64,19 @@ ThrowCompletionOr<Object*> DateTimeFormatConstructor::construct(FunctionObject& return date_time_format; } +// 11.3.2 Intl.DateTimeFormat.supportedLocalesOf ( locales [ , options ] ), https://tc39.es/ecma402/#sec-intl.datetimeformat.supportedlocalesof +JS_DEFINE_NATIVE_FUNCTION(DateTimeFormatConstructor::supported_locales_of) +{ + auto locales = vm.argument(0); + auto options = vm.argument(1); + + // 1. Let availableLocales be %DateTimeFormat%.[[AvailableLocales]]. + + // 2. Let requestedLocales be ? CanonicalizeLocaleList(locales). + auto requested_locales = TRY(canonicalize_locale_list(global_object, locales)); + + // 3. Return ? SupportedLocales(availableLocales, requestedLocales, options). + return TRY(supported_locales(global_object, requested_locales, options)); +} + } |