| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index de74f2ca6240d69f13fbd45df4d232a833ba3759..cd8eff25f78494fd075d08d3d52bbd1527205255 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -8017,6 +8017,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->optimized_code_kind() == Code::COMPILED_STUB);
|
| + delete deoptimizer;
|
| + return isolate->heap()->undefined_value();
|
| +}
|
| +
|
| +
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
|
| HandleScope scope(isolate);
|
| ASSERT(args.length() == 1);
|
| @@ -8025,9 +8036,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->optimized_code_kind() != Code::COMPILED_STUB);
|
|
|
| // Make sure to materialize objects before causing any allocation.
|
| + JavaScriptFrameIterator it(isolate);
|
| deoptimizer->MaterializeHeapObjects(&it);
|
| delete deoptimizer;
|
|
|
|
|