Backed out 2 changesets (bug 1888310, bug 1884625) for causing failures on browser_ap...
[gecko.git] / js / src / tests / test262 / built-ins / Temporal / Duration / fractional-throws-rangeerror.js
blobb13c7ead70e7dabc21fd7c25c6f6ded539a6ee2f
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
2 // Copyright (C) 2021 Igalia, S.L. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
5 /*---
6 description: Temporal.Duration throws a RangeError if any value is fractional
7 esid: sec-temporal.duration
8 features: [Temporal]
9 ---*/
11 const descriptions = [
12   'years',
13   'months',
14   'weeks',
15   'days',
16   'hours',
17   'minutes',
18   'seconds',
19   'milliseconds',
20   'microseconds',
21   'nanoseconds'
22 ].map((time) => `Duration constructor throws RangeError with fractional value in the ${time} position`);
24 assert.throws(RangeError, () => new Temporal.Duration(1.1), descriptions[0]);
25 assert.throws(RangeError, () => new Temporal.Duration(0, 1.1), descriptions[1]);
26 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 1.1), descriptions[2]);
27 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 1.1), descriptions[3]);
28 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 1.1), descriptions[4]);
29 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 1.1), descriptions[5]);
30 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 1.1), descriptions[6]);
31 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 1.1), descriptions[7]);
32 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 1.1), descriptions[8]);
33 assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1), descriptions[9]);
35 reportCompare(0, 0);