| 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/hydrogen.h" | 5 #include "src/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 4263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4274 | 4274 |
| 4275 void HOptimizedGraphBuilder::VisitExpressions(ZoneList<Expression*>* exprs, | 4275 void HOptimizedGraphBuilder::VisitExpressions(ZoneList<Expression*>* exprs, |
| 4276 ArgumentsAllowedFlag flag) { | 4276 ArgumentsAllowedFlag flag) { |
| 4277 for (int i = 0; i < exprs->length(); ++i) { | 4277 for (int i = 0; i < exprs->length(); ++i) { |
| 4278 CHECK_ALIVE(VisitForValue(exprs->at(i), flag)); | 4278 CHECK_ALIVE(VisitForValue(exprs->at(i), flag)); |
| 4279 } | 4279 } |
| 4280 } | 4280 } |
| 4281 | 4281 |
| 4282 | 4282 |
| 4283 bool HOptimizedGraphBuilder::BuildGraph() { | 4283 bool HOptimizedGraphBuilder::BuildGraph() { |
| 4284 if (IsSubclassConstructor(current_info()->function()->kind())) { |
| 4285 Bailout(kSuperReference); |
| 4286 return false; |
| 4287 } |
| 4288 |
| 4284 Scope* scope = current_info()->scope(); | 4289 Scope* scope = current_info()->scope(); |
| 4285 SetUpScope(scope); | 4290 SetUpScope(scope); |
| 4286 | 4291 |
| 4287 // Add an edge to the body entry. This is warty: the graph's start | 4292 // Add an edge to the body entry. This is warty: the graph's start |
| 4288 // environment will be used by the Lithium translation as the initial | 4293 // environment will be used by the Lithium translation as the initial |
| 4289 // environment on graph entry, but it has now been mutated by the | 4294 // environment on graph entry, but it has now been mutated by the |
| 4290 // Hydrogen translation of the instructions in the start block. This | 4295 // Hydrogen translation of the instructions in the start block. This |
| 4291 // environment uses values which have not been defined yet. These | 4296 // environment uses values which have not been defined yet. These |
| 4292 // Hydrogen instructions will then be replayed by the Lithium | 4297 // Hydrogen instructions will then be replayed by the Lithium |
| 4293 // translation, so they cannot have an environment effect. The edge to | 4298 // translation, so they cannot have an environment effect. The edge to |
| (...skipping 9202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13496 if (ShouldProduceTraceOutput()) { | 13501 if (ShouldProduceTraceOutput()) { |
| 13497 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13502 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13498 } | 13503 } |
| 13499 | 13504 |
| 13500 #ifdef DEBUG | 13505 #ifdef DEBUG |
| 13501 graph_->Verify(false); // No full verify. | 13506 graph_->Verify(false); // No full verify. |
| 13502 #endif | 13507 #endif |
| 13503 } | 13508 } |
| 13504 | 13509 |
| 13505 } } // namespace v8::internal | 13510 } } // namespace v8::internal |
| OLD | NEW |