OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_LOOKUP_H_ | 5 #ifndef V8_LOOKUP_H_ |
6 #define V8_LOOKUP_H_ | 6 #define V8_LOOKUP_H_ |
7 | 7 |
8 #include "src/factory.h" | 8 #include "src/factory.h" |
9 #include "src/isolate.h" | 9 #include "src/isolate.h" |
10 #include "src/objects.h" | 10 #include "src/objects.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 bool HasAccess() const; | 200 bool HasAccess() const; |
201 | 201 |
202 /* PROPERTY */ | 202 /* PROPERTY */ |
203 void PrepareForDataProperty(Handle<Object> value); | 203 void PrepareForDataProperty(Handle<Object> value); |
204 void PrepareTransitionToDataProperty(Handle<Object> value, | 204 void PrepareTransitionToDataProperty(Handle<Object> value, |
205 PropertyAttributes attributes, | 205 PropertyAttributes attributes, |
206 Object::StoreFromKeyed store_mode); | 206 Object::StoreFromKeyed store_mode); |
207 bool IsCacheableTransition() { | 207 bool IsCacheableTransition() { |
208 if (state_ != TRANSITION) return false; | 208 if (state_ != TRANSITION) return false; |
209 return transition_->IsPropertyCell() || | 209 return transition_->IsPropertyCell() || |
210 transition_map()->GetBackPointer()->IsMap(); | 210 (!transition_map()->is_dictionary_map() && |
| 211 transition_map()->GetBackPointer()->IsMap()); |
211 } | 212 } |
212 void ApplyTransitionToDataProperty(); | 213 void ApplyTransitionToDataProperty(); |
213 void ReconfigureDataProperty(Handle<Object> value, | 214 void ReconfigureDataProperty(Handle<Object> value, |
214 PropertyAttributes attributes); | 215 PropertyAttributes attributes); |
215 void TransitionToAccessorProperty(AccessorComponent component, | 216 void TransitionToAccessorProperty(AccessorComponent component, |
216 Handle<Object> accessor, | 217 Handle<Object> accessor, |
217 PropertyAttributes attributes); | 218 PropertyAttributes attributes); |
218 PropertyDetails property_details() const { | 219 PropertyDetails property_details() const { |
219 DCHECK(has_property_); | 220 DCHECK(has_property_); |
220 return property_details_; | 221 return property_details_; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 Handle<JSReceiver> holder_; | 305 Handle<JSReceiver> holder_; |
305 Handle<Map> holder_map_; | 306 Handle<Map> holder_map_; |
306 const Handle<JSReceiver> initial_holder_; | 307 const Handle<JSReceiver> initial_holder_; |
307 uint32_t number_; | 308 uint32_t number_; |
308 }; | 309 }; |
309 | 310 |
310 | 311 |
311 } } // namespace v8::internal | 312 } } // namespace v8::internal |
312 | 313 |
313 #endif // V8_LOOKUP_H_ | 314 #endif // V8_LOOKUP_H_ |
OLD | NEW |