mirror of https://github.com/tc39/test262.git
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
// Copyright (C) 2021 André Bargull. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-intl.supportedvaluesof
|
|
description: >
|
|
The returned "calendar" values can be used with DateTimeFormat.
|
|
info: |
|
|
Intl.supportedValuesOf ( key )
|
|
|
|
1. Let key be ? ToString(key).
|
|
2. If key is "calendar", then
|
|
a. Let list be ! AvailableCalendars( ).
|
|
...
|
|
9. Return ! CreateArrayFromList( list ).
|
|
|
|
AvailableCalendars ( )
|
|
The AvailableCalendars abstract operation returns a List, ordered as if an
|
|
Array of the same values had been sorted using %Array.prototype.sort% using
|
|
undefined as comparefn, that contains unique calendar types identifying the
|
|
calendars for which the implementation provides the functionality of
|
|
Intl.DateTimeFormat objects. The list must include "gregory".
|
|
includes: [testIntl.js]
|
|
locale: [en]
|
|
features: [Intl-enumeration, Array.prototype.includes]
|
|
---*/
|
|
|
|
const calendars = Intl.supportedValuesOf("calendar");
|
|
|
|
for (let calendar of calendars) {
|
|
let obj = new Intl.DateTimeFormat("en", {calendar});
|
|
assert.sameValue(obj.resolvedOptions().calendar, calendar,
|
|
`${calendar} is supported by DateTimeFormat`);
|
|
}
|
|
|
|
for (let calendar of allCalendars()) {
|
|
let obj = new Intl.DateTimeFormat("en", {calendar});
|
|
if (obj.resolvedOptions().calendar === calendar) {
|
|
assert(calendars.includes(calendar),
|
|
`${calendar} supported but not returned by supportedValuesOf`);
|
|
} else {
|
|
assert(!calendars.includes(calendar),
|
|
`${calendar} not supported but returned by supportedValuesOf`);
|
|
}
|
|
}
|