Add tests for string representations of Date objects with negative years (#2114)

* Add tests for string representations of Date objects with negative years

Ref https://github.com/tc39/ecma262/issues/1035
Ref https://github.com/tc39/ecma262/issues/1407
This commit is contained in:
Richard Gibson 2019-04-02 14:02:35 -04:00 committed by Leo Balter
parent 6d6d52b78b
commit d62318319f
3 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,33 @@
// Copyright (C) 2018 Richard Gibson. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Negative years must be serialized with at least four digits
esid: sec-date.prototype.todatestring
info: |
Date.prototype.toDateString ( )
5. Return DateString(_t_).
---*/
var negative1DigitYearDateString = (new Date('-000001-07-01T00:00Z')).toDateString();
var negative2DigitYearDateString = (new Date('-000012-07-01T00:00Z')).toDateString();
var negative3DigitYearDateString = (new Date('-000123-07-01T00:00Z')).toDateString();
var negative4DigitYearDateString = (new Date('-001234-07-01T00:00Z')).toDateString();
var negative5DigitYearDateString = (new Date('-012345-07-01T00:00Z')).toDateString();
var negative6DigitYearDateString = (new Date('-123456-07-01T00:00Z')).toDateString();
// Date.prototype.toDateString emits values like "Fri Mar 28 2019".
// Extract and verify just the year.
assert.sameValue(negative1DigitYearDateString.split(' ')[3], '-0001',
'Date.prototype.toDateString serializes year -1 to "-0001"');
assert.sameValue(negative2DigitYearDateString.split(' ')[3], '-0012',
'Date.prototype.toDateString serializes year -12 to "-0012"');
assert.sameValue(negative3DigitYearDateString.split(' ')[3], '-0123',
'Date.prototype.toDateString serializes year -123 to "-0123"');
assert.sameValue(negative4DigitYearDateString.split(' ')[3], '-1234',
'Date.prototype.toDateString serializes year -1234 to "-1234"');
assert.sameValue(negative5DigitYearDateString.split(' ')[3], '-12345',
'Date.prototype.toDateString serializes year -12345 to "-12345"');
assert.sameValue(negative6DigitYearDateString.split(' ')[3], '-123456',
'Date.prototype.toDateString serializes year -123456 to "-123456"');

View File

@ -0,0 +1,34 @@
// Copyright (C) 2018 Richard Gibson. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Negative years must be serialized with at least four digits
esid: sec-date.prototype.tostring
info: |
Date.prototype.toString ( )
2. Return ToDateString(_tv_).
---*/
var negative1DigitYearToString = (new Date('-000001-07-01T00:00Z')).toString();
var negative2DigitYearToString = (new Date('-000012-07-01T00:00Z')).toString();
var negative3DigitYearToString = (new Date('-000123-07-01T00:00Z')).toString();
var negative4DigitYearToString = (new Date('-001234-07-01T00:00Z')).toString();
var negative5DigitYearToString = (new Date('-012345-07-01T00:00Z')).toString();
var negative6DigitYearToString = (new Date('-123456-07-01T00:00Z')).toString();
// Date.prototype.toString emits values like
// "Fri Mar 28 2019 10:23:42 GMT-0400 (Eastern Daylight Time)".
// Extract and verify just the year.
assert.sameValue(negative1DigitYearToString.split(' ')[3], '-0001',
'Date.prototype.toString serializes year -1 to "-0001"');
assert.sameValue(negative2DigitYearToString.split(' ')[3], '-0012',
'Date.prototype.toString serializes year -12 to "-0012"');
assert.sameValue(negative3DigitYearToString.split(' ')[3], '-0123',
'Date.prototype.toString serializes year -123 to "-0123"');
assert.sameValue(negative4DigitYearToString.split(' ')[3], '-1234',
'Date.prototype.toString serializes year -1234 to "-1234"');
assert.sameValue(negative5DigitYearToString.split(' ')[3], '-12345',
'Date.prototype.toString serializes year -12345 to "-12345"');
assert.sameValue(negative6DigitYearToString.split(' ')[3], '-123456',
'Date.prototype.toString serializes year -123456 to "-123456"');

View File

@ -0,0 +1,33 @@
// Copyright (C) 2018 Richard Gibson. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Negative years must be serialized with at least four digits
esid: sec-date.prototype.toutcstring
info: |
Date.prototype.toUTCString ( )
10. Return the string-concatenation of _weekday_, `","`, the code unit 0x0020 (SPACE), _day_, the code unit 0x0020 (SPACE), _month_, the code unit 0x0020 (SPACE), _yearSign_, _year_, the code unit 0x0020 (SPACE), and TimeString(_tv_).
---*/
var negative1DigitYearToUTCString = (new Date('-000001-07-01T00:00Z')).toUTCString();
var negative2DigitYearToUTCString = (new Date('-000012-07-01T00:00Z')).toUTCString();
var negative3DigitYearToUTCString = (new Date('-000123-07-01T00:00Z')).toUTCString();
var negative4DigitYearToUTCString = (new Date('-001234-07-01T00:00Z')).toUTCString();
var negative5DigitYearToUTCString = (new Date('-012345-07-01T00:00Z')).toUTCString();
var negative6DigitYearToUTCString = (new Date('-123456-07-01T00:00Z')).toUTCString();
// Date.prototype.toUTCString emits values like "Thu, 28 Mar 2019 10:23:42 GMT".
// Extract and verify just the year.
assert.sameValue(negative1DigitYearToUTCString.split(' ')[3], '-0001',
'Date.prototype.toUTCString serializes year -1 to "-0001"');
assert.sameValue(negative2DigitYearToUTCString.split(' ')[3], '-0012',
'Date.prototype.toUTCString serializes year -12 to "-0012"');
assert.sameValue(negative3DigitYearToUTCString.split(' ')[3], '-0123',
'Date.prototype.toUTCString serializes year -123 to "-0123"');
assert.sameValue(negative4DigitYearToUTCString.split(' ')[3], '-1234',
'Date.prototype.toUTCString serializes year -1234 to "-1234"');
assert.sameValue(negative5DigitYearToUTCString.split(' ')[3], '-12345',
'Date.prototype.toUTCString serializes year -12345 to "-12345"');
assert.sameValue(negative6DigitYearToUTCString.split(' ')[3], '-123456',
'Date.prototype.toUTCString serializes year -123456 to "-123456"');