| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 5e40842eeb1386445c09873805d64389faf2bd09..194543524ad5b6793b777f2d82d09c369000a54a 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -987,20 +987,20 @@ LEnvironment* LChunkBuilder::CreateEnvironment(
|
|
|
| LEnvironment* outer =
|
| CreateEnvironment(hydrogen_env->outer(), argument_index_accumulator);
|
| +#if DEBUG
|
| BailoutId ast_id = hydrogen_env->ast_id();
|
| ASSERT(!ast_id.IsNone() ||
|
| hydrogen_env->frame_type() != JS_FUNCTION);
|
| +#endif
|
| int value_count = hydrogen_env->length() - hydrogen_env->specials_count();
|
| LEnvironment* result =
|
| - new(zone()) LEnvironment(hydrogen_env->closure(),
|
| - hydrogen_env->frame_type(),
|
| - ast_id,
|
| - hydrogen_env->parameter_count(),
|
| + new(zone()) LEnvironment(hydrogen_env,
|
| argument_count_,
|
| value_count,
|
| outer,
|
| hydrogen_env->entry(),
|
| zone());
|
| +
|
| bool needs_arguments_object_materialization = false;
|
| int argument_index = *argument_index_accumulator;
|
| for (int i = 0; i < hydrogen_env->length(); ++i) {
|
| @@ -2742,6 +2742,18 @@ LInstruction* LChunkBuilder::DoStackCheck(HStackCheck* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoEnterTry(HEnterTry* instr) {
|
| + current_block_->last_environment()->AddExceptionHandler();
|
| + return new(zone()) LEnterTry;
|
| +}
|
| +
|
| +
|
| +LInstruction* LChunkBuilder::DoLeaveTry(HLeaveTry* instr) {
|
| + current_block_->last_environment()->RemoveExceptionHandler();
|
| + return new(zone()) LLeaveTry;
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
| HEnvironment* outer = current_block_->last_environment();
|
| HConstant* undefined = graph()->GetConstantUndefined();
|
|
|