argument-string-is-infinity.js (2015B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2024 André Bargull. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-temporal.duration.from 7 description: > 8 Throws RangeError when when any duration component is Infinity. 9 info: | 10 Temporal.Duration.from ( item ) 11 12 1. Return ? ToTemporalDuration(item). 13 14 ToTemporalDuration ( item ) 15 16 ... 17 2. If item is not an Object, then 18 ... 19 b. Return ? ParseTemporalDurationString(item). 20 ... 21 22 ParseTemporalDurationString ( isoString ) 23 24 ... 25 44. Return ? CreateTemporalDuration(yearsMV, monthsMV, weeksMV, daysMV, hoursMV, 26 minutesMV, secondsMV, millisecondsMV, microsecondsMV, nanosecondsMV). 27 28 29 CreateTemporalDuration ( years, months, weeks, days, hours, minutes, seconds, 30 milliseconds, microseconds, nanoseconds [ , newTarget ] ) 31 32 1. If IsValidDuration(years, months, weeks, days, hours, minutes, seconds, milliseconds, 33 microseconds, nanoseconds) is false, throw a RangeError exception. 34 ... 35 36 IsValidDuration ( years, months, weeks, days, hours, minutes, seconds, milliseconds, 37 microseconds, nanoseconds ) 38 39 ... 40 2. For each value v of « years, months, weeks, days, hours, minutes, seconds, 41 milliseconds, microseconds, nanoseconds », do 42 a. If 𝔽(v) is not finite, return false. 43 ... 44 features: [Temporal] 45 ---*/ 46 47 var inf = "9".repeat(1000); 48 49 assert.throws(RangeError, () => Temporal.Duration.from(`P${inf}Y`)); 50 assert.throws(RangeError, () => Temporal.Duration.from(`P${inf}M`)); 51 assert.throws(RangeError, () => Temporal.Duration.from(`P${inf}W`)); 52 assert.throws(RangeError, () => Temporal.Duration.from(`P${inf}D`)); 53 assert.throws(RangeError, () => Temporal.Duration.from(`PT${inf}H`)); 54 assert.throws(RangeError, () => Temporal.Duration.from(`PT${inf}M`)); 55 assert.throws(RangeError, () => Temporal.Duration.from(`PT${inf}S`)); 56 57 reportCompare(0, 0);