• 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
Name
Last commit
Last update
..
debug Loading commit data...
platform Loading commit data...
utils Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
adapters.h Loading commit data...
atomic-utils.h Loading commit data...
atomicops.h Loading commit data...
atomicops_internals_atomicword_compat.h Loading commit data...
atomicops_internals_portable.h Loading commit data...
atomicops_internals_std.h Loading commit data...
base-export.h Loading commit data...
bits.cc Loading commit data...
bits.h Loading commit data...
build_config.h Loading commit data...
compiler-specific.h Loading commit data...
cpu.cc Loading commit data...
cpu.h Loading commit data...
division-by-constant.cc Loading commit data...
division-by-constant.h Loading commit data...
export-template.h Loading commit data...
file-utils.cc Loading commit data...
file-utils.h Loading commit data...
flags.h Loading commit data...
format-macros.h Loading commit data...
free_deleter.h Loading commit data...
functional.cc Loading commit data...
functional.h Loading commit data...
hashmap-entry.h Loading commit data...
hashmap.h Loading commit data...
ieee754.cc Loading commit data...
ieee754.h Loading commit data...
iterator.h Loading commit data...
lazy-instance.h Loading commit data...
logging.cc Loading commit data...
logging.h Loading commit data...
macros.h Loading commit data...
once.cc Loading commit data...
once.h Loading commit data...
optional.h Loading commit data...
page-allocator.cc Loading commit data...
page-allocator.h Loading commit data...
qnx-math.h Loading commit data...
ring-buffer.h Loading commit data...
safe_conversions.h Loading commit data...
safe_conversions_impl.h Loading commit data...
safe_math.h Loading commit data...
safe_math_impl.h Loading commit data...
sys-info.cc Loading commit data...
sys-info.h Loading commit data...
template-utils.h Loading commit data...
timezone-cache.h Loading commit data...
tsan.h Loading commit data...
v8-fallthrough.h Loading commit data...
win32-headers.h Loading commit data...