| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 5106be81bbd70d73006507baee098e265f60415d..14bbae791163c85e380168dc7a3edea6ed0b63ec 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -7902,6 +7902,17 @@ class ActivationsFinder : public ThreadVisitor {
|
| };
|
|
|
|
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyICMiss) {
|
| + HandleScope scope(isolate);
|
| + ASSERT(args.length() == 0);
|
| + Deoptimizer* deoptimizer = Deoptimizer::Grab(isolate);
|
| + ASSERT(isolate->heap()->IsAllocationAllowed());
|
| + ASSERT(deoptimizer->compiled_code_kind() == Code::COMPILED_STUB);
|
| + delete deoptimizer;
|
| + return isolate->heap()->undefined_value();
|
| +}
|
| +
|
| +
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
|
| HandleScope scope(isolate);
|
| ASSERT(args.length() == 1);
|
| @@ -7910,9 +7921,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
|
| static_cast<Deoptimizer::BailoutType>(args.smi_at(0));
|
| Deoptimizer* deoptimizer = Deoptimizer::Grab(isolate);
|
| ASSERT(isolate->heap()->IsAllocationAllowed());
|
| - JavaScriptFrameIterator it(isolate);
|
| +
|
| + ASSERT(deoptimizer->compiled_code_kind() != Code::COMPILED_STUB);
|
|
|
| // Make sure to materialize objects before causing any allocation.
|
| + JavaScriptFrameIterator it(isolate);
|
| deoptimizer->MaterializeHeapObjects(&it);
|
| delete deoptimizer;
|
|
|
|
|