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.
6 esid: sec-partitiondurationformatpattern
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*
11 4. If durationFormat.[[FractionalDigits]] is undefined, then
12 a. Perform ! CreateDataPropertyOrThrow(nfOpts, "maximumFractionDigits", 9).
13 b. Perform ! CreateDataPropertyOrThrow(nfOpts, "minimumFractionDigits", 0).
15 a. Perform ! CreateDataPropertyOrThrow(nfOpts, "maximumFractionDigits", durationFormat.[[FractionalDigits]]).
16 b. Perform ! CreateDataPropertyOrThrow(nfOpts, "minimumFractionDigits", durationFormat.[[FractionalDigits]]).
17 features: [Intl.DurationFormat]
21 const durationNano = {
30 const durationMicro = {
38 const durationMill = {
45 const durationNoSubsecond = {
51 const durationSevenFractional = {
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`);