diff --git a/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js new file mode 100644 index 0000000000..6cefcb96d2 --- /dev/null +++ b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js @@ -0,0 +1,21 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the license found in the LICENSE file. + +/*--- +esid: sec-setnfdigitoptions +description: > + When a currency is used in Intl.NumberFormat and minimumFractionDigits is + not provided, maximumFractionDigits should be range-checked against it. +---*/ + +assert.throws(RangeError, () => new Intl.NumberFormat('en', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 1 +}), 'CurrencyDigits(USD) == 1'); + +assert.throws(RangeError, () => new Intl.NumberFormat('en', { + style: 'currency', + currency: 'CLF', + maximumFractionDigits: 4 +}), 'CurrencyDigits(CLF) == 4'); diff --git a/test/intl402/NumberFormat/fraction-digit-options-read-once.js b/test/intl402/NumberFormat/fraction-digit-options-read-once.js new file mode 100644 index 0000000000..e83d25c7a3 --- /dev/null +++ b/test/intl402/NumberFormat/fraction-digit-options-read-once.js @@ -0,0 +1,18 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// This code is governed by the license found in the LICENSE file. + +/*--- +esid: sec-setnfdigitoptions +description: > + The maximum and minimum fraction digits properties should be read from + the options bag exactly once from the NumberFormat constructor. +info: Regression test for https://bugs.chromium.org/p/v8/issues/detail?id=6015 +---*/ + +var calls = []; + +new Intl.NumberFormat("en", { get minimumFractionDigits() { calls.push('minimumFractionDigits') }, + get maximumFractionDigits() { calls.push('maximumFractionDigits') } }); +assert.sameValue(calls.length, 2); +assert.sameValue(calls[0], 'minimumFractionDigits'); +assert.sameValue(calls[1], 'maximumFractionDigits');