| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 1867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1878 MUST_USE_RESULT static Maybe<bool> IsExtensible(Handle<JSReceiver> object); | 1878 MUST_USE_RESULT static Maybe<bool> IsExtensible(Handle<JSReceiver> object); |
| 1879 | 1879 |
| 1880 // Tests for the fast common case for property enumeration. | 1880 // Tests for the fast common case for property enumeration. |
| 1881 bool IsSimpleEnum(); | 1881 bool IsSimpleEnum(); |
| 1882 | 1882 |
| 1883 // Returns the class name ([[Class]] property in the specification). | 1883 // Returns the class name ([[Class]] property in the specification). |
| 1884 String* class_name(); | 1884 String* class_name(); |
| 1885 | 1885 |
| 1886 // Returns the constructor name (the name (possibly, inferred name) of the | 1886 // Returns the constructor name (the name (possibly, inferred name) of the |
| 1887 // function that was used to instantiate the object). | 1887 // function that was used to instantiate the object). |
| 1888 String* constructor_name(); | 1888 static Handle<String> GetConstructorName(Handle<JSReceiver> receiver); |
| 1889 | 1889 |
| 1890 Context* GetCreationContext(); | 1890 Context* GetCreationContext(); |
| 1891 | 1891 |
| 1892 MUST_USE_RESULT static inline Maybe<PropertyAttributes> GetPropertyAttributes( | 1892 MUST_USE_RESULT static inline Maybe<PropertyAttributes> GetPropertyAttributes( |
| 1893 Handle<JSReceiver> object, Handle<Name> name); | 1893 Handle<JSReceiver> object, Handle<Name> name); |
| 1894 MUST_USE_RESULT static inline Maybe<PropertyAttributes> | 1894 MUST_USE_RESULT static inline Maybe<PropertyAttributes> |
| 1895 GetOwnPropertyAttributes(Handle<JSReceiver> object, Handle<Name> name); | 1895 GetOwnPropertyAttributes(Handle<JSReceiver> object, Handle<Name> name); |
| 1896 | 1896 |
| 1897 MUST_USE_RESULT static inline Maybe<PropertyAttributes> GetElementAttributes( | 1897 MUST_USE_RESULT static inline Maybe<PropertyAttributes> GetElementAttributes( |
| 1898 Handle<JSReceiver> object, uint32_t index); | 1898 Handle<JSReceiver> object, uint32_t index); |
| (...skipping 3741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5640 Handle<Map> map, int modify_index, StoreMode store_mode, | 5640 Handle<Map> map, int modify_index, StoreMode store_mode, |
| 5641 PropertyKind kind, PropertyAttributes attributes, const char* reason); | 5641 PropertyKind kind, PropertyAttributes attributes, const char* reason); |
| 5642 | 5642 |
| 5643 static Handle<Map> PrepareForDataProperty(Handle<Map> old_map, | 5643 static Handle<Map> PrepareForDataProperty(Handle<Map> old_map, |
| 5644 int descriptor_number, | 5644 int descriptor_number, |
| 5645 Handle<Object> value); | 5645 Handle<Object> value); |
| 5646 | 5646 |
| 5647 static Handle<Map> Normalize(Handle<Map> map, PropertyNormalizationMode mode, | 5647 static Handle<Map> Normalize(Handle<Map> map, PropertyNormalizationMode mode, |
| 5648 const char* reason); | 5648 const char* reason); |
| 5649 | 5649 |
| 5650 // Returns the constructor name (the name (possibly, inferred name) of the | |
| 5651 // function that was used to instantiate the object). | |
| 5652 String* constructor_name(); | |
| 5653 | |
| 5654 // Tells whether the map is used for JSObjects in dictionary mode (ie | 5650 // Tells whether the map is used for JSObjects in dictionary mode (ie |
| 5655 // normalized objects, ie objects for which HasFastProperties returns false). | 5651 // normalized objects, ie objects for which HasFastProperties returns false). |
| 5656 // A map can never be used for both dictionary mode and fast mode JSObjects. | 5652 // A map can never be used for both dictionary mode and fast mode JSObjects. |
| 5657 // False by default and for HeapObjects that are not JSObjects. | 5653 // False by default and for HeapObjects that are not JSObjects. |
| 5658 inline void set_dictionary_map(bool value); | 5654 inline void set_dictionary_map(bool value); |
| 5659 inline bool is_dictionary_map(); | 5655 inline bool is_dictionary_map(); |
| 5660 | 5656 |
| 5661 // Tells whether the instance needs security checks when accessing its | 5657 // Tells whether the instance needs security checks when accessing its |
| 5662 // properties. | 5658 // properties. |
| 5663 inline void set_is_access_check_needed(bool access_check_needed); | 5659 inline void set_is_access_check_needed(bool access_check_needed); |
| (...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6148 // is stored. Returns UNREGISTERED if this prototype has not been registered. | 6144 // is stored. Returns UNREGISTERED if this prototype has not been registered. |
| 6149 inline int registry_slot() const; | 6145 inline int registry_slot() const; |
| 6150 inline void set_registry_slot(int slot); | 6146 inline void set_registry_slot(int slot); |
| 6151 // [validity_cell]: Cell containing the validity bit for prototype chains | 6147 // [validity_cell]: Cell containing the validity bit for prototype chains |
| 6152 // going through this object, or Smi(0) if uninitialized. | 6148 // going through this object, or Smi(0) if uninitialized. |
| 6153 // When a prototype object changes its map, then both its own validity cell | 6149 // When a prototype object changes its map, then both its own validity cell |
| 6154 // and those of all "downstream" prototypes are invalidated; handlers for a | 6150 // and those of all "downstream" prototypes are invalidated; handlers for a |
| 6155 // given receiver embed the currently valid cell for that receiver's prototype | 6151 // given receiver embed the currently valid cell for that receiver's prototype |
| 6156 // during their compilation and check it on execution. | 6152 // during their compilation and check it on execution. |
| 6157 DECL_ACCESSORS(validity_cell, Object) | 6153 DECL_ACCESSORS(validity_cell, Object) |
| 6158 // [constructor_name]: User-friendly name of the original constructor. | |
| 6159 DECL_ACCESSORS(constructor_name, Object) | |
| 6160 | 6154 |
| 6161 DECLARE_CAST(PrototypeInfo) | 6155 DECLARE_CAST(PrototypeInfo) |
| 6162 | 6156 |
| 6163 // Dispatched behavior. | 6157 // Dispatched behavior. |
| 6164 DECLARE_PRINTER(PrototypeInfo) | 6158 DECLARE_PRINTER(PrototypeInfo) |
| 6165 DECLARE_VERIFIER(PrototypeInfo) | 6159 DECLARE_VERIFIER(PrototypeInfo) |
| 6166 | 6160 |
| 6167 static const int kPrototypeUsersOffset = HeapObject::kHeaderSize; | 6161 static const int kPrototypeUsersOffset = HeapObject::kHeaderSize; |
| 6168 static const int kRegistrySlotOffset = kPrototypeUsersOffset + kPointerSize; | 6162 static const int kRegistrySlotOffset = kPrototypeUsersOffset + kPointerSize; |
| 6169 static const int kValidityCellOffset = kRegistrySlotOffset + kPointerSize; | 6163 static const int kValidityCellOffset = kRegistrySlotOffset + kPointerSize; |
| (...skipping 4549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10719 } | 10713 } |
| 10720 return value; | 10714 return value; |
| 10721 } | 10715 } |
| 10722 }; | 10716 }; |
| 10723 | 10717 |
| 10724 | 10718 |
| 10725 } // NOLINT, false-positive due to second-order macros. | 10719 } // NOLINT, false-positive due to second-order macros. |
| 10726 } // NOLINT, false-positive due to second-order macros. | 10720 } // NOLINT, false-positive due to second-order macros. |
| 10727 | 10721 |
| 10728 #endif // V8_OBJECTS_H_ | 10722 #endif // V8_OBJECTS_H_ |
| OLD | NEW |