Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 52e3496c38a84917c4d015638be90998fa85703d..63f2ffa9d9d18b3344b2bd6f32c5acd748acbc35 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -2647,15 +2647,17 @@ RUNTIME_FUNCTION(LoadElementWithInterceptor) { |
} |
-RUNTIME_FUNCTION(VectorLoadIC_MissFromStubFailure) { |
- // TODO(mvstanton): To be enabled when ICs can accept a vector and slot |
- return NULL; |
-} |
- |
- |
-RUNTIME_FUNCTION(VectorKeyedLoadIC_MissFromStubFailure) { |
- // TODO(mvstanton): To be enabled when ICs can accept a vector and slot |
- return NULL; |
+RUNTIME_FUNCTION(LoadIC_MissFromStubFailure) { |
+ TimerEventScope<TimerEventIcMiss> timer(isolate); |
+ HandleScope scope(isolate); |
+ DCHECK(args.length() == 2); |
+ LoadIC ic(IC::EXTRA_CALL_FRAME, isolate); |
+ Handle<Object> receiver = args.at<Object>(0); |
+ Handle<Name> key = args.at<Name>(1); |
+ ic.UpdateState(receiver, key); |
+ Handle<Object> result; |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key)); |
+ return *result; |
} |