| Index: src/ic/ic.cc
 | 
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
 | 
| index 499fe50dcffe7928db8bfaf7bf1a554d9e5b51f9..9ea50bba2edf1d70ea8ffe5fee890e42d7c03163 100644
 | 
| --- a/src/ic/ic.cc
 | 
| +++ b/src/ic/ic.cc
 | 
| @@ -2259,7 +2259,6 @@ RUNTIME_FUNCTION(Runtime_LoadIC_Miss) {
 | 
|    HandleScope scope(isolate);
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Name> key = args.at<Name>(1);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 4);
 | 
|    Handle<Smi> slot = args.at<Smi>(2);
 | 
| @@ -2272,16 +2271,15 @@ RUNTIME_FUNCTION(Runtime_LoadIC_Miss) {
 | 
|      LoadICNexus nexus(vector, vector_slot);
 | 
|      LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|    } else {
 | 
|      DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
 | 
|                vector->GetKind(vector_slot));
 | 
|      KeyedLoadICNexus nexus(vector, vector_slot);
 | 
|      KeyedLoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|    }
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2292,7 +2290,6 @@ RUNTIME_FUNCTION(Runtime_KeyedLoadIC_Miss) {
 | 
|    HandleScope scope(isolate);
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Object> key = args.at<Object>(1);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 4);
 | 
|    Handle<Smi> slot = args.at<Smi>(2);
 | 
| @@ -2301,8 +2298,7 @@ RUNTIME_FUNCTION(Runtime_KeyedLoadIC_Miss) {
 | 
|    KeyedLoadICNexus nexus(vector, vector_slot);
 | 
|    KeyedLoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|    ic.UpdateState(receiver, key);
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2312,7 +2308,6 @@ RUNTIME_FUNCTION(Runtime_KeyedLoadIC_MissFromStubFailure) {
 | 
|    HandleScope scope(isolate);
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Object> key = args.at<Object>(1);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 4);
 | 
|    Handle<Smi> slot = args.at<Smi>(2);
 | 
| @@ -2321,9 +2316,7 @@ RUNTIME_FUNCTION(Runtime_KeyedLoadIC_MissFromStubFailure) {
 | 
|    KeyedLoadICNexus nexus(vector, vector_slot);
 | 
|    KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|    ic.UpdateState(receiver, key);
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| -
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2335,7 +2328,6 @@ RUNTIME_FUNCTION(Runtime_StoreIC_Miss) {
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Name> key = args.at<Name>(1);
 | 
|    Handle<Object> value = args.at<Object>(2);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 5 || args.length() == 6);
 | 
|    Handle<Smi> slot = args.at<Smi>(3);
 | 
| @@ -2345,18 +2337,15 @@ RUNTIME_FUNCTION(Runtime_StoreIC_Miss) {
 | 
|      StoreICNexus nexus(vector, vector_slot);
 | 
|      StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                       ic.Store(receiver, key, value));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|    } else {
 | 
|      DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
 | 
|                vector->GetKind(vector_slot));
 | 
|      KeyedStoreICNexus nexus(vector, vector_slot);
 | 
|      KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                       ic.Store(receiver, key, value));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|    }
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2367,7 +2356,6 @@ RUNTIME_FUNCTION(Runtime_StoreIC_MissFromStubFailure) {
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Name> key = args.at<Name>(1);
 | 
|    Handle<Object> value = args.at<Object>(2);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    int length = args.length();
 | 
|    DCHECK(length == 5 || length == 6);
 | 
| @@ -2397,18 +2385,15 @@ RUNTIME_FUNCTION(Runtime_StoreIC_MissFromStubFailure) {
 | 
|      StoreICNexus nexus(vector, vector_slot);
 | 
|      StoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                       ic.Store(receiver, key, value));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|    } else {
 | 
|      DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
 | 
|                vector->GetKind(vector_slot));
 | 
|      KeyedStoreICNexus nexus(vector, vector_slot);
 | 
|      KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                       ic.Store(receiver, key, value));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|    }
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2420,7 +2405,6 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Miss) {
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Object> key = args.at<Object>(1);
 | 
|    Handle<Object> value = args.at<Object>(2);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 5);
 | 
|    Handle<Smi> slot = args.at<Smi>(3);
 | 
| @@ -2429,9 +2413,7 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Miss) {
 | 
|    KeyedStoreICNexus nexus(vector, vector_slot);
 | 
|    KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|    ic.UpdateState(receiver, key);
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                     ic.Store(receiver, key, value));
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2442,7 +2424,6 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_MissFromStubFailure) {
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Object> key = args.at<Object>(1);
 | 
|    Handle<Object> value = args.at<Object>(2);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 5);
 | 
|    Handle<Smi> slot = args.at<Smi>(3);
 | 
| @@ -2451,9 +2432,7 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_MissFromStubFailure) {
 | 
|    KeyedStoreICNexus nexus(vector, vector_slot);
 | 
|    KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|    ic.UpdateState(receiver, key);
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
 | 
| -                                     ic.Store(receiver, key, value));
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2467,11 +2446,9 @@ RUNTIME_FUNCTION(Runtime_StoreIC_Slow) {
 | 
|    StoreICNexus nexus(isolate);
 | 
|    StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|    language_mode = ic.language_mode();
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result,
 | 
| +  RETURN_RESULT_OR_FAILURE(
 | 
| +      isolate,
 | 
|        Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2485,11 +2462,9 @@ RUNTIME_FUNCTION(Runtime_KeyedStoreIC_Slow) {
 | 
|    KeyedStoreICNexus nexus(isolate);
 | 
|    KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
 | 
|    language_mode = ic.language_mode();
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result,
 | 
| +  RETURN_RESULT_OR_FAILURE(
 | 
| +      isolate,
 | 
|        Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2512,11 +2487,9 @@ RUNTIME_FUNCTION(Runtime_ElementsTransitionAndStoreIC_Miss) {
 | 
|      JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
 | 
|                                       map->elements_kind());
 | 
|    }
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result,
 | 
| +  RETURN_RESULT_OR_FAILURE(
 | 
| +      isolate,
 | 
|        Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
 | 
| -  return *result;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2645,11 +2618,8 @@ RUNTIME_FUNCTION(Runtime_BinaryOpIC_Miss) {
 | 
|    Handle<Object> left = args.at<Object>(BinaryOpICStub::kLeft);
 | 
|    Handle<Object> right = args.at<Object>(BinaryOpICStub::kRight);
 | 
|    BinaryOpIC ic(isolate);
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result,
 | 
| -      ic.Transition(Handle<AllocationSite>::null(), left, right));
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(
 | 
| +      isolate, ic.Transition(Handle<AllocationSite>::null(), left, right));
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2664,10 +2634,8 @@ RUNTIME_FUNCTION(Runtime_BinaryOpIC_MissWithAllocationSite) {
 | 
|    Handle<Object> right =
 | 
|        args.at<Object>(BinaryOpWithAllocationSiteStub::kRight);
 | 
|    BinaryOpIC ic(isolate);
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result, ic.Transition(allocation_site, left, right));
 | 
| -  return *result;
 | 
| +  RETURN_RESULT_OR_FAILURE(isolate,
 | 
| +                           ic.Transition(allocation_site, left, right));
 | 
|  }
 | 
|  
 | 
|  Code* CompareIC::GetRawUninitialized(Isolate* isolate, Token::Value op) {
 | 
| @@ -2965,7 +2933,6 @@ RUNTIME_FUNCTION(Runtime_LoadIC_MissFromStubFailure) {
 | 
|    HandleScope scope(isolate);
 | 
|    Handle<Object> receiver = args.at<Object>(0);
 | 
|    Handle<Name> key = args.at<Name>(1);
 | 
| -  Handle<Object> result;
 | 
|  
 | 
|    DCHECK(args.length() == 4);
 | 
|    Handle<Smi> slot = args.at<Smi>(2);
 | 
| @@ -2978,17 +2945,15 @@ RUNTIME_FUNCTION(Runtime_LoadIC_MissFromStubFailure) {
 | 
|      LoadICNexus nexus(vector, vector_slot);
 | 
|      LoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|    } else {
 | 
|      DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
 | 
|                vector->GetKind(vector_slot));
 | 
|      KeyedLoadICNexus nexus(vector, vector_slot);
 | 
|      KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
 | 
|      ic.UpdateState(receiver, key);
 | 
| -    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
 | 
| +    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 | 
|    }
 | 
| -
 | 
| -  return *result;
 | 
|  }
 | 
|  }  // namespace internal
 | 
|  }  // namespace v8
 | 
| 
 |