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

LibJS: Implement a nearly empty Intl.PluralRules object

This adds plumbing for the Intl.PluralRules object, constructor, and
prototype.
This commit is contained in:
Timothy Flynn 2022-01-28 12:56:04 -05:00 committed by Linus Groh
parent ac3e42a8de
commit 0087804d10
12 changed files with 229 additions and 0 deletions

View file

@ -0,0 +1,40 @@
/*
* Copyright (c) 2022, Tim Flynn <trflynn89@pm.me>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibJS/Runtime/Intl/PluralRules.h>
namespace JS::Intl {
// 16 PluralRules Objects, https://tc39.es/ecma402/#pluralrules-objects
PluralRules::PluralRules(Object& prototype)
: NumberFormatBase(prototype)
{
}
void PluralRules::set_type(StringView type)
{
if (type == "cardinal"sv) {
m_type = Type::Cardinal;
} else if (type == "ordinal"sv) {
m_type = Type::Ordinal;
} else {
VERIFY_NOT_REACHED();
}
}
StringView PluralRules::type_string() const
{
switch (m_type) {
case Type::Cardinal:
return "cardinal"sv;
case Type::Ordinal:
return "ordinal"sv;
default:
VERIFY_NOT_REACHED();
}
}
}