InitializePluralRules = function (pluralRules, locales, options) {
            const requestedLocales = CanonicalizeLocaleList(locales);
            options = options === undefined ? _.create() : Internal.ToObject(options);
            const opt = _.create();
            opt.matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            pluralRules.type = GetOption(options, "type", "string", ["cardinal", "ordinal"], "cardinal");

            SetNumberFormatDigitOptions(pluralRules, options, 0, 3);

            // %PluralRules%.[[RelevantExtensionKeys]] = [] (#sec-intl.pluralrules-internal-slots)
            const r = ResolveLocale(platform.isPRLocaleAvailable, requestedLocales, opt, []);

            pluralRules.locale = r.locale;
            pluralRules.pluralCategories = platform.pluralRulesKeywords(pluralRules);

            pluralRules.initializedPluralRules = true;

            return pluralRules;
        }
Initializes the given pluralRules object

ECMA 402: #sec-initializepluralrules

@param {Object} pluralRules
@param {String|String[]} locales
@param {Object} options