v8/test/intl/regress-10613.js
Frank Tang 5c7c683581 Sync DateTimeFormat with latest changes
https://tc39.es/proposal-intl-datetime-style/ (Jun 10, 2020)

fix extra s in message

Bug: v8:10613
Change-Id: I2ef4f4004c1e8f0a58bf4409578876d1553de59b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242258
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68329}
2020-06-12 19:44:42 +00:00

65 lines
1.7 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.
// Test
// https://github.com/tc39/proposal-intl-datetime-style/pull/43
// https://github.com/tc39/proposal-intl-datetime-style/pull/47
// https://github.com/tc39/proposal-intl-datetime-style/pull/50
let opt = {
weekday: 'narrow',
era: 'narrow',
year: '2-digit',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
};
let keys = Object.keys(opt);
let testDateStyle = { ...opt };
let testTimeStyle = { ...opt };
testDateStyle.dateStyle = 'long';
testTimeStyle.timeStyle = 'long';
for (key of keys) {
assertThrows(
() => new Intl.DateTimeFormat('en', testDateStyle),
TypeError, "Invalid option : dateStyle");
assertThrows(
() => new Intl.DateTimeFormat('en', testTimeStyle),
TypeError, "Invalid option : timeStyle");
testDateStyle[key] = undefined;
testTimeStyle[key] = undefined;
}
assertThrows(
() => (new Date()).toLocaleDateString("en", {timeStyle: "long"}),
TypeError, "Invalid option : timeStyle");
assertThrows(
() => (new Date()).toLocaleTimeString("en", {dateStyle: "long"}),
TypeError, "Invalid option : dateStyle");
let logs = [];
try {
var dtf = new Intl.DateTimeFormat("en", {
get timeStyle() {
logs.push("get timeStyle");
return "full";
},
get timeZoneName() {
logs.push("get timeZoneName");
return "short";
},
});
logs.push(dtf.resolvedOptions().timeStyle);
logs.push(dtf.resolvedOptions().timeZoneName);
} catch(e) {
logs.push(e.name);
}
assertEquals(
"get timeStyle,get timeZoneName,get timeStyle,TypeError",
logs.join(','));