| Index: src/type-feedback-vector.cc
|
| diff --git a/src/type-feedback-vector.cc b/src/type-feedback-vector.cc
|
| index f5d4a69b5123f4eddca18aac37fbb4d39b4e4238..c51d9877f1c27c4e31fcdb02316a36c1883e2c92 100644
|
| --- a/src/type-feedback-vector.cc
|
| +++ b/src/type-feedback-vector.cc
|
| @@ -138,7 +138,7 @@
|
| static bool ClearLogic(Heap* heap, int ic_age, Code::Kind kind,
|
| InlineCacheState state) {
|
| if (FLAG_cleanup_code_caches_at_gc &&
|
| - (heap->flush_monomorphic_ics() ||
|
| + (kind == Code::CALL_IC || heap->flush_monomorphic_ics() ||
|
| // TODO(mvstanton): is this ic_age granular enough? it comes from
|
| // the SharedFunctionInfo which may change on a different schedule
|
| // than ic targets.
|
| @@ -285,7 +285,7 @@
|
|
|
| if (feedback == *vector()->MegamorphicSentinel(isolate)) {
|
| return GENERIC;
|
| - } else if (feedback->IsAllocationSite() || feedback->IsWeakCell()) {
|
| + } else if (feedback->IsAllocationSite() || feedback->IsJSFunction()) {
|
| return MONOMORPHIC;
|
| }
|
|
|
| @@ -319,8 +319,7 @@
|
|
|
|
|
| void CallICNexus::ConfigureMonomorphic(Handle<JSFunction> function) {
|
| - Handle<WeakCell> new_cell = GetIsolate()->factory()->NewWeakCell(function);
|
| - SetFeedback(*new_cell);
|
| + SetFeedback(*function);
|
| }
|
|
|
|
|
|
|