fractional-throws-rangeerror.js (1565B)
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. 4 5 /*--- 6 description: Temporal.Duration throws a RangeError if any value is fractional 7 esid: sec-temporal.duration 8 features: [Temporal] 9 ---*/ 10 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`); 23 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]); 34 35 reportCompare(0, 0);