EncodedJSValue JSC_HOST_CALL IntlDateTimeFormatConstructorFuncSupportedLocalesOf(ExecState* state)
{
    // 12.2.2 Intl.DateTimeFormat.supportedLocalesOf(locales [, options]) (ECMA-402 2.0)

    // 1. Let availableLocales be %DateTimeFormat%.[[availableLocales]].
    JSGlobalObject* globalObject = state->callee()->globalObject();
    const HashSet<String> availableLocales = globalObject->intlDateTimeFormatAvailableLocales();

    // 2. Let requestedLocales be CanonicalizeLocaleList(locales).
    Vector<String> requestedLocales = canonicalizeLocaleList(*state, state->argument(0));
    if (state->hadException())
        return JSValue::encode(jsUndefined());

    // 3. Return SupportedLocales(availableLocales, requestedLocales, options).
    return JSValue::encode(supportedLocales(*state, availableLocales, requestedLocales, state->argument(1)));
}