Merged r11831 into trunk branch.
Revert part of 11727 as it sometimes tanked V8 benchmark (raytrace) performance for reasons that are not obvious. Now we make objects into fast-case objects when they are made prototypes for other objects, but we do not mark objects that are already fast case with a bit that helps keep them in fast case. Review URL: https://chromiumcodereview.appspot.com/10556004
R=danno@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10564002
git-svn-id: http://v8.googlecode.com/svn/trunk@11832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/objects-inl.h b/src/objects-inl.h
index da1a35b..4f66af2 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -1616,8 +1616,7 @@
int inobject = map()->inobject_properties();
int limit;
- if (store_mode == CERTAINLY_NOT_STORE_FROM_KEYED ||
- map()->used_for_prototype()) {
+ if (store_mode == CERTAINLY_NOT_STORE_FROM_KEYED) {
limit = Max(inobject, kMaxFastProperties);
} else {
limit = Max(inobject, kFastPropertiesSoftLimit);
@@ -2982,20 +2981,6 @@
}
-void Map::set_used_for_prototype(bool value) {
- if (value) {
- set_bit_field3(bit_field3() | (1 << kUsedForPrototype));
- } else {
- set_bit_field3(bit_field3() & ~(1 << kUsedForPrototype));
- }
-}
-
-
-bool Map::used_for_prototype() {
- return ((1 << kUsedForPrototype) & bit_field3()) != 0;
-}
-
-
JSFunction* Map::unchecked_constructor() {
return reinterpret_cast<JSFunction*>(READ_FIELD(this, kConstructorOffset));
}