• Jungshik Shin's avatar
    Reland "Implement a new spec for timezone offset calculation" · 1d3a87bd
    Jungshik Shin authored
    This is a reland of dbdede01
    after a webkit layout test (geolocation-api/timestamp.html) was
    fixed by
    https://chromium-review.googlesource.com/c/chromium/src/+/994343 .
    
    Original change's description:
    > Implement a new spec for timezone offset calculation
    >
    > https://github.com/tc39/ecma262/pull/778 was recently merged
    > to Ecma 262.
    >
    > It changes the way to convert between "local time" and UTC in such
    > a way that it'd work for all timezones whether or not there has
    > been any change in the timezone offset of the standard time. For
    > instance, Europe/Moscow and some parts of US state of Indiana have
    > changed the standard (non-DST) timezone offset a few times. The
    > previous spec assumes that the the standard timezone offset is
    > constant, but the new spec take into account the offset change
    > history.
    >
    > In addition, it specifies a new way to calculate the timezone
    > offset during a timezone transition (either in and
    > out of DST or timezone offset shift).
    >
    > During a negative transition (e.g.  fall backward / getting
    > out of DST), repeated times are to be interpreted as if the
    > offset before the transition is in effect.
    >
    > During a positive transition (e.g. spring forward / getting
    > into DST), skipped times are to be treated similarly. That
    > is, they are to be interpreted as if the offset before the
    > transition is in effect.
    >
    > With icu-timezone-data, v8 is compliant to the new spec for the
    > past and the future as well as now whether or not the standard
    > timezone offset of a given timezone has changed over time
    > (e.g. Europe/Moscow, Pacific/Apia). With icu-timezone-data,
    > Australia/Lord_Howe (30 minute DST change) also works per spec.
    >
    > Without icu-timezone-data, it works only for timezones of which
    > the standard timezone offset is the same as the current offset
    > (e.g. most North American timezones other than parts of Indiana)
    > and of which the DST shift is an hour. For instance, it doesn't work
    > for Europe/Moscow in 2010 when the standard timezone offset was
    > +4h because the current (2018) standard timezone offset is +3h. Neither
    > does it for Lord Howe in Australia with the DST shift of 0.5 hr.
    >
    > This CL used to require one of the two ICU CLs below, but not
    > any more.
    >
    >   https://chromium-review.googlesource.com/c/chromium/deps/icu/+/572652
    >   https://chromium-review.googlesource.com/851265  (a proposed CL to the
    >   upstream ICU).
    >
    > Bug: v8:3547,chromium:417640,v8:5714
    > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
    > Change-Id: Ib162295da5bee31b2390bd0918157014aebd3e33
    > Reviewed-on: https://chromium-review.googlesource.com/572148
    > Commit-Queue: Jungshik Shin <jshin@chromium.org>
    > Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#52332}
    
    Bug: v8:3547, chromium:417640, v8:5714
    Change-Id: I47536c111143f75e3cfeecf5d9761c43a98a10f5
    Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
    Reviewed-on: https://chromium-review.googlesource.com/995971
    Commit-Queue: Jungshik Shin <jshin@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52372}
    1d3a87bd