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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 STORE_TRANSITION_TO_OBJECT, | 162 STORE_TRANSITION_TO_OBJECT, |
163 STORE_TRANSITION_TO_DOUBLE, | 163 STORE_TRANSITION_TO_DOUBLE, |
164 STORE_AND_GROW_NO_TRANSITION, | 164 STORE_AND_GROW_NO_TRANSITION, |
165 STORE_AND_GROW_TRANSITION_TO_OBJECT, | 165 STORE_AND_GROW_TRANSITION_TO_OBJECT, |
166 STORE_AND_GROW_TRANSITION_TO_DOUBLE, | 166 STORE_AND_GROW_TRANSITION_TO_DOUBLE, |
167 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS, | 167 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS, |
168 STORE_NO_TRANSITION_HANDLE_COW | 168 STORE_NO_TRANSITION_HANDLE_COW |
169 }; | 169 }; |
170 | 170 |
171 | 171 |
172 // Valid hints for the abstract operation ToPrimitive, | |
173 // implemented according to ES6, section 7.1.1. | |
174 enum class ToPrimitiveHint { kDefault, kNumber, kString }; | |
175 | |
176 | |
177 // Valid hints for the abstract operation OrdinaryToPrimitive, | |
178 // implemented according to ES6, section 7.1.1. | |
179 enum class OrdinaryToPrimitiveHint { kNumber, kString }; | |
180 | |
181 | |
182 enum TypeofMode : int { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF }; | 172 enum TypeofMode : int { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF }; |
183 | 173 |
184 | 174 |
185 enum MutableMode { | 175 enum MutableMode { |
186 MUTABLE, | 176 MUTABLE, |
187 IMMUTABLE | 177 IMMUTABLE |
188 }; | 178 }; |
189 | 179 |
190 | 180 |
191 enum ExternalArrayType { | 181 enum ExternalArrayType { |
(...skipping 1646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1838 // Deletes an existing named property in a normalized object. | 1828 // Deletes an existing named property in a normalized object. |
1839 static void DeleteNormalizedProperty(Handle<JSReceiver> object, | 1829 static void DeleteNormalizedProperty(Handle<JSReceiver> object, |
1840 Handle<Name> name, int entry); | 1830 Handle<Name> name, int entry); |
1841 | 1831 |
1842 DECLARE_CAST(JSReceiver) | 1832 DECLARE_CAST(JSReceiver) |
1843 | 1833 |
1844 // ES6 section 7.1.1 ToPrimitive | 1834 // ES6 section 7.1.1 ToPrimitive |
1845 MUST_USE_RESULT static MaybeHandle<Object> ToPrimitive( | 1835 MUST_USE_RESULT static MaybeHandle<Object> ToPrimitive( |
1846 Handle<JSReceiver> receiver, | 1836 Handle<JSReceiver> receiver, |
1847 ToPrimitiveHint hint = ToPrimitiveHint::kDefault); | 1837 ToPrimitiveHint hint = ToPrimitiveHint::kDefault); |
| 1838 |
| 1839 // ES6 section 7.1.1.1 OrdinaryToPrimitive |
1848 MUST_USE_RESULT static MaybeHandle<Object> OrdinaryToPrimitive( | 1840 MUST_USE_RESULT static MaybeHandle<Object> OrdinaryToPrimitive( |
1849 Handle<JSReceiver> receiver, OrdinaryToPrimitiveHint hint); | 1841 Handle<JSReceiver> receiver, OrdinaryToPrimitiveHint hint); |
1850 | 1842 |
1851 static MaybeHandle<Context> GetFunctionRealm(Handle<JSReceiver> receiver); | 1843 static MaybeHandle<Context> GetFunctionRealm(Handle<JSReceiver> receiver); |
1852 | 1844 |
1853 // Get the first non-hidden prototype. | 1845 // Get the first non-hidden prototype. |
1854 static inline MaybeHandle<Object> GetPrototype(Isolate* isolate, | 1846 static inline MaybeHandle<Object> GetPrototype(Isolate* isolate, |
1855 Handle<JSReceiver> receiver); | 1847 Handle<JSReceiver> receiver); |
1856 | 1848 |
1857 MUST_USE_RESULT static Maybe<bool> HasInPrototypeChain( | 1849 MUST_USE_RESULT static Maybe<bool> HasInPrototypeChain( |
(...skipping 9134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10992 } | 10984 } |
10993 return value; | 10985 return value; |
10994 } | 10986 } |
10995 }; | 10987 }; |
10996 | 10988 |
10997 | 10989 |
10998 } // NOLINT, false-positive due to second-order macros. | 10990 } // NOLINT, false-positive due to second-order macros. |
10999 } // NOLINT, false-positive due to second-order macros. | 10991 } // NOLINT, false-positive due to second-order macros. |
11000 | 10992 |
11001 #endif // V8_OBJECTS_H_ | 10993 #endif // V8_OBJECTS_H_ |
OLD | NEW |