tor-browser

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

argument-zoneddatetime-slots.js (1264B)


      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.plaindate.from
      7 description: Getters are not called when converting a ZonedDateTime to a PlainDate.
      8 includes: [compareArray.js]
      9 features: [Temporal]
     10 ---*/
     11 
     12 const actual = [];
     13 const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
     14 const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
     15 
     16 for (const property of getters) {
     17  Object.defineProperty(Temporal.ZonedDateTime.prototype, property, {
     18    get() {
     19      actual.push(`get ${property}`);
     20      const value = prototypeDescrs[property].get.call(this);
     21      return {
     22        toString() {
     23          actual.push(`toString ${property}`);
     24          return value.toString();
     25        },
     26        valueOf() {
     27          actual.push(`valueOf ${property}`);
     28          return value;
     29        },
     30      };
     31    },
     32  });
     33 }
     34 
     35 const arg = new Temporal.ZonedDateTime(0n, "UTC");
     36 Temporal.PlainDate.from(arg);
     37 assert.compareArray(actual, []);
     38 
     39 reportCompare(0, 0);