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; |