Reapplying r5147 (caching maps for slow case objects).
authorkaznacheev@chromium.org <kaznacheev@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Aug 2010 13:25:54 +0000 (13:25 +0000)
committerkaznacheev@chromium.org <kaznacheev@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Aug 2010 13:25:54 +0000 (13:25 +0000)
commit6bd9d953dd9fdcc29bd9589fd84ff2ff2b2e0789
tree6baef6377a74f514042baedf75102079c328a6a2
parentfeb20d30f8bc0adda991ae6006a38c2cad8d7e16
Reapplying r5147 (caching maps for slow case objects).

r5147 wrongly assumed that a code cache for a slow case map is always empty.
This patch solves this: whenever we attempt to add a stub to a map's code cache
we check that this map is cached. If it is we give the object its own copy
of the map and only then modify the map.

Review URL: http://codereview.chromium.org/3134027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
13 files changed:
src/bootstrapper.cc
src/contexts.h
src/heap.cc
src/heap.h
src/ic-inl.h
src/ic.cc
src/ic.h
src/objects-debug.cc
src/objects-inl.h
src/objects.cc
src/objects.h
src/stub-cache.cc
src/v8-counters.h