1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:17:44 +00:00

LibJS: Implement Intl.ListFormat.prototype.format

This commit is contained in:
Timothy Flynn 2021-09-06 14:37:23 -04:00 committed by Linus Groh
parent 3b410742ab
commit cdba40f7ea
7 changed files with 517 additions and 0 deletions

View file

@ -26,6 +26,11 @@ struct LocaleResult {
String locale;
};
struct PatternPartition {
StringView type;
StringView value;
};
Optional<Unicode::LocaleID> is_structurally_valid_language_tag(StringView locale);
String canonicalize_unicode_locale_id(Unicode::LocaleID& locale);
Vector<String> canonicalize_locale_list(GlobalObject&, Value locales);
@ -35,6 +40,7 @@ Vector<String> lookup_supported_locales(Vector<String> const& requested_locales)
Array* supported_locales(GlobalObject&, Vector<String> const& requested_locales, Value options);
Object* coerce_options_to_object(GlobalObject& global_object, Value options);
Value get_option(GlobalObject& global_object, Value options, PropertyName const& property, Value::Type type, Vector<StringView> const& values, Fallback fallback);
Vector<PatternPartition> partition_pattern(StringView pattern);
String insert_unicode_extension_and_canonicalize(Unicode::LocaleID locale_id, Unicode::LocaleExtension extension);
LocaleResult resolve_locale(Vector<String> const& requested_locales, LocaleOptions const& options, Vector<StringView> relevant_extension_keys);
Value canonical_code_for_display_names(GlobalObject&, DisplayNames::Type type, StringView code);