| 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 6887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6898 | 6898 |
| 6899 HInstruction* HOptimizedGraphBuilder::BuildMonomorphicElementAccess( | 6899 HInstruction* HOptimizedGraphBuilder::BuildMonomorphicElementAccess( |
| 6900 HValue* object, | 6900 HValue* object, |
| 6901 HValue* key, | 6901 HValue* key, |
| 6902 HValue* val, | 6902 HValue* val, |
| 6903 HValue* dependency, | 6903 HValue* dependency, |
| 6904 Handle<Map> map, | 6904 Handle<Map> map, |
| 6905 PropertyAccessType access_type, | 6905 PropertyAccessType access_type, |
| 6906 KeyedAccessStoreMode store_mode) { | 6906 KeyedAccessStoreMode store_mode) { |
| 6907 HCheckMaps* checked_object = Add<HCheckMaps>(object, map, dependency); | 6907 HCheckMaps* checked_object = Add<HCheckMaps>(object, map, dependency); |
| 6908 if (dependency) { | |
| 6909 checked_object->ClearDependsOnFlag(kElementsKind); | |
| 6910 } | |
| 6911 | 6908 |
| 6912 if (access_type == STORE && map->prototype()->IsJSObject()) { | 6909 if (access_type == STORE && map->prototype()->IsJSObject()) { |
| 6913 // monomorphic stores need a prototype chain check because shape | 6910 // monomorphic stores need a prototype chain check because shape |
| 6914 // changes could allow callbacks on elements in the chain that | 6911 // changes could allow callbacks on elements in the chain that |
| 6915 // aren't compatible with monomorphic keyed stores. | 6912 // aren't compatible with monomorphic keyed stores. |
| 6916 PrototypeIterator iter(map); | 6913 PrototypeIterator iter(map); |
| 6917 JSObject* holder = NULL; | 6914 JSObject* holder = NULL; |
| 6918 while (!iter.IsAtEnd()) { | 6915 while (!iter.IsAtEnd()) { |
| 6919 holder = JSObject::cast(*PrototypeIterator::GetCurrent(iter)); | 6916 holder = JSObject::cast(*PrototypeIterator::GetCurrent(iter)); |
| 6920 iter.Advance(); | 6917 iter.Advance(); |
| (...skipping 6513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13434 if (ShouldProduceTraceOutput()) { | 13431 if (ShouldProduceTraceOutput()) { |
| 13435 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13432 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13436 } | 13433 } |
| 13437 | 13434 |
| 13438 #ifdef DEBUG | 13435 #ifdef DEBUG |
| 13439 graph_->Verify(false); // No full verify. | 13436 graph_->Verify(false); // No full verify. |
| 13440 #endif | 13437 #endif |
| 13441 } | 13438 } |
| 13442 | 13439 |
| 13443 } } // namespace v8::internal | 13440 } } // namespace v8::internal |
| OLD | NEW |