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