| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index ef8ab8a309eb3a4e5bb067f3cf2419b3629f05c4..db1cb956edc75f64fdf6249ef0c25fe1e8f20bdc 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1541,6 +1541,10 @@ static bool LookupForWrite(Handle<JSObject> receiver,
|
| Handle<Map> target(lookup->GetTransitionMapFromMap(receiver->map()));
|
| Map::GeneralizeRepresentation(
|
| target, target->LastAdded(), value->OptimalRepresentation());
|
| + // Lookup the transition again since the transition tree may have changed
|
| + // entirely by the migration above.
|
| + receiver->map()->LookupTransition(*holder, *name, lookup);
|
| + if (!lookup->IsTransition()) return false;
|
| *state = MONOMORPHIC_PROTOTYPE_FAILURE;
|
| }
|
| return true;
|
|
|