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