| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 193ec1603e4024ee5f0dce3b23411c952728e378..39d6b1cc8c769ff67485748d5f74954b6453e777 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1936,8 +1936,13 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
|
| Handle<Object> value,
|
| ICMissMode miss_mode) {
|
| if (MigrateDeprecated(object)) {
|
| - return Runtime::SetObjectPropertyOrFail(
|
| - isolate(), object , key, value, NONE, strict_mode());
|
| + Handle<Object> result = Runtime::SetObjectProperty(isolate(), object,
|
| + key,
|
| + value,
|
| + NONE,
|
| + strict_mode());
|
| + RETURN_IF_EMPTY_HANDLE(isolate(), result);
|
| + return *result;
|
| }
|
|
|
| // Check for values that can be converted into an internalized string directly
|
| @@ -2002,8 +2007,12 @@ MaybeObject* KeyedStoreIC::Store(Handle<Object> object,
|
| }
|
|
|
| if (maybe_object) return maybe_object;
|
| - return Runtime::SetObjectPropertyOrFail(
|
| - isolate(), object , key, value, NONE, strict_mode());
|
| + Handle<Object> result = Runtime::SetObjectProperty(isolate(), object, key,
|
| + value,
|
| + NONE,
|
| + strict_mode());
|
| + RETURN_IF_EMPTY_HANDLE(isolate(), result);
|
| + return *result;
|
| }
|
|
|
|
|
| @@ -2234,12 +2243,12 @@ RUNTIME_FUNCTION(MaybeObject*, StoreIC_Slow) {
|
| Handle<Object> key = args.at<Object>(1);
|
| Handle<Object> value = args.at<Object>(2);
|
| StrictModeFlag strict_mode = ic.strict_mode();
|
| - return Runtime::SetObjectProperty(isolate,
|
| - object,
|
| - key,
|
| - value,
|
| - NONE,
|
| - strict_mode);
|
| + Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
|
| + value,
|
| + NONE,
|
| + strict_mode);
|
| + RETURN_IF_EMPTY_HANDLE(isolate, result);
|
| + return *result;
|
| }
|
|
|
|
|
| @@ -2251,12 +2260,12 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_Slow) {
|
| Handle<Object> key = args.at<Object>(1);
|
| Handle<Object> value = args.at<Object>(2);
|
| StrictModeFlag strict_mode = ic.strict_mode();
|
| - return Runtime::SetObjectProperty(isolate,
|
| - object,
|
| - key,
|
| - value,
|
| - NONE,
|
| - strict_mode);
|
| + Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
|
| + value,
|
| + NONE,
|
| + strict_mode);
|
| + RETURN_IF_EMPTY_HANDLE(isolate, result);
|
| + return *result;
|
| }
|
|
|
|
|
| @@ -2284,12 +2293,12 @@ RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) {
|
| JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
|
| map->elements_kind());
|
| }
|
| - return Runtime::SetObjectProperty(isolate,
|
| - object,
|
| - key,
|
| - value,
|
| - NONE,
|
| - strict_mode);
|
| + Handle<Object> result = Runtime::SetObjectProperty(isolate, object, key,
|
| + value,
|
| + NONE,
|
| + strict_mode);
|
| + RETURN_IF_EMPTY_HANDLE(isolate, result);
|
| + return *result;
|
| }
|
|
|
|
|
|
|