Make Date.parse() ECMA-262 conform (#3314)
Changes: - Parse output of Date.prototype.toString() and Date.prototype.toUTCString() - Date.prototype.toString() is ECMA-262 v9 conform now, only TZ part changed (Before ECMA-262 v9 it was implementation-dependent.) - Reused day_names_p and month_names_p arrays (and made them more efficient) - Tests updated and new tests added Fixes #2946. JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác oszi@inf.u-szeged.hu
This commit is contained in:
committed by
Dániel Bátyai
parent
16d0e83b64
commit
4d422e17df
@@ -19,8 +19,8 @@ assert (new Date (2015, 7, 1, 0, Infinity, 0) == "Invalid Date");
|
||||
assert (new Date (NaN, 1, 1, 0, 0, 0) == "Invalid Date");
|
||||
assert (new Date (2015, NaN, 1, 0, 0, 0) == "Invalid Date");
|
||||
assert (new Date (2015, 7, 1, 0, NaN, 0) == "Invalid Date");
|
||||
assert (/Fri Feb 13 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}:\d{2}/.test (new Date ("2015-02-13")));
|
||||
assert (/Wed Jul 08 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}:\d{2}/.test (new Date ("2015-07-08T11:29:05.023")));
|
||||
assert (/Fri Feb 13 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}\d{2}/.test (new Date ("2015-02-13")));
|
||||
assert (/Wed Jul 08 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}\d{2}/.test (new Date ("2015-07-08T11:29:05.023")));
|
||||
|
||||
try
|
||||
{
|
||||
@@ -33,12 +33,12 @@ catch (e)
|
||||
}
|
||||
|
||||
var date = new Date(0);
|
||||
assert (/Thu Jan 01 1970 \d{2}:\d{2}:\d{2} GMT\+\d{2}:\d{2}/.test (date.toString()));
|
||||
assert (/Thu Jan 01 1970 \d{2}:\d{2}:\d{2} GMT\+\d{2}\d{2}/.test (date.toString()));
|
||||
assert (date.toUTCString() === "Thu, 01 Jan 1970 00:00:00 GMT");
|
||||
assert (date.toISOString() === "1970-01-01T00:00:00.000Z");
|
||||
|
||||
date = new Date("2015-08-12T09:40:20.000Z")
|
||||
assert (/Wed Aug 12 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}:\d{2}/.test (date.toString()));
|
||||
assert (/Wed Aug 12 2015 \d{2}:\d{2}:\d{2} GMT\+\d{2}\d{2}/.test (date.toString()));
|
||||
assert (date.toUTCString() === "Wed, 12 Aug 2015 09:40:20 GMT");
|
||||
assert (date.toISOString() === "2015-08-12T09:40:20.000Z");
|
||||
|
||||
@@ -145,26 +145,26 @@ assert (new Date ("2015-07-08T11:29:05.023Z").toISOString() == "2015-07-08T11:29
|
||||
|
||||
// corner cases
|
||||
assert (new Date (-8640000000000001).toString() == "Invalid Date")
|
||||
assert (new Date (-8640000000000000).toString() == "Tue Apr 20 -271821 00:00:00 GMT+00:00")
|
||||
assert (new Date (-8640000000000000).toString() == "Tue Apr 20 -271821 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(-62167219200001).toString() == "Fri Dec 31 -0001 23:59:59 GMT+00:00")
|
||||
assert (new Date(-62167219200000).toString() == "Sat Jan 01 0000 00:00:00 GMT+00:00")
|
||||
assert (new Date(-62167219200001).toString() == "Fri Dec 31 -0001 23:59:59 GMT+0000")
|
||||
assert (new Date(-62167219200000).toString() == "Sat Jan 01 0000 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(-61851600000001).toString() == "Thu Dec 31 0009 23:59:59 GMT+00:00")
|
||||
assert (new Date(-61851600000000).toString() == "Fri Jan 01 0010 00:00:00 GMT+00:00")
|
||||
assert (new Date(-61851600000001).toString() == "Thu Dec 31 0009 23:59:59 GMT+0000")
|
||||
assert (new Date(-61851600000000).toString() == "Fri Jan 01 0010 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(-59011459200001).toString() == "Thu Dec 31 0099 23:59:59 GMT+00:00")
|
||||
assert (new Date(-59011459200000).toString() == "Fri Jan 01 0100 00:00:00 GMT+00:00")
|
||||
assert (new Date(-59011459200001).toString() == "Thu Dec 31 0099 23:59:59 GMT+0000")
|
||||
assert (new Date(-59011459200000).toString() == "Fri Jan 01 0100 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(-30610224000001).toString() == "Tue Dec 31 0999 23:59:59 GMT+00:00")
|
||||
assert (new Date(-30610224000000).toString() == "Wed Jan 01 1000 00:00:00 GMT+00:00")
|
||||
assert (new Date(-30610224000001).toString() == "Tue Dec 31 0999 23:59:59 GMT+0000")
|
||||
assert (new Date(-30610224000000).toString() == "Wed Jan 01 1000 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(-1).toString() == "Wed Dec 31 1969 23:59:59 GMT+00:00")
|
||||
assert (new Date(0).toString() == "Thu Jan 01 1970 00:00:00 GMT+00:00")
|
||||
assert (new Date(1).toString() == "Thu Jan 01 1970 00:00:00 GMT+00:00")
|
||||
assert (new Date(-1).toString() == "Wed Dec 31 1969 23:59:59 GMT+0000")
|
||||
assert (new Date(0).toString() == "Thu Jan 01 1970 00:00:00 GMT+0000")
|
||||
assert (new Date(1).toString() == "Thu Jan 01 1970 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date(253402300799999).toString() == "Fri Dec 31 9999 23:59:59 GMT+00:00")
|
||||
assert (new Date(253402300800000).toString() == "Sat Jan 01 10000 00:00:00 GMT+00:00")
|
||||
assert (new Date(253402300799999).toString() == "Fri Dec 31 9999 23:59:59 GMT+0000")
|
||||
assert (new Date(253402300800000).toString() == "Sat Jan 01 10000 00:00:00 GMT+0000")
|
||||
|
||||
assert (new Date (8640000000000000).toString() == "Sat Sep 13 275760 00:00:00 GMT+00:00")
|
||||
assert (new Date (8640000000000000).toString() == "Sat Sep 13 275760 00:00:00 GMT+0000")
|
||||
assert (new Date (8640000000000001).toString() == "Invalid Date")
|
||||
|
||||
Reference in New Issue
Block a user