Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 5267af1a27152d6be1dcb754f35a542dfeb04947..992df1b1b0a0f13fb9a209dfde51dd9d5a915fe9 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1670,8 +1670,10 @@ MaybeObject* StoreIC::Store(State state, |
JSReceiver::StoreFromKeyed store_mode) { |
// Handle proxies. |
if (object->IsJSProxy()) { |
- return JSReceiver::SetPropertyOrFail( |
+ Handle<Object> result = JSReceiver::SetProperty( |
Handle<JSReceiver>::cast(object), name, value, NONE, strict_mode); |
+ RETURN_IF_EMPTY_HANDLE(isolate(), result); |
+ return *result; |
} |
// If the object is undefined or null it's illegal to try to set any |
@@ -1709,8 +1711,10 @@ MaybeObject* StoreIC::Store(State state, |
// Observed objects are always modified through the runtime. |
if (FLAG_harmony_observation && receiver->map()->is_observed()) { |
- return JSReceiver::SetPropertyOrFail( |
+ Handle<Object> result = JSReceiver::SetProperty( |
receiver, name, value, NONE, strict_mode, store_mode); |
+ RETURN_IF_EMPTY_HANDLE(isolate(), result); |
+ return *result; |
} |
// Use specialized code for setting the length of arrays with fast |
@@ -1727,8 +1731,10 @@ MaybeObject* StoreIC::Store(State state, |
StoreArrayLengthStub(kind(), strict_mode).GetCode(isolate()); |
set_target(*stub); |
TRACE_IC("StoreIC", name, state, *stub); |
- return JSReceiver::SetPropertyOrFail( |
+ Handle<Object> result = JSReceiver::SetProperty( |
receiver, name, value, NONE, strict_mode, store_mode); |
+ RETURN_IF_EMPTY_HANDLE(isolate(), result); |
+ return *result; |
} |
if (receiver->IsJSGlobalProxy()) { |
@@ -1741,8 +1747,10 @@ MaybeObject* StoreIC::Store(State state, |
set_target(*stub); |
TRACE_IC("StoreIC", name, state, *stub); |
} |
- return JSReceiver::SetPropertyOrFail( |
+ Handle<Object> result = JSReceiver::SetProperty( |
receiver, name, value, NONE, strict_mode, store_mode); |
+ RETURN_IF_EMPTY_HANDLE(isolate(), result); |
+ return *result; |
} |
LookupResult lookup(isolate()); |
@@ -1773,8 +1781,10 @@ MaybeObject* StoreIC::Store(State state, |
} |
// Set the property. |
- return JSReceiver::SetPropertyOrFail( |
+ Handle<Object> result = JSReceiver::SetProperty( |
receiver, name, value, NONE, strict_mode, store_mode); |
+ RETURN_IF_EMPTY_HANDLE(isolate(), result); |
+ return *result; |
} |