| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
| 10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
| (...skipping 12316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12327 | 12327 |
| 12328 void HOptimizedGraphBuilder::VisitVariableDeclaration( | 12328 void HOptimizedGraphBuilder::VisitVariableDeclaration( |
| 12329 VariableDeclaration* declaration) { | 12329 VariableDeclaration* declaration) { |
| 12330 VariableProxy* proxy = declaration->proxy(); | 12330 VariableProxy* proxy = declaration->proxy(); |
| 12331 VariableMode mode = declaration->mode(); | 12331 VariableMode mode = declaration->mode(); |
| 12332 Variable* variable = proxy->var(); | 12332 Variable* variable = proxy->var(); |
| 12333 bool hole_init = mode == LET || mode == CONST; | 12333 bool hole_init = mode == LET || mode == CONST; |
| 12334 switch (variable->location()) { | 12334 switch (variable->location()) { |
| 12335 case VariableLocation::GLOBAL: | 12335 case VariableLocation::GLOBAL: |
| 12336 case VariableLocation::UNALLOCATED: | 12336 case VariableLocation::UNALLOCATED: |
| 12337 DCHECK(!variable->binding_needs_init()); |
| 12337 globals_.Add(variable->name(), zone()); | 12338 globals_.Add(variable->name(), zone()); |
| 12338 globals_.Add(variable->binding_needs_init() | 12339 globals_.Add(isolate()->factory()->undefined_value(), zone()); |
| 12339 ? isolate()->factory()->the_hole_value() | |
| 12340 : isolate()->factory()->undefined_value(), zone()); | |
| 12341 return; | 12340 return; |
| 12342 case VariableLocation::PARAMETER: | 12341 case VariableLocation::PARAMETER: |
| 12343 case VariableLocation::LOCAL: | 12342 case VariableLocation::LOCAL: |
| 12344 if (hole_init) { | 12343 if (hole_init) { |
| 12345 HValue* value = graph()->GetConstantHole(); | 12344 HValue* value = graph()->GetConstantHole(); |
| 12346 environment()->Bind(variable, value); | 12345 environment()->Bind(variable, value); |
| 12347 } | 12346 } |
| 12348 break; | 12347 break; |
| 12349 case VariableLocation::CONTEXT: | 12348 case VariableLocation::CONTEXT: |
| 12350 if (hole_init) { | 12349 if (hole_init) { |
| (...skipping 1433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13784 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13783 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13785 } | 13784 } |
| 13786 | 13785 |
| 13787 #ifdef DEBUG | 13786 #ifdef DEBUG |
| 13788 graph_->Verify(false); // No full verify. | 13787 graph_->Verify(false); // No full verify. |
| 13789 #endif | 13788 #endif |
| 13790 } | 13789 } |
| 13791 | 13790 |
| 13792 } // namespace internal | 13791 } // namespace internal |
| 13793 } // namespace v8 | 13792 } // namespace v8 |
| OLD | NEW |