2022-02-01 01:26:09 +00:00
|
|
|
// Copyright 2021 the V8 project authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
|
|
|
// Flags: --harmony-intl-number-format-v3
|
|
|
|
|
|
|
|
let validRoundingIncrements = [
|
|
|
|
1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, 5000];
|
|
|
|
|
|
|
|
let invalidRoundingIncrements = [
|
2022-04-26 19:42:49 +00:00
|
|
|
-1, -5, 0, 3, 1001, 1100, 5500, 10000, 20000, 25000, 100000, 200000, 500005,
|
|
|
|
10000000
|
2022-02-01 01:26:09 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
validRoundingIncrements.forEach(function(roundingIncrement) {
|
|
|
|
assertDoesNotThrow(() => {
|
2022-04-26 19:42:49 +00:00
|
|
|
new Intl.NumberFormat(undefined, {roundingIncrement,
|
|
|
|
minimumFractionDigits:3})});
|
|
|
|
for (mfd = 0; mfd < 20; mfd++) {
|
|
|
|
let fn = new Intl.NumberFormat(undefined, {
|
|
|
|
roundingIncrement,
|
|
|
|
minimumFractionDigits: mfd, maximumFractionDigits: mfd});
|
|
|
|
let res = fn.resolvedOptions();
|
|
|
|
assertEquals(roundingIncrement, res.roundingIncrement);
|
|
|
|
assertEquals(mfd, res.minimumFractionDigits);
|
|
|
|
assertEquals(mfd, res.maximumFractionDigits);
|
|
|
|
}
|
|
|
|
// Test
|
|
|
|
// "If roundingIncrement is not 1 and numberFormat.[[MaximumFractionDigits]]
|
|
|
|
// is not equal to numberFormat.[[MinimumFractionDigits]], throw a RangeError
|
|
|
|
// exception.
|
|
|
|
if (roundingIncrement == 1) return;
|
|
|
|
for (mnfd = 0; mnfd < 20; mnfd++) {
|
|
|
|
for (mxfd = mnfd+1; mxfd < 20; mxfd++) {
|
|
|
|
assertThrows(() => {
|
|
|
|
let nf = new Intl.NumberFormat(undefined, {
|
|
|
|
roundingIncrement, minimumFractionDigits:mnfd,
|
|
|
|
maximumFractionDigits: mxfd})},
|
|
|
|
RangeError);
|
|
|
|
}
|
|
|
|
}
|
2022-02-01 01:26:09 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
invalidRoundingIncrements.forEach(function(roundingIncrement) {
|
2022-06-15 03:42:54 +00:00
|
|
|
assertThrows(() => {
|
|
|
|
let nf = new Intl.NumberFormat(undefined,
|
|
|
|
{roundingIncrement, minimumFractionDigits:3})},
|
2022-02-01 01:26:09 +00:00
|
|
|
RangeError);
|
|
|
|
});
|