Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 9528cbb299741f80854985b992cf5ff0f5c07439..6730bb79f8a91f282711e8dd2d8a70617238965a 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -3638,7 +3638,8 @@ bool TranslatedState::GetAdaptedArguments(Handle<JSObject>* result, |
TranslatedFrame* TranslatedState::GetArgumentsInfoFromJSFrameIndex( |
int jsframe_index, int* args_count) { |
for (size_t i = 0; i < frames_.size(); i++) { |
- if (frames_[i].kind() == TranslatedFrame::kFunction) { |
+ if (frames_[i].kind() == TranslatedFrame::kFunction || |
+ frames_[i].kind() == TranslatedFrame::kInterpretedFunction) { |
if (jsframe_index > 0) { |
jsframe_index--; |
} else { |
@@ -3701,7 +3702,8 @@ void TranslatedState::StoreMaterializedValuesAndDeopt() { |
if (new_store && value_changed) { |
materialized_store->Set(stack_frame_pointer_, |
previously_materialized_objects); |
- CHECK_EQ(TranslatedFrame::kFunction, frames_[0].kind()); |
+ CHECK(frames_[0].kind() == TranslatedFrame::kFunction || |
+ frames_[0].kind() == TranslatedFrame::kInterpretedFunction); |
Object* const function = frames_[0].front().GetRawValue(); |
Deoptimizer::DeoptimizeFunction(JSFunction::cast(function)); |
} |