summaryrefslogtreecommitdiff
path: root/deps/v8/src/hydrogen-instructions.cc
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-08-16 14:42:39 -0700
committerisaacs <i@izs.me>2012-08-16 14:42:56 -0700
commit73976b6c9ddbd2d22209ea292968ce700e97f1a2 (patch)
treebedce39b2db62eaafbbe506034be5444e7ade55c /deps/v8/src/hydrogen-instructions.cc
parent226d37bb6883bcf5d409f82a9d6e910d46f175a9 (diff)
downloadnode-new-73976b6c9ddbd2d22209ea292968ce700e97f1a2.tar.gz
v8: Upgrade to 3.11.10.18
Diffstat (limited to 'deps/v8/src/hydrogen-instructions.cc')
-rw-r--r--deps/v8/src/hydrogen-instructions.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/deps/v8/src/hydrogen-instructions.cc b/deps/v8/src/hydrogen-instructions.cc
index 4bb25096f7..db3c3f3f78 100644
--- a/deps/v8/src/hydrogen-instructions.cc
+++ b/deps/v8/src/hydrogen-instructions.cc
@@ -1631,6 +1631,7 @@ static bool PrototypeChainCanNeverResolve(
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 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context,
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 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context,
break;
}
} else if (lookup.IsCacheable()) {
- if (PrototypeChainCanNeverResolve(map, name)) {
+ if (!map->has_named_interceptor() &&
+ PrototypeChainCanNeverResolve(map, name)) {
negative_lookups.Add(types->at(i), zone);
}
}