| Index: src/ic-inl.h
|
| diff --git a/src/ic-inl.h b/src/ic-inl.h
|
| index 56cea817600c29748fc0e9cd9e0037d3b70cd20d..21ba7c34657c683e004bcdb0e9946f9cba83f680 100644
|
| --- a/src/ic-inl.h
|
| +++ b/src/ic-inl.h
|
| @@ -29,6 +29,8 @@
|
| #define V8_IC_INL_H_
|
|
|
| #include "ic.h"
|
| +
|
| +#include "compiler.h"
|
| #include "debug.h"
|
| #include "macro-assembler.h"
|
|
|
| @@ -89,6 +91,21 @@ void IC::SetTargetAtAddress(Address address, Code* target) {
|
| Assembler::set_target_address_at(address, target->instruction_start());
|
| target->GetHeap()->incremental_marking()->RecordCodeTargetPatch(address,
|
| target);
|
| + Isolate::Current()->runtime_profiler()->NotifyICChanged();
|
| + StackFrameIterator it;
|
| + if (it.done()) return;
|
| + it.Advance();
|
| + static const int kStackFramesToMark = Compiler::kMaxInliningLevels - 1;
|
| + for (int i = 0; i < kStackFramesToMark; ++i) {
|
| + if (it.done()) return;
|
| + StackFrame* raw_frame = it.frame();
|
| + if (raw_frame->is_java_script()) {
|
| + JSFunction* function =
|
| + JSFunction::cast(JavaScriptFrame::cast(raw_frame)->function());
|
| + function->set_profiler_ticks(0);
|
| + }
|
| + it.Advance();
|
| + }
|
| }
|
|
|
|
|
|
|