| Index: src/crankshaft/lithium-codegen.cc
|
| diff --git a/src/crankshaft/lithium-codegen.cc b/src/crankshaft/lithium-codegen.cc
|
| index ff4e78f6a7aab863bb206b0fe847f085549bf6b9..53fedcf1df1d9de4abdd3f19d5f35ed48381d2b3 100644
|
| --- a/src/crankshaft/lithium-codegen.cc
|
| +++ b/src/crankshaft/lithium-codegen.cc
|
| @@ -240,8 +240,8 @@ void LCodeGenBase::WriteTranslationFrame(LEnvironment* environment,
|
| break;
|
| }
|
| case JS_GETTER: {
|
| - DCHECK(translation_size == 1);
|
| - DCHECK(height == 0);
|
| + DCHECK_EQ(1, translation_size);
|
| + DCHECK_EQ(0, height);
|
| int shared_id = DefineDeoptimizationLiteral(
|
| environment->entry() ? environment->entry()->shared()
|
| : info()->shared_info());
|
| @@ -255,8 +255,8 @@ void LCodeGenBase::WriteTranslationFrame(LEnvironment* environment,
|
| break;
|
| }
|
| case JS_SETTER: {
|
| - DCHECK(translation_size == 2);
|
| - DCHECK(height == 0);
|
| + DCHECK_EQ(2, translation_size);
|
| + DCHECK_EQ(0, height);
|
| int shared_id = DefineDeoptimizationLiteral(
|
| environment->entry() ? environment->entry()->shared()
|
| : info()->shared_info());
|
| @@ -269,6 +269,20 @@ void LCodeGenBase::WriteTranslationFrame(LEnvironment* environment,
|
| }
|
| break;
|
| }
|
| + case TAIL_CALLER_FUNCTION: {
|
| + DCHECK_EQ(0, translation_size);
|
| + int shared_id = DefineDeoptimizationLiteral(
|
| + environment->entry() ? environment->entry()->shared()
|
| + : info()->shared_info());
|
| + translation->BeginTailCallerFrame(shared_id);
|
| + if (info()->closure().is_identical_to(environment->closure())) {
|
| + translation->StoreJSFrameFunction();
|
| + } else {
|
| + int closure_id = DefineDeoptimizationLiteral(environment->closure());
|
| + translation->StoreLiteral(closure_id);
|
| + }
|
| + break;
|
| + }
|
| case ARGUMENTS_ADAPTOR: {
|
| int shared_id = DefineDeoptimizationLiteral(
|
| environment->entry() ? environment->entry()->shared()
|
|
|