tor-browser

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

argument-string-invalid.js (2114B)


      1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
      2 // Copyright (C) 2022 Igalia S.L. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 
      5 /*---
      6 esid: sec-temporal.instant.compare
      7 description: >
      8  RangeError thrown if an invalid ISO string (or syntactically valid ISO string
      9  that is not supported) is used as an Instant
     10 features: [Temporal, arrow-function]
     11 ---*/
     12 
     13 const invalidStrings = [
     14  // invalid ISO strings:
     15  "",
     16  "invalid iso8601",
     17  "2020-01-00T00:00Z",
     18  "2020-01-32T00:00Z",
     19  "2020-02-30T00:00Z",
     20  "2021-02-29T00:00Z",
     21  "2020-00-01T00:00Z",
     22  "2020-13-01T00:00Z",
     23  "2020-01-01TZ",
     24  "2020-01-01T25:00:00Z",
     25  "2020-01-01T01:60:00Z",
     26  "2020-01-01T01:60:61Z",
     27  "2020-01-01T00:00Zjunk",
     28  "2020-01-01T00:00:00Zjunk",
     29  "2020-01-01T00:00:00.000000000Zjunk",
     30  "2020-01-01T00:00:00+00:00junk",
     31  "2020-01-01T00:00:00+00:00[UTC]junk",
     32  "2020-01-01T00:00:00+00:00[UTC][u-ca=iso8601]junk",
     33  "02020-01-01T00:00Z",
     34  "2020-001-01T00:00Z",
     35  "2020-01-001T00:00Z",
     36  "2020-01-01T001Z",
     37  "2020-01-01T01:001Z",
     38  "2020-01-01T01:01:001Z",
     39  "2020-01-01T00:00-24:00",
     40  "2020-01-01T00:00+24:00",
     41  // valid, but forms not supported in Temporal:
     42  "2020-W01-1T00:00Z",
     43  "2020-001T00:00Z",
     44  "+0002020-01-01T00:00Z",
     45  // may be valid in other contexts, but insufficient information for Instant:
     46  "2020-01",
     47  "+002020-01",
     48  "01-01",
     49  "2020-W01",
     50  "P1Y",
     51  "-P12Y",
     52  "2020-01-01",
     53  "2020-01-01T00",
     54  "2020-01-01T00:00",
     55  "2020-01-01T00:00:00",
     56  "2020-01-01T00:00:00.000000000",
     57  // valid, but outside the supported range:
     58  "-999999-01-01T00:00Z",
     59  "+999999-01-01T00:00Z",
     60 ];
     61 
     62 const epoch = new Temporal.Instant(0n);
     63 for (const arg of invalidStrings) {
     64  assert.throws(
     65    RangeError,
     66    () => Temporal.Instant.compare(arg, epoch),
     67    `"${arg}" should not be a valid ISO string for an Instant (first argument)`
     68  );
     69  assert.throws(
     70    RangeError,
     71    () => Temporal.Instant.compare(epoch, arg),
     72    `"${arg}" should not be a valid ISO string for an Instant (second argument)`
     73  );
     74 }
     75 
     76 reportCompare(0, 0);