tor-browser

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

etc-timezone.js (1744B)


      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.zoneddatetime
      7 description: Some Etc/GMT{+/-}{0}N timezones are valid, but not all
      8 features: [Temporal, canonical-tz]
      9 ---*/
     10 
     11 // "Etc/GMT-0" through "Etc/GMT-14" are OK
     12 
     13 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14].forEach((n) => {
     14  let tz = "Etc/GMT-" + n;
     15  let instance = new Temporal.ZonedDateTime(0n, tz);
     16  assert.sameValue(
     17    instance.timeZoneId,
     18    tz,
     19    tz + " is a valid timezone"
     20  );
     21 });
     22 
     23 let gmtMinus24TZ = "Etc/GMT-24";
     24 assert.throws(
     25  RangeError,
     26  () => { new Temporal.ZonedDateTime(0n, gmtMinus24TZ); },
     27  gmtMinus24TZ + " is an invalid timezone"
     28 );
     29 
     30 // "Etc/GMT-0N" is not OK (1 ≤ N ≤ 9)
     31 [1,2,3,4,5,6,7,8,9].forEach((n) => {
     32  let tz = "Etc/GMT-0" + n;
     33  assert.throws(
     34    RangeError,
     35    () => { new Temporal.ZonedDateTime(0n, tz); },
     36    tz + " is an invalid timezone"
     37  );
     38 });
     39 
     40 // "Etc/GMT+0N" is not OK (0 ≤ N ≤ 9)
     41 [0,1,2,3,4,5,6,7,8,9].forEach((n) => {
     42  let tz = "Etc/GMT+0" + n;
     43  assert.throws(
     44    RangeError,
     45    () => { new Temporal.ZonedDateTime(0n, tz); },
     46    tz + " is an invalid timezone"
     47    );
     48 });
     49 
     50 // Etc/GMT+0" through "Etc/GMT+12" are OK
     51 
     52 [0,1,2,3,4,5,6,7,8,9,10,11,12].forEach((n) => {
     53  let tz = "Etc/GMT+" + n;
     54  let instance = new Temporal.ZonedDateTime(0n, tz);
     55  assert.sameValue(
     56    instance.timeZoneId,
     57    tz,
     58    tz + " is a valid timezone"
     59  );
     60 });
     61 
     62 let gmtPlus24TZ = "Etc/GMT+24";
     63 assert.throws(
     64  RangeError,
     65  () => { new Temporal.ZonedDateTime(0n, gmtPlus24TZ); },
     66  gmtPlus24TZ + " is an invalid timezone"
     67 );
     68 
     69 reportCompare(0, 0);