test262/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-b...

49 lines
1.9 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 "numberingSystem" values can be used with DateTimeFormat.
info: |
Intl.supportedValuesOf ( key )
1. Let key be ? ToString(key).
...
5. Else if key is "numberingSystem", then
a. Let list be ! AvailableNumberingSystems( ).
...
9. Return ! CreateArrayFromList( list ).
AvailableNumberingSystems ( )
The AvailableNumberingSystems 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 numbering systems
identifiers identifying the numbering systems for which the implementation
provides the functionality of Intl.DateTimeFormat, Intl.NumberFormat, and
Intl.RelativeTimeFormat objects. The list must include the Numbering System
value of every row of Table 4, except the header row.
includes: [testIntl.js]
locale: [en]
features: [Intl-enumeration, Array.prototype.includes]
---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem");
for (let numberingSystem of numberingSystems) {
let obj = new Intl.DateTimeFormat("en", {numberingSystem});
assert.sameValue(obj.resolvedOptions().numberingSystem, numberingSystem,
`${numberingSystem} is supported by DateTimeFormat`);
}
for (let numberingSystem of allNumberingSystems()) {
let obj = new Intl.DateTimeFormat("en", {numberingSystem});
if (obj.resolvedOptions().numberingSystem === numberingSystem) {
assert(numberingSystems.includes(numberingSystem),
`${numberingSystem} supported but not returned by supportedValuesOf`);
} else {
assert(!numberingSystems.includes(numberingSystem),
`${numberingSystem} not supported but returned by supportedValuesOf`);
}
}