| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 7e87b1b5fb45c315116a10cd16ce7cc6e8180ffa..e64f62ca44c8fc23f2658b20cb73bd835ebc889b 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1253,8 +1253,13 @@ MaybeObject* KeyedLoadIC::Load(State state,
|
| }
|
|
|
| // Do not use ICs for objects that require access checks (including
|
| - // the global object).
|
| + // the global object) nor for non-strict arguments objects.
|
| bool use_ic = FLAG_use_ic && !object->IsAccessCheckNeeded();
|
| + if (use_ic && object->IsJSObject()) {
|
| + Heap* heap = Handle<JSObject>::cast(object)->GetHeap();
|
| + Map* elements_map = Handle<JSObject>::cast(object)->elements()->map();
|
| + use_ic = (elements_map != heap->non_strict_arguments_elements_map());
|
| + }
|
|
|
| if (use_ic) {
|
| Code* stub = generic_stub();
|
|
|