mirror of https://github.com/tc39/test262.git
67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
// Copyright 2019 Igalia, S.L. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-initializenumberformat
|
|
description: Checks handling of the compactDisplay option to the NumberFormat constructor.
|
|
info: |
|
|
InitializeNumberFormat ( numberFormat, locales, options )
|
|
|
|
23. Let signDisplay be ? GetOption(options, "signDisplay", "string", « "auto", "never", "always", "exceptZero" », "auto").
|
|
24. Set numberFormat.[[SignDisplay]] to signDisplay.
|
|
|
|
features: [Intl.NumberFormat-unified]
|
|
---*/
|
|
|
|
const values = [
|
|
[undefined, "short"],
|
|
["short"],
|
|
["narrow"],
|
|
["long"],
|
|
];
|
|
|
|
for (const [value, expected = value] of values) {
|
|
const nf = new Intl.NumberFormat([], {
|
|
style: "unit",
|
|
unitDisplay: value,
|
|
unit: "hour",
|
|
});
|
|
const resolvedOptions = nf.resolvedOptions();
|
|
assert.sameValue("unitDisplay" in resolvedOptions, true);
|
|
assert.sameValue(resolvedOptions.unitDisplay, expected);
|
|
}
|
|
|
|
for (const [value, expected = value] of values) {
|
|
const nf = new Intl.NumberFormat([], {
|
|
style: "unit",
|
|
unitDisplay: value,
|
|
unit: "percent",
|
|
});
|
|
const resolvedOptions = nf.resolvedOptions();
|
|
assert.sameValue("unitDisplay" in resolvedOptions, true);
|
|
assert.sameValue(resolvedOptions.unitDisplay, expected);
|
|
}
|
|
|
|
for (const [value] of values) {
|
|
const nf = new Intl.NumberFormat([], {
|
|
style: "percent",
|
|
unitDisplay: value,
|
|
});
|
|
const resolvedOptions = nf.resolvedOptions();
|
|
assert.sameValue("unitDisplay" in resolvedOptions, false);
|
|
assert.sameValue(resolvedOptions.unitDisplay, undefined);
|
|
}
|
|
|
|
const invalidValues = [
|
|
"",
|
|
"Short",
|
|
"s",
|
|
"\u017Fhort",
|
|
];
|
|
|
|
for (const unitDisplay of invalidValues) {
|
|
assert.throws(RangeError, () => {
|
|
new Intl.NumberFormat([], { unitDisplay });
|
|
});
|
|
}
|