/* * Copyright (c) 2021, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace JS::Intl { using Fallback = Variant; struct LocaleOptions { Value locale_matcher; }; struct LocaleResult { String locale; }; Vector canonicalize_locale_list(GlobalObject&, Value locales); Value get_option(GlobalObject& global_object, Value options, PropertyName const& property, Value::Type type, Vector const& values, Fallback fallback); LocaleResult resolve_locale(Vector const& requested_locales, LocaleOptions const& options, Vector relevant_extension_keys); Value canonical_code_for_display_names(GlobalObject&, DisplayNames::Type type, StringView code); }