Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index cd9095be129998145233d06c3d794f241f24355f..168b96016e40389cf916639bb4c228f6c828a627 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -155,26 +155,6 @@ Address IC::OriginalCodeAddress() const { |
#endif |
-static bool HasNormalObjectsInPrototypeChain(Isolate* isolate, |
- LookupResult* lookup, |
- Object* receiver) { |
- Object* end = lookup->IsProperty() |
- ? lookup->holder() : Object::cast(isolate->heap()->null_value()); |
- for (Object* current = receiver; |
- current != end; |
- current = current->GetPrototype()) { |
- if (current->IsJSObject() && |
- !JSObject::cast(current)->HasFastProperties() && |
- !current->IsJSGlobalProxy() && |
- !current->IsJSGlobalObject()) { |
- return true; |
- } |
- } |
- |
- return false; |
-} |
- |
- |
static bool TryRemoveInvalidPrototypeDependentStub(Code* target, |
Object* receiver, |
Object* name) { |
@@ -686,14 +666,6 @@ void CallICBase::UpdateCaches(LookupResult* lookup, |
// Bail out if we didn't find a result. |
if (!lookup->IsProperty() || !lookup->IsCacheable()) return; |
- if (lookup->holder() != *object && |
- HasNormalObjectsInPrototypeChain( |
- isolate(), lookup, object->GetPrototype())) { |
- // Suppress optimization for prototype chains with slow properties objects |
- // in the middle. |
- return; |
- } |
- |
// Compute the number of arguments. |
int argc = target()->arguments_count(); |
Handle<Code> code; |
@@ -1009,8 +981,6 @@ void LoadIC::UpdateCaches(LookupResult* lookup, |
// deal with non-JS objects here. |
if (!object->IsJSObject()) return; |
- if (HasNormalObjectsInPrototypeChain(isolate(), lookup, *object)) return; |
- |
Handle<JSObject> receiver = Handle<JSObject>::cast(object); |
Handle<Code> code; |
if (state == UNINITIALIZED) { |