| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index 7a230c1fac6d71c1924c989b4afe7383644e1612..e886c4a79eff68ef16e917b2b6e27d8ed27a55d7 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -447,7 +447,11 @@ void LCodeGen::WriteTranslation(LEnvironment* environment,
|
|
|
| WriteTranslation(environment->outer(), translation);
|
| int closure_id = DefineDeoptimizationLiteral(environment->closure());
|
| - translation->BeginFrame(environment->ast_id(), closure_id, height);
|
| + if (environment->is_arguments_adaptor()) {
|
| + translation->BeginArgumentsAdaptorFrame(closure_id, translation_size);
|
| + } else {
|
| + translation->BeginJSFrame(environment->ast_id(), closure_id, height);
|
| + }
|
| for (int i = 0; i < translation_size; ++i) {
|
| LOperand* value = environment->values()->at(i);
|
| // spilled_registers_ and spilled_double_registers_ are either
|
| @@ -573,10 +577,14 @@ void LCodeGen::RegisterEnvironmentForDeoptimization(LEnvironment* environment,
|
| // |>------------ translation_size ------------<|
|
|
|
| int frame_count = 0;
|
| + int jsframe_count = 0;
|
| for (LEnvironment* e = environment; e != NULL; e = e->outer()) {
|
| ++frame_count;
|
| + if (!e->is_arguments_adaptor()) {
|
| + ++jsframe_count;
|
| + }
|
| }
|
| - Translation translation(&translations_, frame_count);
|
| + Translation translation(&translations_, frame_count, jsframe_count);
|
| WriteTranslation(environment, &translation);
|
| int deoptimization_index = deoptimizations_.length();
|
| int pc_offset = masm()->pc_offset();
|
|
|