| Index: src/hydrogen-instructions.cc
|
| ===================================================================
|
| --- src/hydrogen-instructions.cc (revision 12279)
|
| +++ src/hydrogen-instructions.cc (working copy)
|
| @@ -1631,6 +1631,7 @@
|
| if (current->IsJSGlobalProxy() ||
|
| current->IsGlobalObject() ||
|
| !current->IsJSObject() ||
|
| + JSObject::cast(current)->map()->has_named_interceptor() ||
|
| JSObject::cast(current)->IsAccessCheckNeeded() ||
|
| !JSObject::cast(current)->HasFastProperties()) {
|
| return false;
|
| @@ -1685,7 +1686,8 @@
|
| types_.Add(types->at(i), zone);
|
| break;
|
| case MAP_TRANSITION:
|
| - if (PrototypeChainCanNeverResolve(map, name)) {
|
| + if (!map->has_named_interceptor() &&
|
| + PrototypeChainCanNeverResolve(map, name)) {
|
| negative_lookups.Add(types->at(i), zone);
|
| }
|
| break;
|
| @@ -1693,7 +1695,8 @@
|
| break;
|
| }
|
| } else if (lookup.IsCacheable()) {
|
| - if (PrototypeChainCanNeverResolve(map, name)) {
|
| + if (!map->has_named_interceptor() &&
|
| + PrototypeChainCanNeverResolve(map, name)) {
|
| negative_lookups.Add(types->at(i), zone);
|
| }
|
| }
|
|
|