| Index: src/heap/heap.cc
|
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
| index ec3837cfbec09c4ce8f52b2e9a7530d8203863c4..f362faddeddf26b06a5f52f2aa1aac3f1c32bee7 100644
|
| --- a/src/heap/heap.cc
|
| +++ b/src/heap/heap.cc
|
| @@ -33,6 +33,7 @@
|
| #include "src/snapshot/natives.h"
|
| #include "src/snapshot/serialize.h"
|
| #include "src/snapshot/snapshot.h"
|
| +#include "src/type-feedback-vector.h"
|
| #include "src/utils.h"
|
| #include "src/v8.h"
|
| #include "src/v8threads.h"
|
| @@ -477,8 +478,14 @@ const char* Heap::GetSpaceName(int idx) {
|
| }
|
|
|
|
|
| -void Heap::ClearAllICsByKind(Code::Kind kind) {
|
| - // TODO(mvstanton): Do not iterate the heap.
|
| +void Heap::ClearAllKeyedStoreICs() {
|
| + if (FLAG_vector_stores) {
|
| + TypeFeedbackVector::ClearAllKeyedStoreICs(isolate_);
|
| + return;
|
| + }
|
| +
|
| + // TODO(mvstanton): Remove this function when FLAG_vector_stores is turned on
|
| + // permanently, and divert all callers to KeyedStoreIC::ClearAllKeyedStoreICs.
|
| HeapObjectIterator it(code_space());
|
|
|
| for (Object* object = it.Next(); object != NULL; object = it.Next()) {
|
| @@ -486,7 +493,7 @@ void Heap::ClearAllICsByKind(Code::Kind kind) {
|
| Code::Kind current_kind = code->kind();
|
| if (current_kind == Code::FUNCTION ||
|
| current_kind == Code::OPTIMIZED_FUNCTION) {
|
| - code->ClearInlineCaches(kind);
|
| + code->ClearInlineCaches(Code::KEYED_STORE_IC);
|
| }
|
| }
|
| }
|
|
|