tor-browser

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

order-of-operations.js (1852B)


      1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
      2 // Copyright (C) 2020 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.plainyearmonth.from
      7 description: Properties on an object passed to from() are accessed in the correct order
      8 includes: [compareArray.js, temporalHelpers.js]
      9 features: [Temporal]
     10 ---*/
     11 
     12 const expectedOptionsReading = [
     13  // GetTemporalOverflowOption
     14  "get options.overflow",
     15  "get options.overflow.toString",
     16  "call options.overflow.toString",
     17 ];
     18 
     19 const expected = [
     20  // GetTemporalCalendarSlotValueWithISODefault
     21  "get fields.calendar",
     22  // PrepareTemporalFields
     23  "get fields.month",
     24  "get fields.month.valueOf",
     25  "call fields.month.valueOf",
     26  "get fields.monthCode",
     27  "get fields.monthCode.toString",
     28  "call fields.monthCode.toString",
     29  "get fields.year",
     30  "get fields.year.valueOf",
     31  "call fields.year.valueOf",
     32 ].concat(expectedOptionsReading);
     33 const actual = [];
     34 
     35 const fields = TemporalHelpers.propertyBagObserver(actual, {
     36  year: 1.7,
     37  month: 1.7,
     38  monthCode: "M01",
     39  calendar: "iso8601",
     40 }, "fields", ["calendar"]);
     41 
     42 const options = TemporalHelpers.propertyBagObserver(actual, {
     43  overflow: "constrain",
     44  extra: "property",
     45 }, "options");
     46 
     47 Temporal.PlainYearMonth.from(fields, options);
     48 assert.compareArray(actual, expected, "order of operations");
     49 
     50 actual.splice(0);  // clear for next test
     51 
     52 Temporal.PlainYearMonth.from(new Temporal.PlainYearMonth(2000, 5), options);
     53 assert.compareArray(actual, expectedOptionsReading, "order of operations when cloning a PlainYearMonth instance");
     54 
     55 actual.splice(0);
     56 
     57 Temporal.PlainYearMonth.from("2000-05", options);
     58 assert.compareArray(actual, expectedOptionsReading, "order of operations when parsing a string");
     59 
     60 reportCompare(0, 0);