| 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 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 3589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3600 // Delete a property from the dictionary. | 3600 // Delete a property from the dictionary. |
| 3601 static Handle<Object> DeleteProperty(Handle<Derived> dictionary, int entry); | 3601 static Handle<Object> DeleteProperty(Handle<Derived> dictionary, int entry); |
| 3602 | 3602 |
| 3603 // Attempt to shrink the dictionary after deletion of key. | 3603 // Attempt to shrink the dictionary after deletion of key. |
| 3604 MUST_USE_RESULT static inline Handle<Derived> Shrink( | 3604 MUST_USE_RESULT static inline Handle<Derived> Shrink( |
| 3605 Handle<Derived> dictionary, | 3605 Handle<Derived> dictionary, |
| 3606 Key key) { | 3606 Key key) { |
| 3607 return DerivedHashTable::Shrink(dictionary, key); | 3607 return DerivedHashTable::Shrink(dictionary, key); |
| 3608 } | 3608 } |
| 3609 | 3609 |
| 3610 // Sorting support | |
| 3611 // TODO(dcarney): templatize or move to SeededNumberDictionary | |
| 3612 void CopyValuesTo(FixedArray* elements); | |
| 3613 | |
| 3614 // Returns the number of elements in the dictionary filtering out properties | 3610 // Returns the number of elements in the dictionary filtering out properties |
| 3615 // with the specified attributes. | 3611 // with the specified attributes. |
| 3616 int NumberOfElementsFilterAttributes(PropertyFilter filter); | 3612 int NumberOfElementsFilterAttributes(PropertyFilter filter); |
| 3617 | 3613 |
| 3618 // Returns the number of enumerable elements in the dictionary. | 3614 // Returns the number of enumerable elements in the dictionary. |
| 3619 int NumberOfEnumElements() { | 3615 int NumberOfEnumElements() { |
| 3620 return NumberOfElementsFilterAttributes(ENUMERABLE_STRINGS); | 3616 return NumberOfElementsFilterAttributes(ENUMERABLE_STRINGS); |
| 3621 } | 3617 } |
| 3622 | 3618 |
| 3623 enum SortMode { UNSORTED, SORTED }; | 3619 enum SortMode { UNSORTED, SORTED }; |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3870 Handle<SeededNumberDictionary> dictionary, uint32_t key, | 3866 Handle<SeededNumberDictionary> dictionary, uint32_t key, |
| 3871 Handle<Object> value, PropertyDetails details, | 3867 Handle<Object> value, PropertyDetails details, |
| 3872 Handle<JSObject> dictionary_holder); | 3868 Handle<JSObject> dictionary_holder); |
| 3873 | 3869 |
| 3874 void UpdateMaxNumberKey(uint32_t key, Handle<JSObject> dictionary_holder); | 3870 void UpdateMaxNumberKey(uint32_t key, Handle<JSObject> dictionary_holder); |
| 3875 | 3871 |
| 3876 // Returns true if the dictionary contains any elements that are non-writable, | 3872 // Returns true if the dictionary contains any elements that are non-writable, |
| 3877 // non-configurable, non-enumerable, or have getters/setters. | 3873 // non-configurable, non-enumerable, or have getters/setters. |
| 3878 bool HasComplexElements(); | 3874 bool HasComplexElements(); |
| 3879 | 3875 |
| 3876 // Sorting support |
| 3877 void CopyValuesTo(FixedArray* elements); |
| 3878 |
| 3880 // If slow elements are required we will never go back to fast-case | 3879 // If slow elements are required we will never go back to fast-case |
| 3881 // for the elements kept in this dictionary. We require slow | 3880 // for the elements kept in this dictionary. We require slow |
| 3882 // elements if an element has been added at an index larger than | 3881 // elements if an element has been added at an index larger than |
| 3883 // kRequiresSlowElementsLimit or set_requires_slow_elements() has been called | 3882 // kRequiresSlowElementsLimit or set_requires_slow_elements() has been called |
| 3884 // when defining a getter or setter with a number key. | 3883 // when defining a getter or setter with a number key. |
| 3885 inline bool requires_slow_elements(); | 3884 inline bool requires_slow_elements(); |
| 3886 inline void set_requires_slow_elements(); | 3885 inline void set_requires_slow_elements(); |
| 3887 | 3886 |
| 3888 // Get the value of the max number key that has been added to this | 3887 // Get the value of the max number key that has been added to this |
| 3889 // dictionary. max_number_key can only be called if | 3888 // dictionary. max_number_key can only be called if |
| (...skipping 7682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11572 } | 11571 } |
| 11573 }; | 11572 }; |
| 11574 | 11573 |
| 11575 | 11574 |
| 11576 } // NOLINT, false-positive due to second-order macros. | 11575 } // NOLINT, false-positive due to second-order macros. |
| 11577 } // NOLINT, false-positive due to second-order macros. | 11576 } // NOLINT, false-positive due to second-order macros. |
| 11578 | 11577 |
| 11579 #include "src/objects/object-macros-undef.h" | 11578 #include "src/objects/object-macros-undef.h" |
| 11580 | 11579 |
| 11581 #endif // V8_OBJECTS_H_ | 11580 #endif // V8_OBJECTS_H_ |
| OLD | NEW |