Bug 1892041 - Part 1: Update test262 features. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / intl402 / DurationFormat / prototype / format / style-digital-fractionalDigits-undefined.js
blob631e6c36ebcb062c356a07188ae06e72b15c2053
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 (i.e. however many are necessary to represent the data fully) if the fractionalDigits option is left *undefined*
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 ---*/
21 const durationNano = {
22   hours: 1,
23   minutes: 22,
24   seconds: 33,
25   milliseconds: 111,
26   microseconds: 222,
27   nanoseconds: 333
30 const durationMicro = {
31   hours: 1,
32   minutes: 22,
33   seconds: 33,
34   milliseconds: 111,
35   microseconds: 222
38 const durationMill = {
39   hours: 1,
40   minutes: 22,
41   seconds: 33,
42   milliseconds: 111
45 const durationNoSubsecond = {
46   hours: 1,
47   minutes: 22,
48   seconds: 33
51 const durationSevenFractional = {
52   hours: 2,
53   minutes: 30,
54   seconds: 10,
55   milliseconds: 111,
56   microseconds: 220,
57   nanoseconds: 300
60 const style = "digital";
61 const df = new Intl.DurationFormat(undefined, {style, fractionalDigits: undefined});
63 assert.sameValue(df.format(durationNano), "1:22:33.111222333", `format output with nanosecond digits and fractionalDigits: undefined using ${style} style option`);
64 assert.sameValue(df.format(durationMicro), "1:22:33.111222", `format output with microsecond digits and fractionalDigits: undefined using ${style} style option`);
65 assert.sameValue(df.format(durationMilli), "1:22:33.111", `format output with millisecond digits and fractionalDigits: undefined using ${style} style option`);
66 assert.sameValue(df.format(durationNoSubsecond), "1:22:33", `format output with no subsecond digits and fractionalDigits: undefined using ${style} style option`);
68 assert.sameValue(df.format(durationFiveFractional), "2:30:11122", `format output with five subsecond digits and fractionalDigits: undefined using ${style} style option`);
69 assert.sameValue(df.format(durationSevenFractional), "2:30:1112203", `format output with seven subsecond digits and fractionalDigits: undefined using ${style} style option`);
71 reportCompare(0, 0);