v8/test/intl/regress-10836.js
Frank Tang 1f17cfaeaa Change the order of the DateTimeFormat resolved
Move fractionalSecondsDigits between second and timeZoneName
Change order of reading options.
To sync with the July 20 PR change in
ba085a9111
Latest ECMA402 PR https://github.com/tc39/ecma402/pull/347

Bug: v8:10836
Change-Id: Ia414e0c7cc18502ccabaf02abd19861410b87cae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2378460
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69591}
2020-08-27 20:39:05 +00:00

46 lines
1.2 KiB
JavaScript

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