| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index f28430430ff4060552b80d8c59bcd4214f4fe038..e1cdc625fb1b78e7af5521858e4019ff3c5c1f86 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -5816,7 +5816,7 @@ void JSObject::SetObserved(Handle<JSObject> object) {
|
| if (transition_index != TransitionArray::kNotFound) {
|
| new_map = handle(old_map->GetTransition(transition_index), isolate);
|
| ASSERT(new_map->is_observed());
|
| - } else if (old_map->CanHaveMoreTransitions()) {
|
| + } else if (object->HasFastProperties() && old_map->CanHaveMoreTransitions()) {
|
| new_map = Map::CopyForObserved(old_map);
|
| } else {
|
| new_map = Map::Copy(old_map);
|
|
|