| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2165 // return value indicates whether the transition was successful. | 2165 // return value indicates whether the transition was successful. |
| 2166 static inline Handle<Map> FindTransitionToField(Handle<Map> map, | 2166 static inline Handle<Map> FindTransitionToField(Handle<Map> map, |
| 2167 Handle<Name> key); | 2167 Handle<Name> key); |
| 2168 | 2168 |
| 2169 inline int LastAddedFieldIndex(); | 2169 inline int LastAddedFieldIndex(); |
| 2170 | 2170 |
| 2171 // Extend the receiver with a single fast property appeared first in the | 2171 // Extend the receiver with a single fast property appeared first in the |
| 2172 // passed map. This also extends the property backing store if necessary. | 2172 // passed map. This also extends the property backing store if necessary. |
| 2173 static void AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map); | 2173 static void AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map); |
| 2174 | 2174 |
| 2175 // Migrates the given object to a map whose field representations are the |
| 2176 // lowest upper bound of all known representations for that field. |
| 2175 static void MigrateInstance(Handle<JSObject> instance); | 2177 static void MigrateInstance(Handle<JSObject> instance); |
| 2176 | 2178 |
| 2179 // Migrates the given object only if the target map is already available, |
| 2180 // or returns an empty handle if such a map is not yet available. |
| 2177 static Handle<Object> TryMigrateInstance(Handle<JSObject> instance); | 2181 static Handle<Object> TryMigrateInstance(Handle<JSObject> instance); |
| 2178 inline MUST_USE_RESULT MaybeObject* TryMigrateInstance(); | |
| 2179 | 2182 |
| 2180 // Can cause GC. | 2183 // Can cause GC. |
| 2181 MUST_USE_RESULT MaybeObject* SetLocalPropertyIgnoreAttributesTrampoline( | 2184 MUST_USE_RESULT MaybeObject* SetLocalPropertyIgnoreAttributesTrampoline( |
| 2182 Name* key, | 2185 Name* key, |
| 2183 Object* value, | 2186 Object* value, |
| 2184 PropertyAttributes attributes, | 2187 PropertyAttributes attributes, |
| 2185 ValueType value_type = OPTIMAL_REPRESENTATION, | 2188 ValueType value_type = OPTIMAL_REPRESENTATION, |
| 2186 StoreMode mode = ALLOW_AS_CONSTANT, | 2189 StoreMode mode = ALLOW_AS_CONSTANT, |
| 2187 ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK); | 2190 ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK); |
| 2188 | 2191 |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2462 ElementsKind elements_kind); | 2465 ElementsKind elements_kind); |
| 2463 MUST_USE_RESULT MaybeObject* GetElementsTransitionMapSlow( | 2466 MUST_USE_RESULT MaybeObject* GetElementsTransitionMapSlow( |
| 2464 ElementsKind elements_kind); | 2467 ElementsKind elements_kind); |
| 2465 | 2468 |
| 2466 static void TransitionElementsKind(Handle<JSObject> object, | 2469 static void TransitionElementsKind(Handle<JSObject> object, |
| 2467 ElementsKind to_kind); | 2470 ElementsKind to_kind); |
| 2468 | 2471 |
| 2469 MUST_USE_RESULT MaybeObject* TransitionElementsKind(ElementsKind to_kind); | 2472 MUST_USE_RESULT MaybeObject* TransitionElementsKind(ElementsKind to_kind); |
| 2470 MUST_USE_RESULT MaybeObject* UpdateAllocationSite(ElementsKind to_kind); | 2473 MUST_USE_RESULT MaybeObject* UpdateAllocationSite(ElementsKind to_kind); |
| 2471 | 2474 |
| 2475 // TODO(mstarzinger): Both public because of ConvertAnsSetLocalProperty(). |
| 2472 static void MigrateToMap(Handle<JSObject> object, Handle<Map> new_map); | 2476 static void MigrateToMap(Handle<JSObject> object, Handle<Map> new_map); |
| 2473 MUST_USE_RESULT MaybeObject* MigrateToMap(Map* new_map); | |
| 2474 static void GeneralizeFieldRepresentation(Handle<JSObject> object, | 2477 static void GeneralizeFieldRepresentation(Handle<JSObject> object, |
| 2475 int modify_index, | 2478 int modify_index, |
| 2476 Representation new_representation, | 2479 Representation new_representation, |
| 2477 StoreMode store_mode); | 2480 StoreMode store_mode); |
| 2478 | 2481 |
| 2479 // Convert the object to use the canonical dictionary | 2482 // Convert the object to use the canonical dictionary |
| 2480 // representation. If the object is expected to have additional properties | 2483 // representation. If the object is expected to have additional properties |
| 2481 // added this number can be indicated to have the backing store allocated to | 2484 // added this number can be indicated to have the backing store allocated to |
| 2482 // an initial capacity for holding these properties. | 2485 // an initial capacity for holding these properties. |
| 2483 static void NormalizeProperties(Handle<JSObject> object, | 2486 static void NormalizeProperties(Handle<JSObject> object, |
| (...skipping 7757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10241 } else { | 10244 } else { |
| 10242 value &= ~(1 << bit_position); | 10245 value &= ~(1 << bit_position); |
| 10243 } | 10246 } |
| 10244 return value; | 10247 return value; |
| 10245 } | 10248 } |
| 10246 }; | 10249 }; |
| 10247 | 10250 |
| 10248 } } // namespace v8::internal | 10251 } } // namespace v8::internal |
| 10249 | 10252 |
| 10250 #endif // V8_OBJECTS_H_ | 10253 #endif // V8_OBJECTS_H_ |
| OLD | NEW |