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 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1651 Handle<Name> name); | 1651 Handle<Name> name); |
1652 MUST_USE_RESULT static inline Maybe<bool> HasElement( | 1652 MUST_USE_RESULT static inline Maybe<bool> HasElement( |
1653 Handle<JSReceiver> object, uint32_t index); | 1653 Handle<JSReceiver> object, uint32_t index); |
1654 MUST_USE_RESULT static inline Maybe<bool> HasOwnElement( | 1654 MUST_USE_RESULT static inline Maybe<bool> HasOwnElement( |
1655 Handle<JSReceiver> object, uint32_t index); | 1655 Handle<JSReceiver> object, uint32_t index); |
1656 | 1656 |
1657 // Implementation of [[Delete]], ECMA-262 5th edition, section 8.12.7. | 1657 // Implementation of [[Delete]], ECMA-262 5th edition, section 8.12.7. |
1658 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( | 1658 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( |
1659 Handle<JSReceiver> object, Handle<Name> name, | 1659 Handle<JSReceiver> object, Handle<Name> name, |
1660 LanguageMode language_mode = SLOPPY); | 1660 LanguageMode language_mode = SLOPPY); |
| 1661 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( |
| 1662 LookupIterator* it, LanguageMode language_mode); |
1661 MUST_USE_RESULT static MaybeHandle<Object> DeleteElement( | 1663 MUST_USE_RESULT static MaybeHandle<Object> DeleteElement( |
1662 Handle<JSReceiver> object, uint32_t index, | 1664 Handle<JSReceiver> object, uint32_t index, |
1663 LanguageMode language_mode = SLOPPY); | 1665 LanguageMode language_mode = SLOPPY); |
1664 | 1666 |
1665 // Tests for the fast common case for property enumeration. | 1667 // Tests for the fast common case for property enumeration. |
1666 bool IsSimpleEnum(); | 1668 bool IsSimpleEnum(); |
1667 | 1669 |
1668 // Returns the class name ([[Class]] property in the specification). | 1670 // Returns the class name ([[Class]] property in the specification). |
1669 String* class_name(); | 1671 String* class_name(); |
1670 | 1672 |
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2318 | 2320 |
2319 MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithFailedAccessCheck( | 2321 MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithFailedAccessCheck( |
2320 LookupIterator* it, Handle<Object> value, LanguageMode language_mode); | 2322 LookupIterator* it, Handle<Object> value, LanguageMode language_mode); |
2321 | 2323 |
2322 // Add a property to a slow-case object. | 2324 // Add a property to a slow-case object. |
2323 static void AddSlowProperty(Handle<JSObject> object, | 2325 static void AddSlowProperty(Handle<JSObject> object, |
2324 Handle<Name> name, | 2326 Handle<Name> name, |
2325 Handle<Object> value, | 2327 Handle<Object> value, |
2326 PropertyAttributes attributes); | 2328 PropertyAttributes attributes); |
2327 | 2329 |
2328 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( | |
2329 Handle<JSObject> object, Handle<Name> name, LanguageMode language_mode); | |
2330 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithInterceptor( | 2330 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithInterceptor( |
2331 Handle<JSObject> holder, Handle<JSObject> receiver, Handle<Name> name); | 2331 LookupIterator* it); |
2332 | 2332 |
2333 // Deletes an existing named property in a normalized object. | 2333 // Deletes an existing named property in a normalized object. |
2334 static void DeleteNormalizedProperty(Handle<JSObject> object, | 2334 static void DeleteNormalizedProperty(Handle<JSObject> object, |
2335 Handle<Name> name); | 2335 Handle<Name> name); |
2336 | 2336 |
2337 MUST_USE_RESULT static MaybeHandle<Object> DeleteElement( | |
2338 Handle<JSObject> object, uint32_t index, LanguageMode language_mode); | |
2339 MUST_USE_RESULT static MaybeHandle<Object> DeleteElementWithInterceptor( | |
2340 Handle<JSObject> object, | |
2341 uint32_t index); | |
2342 | |
2343 bool ReferencesObjectFromElements(FixedArray* elements, | 2337 bool ReferencesObjectFromElements(FixedArray* elements, |
2344 ElementsKind kind, | 2338 ElementsKind kind, |
2345 Object* object); | 2339 Object* object); |
2346 | 2340 |
2347 // Returns true if most of the elements backing storage is used. | 2341 // Returns true if most of the elements backing storage is used. |
2348 bool HasDenseElements(); | 2342 bool HasDenseElements(); |
2349 | 2343 |
2350 // Gets the current elements capacity and the number of used elements. | 2344 // Gets the current elements capacity and the number of used elements. |
2351 void GetElementsCapacityAndUsage(int* capacity, int* used); | 2345 void GetElementsCapacityAndUsage(int* capacity, int* used); |
2352 | 2346 |
(...skipping 7629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9982 | 9976 |
9983 private: | 9977 private: |
9984 friend class JSReceiver; | 9978 friend class JSReceiver; |
9985 | 9979 |
9986 MUST_USE_RESULT static inline MaybeHandle<Object> SetElementWithHandler( | 9980 MUST_USE_RESULT static inline MaybeHandle<Object> SetElementWithHandler( |
9987 Handle<JSProxy> proxy, Handle<JSReceiver> receiver, uint32_t index, | 9981 Handle<JSProxy> proxy, Handle<JSReceiver> receiver, uint32_t index, |
9988 Handle<Object> value, LanguageMode language_mode); | 9982 Handle<Object> value, LanguageMode language_mode); |
9989 | 9983 |
9990 MUST_USE_RESULT static Maybe<bool> HasPropertyWithHandler( | 9984 MUST_USE_RESULT static Maybe<bool> HasPropertyWithHandler( |
9991 Handle<JSProxy> proxy, Handle<Name> name); | 9985 Handle<JSProxy> proxy, Handle<Name> name); |
9992 MUST_USE_RESULT static inline Maybe<bool> HasElementWithHandler( | |
9993 Handle<JSProxy> proxy, uint32_t index); | |
9994 | 9986 |
9995 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithHandler( | 9987 MUST_USE_RESULT static MaybeHandle<Object> DeletePropertyWithHandler( |
9996 Handle<JSProxy> proxy, Handle<Name> name, LanguageMode language_mode); | 9988 Handle<JSProxy> proxy, Handle<Name> name, LanguageMode language_mode); |
9997 MUST_USE_RESULT static MaybeHandle<Object> DeleteElementWithHandler( | |
9998 Handle<JSProxy> proxy, uint32_t index, LanguageMode language_mode); | |
9999 | 9989 |
10000 MUST_USE_RESULT Object* GetIdentityHash(); | 9990 MUST_USE_RESULT Object* GetIdentityHash(); |
10001 | 9991 |
10002 static Handle<Smi> GetOrCreateIdentityHash(Handle<JSProxy> proxy); | 9992 static Handle<Smi> GetOrCreateIdentityHash(Handle<JSProxy> proxy); |
10003 | 9993 |
10004 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy); | 9994 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy); |
10005 }; | 9995 }; |
10006 | 9996 |
10007 | 9997 |
10008 class JSFunctionProxy: public JSProxy { | 9998 class JSFunctionProxy: public JSProxy { |
(...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11109 } else { | 11099 } else { |
11110 value &= ~(1 << bit_position); | 11100 value &= ~(1 << bit_position); |
11111 } | 11101 } |
11112 return value; | 11102 return value; |
11113 } | 11103 } |
11114 }; | 11104 }; |
11115 | 11105 |
11116 } } // namespace v8::internal | 11106 } } // namespace v8::internal |
11117 | 11107 |
11118 #endif // V8_OBJECTS_H_ | 11108 #endif // V8_OBJECTS_H_ |
OLD | NEW |