Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/parser.h" | 5 #include "src/parser.h" |
| 6 | 6 |
| 7 #include "src/api.h" | 7 #include "src/api.h" |
| 8 #include "src/ast.h" | 8 #include "src/ast.h" |
| 9 #include "src/ast-literal-reindexer.h" | 9 #include "src/ast-literal-reindexer.h" |
| 10 #include "src/bailout-reason.h" | 10 #include "src/bailout-reason.h" |
| (...skipping 4642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4653 param_scope->set_end_position(RelocInfo::kNoPosition); | 4653 param_scope->set_end_position(RelocInfo::kNoPosition); |
| 4654 param_scope->RecordEvalCall(); | 4654 param_scope->RecordEvalCall(); |
| 4655 param_block = factory()->NewBlock(NULL, 8, true, RelocInfo::kNoPosition); | 4655 param_block = factory()->NewBlock(NULL, 8, true, RelocInfo::kNoPosition); |
| 4656 param_block->set_scope(param_scope); | 4656 param_block->set_scope(param_scope); |
| 4657 descriptor.hoist_scope = scope_; | 4657 descriptor.hoist_scope = scope_; |
| 4658 } | 4658 } |
| 4659 | 4659 |
| 4660 { | 4660 { |
| 4661 BlockState block_state(&scope_, param_scope); | 4661 BlockState block_state(&scope_, param_scope); |
| 4662 DeclarationParsingResult::Declaration decl( | 4662 DeclarationParsingResult::Declaration decl( |
| 4663 parameter.pattern, parameter.pattern->position(), initial_value); | 4663 parameter.pattern, descriptor.initialization_pos, initial_value); |
|
Dan Ehrenberg
2015/11/24 00:37:35
I think you want the position to be the end of the
adamk
2015/11/24 01:08:51
Great catch. I made the test more complex and adde
| |
| 4664 PatternRewriter::DeclareAndInitializeVariables(param_block, &descriptor, | 4664 PatternRewriter::DeclareAndInitializeVariables(param_block, &descriptor, |
| 4665 &decl, nullptr, CHECK_OK); | 4665 &decl, nullptr, CHECK_OK); |
| 4666 } | 4666 } |
| 4667 | 4667 |
| 4668 if (!parameter.is_simple() && scope_->calls_sloppy_eval()) { | 4668 if (!parameter.is_simple() && scope_->calls_sloppy_eval()) { |
| 4669 param_scope = param_scope->FinalizeBlockScope(); | 4669 param_scope = param_scope->FinalizeBlockScope(); |
| 4670 if (param_scope != nullptr) { | 4670 if (param_scope != nullptr) { |
| 4671 CheckConflictingVarDeclarations(param_scope, CHECK_OK); | 4671 CheckConflictingVarDeclarations(param_scope, CHECK_OK); |
| 4672 } | 4672 } |
| 4673 init_block->statements()->Add(param_block, zone()); | 4673 init_block->statements()->Add(param_block, zone()); |
| (...skipping 1782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6456 } | 6456 } |
| 6457 | 6457 |
| 6458 | 6458 |
| 6459 void Parser::RaiseLanguageMode(LanguageMode mode) { | 6459 void Parser::RaiseLanguageMode(LanguageMode mode) { |
| 6460 SetLanguageMode(scope_, | 6460 SetLanguageMode(scope_, |
| 6461 static_cast<LanguageMode>(scope_->language_mode() | mode)); | 6461 static_cast<LanguageMode>(scope_->language_mode() | mode)); |
| 6462 } | 6462 } |
| 6463 | 6463 |
| 6464 } // namespace internal | 6464 } // namespace internal |
| 6465 } // namespace v8 | 6465 } // namespace v8 |
| OLD | NEW |