Reviewers: ulan,
Message:
Committed patchset #1 manually as r19765 (presubmit successful).
Description:
Revert "Check and clear date cache in DateCurrentTime, DateLocalTimezone and
getTimezoneOffset."
This reverts commit r19711 for breaking WebKit tests.
http://build.chromium.org/p/tryserver.chromium/builders/win_rel/builds/278551/steps/content_browsertests/logs/AccessibilityMessagesQueueWhileSwappedOut
[email protected]
Committed: https://code.google.com/p/v8/source/detail?r=19765
Please review this at https://codereview.chromium.org/192903002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+4, -16 lines):
M src/date.h
M src/date.js
M src/objects.cc
M src/runtime.cc
Index: src/date.h
diff --git a/src/date.h b/src/date.h
index
3bcfee97030975bfa0051534b8b93473d33e8488..fcd61db046715003564a6e0fa73e009001361ab9
100644
--- a/src/date.h
+++ b/src/date.h
@@ -122,13 +122,6 @@ class DateCache {
return static_cast<int>((time_ms - local_ms) / kMsPerMin);
}
- void CheckTimezone() {
- if (local_offset_ms_ != kInvalidLocalOffsetInMs &&
- local_offset_ms_ != GetLocalOffsetFromOS()) {
- ResetDateCache();
- }
- }
-
// ECMA 262 - 15.9.1.9
int64_t ToLocal(int64_t time_ms) {
return time_ms + LocalOffsetInMs() +
DaylightSavingsOffsetInMs(time_ms);
Index: src/date.js
diff --git a/src/date.js b/src/date.js
index
5e3f5c1a5ebd896fc9443e00c739058c68e0da3b..f3d4af244f9692c223ee5b467ace6c52e177d46f
100644
--- a/src/date.js
+++ b/src/date.js
@@ -42,19 +42,16 @@ function ThrowDateTypeError() {
var timezone_cache_time = NAN;
-var timezone_cache_timezone_offset = NAN;
var timezone_cache_timezone;
-function LocalTimezone(t, timezone_offset) {
+function LocalTimezone(t) {
if (NUMBER_IS_NAN(t)) return "";
- if (t == timezone_cache_time &&
- timezone_offset == timezone_cache_timezone_offset) {
+ if (t == timezone_cache_time) {
return timezone_cache_timezone;
}
var timezone = %DateLocalTimezone(t);
timezone_cache_time = t;
timezone_cache_timezone = timezone;
- timezone_cache_timezone_offset = timezone_offset;
return timezone;
}
@@ -248,8 +245,9 @@ function TimeStringUTC(date) {
function LocalTimezoneString(date) {
+ var timezone = LocalTimezone(UTC_DATE_VALUE(date));
+
var timezoneOffset = -TIMEZONE_OFFSET(date);
- var timezone = LocalTimezone(UTC_DATE_VALUE(date), timezoneOffset);
var sign = (timezoneOffset >= 0) ? 1 : -1;
var hours = FLOOR((sign * timezoneOffset)/60);
var min = FLOOR((sign * timezoneOffset)%60);
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index
1ee13252b6d9539efef628349e128d2fd841c191..c2f3e1a700829bc1da4d5c7a34d8fdae590f37e4
100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -16342,7 +16342,6 @@ Object* JSDate::GetUTCField(FieldIndex index,
int64_t time_ms = static_cast<int64_t>(value);
if (index == kTimezoneOffset) {
- date_cache->CheckTimezone();
return Smi::FromInt(date_cache->TimezoneOffset(time_ms));
}
Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index
394deceaa8e82b3ea4b08ff0c2f159fbbf330325..7e47615b5765d7b9037fc93aae74ab7c9a1884ae
100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -9549,7 +9549,6 @@ RUNTIME_FUNCTION(MaybeObject*,
Runtime_DateCurrentTime) {
// time is milliseconds. Therefore, we floor the result of getting
// the OS time.
double millis = std::floor(OS::TimeCurrentMillis());
- isolate->date_cache()->CheckTimezone();
return isolate->heap()->NumberFromDouble(millis);
}
@@ -9596,7 +9595,6 @@ RUNTIME_FUNCTION(MaybeObject*,
Runtime_DateLocalTimezone) {
ASSERT(args.length() == 1);
CONVERT_DOUBLE_ARG_CHECKED(x, 0);
- isolate->date_cache()->CheckTimezone();
int64_t time =
isolate->date_cache()->EquivalentTime(static_cast<int64_t>(x));
const char* zone = OS::LocalTimezone(static_cast<double>(time));
return isolate->heap()->AllocateStringFromUtf8(CStrVector(zone));
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.