Chromium Code Reviews| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 10983 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 10994 } | 10994 } |
| 10995 BuildInitElementsInObjectHeader(boilerplate_object, object, object_elements); | 10995 BuildInitElementsInObjectHeader(boilerplate_object, object, object_elements); |
| 10996 | 10996 |
| 10997 // Copy object elements if non-COW. | 10997 // Copy object elements if non-COW. |
| 10998 if (object_elements != NULL) { | 10998 if (object_elements != NULL) { |
| 10999 BuildEmitElements(boilerplate_object, elements, object_elements, | 10999 BuildEmitElements(boilerplate_object, elements, object_elements, |
| 11000 site_context); | 11000 site_context); |
| 11001 } | 11001 } |
| 11002 | 11002 |
| 11003 // Copy in-object properties. | 11003 // Copy in-object properties. |
| 11004 if (boilerplate_object->map()->NumberOfFields() != 0) { | 11004 if (boilerplate_object->map()->NumberOfFields() != 0 || |
| 11005 boilerplate_object->map()->unused_property_fields() > 0) { | |
| 11005 BuildEmitInObjectProperties(boilerplate_object, object, site_context, | 11006 BuildEmitInObjectProperties(boilerplate_object, object, site_context, |
| 11006 pretenure_flag); | 11007 pretenure_flag); |
| 11007 } | 11008 } |
| 11008 return object; | 11009 return object; |
| 11009 } | 11010 } |
| 11010 | 11011 |
| 11011 | 11012 |
| 11012 void HOptimizedGraphBuilder::BuildEmitObjectHeader( | 11013 void HOptimizedGraphBuilder::BuildEmitObjectHeader( |
| 11013 Handle<JSObject> boilerplate_object, | 11014 Handle<JSObject> boilerplate_object, |
| 11014 HInstruction* object) { | 11015 HInstruction* object) { |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11208 void HOptimizedGraphBuilder::VisitThisFunction(ThisFunction* expr) { | 11209 void HOptimizedGraphBuilder::VisitThisFunction(ThisFunction* expr) { |
| 11209 DCHECK(!HasStackOverflow()); | 11210 DCHECK(!HasStackOverflow()); |
| 11210 DCHECK(current_block() != NULL); | 11211 DCHECK(current_block() != NULL); |
| 11211 DCHECK(current_block()->HasPredecessor()); | 11212 DCHECK(current_block()->HasPredecessor()); |
| 11212 HInstruction* instr = BuildThisFunction(); | 11213 HInstruction* instr = BuildThisFunction(); |
| 11213 return ast_context()->ReturnInstruction(instr, expr->id()); | 11214 return ast_context()->ReturnInstruction(instr, expr->id()); |
| 11214 } | 11215 } |
| 11215 | 11216 |
| 11216 | 11217 |
| 11217 void HOptimizedGraphBuilder::VisitSuperReference(SuperReference* expr) { | 11218 void HOptimizedGraphBuilder::VisitSuperReference(SuperReference* expr) { |
| 11218 DCHECK(!HasStackOverflow()); | 11219 DCHECK(!HasStackOverflow()); |
|
Toon Verwaest
2014/09/19 12:27:57
Unrelated to this CL, just rebased.
| |
| 11219 DCHECK(current_block() != NULL); | 11220 DCHECK(current_block() != NULL); |
| 11220 DCHECK(current_block()->HasPredecessor()); | 11221 DCHECK(current_block()->HasPredecessor()); |
| 11221 return Bailout(kSuperReference); | 11222 return Bailout(kSuperReference); |
| 11222 } | 11223 } |
| 11223 | 11224 |
| 11224 | 11225 |
| 11225 void HOptimizedGraphBuilder::VisitDeclarations( | 11226 void HOptimizedGraphBuilder::VisitDeclarations( |
| 11226 ZoneList<Declaration*>* declarations) { | 11227 ZoneList<Declaration*>* declarations) { |
| 11227 DCHECK(globals_.is_empty()); | 11228 DCHECK(globals_.is_empty()); |
| 11228 AstVisitor::VisitDeclarations(declarations); | 11229 AstVisitor::VisitDeclarations(declarations); |
| (...skipping 1289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12518 if (ShouldProduceTraceOutput()) { | 12519 if (ShouldProduceTraceOutput()) { |
| 12519 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12520 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 12520 } | 12521 } |
| 12521 | 12522 |
| 12522 #ifdef DEBUG | 12523 #ifdef DEBUG |
| 12523 graph_->Verify(false); // No full verify. | 12524 graph_->Verify(false); // No full verify. |
| 12524 #endif | 12525 #endif |
| 12525 } | 12526 } |
| 12526 | 12527 |
| 12527 } } // namespace v8::internal | 12528 } } // namespace v8::internal |
| OLD | NEW |