| 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 "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
| 10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
| (...skipping 1979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 | 1990 |
| 1991 // Retrieves a permanent object identity hash code. The undefined value might | 1991 // Retrieves a permanent object identity hash code. The undefined value might |
| 1992 // be returned in case no hash was created yet. | 1992 // be returned in case no hash was created yet. |
| 1993 inline Object* GetIdentityHash(); | 1993 inline Object* GetIdentityHash(); |
| 1994 | 1994 |
| 1995 // Retrieves a permanent object identity hash code. May create and store a | 1995 // Retrieves a permanent object identity hash code. May create and store a |
| 1996 // hash code if needed and none exists. | 1996 // hash code if needed and none exists. |
| 1997 inline static Handle<Smi> GetOrCreateIdentityHash( | 1997 inline static Handle<Smi> GetOrCreateIdentityHash( |
| 1998 Handle<JSReceiver> object); | 1998 Handle<JSReceiver> object); |
| 1999 | 1999 |
| 2000 // Lookup a property. If found, the result is valid and has | |
| 2001 // detailed information. | |
| 2002 void Lookup(Handle<Name> name, LookupResult* result); | |
| 2003 | |
| 2004 enum KeyCollectionType { OWN_ONLY, INCLUDE_PROTOS }; | 2000 enum KeyCollectionType { OWN_ONLY, INCLUDE_PROTOS }; |
| 2005 | 2001 |
| 2006 // Computes the enumerable keys for a JSObject. Used for implementing | 2002 // Computes the enumerable keys for a JSObject. Used for implementing |
| 2007 // "for (n in object) { }". | 2003 // "for (n in object) { }". |
| 2008 MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys( | 2004 MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys( |
| 2009 Handle<JSReceiver> object, | 2005 Handle<JSReceiver> object, |
| 2010 KeyCollectionType type); | 2006 KeyCollectionType type); |
| 2011 | 2007 |
| 2012 private: | 2008 private: |
| 2013 void LookupOwn(Handle<Name> name, LookupResult* result); | |
| 2014 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); | 2009 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); |
| 2015 }; | 2010 }; |
| 2016 | 2011 |
| 2017 // Forward declaration for JSObject::GetOrCreateHiddenPropertiesHashTable. | 2012 // Forward declaration for JSObject::GetOrCreateHiddenPropertiesHashTable. |
| 2018 class ObjectHashTable; | 2013 class ObjectHashTable; |
| 2019 | 2014 |
| 2020 // Forward declaration for JSObject::Copy. | 2015 // Forward declaration for JSObject::Copy. |
| 2021 class AllocationSite; | 2016 class AllocationSite; |
| 2022 | 2017 |
| 2023 | 2018 |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2361 // Get the header size for a JSObject. Used to compute the index of | 2356 // Get the header size for a JSObject. Used to compute the index of |
| 2362 // internal fields as well as the number of internal fields. | 2357 // internal fields as well as the number of internal fields. |
| 2363 inline int GetHeaderSize(); | 2358 inline int GetHeaderSize(); |
| 2364 | 2359 |
| 2365 inline int GetInternalFieldCount(); | 2360 inline int GetInternalFieldCount(); |
| 2366 inline int GetInternalFieldOffset(int index); | 2361 inline int GetInternalFieldOffset(int index); |
| 2367 inline Object* GetInternalField(int index); | 2362 inline Object* GetInternalField(int index); |
| 2368 inline void SetInternalField(int index, Object* value); | 2363 inline void SetInternalField(int index, Object* value); |
| 2369 inline void SetInternalField(int index, Smi* value); | 2364 inline void SetInternalField(int index, Smi* value); |
| 2370 | 2365 |
| 2371 // The following lookup functions skip interceptors. | |
| 2372 void LookupOwnRealNamedProperty(Handle<Name> name, LookupResult* result); | |
| 2373 | |
| 2374 // Returns the number of properties on this object filtering out properties | 2366 // Returns the number of properties on this object filtering out properties |
| 2375 // with the specified attributes (ignoring interceptors). | 2367 // with the specified attributes (ignoring interceptors). |
| 2376 int NumberOfOwnProperties(PropertyAttributes filter = NONE); | 2368 int NumberOfOwnProperties(PropertyAttributes filter = NONE); |
| 2377 // Fill in details for properties into storage starting at the specified | 2369 // Fill in details for properties into storage starting at the specified |
| 2378 // index. | 2370 // index. |
| 2379 void GetOwnPropertyNames( | 2371 void GetOwnPropertyNames( |
| 2380 FixedArray* storage, int index, PropertyAttributes filter = NONE); | 2372 FixedArray* storage, int index, PropertyAttributes filter = NONE); |
| 2381 | 2373 |
| 2382 // Returns the number of properties on this object filtering out properties | 2374 // Returns the number of properties on this object filtering out properties |
| 2383 // with the specified attributes (ignoring interceptors). | 2375 // with the specified attributes (ignoring interceptors). |
| (...skipping 8814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11198 } else { | 11190 } else { |
| 11199 value &= ~(1 << bit_position); | 11191 value &= ~(1 << bit_position); |
| 11200 } | 11192 } |
| 11201 return value; | 11193 return value; |
| 11202 } | 11194 } |
| 11203 }; | 11195 }; |
| 11204 | 11196 |
| 11205 } } // namespace v8::internal | 11197 } } // namespace v8::internal |
| 11206 | 11198 |
| 11207 #endif // V8_OBJECTS_H_ | 11199 #endif // V8_OBJECTS_H_ |
| OLD | NEW |