Move toLocaleString testing to intl402

Move part of the test of toLocaleString which depends on
15 Amendments to the ECMAScript® 2021 Internationalization API Specification
to intl402. Keep behavior specified in earlier chapters in built-ins
This commit is contained in:
Frank Tang 2021-10-28 01:31:26 -07:00 committed by Rick Waldron
parent 1f16a6ad0e
commit 78907d6393
10 changed files with 80 additions and 160 deletions

View File

@ -2,46 +2,13 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sup-temporal.instant.prototype.tolocalestring
esid: sec-temporal.instant.prototype.tolocalestring
description: >
Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
info: |
Using sec-temporal-getdatetimeformatpattern:
GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
1. If dateStyle is not undefined or timeStyle is not undefined, then
a. For each row in Table 7, except the header row, do
i. Let prop be the name given in the Property column of the row.
ii. Let p be opt.[[<prop>]].
iii. If p is not undefined, then
1. Throw a TypeError exception.
features: [BigInt, Temporal]
toLocaleString return a string.
features: [Temporal]
---*/
// Table 14 - Supported fields + example value for each field
const conflictingOptions = [
[ "weekday", "short" ],
[ "era", "short" ],
[ "year", "numeric" ],
[ "month", "numeric" ],
[ "day", "numeric" ],
[ "hour", "numeric" ],
[ "minute", "numeric" ],
[ "second", "numeric" ],
[ "dayPeriod", "short" ],
[ "fractionalSecondDigits", 3 ],
];
const instant = new Temporal.Instant(957270896_987_650_000n);
assert.sameValue(typeof instant.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof instant.toLocaleString("en", { timeStyle: "short" }), "string");
for (const [ option, value ] of conflictingOptions) {
assert.throws(TypeError, function() {
instant.toLocaleString("en", { [option]: value, dateStyle: "short" });
}, `instant.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
assert.throws(TypeError, function() {
instant.toLocaleString("en", { [option]: value, timeStyle: "short" });
}, `instant.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
}

View File

@ -2,36 +2,12 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sup-temporal.plaindate.prototype.tolocalestring
esid: sec-temporal.plaindate.prototype.tolocalestring
description: >
Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
info: |
Using sec-temporal-getdatetimeformatpattern:
GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
1. If dateStyle is not undefined or timeStyle is not undefined, then
a. For each row in Table 7, except the header row, do
i. Let prop be the name given in the Property column of the row.
ii. Let p be opt.[[<prop>]].
iii. If p is not undefined, then
1. Throw a TypeError exception.
toLocaleString return a string.
features: [Temporal]
---*/
// Table 14 - Supported fields + example value for each field
const conflictingOptions = [
[ "weekday", "short" ],
[ "era", "short" ],
[ "year", "numeric" ],
[ "month", "numeric" ],
[ "day", "numeric" ],
];
const date = new Temporal.PlainDate(2000, 5, 2);
assert.sameValue(typeof date.toLocaleString("en", { dateStyle: "short" }), "string");
for (const [ option, value ] of conflictingOptions) {
assert.throws(TypeError, function() {
date.toLocaleString("en", { [option]: value, dateStyle: "short" });
}, `date.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
}

View File

@ -2,46 +2,13 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sup-temporal.plaindatetime.prototype.tolocalestring
esid: sec-temporal.plaindatetime.prototype.tolocalestring
description: >
Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
info: |
Using sec-temporal-getdatetimeformatpattern:
GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
1. If dateStyle is not undefined or timeStyle is not undefined, then
a. For each row in Table 7, except the header row, do
i. Let prop be the name given in the Property column of the row.
ii. Let p be opt.[[<prop>]].
iii. If p is not undefined, then
1. Throw a TypeError exception.
toLocaleString return a string.
features: [Temporal]
---*/
// Table 14 - Supported fields + example value for each field
const conflictingOptions = [
[ "weekday", "short" ],
[ "era", "short" ],
[ "year", "numeric" ],
[ "month", "numeric" ],
[ "day", "numeric" ],
[ "hour", "numeric" ],
[ "minute", "numeric" ],
[ "second", "numeric" ],
[ "dayPeriod", "short" ],
[ "fractionalSecondDigits", 3 ],
];
const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");
for (const [ option, value ] of conflictingOptions) {
assert.throws(TypeError, function() {
datetime.toLocaleString("en", { [option]: value, dateStyle: "short" });
}, `datetime.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
assert.throws(TypeError, function() {
datetime.toLocaleString("en", { [option]: value, timeStyle: "short" });
}, `datetime.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
}

View File

@ -2,36 +2,12 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sup-temporal.plaintime.prototype.tolocalestring
esid: sec-temporal.plaintime.prototype.tolocalestring
description: >
Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
info: |
Using sec-temporal-getdatetimeformatpattern:
GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
1. If dateStyle is not undefined or timeStyle is not undefined, then
a. For each row in Table 7, except the header row, do
i. Let prop be the name given in the Property column of the row.
ii. Let p be opt.[[<prop>]].
iii. If p is not undefined, then
1. Throw a TypeError exception.
toLocaleString return a string.
features: [Temporal]
---*/
// Table 14 - Supported fields + example value for each field
const conflictingOptions = [
[ "hour", "numeric" ],
[ "minute", "numeric" ],
[ "second", "numeric" ],
[ "dayPeriod", "short" ],
[ "fractionalSecondDigits", 3 ],
];
const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
assert.sameValue(typeof time.toLocaleString("en", { timeStyle: "short" }), "string");
for (const [ option, value ] of conflictingOptions) {
assert.throws(TypeError, function() {
time.toLocaleString("en", { [option]: value, timeStyle: "short" });
}, `time.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
}

View File

@ -2,47 +2,13 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sup-temporal.zoneddatetime.prototype.tolocalestring
esid: sec-temporal.zoneddatetime.prototype.tolocalestring
description: >
Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
info: |
Using sec-temporal-getdatetimeformatpattern:
GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
1. If dateStyle is not undefined or timeStyle is not undefined, then
a. For each row in Table 7, except the header row, do
i. Let prop be the name given in the Property column of the row.
ii. Let p be opt.[[<prop>]].
iii. If p is not undefined, then
1. Throw a TypeError exception.
features: [BigInt, Temporal]
toLocaleString return a string.
features: [Temporal]
---*/
// Table 14 - Supported fields + example value for each field
const conflictingOptions = [
[ "weekday", "short" ],
[ "era", "short" ],
[ "year", "numeric" ],
[ "month", "numeric" ],
[ "day", "numeric" ],
[ "hour", "numeric" ],
[ "minute", "numeric" ],
[ "second", "numeric" ],
[ "dayPeriod", "short" ],
[ "fractionalSecondDigits", 3 ],
[ "timeZoneName", "short" ],
];
const datetime = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");
for (const [ option, value ] of conflictingOptions) {
assert.throws(TypeError, function() {
datetime.toLocaleString("en", { [option]: value, dateStyle: "short" });
}, `datetime.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
assert.throws(TypeError, function() {
datetime.toLocaleString("en", { [option]: value, timeStyle: "short" });
}, `datetime.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
}

View File

@ -0,0 +1,14 @@
// Copyright (C) 2021 Kate Miháliková. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.instant.prototype.tolocalestring
description: >
toLocaleString return a string.
features: [Temporal]
---*/
const instant = new Temporal.Instant(957270896_987_650_000n);
assert.sameValue(typeof instant.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof instant.toLocaleString("en", { timeStyle: "short" }), "string");

View File

@ -0,0 +1,13 @@
// Copyright (C) 2021 Kate Miháliková. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.plaindate.prototype.tolocalestring
description: >
toLocaleString return a string.
features: [Temporal]
---*/
const date = new Temporal.PlainDate(2000, 5, 2);
assert.sameValue(typeof date.toLocaleString("en", { dateStyle: "short" }), "string");

View File

@ -0,0 +1,14 @@
// Copyright (C) 2021 Kate Miháliková. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.plaindatetime.prototype.tolocalestring
description: >
toLocaleString return a string.
features: [Temporal]
---*/
const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");

View File

@ -0,0 +1,13 @@
// Copyright (C) 2021 Kate Miháliková. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.plaintime.prototype.tolocalestring
description: >
toLocaleString return a string.
features: [Temporal]
---*/
const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
assert.sameValue(typeof time.toLocaleString("en", { timeStyle: "short" }), "string");

View File

@ -0,0 +1,14 @@
// Copyright (C) 2021 Kate Miháliková. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.prototype.tolocalestring
description: >
toLocaleString return a string.
features: [Temporal]
---*/
const datetime = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");