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

LibJS: Use Intl.PluralRules within Intl.RelativeFormat

The Polish test cases added here cover previous failures from test262,
due to the way that 0 is specified to be "many" in Polish.
This commit is contained in:
Timothy Flynn 2022-07-07 13:59:46 -04:00 committed by Linus Groh
parent 36abcd820d
commit bf85bf2a9e
6 changed files with 119 additions and 67 deletions

View file

@ -10,6 +10,8 @@
#include <LibJS/Runtime/Intl/AbstractOperations.h>
#include <LibJS/Runtime/Intl/NumberFormat.h>
#include <LibJS/Runtime/Intl/NumberFormatConstructor.h>
#include <LibJS/Runtime/Intl/PluralRules.h>
#include <LibJS/Runtime/Intl/PluralRulesConstructor.h>
#include <LibJS/Runtime/Intl/RelativeTimeFormat.h>
#include <LibJS/Runtime/Intl/RelativeTimeFormatConstructor.h>
#include <LibUnicode/Locale.h>
@ -141,7 +143,8 @@ ThrowCompletionOr<RelativeTimeFormat*> initialize_relative_time_format(GlobalObj
relative_time_format.set_number_format(static_cast<NumberFormat*>(number_format));
// 20. Let relativeTimeFormat.[[PluralRules]] be ! Construct(%PluralRules%, « locale »).
// FIXME: We do not yet support Intl.PluralRules.
auto* plural_rules = MUST(construct(global_object, *global_object.intl_plural_rules_constructor(), js_string(vm, locale)));
relative_time_format.set_plural_rules(static_cast<PluralRules*>(plural_rules));
// 21. Return relativeTimeFormat.
return &relative_time_format;