Source code

Revision control

Copy as Markdown

Other Tools

// 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 )
19. Let compactDisplay be ? GetOption(options, "compactDisplay", "string", « "short", "long" », "short").
20. If notation is "compact", then
a. Set numberFormat.[[CompactDisplay]] to compactDisplay.
includes: [compareArray.js]
features: [Intl.NumberFormat-unified]
---*/
const values = [
[undefined, "short"],
["short"],
["long"],
];
for (const [value, expected = value] of values) {
const callOrder = [];
const nf = new Intl.NumberFormat([], {
get notation() {
callOrder.push("notation");
return "compact";
},
get compactDisplay() {
callOrder.push("compactDisplay");
return value;
}
});
const resolvedOptions = nf.resolvedOptions();
assert.sameValue("compactDisplay" in resolvedOptions, true);
assert.sameValue(resolvedOptions.compactDisplay, expected);
assert.compareArray(callOrder, [
"notation",
"compactDisplay",
]);
}
reportCompare(0, 0);