OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/assert-scope.h" | 10 #include "src/assert-scope.h" |
(...skipping 2025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2036 inline bool HasFixedUint16Elements(); | 2036 inline bool HasFixedUint16Elements(); |
2037 inline bool HasFixedInt32Elements(); | 2037 inline bool HasFixedInt32Elements(); |
2038 inline bool HasFixedUint32Elements(); | 2038 inline bool HasFixedUint32Elements(); |
2039 inline bool HasFixedFloat32Elements(); | 2039 inline bool HasFixedFloat32Elements(); |
2040 inline bool HasFixedFloat64Elements(); | 2040 inline bool HasFixedFloat64Elements(); |
2041 | 2041 |
2042 inline bool HasFastArgumentsElements(); | 2042 inline bool HasFastArgumentsElements(); |
2043 inline bool HasSlowArgumentsElements(); | 2043 inline bool HasSlowArgumentsElements(); |
2044 inline bool HasFastStringWrapperElements(); | 2044 inline bool HasFastStringWrapperElements(); |
2045 inline bool HasSlowStringWrapperElements(); | 2045 inline bool HasSlowStringWrapperElements(); |
| 2046 bool HasEnumerableElements(); |
| 2047 |
2046 inline SeededNumberDictionary* element_dictionary(); // Gets slow elements. | 2048 inline SeededNumberDictionary* element_dictionary(); // Gets slow elements. |
2047 | 2049 |
2048 // Requires: HasFastElements(). | 2050 // Requires: HasFastElements(). |
2049 static void EnsureWritableFastElements(Handle<JSObject> object); | 2051 static void EnsureWritableFastElements(Handle<JSObject> object); |
2050 | 2052 |
2051 // Collects elements starting at index 0. | 2053 // Collects elements starting at index 0. |
2052 // Undefined values are placed after non-undefined values. | 2054 // Undefined values are placed after non-undefined values. |
2053 // Returns the number of non-undefined values. | 2055 // Returns the number of non-undefined values. |
2054 static Handle<Object> PrepareElementsForSort(Handle<JSObject> object, | 2056 static Handle<Object> PrepareElementsForSort(Handle<JSObject> object, |
2055 uint32_t limit); | 2057 uint32_t limit); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2287 // with the specified attributes (ignoring interceptors). | 2289 // with the specified attributes (ignoring interceptors). |
2288 // TODO(jkummerow): Deprecated, only used by Object.observe. | 2290 // TODO(jkummerow): Deprecated, only used by Object.observe. |
2289 int GetOwnElementKeys(FixedArray* storage, PropertyFilter filter); | 2291 int GetOwnElementKeys(FixedArray* storage, PropertyFilter filter); |
2290 | 2292 |
2291 static void CollectOwnElementKeys(Handle<JSObject> object, | 2293 static void CollectOwnElementKeys(Handle<JSObject> object, |
2292 KeyAccumulator* keys, | 2294 KeyAccumulator* keys, |
2293 PropertyFilter filter); | 2295 PropertyFilter filter); |
2294 | 2296 |
2295 static Handle<FixedArray> GetEnumPropertyKeys(Handle<JSObject> object); | 2297 static Handle<FixedArray> GetEnumPropertyKeys(Handle<JSObject> object); |
2296 | 2298 |
| 2299 static Handle<FixedArray> GetFastEnumPropertyKeys(Isolate* isolate, |
| 2300 Handle<JSObject> object); |
| 2301 |
2297 // Returns a new map with all transitions dropped from the object's current | 2302 // Returns a new map with all transitions dropped from the object's current |
2298 // map and the ElementsKind set. | 2303 // map and the ElementsKind set. |
2299 static Handle<Map> GetElementsTransitionMap(Handle<JSObject> object, | 2304 static Handle<Map> GetElementsTransitionMap(Handle<JSObject> object, |
2300 ElementsKind to_kind); | 2305 ElementsKind to_kind); |
2301 static void TransitionElementsKind(Handle<JSObject> object, | 2306 static void TransitionElementsKind(Handle<JSObject> object, |
2302 ElementsKind to_kind); | 2307 ElementsKind to_kind); |
2303 | 2308 |
2304 // Always use this to migrate an object to a new map. | 2309 // Always use this to migrate an object to a new map. |
2305 // |expected_additional_properties| is only used for fast-to-slow transitions | 2310 // |expected_additional_properties| is only used for fast-to-slow transitions |
2306 // and ignored otherwise. | 2311 // and ignored otherwise. |
(...skipping 8557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10864 } | 10869 } |
10865 return value; | 10870 return value; |
10866 } | 10871 } |
10867 }; | 10872 }; |
10868 | 10873 |
10869 | 10874 |
10870 } // NOLINT, false-positive due to second-order macros. | 10875 } // NOLINT, false-positive due to second-order macros. |
10871 } // NOLINT, false-positive due to second-order macros. | 10876 } // NOLINT, false-positive due to second-order macros. |
10872 | 10877 |
10873 #endif // V8_OBJECTS_H_ | 10878 #endif // V8_OBJECTS_H_ |
OLD | NEW |