fe53fc04d2
Design Document: https://docs.google.com/document/d/14zxGub6Os6nARzH6XstOZX05w2537sZo_ZSSlGjGpBM/edit# Bug: v8:10776 Change-Id: I506eadcf70f6855a79601a7cb1ce47849cfc066a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3594118 Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/main@{#81168}
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
// 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 = [
|
|
-1, -5, 0, 3, 1001, 1100, 5500, 10000, 20000, 25000, 100000, 200000, 500005,
|
|
10000000
|
|
];
|
|
|
|
validRoundingIncrements.forEach(function(roundingIncrement) {
|
|
assertDoesNotThrow(() => {
|
|
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);
|
|
}
|
|
}
|
|
});
|
|
|
|
invalidRoundingIncrements.forEach(function(roundingIncrement) {
|
|
assertThrows(() => {
|
|
let nf = new Intl.NumberFormat(undefined,
|
|
{roundingIncrement, minimumFractionDigits:3})},
|
|
RangeError);
|
|
});
|