Change jerry_port interface to allow for a correct implementation of timezones. (#2540)

The previous jerry_port interface did not allow timezones to be handled correctly,
even if the host system was up to the task. This PR changes the jerry_port interface
to allow a completely correct implementation to exist, and provides one (for Linux/BSD
systems) in default-date.c.

Fixes #1661

JerryScript-DCO-1.0-Signed-off-by: crazy2be crazy1be@gmail.com
This commit is contained in:
crazy2be
2018-10-17 18:58:18 -04:00
committed by Akos Kiss
parent 9ab33e86d3
commit 3afc4b0b85
16 changed files with 171 additions and 220 deletions
+18 -19
View File
@@ -82,25 +82,24 @@ assert (d.getUTCSeconds() == 1);
assert (d.getUTCMilliseconds() == 1);
/* 15.9.5.34 Date.prototype.setHours (hour [, min [, sec [, ms ] ] ] ) */
// FIXME: Missing timezone adjustment.
//d.setTime(0);
//assert (d.setHours(1) == hour + d.getTimezoneOffset() * 60000);
//assert (d.getHours() == 1);
//d.setTime(0);
//assert (d.setHours(1, 1) == hour + min + d.getTimezoneOffset() * 60000);
//assert (d.getHours() == 1);
//assert (d.getMinutes() == 1);
//d.setTime(0);
//assert (d.setHours(1, 1, 1) == hour + min + sec + d.getTimezoneOffset() * 60000);
//assert (d.getHours() == 1);
//assert (d.getMinutes() == 1);
//assert (d.getSeconds() == 1);
//d.setTime(0);
//assert (d.setHours(1, 1, 1, 1) == hour + min + sec + ms + d.getTimezoneOffset() * 60000);
//assert (d.getHours() == 1);
//assert (d.getMinutes() == 1);
//assert (d.getSeconds() == 1);
//assert (d.getMilliseconds() == 1);
d.setTime(0);
assert (d.setHours(1) == hour + d.getTimezoneOffset() * 60000);
assert (d.getHours() == 1);
d.setTime(0);
assert (d.setHours(1, 1) == hour + min + d.getTimezoneOffset() * 60000);
assert (d.getHours() == 1);
assert (d.getMinutes() == 1);
d.setTime(0);
assert (d.setHours(1, 1, 1) == hour + min + sec + d.getTimezoneOffset() * 60000);
assert (d.getHours() == 1);
assert (d.getMinutes() == 1);
assert (d.getSeconds() == 1);
d.setTime(0);
assert (d.setHours(1, 1, 1, 1) == hour + min + sec + ms + d.getTimezoneOffset() * 60000);
assert (d.getHours() == 1);
assert (d.getMinutes() == 1);
assert (d.getSeconds() == 1);
assert (d.getMilliseconds() == 1);
/* 15.9.5.35 Date.prototype.setUTCHours (hour [, min [, sec [, ms ] ] ] ) */
d.setTime(0);