Revision: 4332
Author: [email protected]
Date: Wed Mar 31 05:20:32 2010
Log: Update the time zone offset and dst offset when time zone name changes.
Review URL: http://codereview.chromium.org/1543008
http://code.google.com/p/v8/source/detail?r=4332
Modified:
/branches/bleeding_edge/src/date.js
=======================================
--- /branches/bleeding_edge/src/date.js Tue Mar 30 07:29:32 2010
+++ /branches/bleeding_edge/src/date.js Wed Mar 31 05:20:32 2010
@@ -588,6 +588,20 @@
function LocalTimezoneString(time) {
+ var old_timezone = timezone_cache_timezone;
+ var timezone = LocalTimezone(time);
+ if (old_timezone && timezone != old_timezone) {
+ // If the timezone string has changed from the one that we cached,
+ // the local time offset may now be wrong. So we need to update it
+ // and try again.
+ local_time_offset = %DateLocalTimeOffset();
+ // We also need to invalidate the DST cache as the new timezone may
have
+ // different DST times.
+ var dst_cache = DST_offset_cache;
+ dst_cache.start = 0;
+ dst_cache.end = -1;
+ }
+
var timezoneOffset =
(DaylightSavingsOffset(time) + local_time_offset) / msPerMinute;
var sign = (timezoneOffset >= 0) ? 1 : -1;
@@ -595,7 +609,7 @@
var min = FLOOR((sign * timezoneOffset)%60);
var gmt = ' GMT' + ((sign == 1) ? '+' : '-') +
TwoDigitString(hours) + TwoDigitString(min);
- return gmt + ' (' + LocalTimezone(time) + ')';
+ return gmt + ' (' + timezone + ')';
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev