| // Copyright 2020 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Verify the order of resolvedOptions() |
| let df = new Intl.DateTimeFormat("en", { |
| weekday: "narrow", |
| era: "narrow", |
| year: "2-digit", |
| month: "2-digit", |
| day: "2-digit", |
| hour: "2-digit", |
| minute: "2-digit", |
| second: "2-digit", |
| fractionalSecondDigits: 2, |
| timeZoneName: "short"}); |
| let resolvedOptionsKeys = Object.keys(df.resolvedOptions()).join(":"); |
| |
| assertEquals( |
| "locale:calendar:numberingSystem:timeZone:hourCycle:hour12:weekday:era:" + |
| "year:month:day:hour:minute:second:fractionalSecondDigits:timeZoneName", |
| resolvedOptionsKeys); |
| |
| // Verify the order of reading the options. |
| |
| let read = []; |
| let options = { |
| get second() { |
| read.push("second"); |
| return undefined; |
| }, |
| get fractionalSecondDigits() { |
| read.push("fractionalSecondDigits"); |
| return undefined; |
| }, |
| get timeZoneName() { |
| read.push("timeZoneName"); |
| return undefined; |
| } |
| }; |
| |
| df = new Intl.DateTimeFormat("en", options); |
| assertEquals( |
| "second:fractionalSecondDigits:second:fractionalSecondDigits:timeZoneName", |
| read.join(":")); |