Source code

Revision control

Copy as Markdown

Other Tools

// 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 "unit" values can be used with NumberFormat.
info: |
Intl.supportedValuesOf ( key )
1. Let key be ? ToString(key).
...
7. Else if key is "unit", then
a. Let list be ! AvailableUnits( ).
...
9. Return ! CreateArrayFromList( list ).
AvailableUnits ( )
The AvailableUnits 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 the unique values of simple unit
identifiers listed in every row of Table 1, except the header row.
includes: [testIntl.js]
locale: [en]
features: [Intl-enumeration, Array.prototype.includes]
---*/
const units = Intl.supportedValuesOf("unit");
for (let unit of units) {
let obj = new Intl.NumberFormat("en", {style: "unit", unit});
assert.sameValue(obj.resolvedOptions().unit, unit,
`${unit} is supported by NumberFormat`);
}
for (let unit of allSimpleSanctionedUnits()) {
let obj = new Intl.NumberFormat("en", {style: "unit", unit});
if (obj.resolvedOptions().unit === unit) {
assert(units.includes(unit),
`${unit} supported but not returned by supportedValuesOf`);
} else {
assert(!units.includes(unit),
`${unit} not supported but returned by supportedValuesOf`);
}
}
reportCompare(0, 0);