| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/ast/ast.h" | 5 #include "src/ast/ast.h" |
| 6 #include "src/messages.h" | 6 #include "src/messages.h" |
| 7 #include "src/parsing/parameter-initializer-rewriter.h" | 7 #include "src/parsing/parameter-initializer-rewriter.h" |
| 8 #include "src/parsing/parser.h" | 8 #include "src/parsing/parser.h" |
| 9 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 Runtime::kInitializeVarGlobal, arguments, value->position()); | 212 Runtime::kInitializeVarGlobal, arguments, value->position()); |
| 213 block_->statements()->Add( | 213 block_->statements()->Add( |
| 214 factory()->NewExpressionStatement(initialize, initialize->position()), | 214 factory()->NewExpressionStatement(initialize, initialize->position()), |
| 215 zone()); | 215 zone()); |
| 216 } else { | 216 } else { |
| 217 // For 'let' and 'const' declared variables the initialization always | 217 // For 'let' and 'const' declared variables the initialization always |
| 218 // assigns to the declared variable. | 218 // assigns to the declared variable. |
| 219 // But for var declarations we need to do a new lookup. | 219 // But for var declarations we need to do a new lookup. |
| 220 if (descriptor_->mode == VAR) { | 220 if (descriptor_->mode == VAR) { |
| 221 proxy = var_init_scope->NewUnresolved(factory(), name); | 221 proxy = var_init_scope->NewUnresolved(factory(), name); |
| 222 // TODO(neis): Set is_assigned on proxy. |
| 222 } else { | 223 } else { |
| 223 DCHECK_NOT_NULL(proxy); | 224 DCHECK_NOT_NULL(proxy); |
| 224 DCHECK_NOT_NULL(proxy->var()); | 225 DCHECK_NOT_NULL(proxy->var()); |
| 225 } | 226 } |
| 226 // Add break location for destructured sub-pattern. | 227 // Add break location for destructured sub-pattern. |
| 227 int pos = IsSubPattern() ? pattern->position() : value->position(); | 228 int pos = IsSubPattern() ? pattern->position() : value->position(); |
| 228 Assignment* assignment = | 229 Assignment* assignment = |
| 229 factory()->NewAssignment(Token::INIT, proxy, value, pos); | 230 factory()->NewAssignment(Token::INIT, proxy, value, pos); |
| 230 block_->statements()->Add( | 231 block_->statements()->Add( |
| 231 factory()->NewExpressionStatement(assignment, pos), zone()); | 232 factory()->NewExpressionStatement(assignment, pos), zone()); |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 690 NOT_A_PATTERN(TryFinallyStatement) | 691 NOT_A_PATTERN(TryFinallyStatement) |
| 691 NOT_A_PATTERN(UnaryOperation) | 692 NOT_A_PATTERN(UnaryOperation) |
| 692 NOT_A_PATTERN(VariableDeclaration) | 693 NOT_A_PATTERN(VariableDeclaration) |
| 693 NOT_A_PATTERN(WhileStatement) | 694 NOT_A_PATTERN(WhileStatement) |
| 694 NOT_A_PATTERN(WithStatement) | 695 NOT_A_PATTERN(WithStatement) |
| 695 NOT_A_PATTERN(Yield) | 696 NOT_A_PATTERN(Yield) |
| 696 | 697 |
| 697 #undef NOT_A_PATTERN | 698 #undef NOT_A_PATTERN |
| 698 } // namespace internal | 699 } // namespace internal |
| 699 } // namespace v8 | 700 } // namespace v8 |
| OLD | NEW |