Reviewers: danno,

Message:
PTAQL.

Description:
Optimize JS date implementation for smi-only arrays


Please review this at http://codereview.chromium.org/8409010/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/date.js
  M src/runtime.cc


Index: src/date.js
diff --git a/src/date.js b/src/date.js
index d603671774f341614d59727fb5e3f4cfb1b59b40..8d7d5d8b5ee1ab224db92c911a64ccf41b610e6f 100644
--- a/src/date.js
+++ b/src/date.js
@@ -294,8 +294,8 @@ function TimeInYear(year) {
 }


-var ymd_from_time_cache = [$NaN, $NaN, $NaN];
-var ymd_from_time_cached_time = $NaN;
+var ymd_from_time_cache = [1970, 0, 1];
+var ymd_from_time_cached_time = 0;

 function YearFromTime(t) {
   if (t !== ymd_from_time_cached_time) {
Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index 044a4491ab27129e42acc0695822b661a0ffc29e..1b7f7045be7f289dcdaee8acbc5fc8a183a810ca 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -7883,6 +7883,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DateYMDFromTime) {
     elms->set(1, month);
     elms->set(2, day);
   } else {
+    MaybeObject* maybe = res_array->EnsureWritableFastElements();
+    if (maybe->IsFailure()) return maybe;
     FixedArray* elms = FixedArray::cast(res_array->elements());
     elms->set(0, Smi::FromInt(year));
     elms->set(1, Smi::FromInt(month));


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to