// Copyright 2018 Igalia, S.L. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-initializedatetimeformat description: Checks the order of getting options for the DateTimeFormat constructor. includes: [compareArray.js] ---*/ const expected = [ // ToDateTimeOptions step 4. "weekday", "year", "month", "day", // ToDateTimeOptions step 5. "hour", "minute", "second", // InitializeDateTimeFormat step 4. "localeMatcher", // InitializeDateTimeFormat step 6. "hour12", // InitializeDateTimeFormat step 7. "hourCycle", // InitializeDateTimeFormat step 17. "timeZone", // InitializeDateTimeFormat step 22. "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName", // InitializeDateTimeFormat step 25. "formatMatcher", ]; const actual = []; const options = { get day() { actual.push("day"); return "numeric"; }, get era() { actual.push("era"); return "long"; }, get formatMatcher() { actual.push("formatMatcher"); return "best fit"; }, get hour() { actual.push("hour"); return "numeric"; }, get hour12() { actual.push("hour12"); return true; }, get hourCycle() { actual.push("hourCycle"); return "h24"; }, get localeMatcher() { actual.push("localeMatcher"); return "best fit"; }, get minute() { actual.push("minute"); return "numeric"; }, get month() { actual.push("month"); return "numeric"; }, get second() { actual.push("second"); return "numeric"; }, get timeZone() { actual.push("timeZone"); return "UTC"; }, get timeZoneName() { actual.push("timeZoneName"); return "long"; }, get weekday() { actual.push("weekday"); return "long"; }, get year() { actual.push("year"); return "numeric"; }, }; new Intl.DateTimeFormat("en", options); assert.compareArray(actual, expected); reportCompare(0, 0);