Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(302)

Side by Side Diff: src/objects.h

Issue 23766003: Handlify JSObject::DeleteElement method. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/api.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1964 matching lines...) Expand 10 before | Expand all | Expand 10 after
1975 StrictModeFlag strict_mode, 1975 StrictModeFlag strict_mode,
1976 StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED); 1976 StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED);
1977 MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSReceiver* setter, 1977 MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSReceiver* setter,
1978 Object* value); 1978 Object* value);
1979 1979
1980 static Handle<Object> DeleteProperty(Handle<JSReceiver> object, 1980 static Handle<Object> DeleteProperty(Handle<JSReceiver> object,
1981 Handle<Name> name, 1981 Handle<Name> name,
1982 DeleteMode mode = NORMAL_DELETION); 1982 DeleteMode mode = NORMAL_DELETION);
1983 static Handle<Object> DeleteElement(Handle<JSReceiver> object, 1983 static Handle<Object> DeleteElement(Handle<JSReceiver> object,
1984 uint32_t index, 1984 uint32_t index,
1985 DeleteMode mode); 1985 DeleteMode mode = NORMAL_DELETION);
1986 1986
1987 // Set the index'th array element. 1987 // Set the index'th array element.
1988 // Can cause GC, or return failure if GC is required. 1988 // Can cause GC, or return failure if GC is required.
1989 MUST_USE_RESULT MaybeObject* SetElement(uint32_t index, 1989 MUST_USE_RESULT MaybeObject* SetElement(uint32_t index,
1990 Object* value, 1990 Object* value,
1991 PropertyAttributes attributes, 1991 PropertyAttributes attributes,
1992 StrictModeFlag strict_mode, 1992 StrictModeFlag strict_mode,
1993 bool check_prototype); 1993 bool check_prototype);
1994 1994
1995 // Tests for the fast common case for property enumeration. 1995 // Tests for the fast common case for property enumeration.
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
2313 // Deletes a hidden property. Deleting a non-existing property is 2313 // Deletes a hidden property. Deleting a non-existing property is
2314 // considered successful. 2314 // considered successful.
2315 void DeleteHiddenProperty(Name* key); 2315 void DeleteHiddenProperty(Name* key);
2316 // Returns true if the object has a property with the hidden string as name. 2316 // Returns true if the object has a property with the hidden string as name.
2317 bool HasHiddenProperties(); 2317 bool HasHiddenProperties();
2318 2318
2319 static int GetIdentityHash(Handle<JSObject> obj); 2319 static int GetIdentityHash(Handle<JSObject> obj);
2320 MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag); 2320 MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag);
2321 MUST_USE_RESULT MaybeObject* SetIdentityHash(Smi* hash, CreationFlag flag); 2321 MUST_USE_RESULT MaybeObject* SetIdentityHash(Smi* hash, CreationFlag flag);
2322 2322
2323 static Handle<Object> DeleteElement(Handle<JSObject> obj,
2324 uint32_t index,
2325 DeleteMode mode = NORMAL_DELETION);
2326 MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode);
2327
2328 inline void ValidateElements(); 2323 inline void ValidateElements();
2329 2324
2330 // Makes sure that this object can contain HeapObject as elements. 2325 // Makes sure that this object can contain HeapObject as elements.
2331 MUST_USE_RESULT inline MaybeObject* EnsureCanContainHeapObjectElements(); 2326 MUST_USE_RESULT inline MaybeObject* EnsureCanContainHeapObjectElements();
2332 2327
2333 // Makes sure that this object can contain the specified elements. 2328 // Makes sure that this object can contain the specified elements.
2334 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements( 2329 MUST_USE_RESULT inline MaybeObject* EnsureCanContainElements(
2335 Object** elements, 2330 Object** elements,
2336 uint32_t count, 2331 uint32_t count,
2337 EnsureElementsMode mode); 2332 EnsureElementsMode mode);
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
2805 Handle<Name> name, 2800 Handle<Name> name,
2806 DeleteMode mode); 2801 DeleteMode mode);
2807 static Handle<Object> DeletePropertyWithInterceptor(Handle<JSObject> object, 2802 static Handle<Object> DeletePropertyWithInterceptor(Handle<JSObject> object,
2808 Handle<Name> name); 2803 Handle<Name> name);
2809 2804
2810 // Deletes the named property in a normalized object. 2805 // Deletes the named property in a normalized object.
2811 static Handle<Object> DeleteNormalizedProperty(Handle<JSObject> object, 2806 static Handle<Object> DeleteNormalizedProperty(Handle<JSObject> object,
2812 Handle<Name> name, 2807 Handle<Name> name,
2813 DeleteMode mode); 2808 DeleteMode mode);
2814 2809
2815 MUST_USE_RESULT MaybeObject* DeleteElementWithInterceptor(uint32_t index); 2810 static Handle<Object> DeleteElement(Handle<JSObject> object,
2811 uint32_t index,
2812 DeleteMode mode);
2813 static Handle<Object> DeleteElementWithInterceptor(Handle<JSObject> object,
2814 uint32_t index);
2816 2815
2817 MUST_USE_RESULT MaybeObject* DeleteFastElement(uint32_t index); 2816 MUST_USE_RESULT MaybeObject* DeleteFastElement(uint32_t index);
2818 MUST_USE_RESULT MaybeObject* DeleteDictionaryElement(uint32_t index, 2817 MUST_USE_RESULT MaybeObject* DeleteDictionaryElement(uint32_t index,
2819 DeleteMode mode); 2818 DeleteMode mode);
2820 2819
2821 bool ReferencesObjectFromElements(FixedArray* elements, 2820 bool ReferencesObjectFromElements(FixedArray* elements,
2822 ElementsKind kind, 2821 ElementsKind kind,
2823 Object* object); 2822 Object* object);
2824 2823
2825 // Returns true if most of the elements backing storage is used. 2824 // Returns true if most of the elements backing storage is used.
(...skipping 7450 matching lines...) Expand 10 before | Expand all | Expand 10 after
10276 } else { 10275 } else {
10277 value &= ~(1 << bit_position); 10276 value &= ~(1 << bit_position);
10278 } 10277 }
10279 return value; 10278 return value;
10280 } 10279 }
10281 }; 10280 };
10282 10281
10283 } } // namespace v8::internal 10282 } } // namespace v8::internal
10284 10283
10285 #endif // V8_OBJECTS_H_ 10284 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698