Revision: 9183
Author:   [email protected]
Date:     Wed Sep  7 23:06:13 2011
Log:      JSArray can go slow case during String.split.  Guard against
that eventuality.
Review URL: http://codereview.chromium.org/7840031
http://code.google.com/p/v8/source/detail?r=9183

Modified:
 /branches/bleeding_edge/src/objects-debug.cc
 /branches/bleeding_edge/src/runtime.cc

=======================================
--- /branches/bleeding_edge/src/objects-debug.cc        Fri Aug 26 06:03:30 2011
+++ /branches/bleeding_edge/src/objects-debug.cc        Wed Sep  7 23:06:13 2011
@@ -257,9 +257,9 @@
              (map()->inobject_properties() + properties()->length() -
               map()->NextFreePropertyIndex()));
   }
-  ASSERT(map()->has_fast_elements() ==
-         (elements()->map() == GetHeap()->fixed_array_map() ||
-          elements()->map() == GetHeap()->fixed_cow_array_map()));
+  ASSERT_EQ(map()->has_fast_elements(),
+            (elements()->map() == GetHeap()->fixed_array_map() ||
+             elements()->map() == GetHeap()->fixed_cow_array_map()));
   ASSERT(map()->has_fast_elements() == HasFastElements());
 }

=======================================
--- /branches/bleeding_edge/src/runtime.cc      Wed Sep  7 09:15:48 2011
+++ /branches/bleeding_edge/src/runtime.cc      Wed Sep  7 23:06:13 2011
@@ -6195,11 +6195,13 @@
   }

   if (limit == 0xffffffffu) {
-    StringSplitCache::Enter(isolate->heap(),
-                            isolate->heap()->string_split_cache(),
-                            *subject,
-                            *pattern,
-                            *elements);
+    if (result->HasFastElements()) {
+      StringSplitCache::Enter(isolate->heap(),
+                              isolate->heap()->string_split_cache(),
+                              *subject,
+                              *pattern,
+                              *elements);
+    }
   }

   return *result;

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

Reply via email to