| 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 6903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6914 | 6914 |
| 6915 HInstruction* HOptimizedGraphBuilder::BuildMonomorphicElementAccess( | 6915 HInstruction* HOptimizedGraphBuilder::BuildMonomorphicElementAccess( |
| 6916 HValue* object, | 6916 HValue* object, |
| 6917 HValue* key, | 6917 HValue* key, |
| 6918 HValue* val, | 6918 HValue* val, |
| 6919 HValue* dependency, | 6919 HValue* dependency, |
| 6920 Handle<Map> map, | 6920 Handle<Map> map, |
| 6921 PropertyAccessType access_type, | 6921 PropertyAccessType access_type, |
| 6922 KeyedAccessStoreMode store_mode) { | 6922 KeyedAccessStoreMode store_mode) { |
| 6923 HCheckMaps* checked_object = Add<HCheckMaps>(object, map, dependency); | 6923 HCheckMaps* checked_object = Add<HCheckMaps>(object, map, dependency); |
| 6924 if (dependency) { | |
| 6925 checked_object->ClearDependsOnFlag(kElementsKind); | |
| 6926 } | |
| 6927 | 6924 |
| 6928 if (access_type == STORE && map->prototype()->IsJSObject()) { | 6925 if (access_type == STORE && map->prototype()->IsJSObject()) { |
| 6929 // monomorphic stores need a prototype chain check because shape | 6926 // monomorphic stores need a prototype chain check because shape |
| 6930 // changes could allow callbacks on elements in the chain that | 6927 // changes could allow callbacks on elements in the chain that |
| 6931 // aren't compatible with monomorphic keyed stores. | 6928 // aren't compatible with monomorphic keyed stores. |
| 6932 PrototypeIterator iter(map); | 6929 PrototypeIterator iter(map); |
| 6933 JSObject* holder = NULL; | 6930 JSObject* holder = NULL; |
| 6934 while (!iter.IsAtEnd()) { | 6931 while (!iter.IsAtEnd()) { |
| 6935 holder = JSObject::cast(*PrototypeIterator::GetCurrent(iter)); | 6932 holder = JSObject::cast(*PrototypeIterator::GetCurrent(iter)); |
| 6936 iter.Advance(); | 6933 iter.Advance(); |
| (...skipping 6451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13388 if (ShouldProduceTraceOutput()) { | 13385 if (ShouldProduceTraceOutput()) { |
| 13389 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13386 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13390 } | 13387 } |
| 13391 | 13388 |
| 13392 #ifdef DEBUG | 13389 #ifdef DEBUG |
| 13393 graph_->Verify(false); // No full verify. | 13390 graph_->Verify(false); // No full verify. |
| 13394 #endif | 13391 #endif |
| 13395 } | 13392 } |
| 13396 | 13393 |
| 13397 } } // namespace v8::internal | 13394 } } // namespace v8::internal |
| OLD | NEW |