mirror of https://github.com/tc39/test262.git
54 lines
1.4 KiB
JavaScript
54 lines
1.4 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 )
|
|
|
|
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"],
|
|
];
|
|
|
|
const notations = [
|
|
undefined,
|
|
"standard",
|
|
"scientific",
|
|
"engineering",
|
|
];
|
|
|
|
for (const notation of notations) {
|
|
for (const [value, expected = value] of values) {
|
|
const callOrder = [];
|
|
const nf = new Intl.NumberFormat([], {
|
|
get notation() {
|
|
callOrder.push("notation");
|
|
return notation;
|
|
},
|
|
get compactDisplay() {
|
|
callOrder.push("compactDisplay");
|
|
return value;
|
|
}
|
|
});
|
|
const resolvedOptions = nf.resolvedOptions();
|
|
assert.sameValue("compactDisplay" in resolvedOptions, false);
|
|
assert.sameValue(resolvedOptions.compactDisplay, undefined);
|
|
|
|
assert.compareArray(callOrder, [
|
|
"notation",
|
|
"compactDisplay",
|
|
]);
|
|
}
|
|
}
|