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 2123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2134 uint32_t limit); | 2134 uint32_t limit); |
2135 // As PrepareElementsForSort, but only on objects where elements is | 2135 // As PrepareElementsForSort, but only on objects where elements is |
2136 // a dictionary, and it will stay a dictionary. Collates undefined and | 2136 // a dictionary, and it will stay a dictionary. Collates undefined and |
2137 // unexisting elements below limit from position zero of the elements. | 2137 // unexisting elements below limit from position zero of the elements. |
2138 static Handle<Object> PrepareSlowElementsForSort(Handle<JSObject> object, | 2138 static Handle<Object> PrepareSlowElementsForSort(Handle<JSObject> object, |
2139 uint32_t limit); | 2139 uint32_t limit); |
2140 | 2140 |
2141 MUST_USE_RESULT static Maybe<bool> SetPropertyWithInterceptor( | 2141 MUST_USE_RESULT static Maybe<bool> SetPropertyWithInterceptor( |
2142 LookupIterator* it, ShouldThrow should_throw, Handle<Object> value); | 2142 LookupIterator* it, ShouldThrow should_throw, Handle<Object> value); |
2143 | 2143 |
| 2144 MUST_USE_RESULT static Maybe<bool> DefinePropertyWithInterceptor( |
| 2145 LookupIterator* it, ShouldThrow should_throw, PropertyDescriptor& desc); |
| 2146 |
2144 // The API currently still wants DefineOwnPropertyIgnoreAttributes to convert | 2147 // The API currently still wants DefineOwnPropertyIgnoreAttributes to convert |
2145 // AccessorInfo objects to data fields. We allow FORCE_FIELD as an exception | 2148 // AccessorInfo objects to data fields. We allow FORCE_FIELD as an exception |
2146 // to the default behavior that calls the setter. | 2149 // to the default behavior that calls the setter. |
2147 enum AccessorInfoHandling { FORCE_FIELD, DONT_FORCE_FIELD }; | 2150 enum AccessorInfoHandling { FORCE_FIELD, DONT_FORCE_FIELD }; |
2148 | 2151 |
2149 MUST_USE_RESULT static MaybeHandle<Object> DefineOwnPropertyIgnoreAttributes( | 2152 MUST_USE_RESULT static MaybeHandle<Object> DefineOwnPropertyIgnoreAttributes( |
2150 LookupIterator* it, Handle<Object> value, PropertyAttributes attributes, | 2153 LookupIterator* it, Handle<Object> value, PropertyAttributes attributes, |
2151 AccessorInfoHandling handling = DONT_FORCE_FIELD); | 2154 AccessorInfoHandling handling = DONT_FORCE_FIELD); |
2152 | 2155 |
2153 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyIgnoreAttributes( | 2156 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyIgnoreAttributes( |
(...skipping 8602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10756 }; | 10759 }; |
10757 | 10760 |
10758 | 10761 |
10759 class InterceptorInfo: public Struct { | 10762 class InterceptorInfo: public Struct { |
10760 public: | 10763 public: |
10761 DECL_ACCESSORS(getter, Object) | 10764 DECL_ACCESSORS(getter, Object) |
10762 DECL_ACCESSORS(setter, Object) | 10765 DECL_ACCESSORS(setter, Object) |
10763 DECL_ACCESSORS(query, Object) | 10766 DECL_ACCESSORS(query, Object) |
10764 DECL_ACCESSORS(deleter, Object) | 10767 DECL_ACCESSORS(deleter, Object) |
10765 DECL_ACCESSORS(enumerator, Object) | 10768 DECL_ACCESSORS(enumerator, Object) |
| 10769 DECL_ACCESSORS(definer, Object) |
10766 DECL_ACCESSORS(data, Object) | 10770 DECL_ACCESSORS(data, Object) |
10767 DECL_BOOLEAN_ACCESSORS(can_intercept_symbols) | 10771 DECL_BOOLEAN_ACCESSORS(can_intercept_symbols) |
10768 DECL_BOOLEAN_ACCESSORS(all_can_read) | 10772 DECL_BOOLEAN_ACCESSORS(all_can_read) |
10769 DECL_BOOLEAN_ACCESSORS(non_masking) | 10773 DECL_BOOLEAN_ACCESSORS(non_masking) |
10770 | 10774 |
10771 inline int flags() const; | 10775 inline int flags() const; |
10772 inline void set_flags(int flags); | 10776 inline void set_flags(int flags); |
10773 | 10777 |
10774 DECLARE_CAST(InterceptorInfo) | 10778 DECLARE_CAST(InterceptorInfo) |
10775 | 10779 |
10776 // Dispatched behavior. | 10780 // Dispatched behavior. |
10777 DECLARE_PRINTER(InterceptorInfo) | 10781 DECLARE_PRINTER(InterceptorInfo) |
10778 DECLARE_VERIFIER(InterceptorInfo) | 10782 DECLARE_VERIFIER(InterceptorInfo) |
10779 | 10783 |
10780 static const int kGetterOffset = HeapObject::kHeaderSize; | 10784 static const int kGetterOffset = HeapObject::kHeaderSize; |
10781 static const int kSetterOffset = kGetterOffset + kPointerSize; | 10785 static const int kSetterOffset = kGetterOffset + kPointerSize; |
10782 static const int kQueryOffset = kSetterOffset + kPointerSize; | 10786 static const int kQueryOffset = kSetterOffset + kPointerSize; |
10783 static const int kDeleterOffset = kQueryOffset + kPointerSize; | 10787 static const int kDeleterOffset = kQueryOffset + kPointerSize; |
10784 static const int kEnumeratorOffset = kDeleterOffset + kPointerSize; | 10788 static const int kEnumeratorOffset = kDeleterOffset + kPointerSize; |
10785 static const int kDataOffset = kEnumeratorOffset + kPointerSize; | 10789 static const int kDefinerOffset = kEnumeratorOffset + kPointerSize; |
| 10790 static const int kDataOffset = kDefinerOffset + kPointerSize; |
10786 static const int kFlagsOffset = kDataOffset + kPointerSize; | 10791 static const int kFlagsOffset = kDataOffset + kPointerSize; |
10787 static const int kSize = kFlagsOffset + kPointerSize; | 10792 static const int kSize = kFlagsOffset + kPointerSize; |
10788 | 10793 |
10789 static const int kCanInterceptSymbolsBit = 0; | 10794 static const int kCanInterceptSymbolsBit = 0; |
10790 static const int kAllCanReadBit = 1; | 10795 static const int kAllCanReadBit = 1; |
10791 static const int kNonMasking = 2; | 10796 static const int kNonMasking = 2; |
10792 | 10797 |
10793 private: | 10798 private: |
10794 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); | 10799 DISALLOW_IMPLICIT_CONSTRUCTORS(InterceptorInfo); |
10795 }; | 10800 }; |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11173 } | 11178 } |
11174 return value; | 11179 return value; |
11175 } | 11180 } |
11176 }; | 11181 }; |
11177 | 11182 |
11178 | 11183 |
11179 } // NOLINT, false-positive due to second-order macros. | 11184 } // NOLINT, false-positive due to second-order macros. |
11180 } // NOLINT, false-positive due to second-order macros. | 11185 } // NOLINT, false-positive due to second-order macros. |
11181 | 11186 |
11182 #endif // V8_OBJECTS_H_ | 11187 #endif // V8_OBJECTS_H_ |
OLD | NEW |