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 |