mirror of https://github.com/tc39/test262.git
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:
parent
1f16a6ad0e
commit
78907d6393
|
@ -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`);
|
||||
}
|
||||
|
|
|
@ -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`);
|
||||
}
|
||||
|
|
|
@ -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`);
|
||||
}
|
||||
|
|
|
@ -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`);
|
||||
}
|
||||
|
|
|
@ -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`);
|
||||
}
|
||||
|
|
|
@ -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");
|
13
test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-conflict.js
vendored
Normal file
13
test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-conflict.js
vendored
Normal 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");
|
14
test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-conflict.js
vendored
Normal file
14
test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-conflict.js
vendored
Normal 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");
|
13
test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-conflict.js
vendored
Normal file
13
test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-conflict.js
vendored
Normal 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");
|
14
test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-conflict.js
vendored
Normal file
14
test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-conflict.js
vendored
Normal 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");
|
Loading…
Reference in New Issue