tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);