| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index a6efdab56b49f041ca9c53cbf49dead9c2f7a65b..81022ba8e45be5d46543ebb9c8d07536fadac0f4 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1794,6 +1794,15 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
|
| }
|
| }
|
|
|
| + if (store_handle.is_null()) {
|
| + ASSIGN_RETURN_ON_EXCEPTION(
|
| + isolate(),
|
| + store_handle,
|
| + Runtime::SetObjectProperty(
|
| + isolate(), object, key, value, NONE, strict_mode()),
|
| + Object);
|
| + }
|
| +
|
| if (!is_target_set()) {
|
| if (*stub == *generic_stub()) {
|
| TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "set generic");
|
| @@ -1803,15 +1812,7 @@ MaybeHandle<Object> KeyedStoreIC::Store(Handle<Object> object,
|
| TRACE_IC("StoreIC", key);
|
| }
|
|
|
| - if (!store_handle.is_null()) return store_handle;
|
| - Handle<Object> result;
|
| - ASSIGN_RETURN_ON_EXCEPTION(
|
| - isolate(),
|
| - result,
|
| - Runtime::SetObjectProperty(
|
| - isolate(), object, key, value, NONE, strict_mode()),
|
| - Object);
|
| - return result;
|
| + return store_handle;
|
| }
|
|
|
|
|
|
|