Bug 1892041 - Part 1: Update test262 features. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / intl402 / DurationFormat / prototype / format / style-digital-fractionalDigits.js
blobd75f51b14a25757aa10f999e982c1b5b994c2720
1 // |reftest| skip -- Intl.DurationFormat is not supported
2 // Copyright (C) 2023 Igalia, S.L. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
5 /*---
6 esid: sec-partitiondurationformatpattern
7 description: >
8   Test to ensure that correct number of fractional digits is displayed if fractionalDigits is explicitly specified.
10 info: |
11   4. If durationFormat.[[FractionalDigits]] is undefined, then
12     a. Perform ! CreateDataPropertyOrThrow(nfOpts, "maximumFractionDigits", 9).
13     b. Perform ! CreateDataPropertyOrThrow(nfOpts, "minimumFractionDigits", 0).
14   5. Else,
15     a. Perform ! CreateDataPropertyOrThrow(nfOpts, "maximumFractionDigits", durationFormat.[[FractionalDigits]]).
16     b. Perform ! CreateDataPropertyOrThrow(nfOpts, "minimumFractionDigits", durationFormat.[[FractionalDigits]]).
17 features: [Intl.DurationFormat]
18 ---*/
20 const duration = {
21   hours: 1,
22   minutes: 22,
23   seconds: 33,
24   milliseconds: 111,
25   microseconds: 222,
26   nanoseconds: 333,
30 const style = "digital";
31 const df = new Intl.DurationFormat(undefined, {style, fractionalDigits: 0});
32 const dfMilli = new Intl.DurationFormat(undefined, {style, fractionalDigits: 3});
33 const dfFourDigits = new Intl.DurationFormat(undefined, {style, fractionalDigits: 4});
34 const dfMicro = new Intl.DurationFormat(undefined, {style, fractionalDigits: 6});
35 const dfEightDigits = new Intl.DurationFormat(undefined, {style, fractionalDigits: 8});
36 const dfNano = new Intl.DurationFormat(undefined, {style, fractionalDigits: 9});
38 assert.sameValue(df.format(duration), "1:22:33", `format output without sub-second digits using ${style} style option`);
40 assert.sameValue(dfMilli.format(duration), "1:22:33.111", `format output with sub-second digits and fractionalDigits: 3 using ${style} style option`);
42 assert.sameValue(dfFourDigits.format(duration), "1:22:33.1112", `format output with sub-second digits and fractionalDigits: 4 using ${style} style option`);
44 assert.sameValue(dfMicro.format(duration), "1:22:33.111222", `format output with sub-second digits and fractionalDigits: 6 using ${style} style option`);
46 assert.sameValue(dfEightDigits.format(duration), "1:22:33.11122233", `format output with sub-second digits and fractionalDigits: 8 using ${style} style option`);
48 assert.sameValue(dfNano.format(duration), "1:22:33.111222333", `format output with sub-second digits and fractionalDigits: 9 using ${style} style option`);
50 reportCompare(0, 0);