// 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(":"));