| OLD | NEW |
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 // - JSValue | 52 // - JSValue |
| 53 // - Array | 53 // - Array |
| 54 // - ByteArray | 54 // - ByteArray |
| 55 // - FixedArray | 55 // - FixedArray |
| 56 // - DescriptorArray | 56 // - DescriptorArray |
| 57 // - HashTable | 57 // - HashTable |
| 58 // - Dictionary | 58 // - Dictionary |
| 59 // - SymbolTable | 59 // - SymbolTable |
| 60 // - CompilationCacheTable | 60 // - CompilationCacheTable |
| 61 // - MapCache | 61 // - MapCache |
| 62 // - LookupCache | |
| 63 // - Context | 62 // - Context |
| 64 // - GlobalContext | 63 // - GlobalContext |
| 65 // - String | 64 // - String |
| 66 // - SeqString | 65 // - SeqString |
| 67 // - SeqAsciiString | 66 // - SeqAsciiString |
| 68 // - SeqTwoByteString | 67 // - SeqTwoByteString |
| 69 // - ConsString | 68 // - ConsString |
| 70 // - SlicedString | 69 // - SlicedString |
| 71 // - ExternalString | 70 // - ExternalString |
| 72 // - ExternalAsciiString | 71 // - ExternalAsciiString |
| (...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 inline bool IsStringWrapper(); | 670 inline bool IsStringWrapper(); |
| 672 inline bool IsProxy(); | 671 inline bool IsProxy(); |
| 673 inline bool IsBoolean(); | 672 inline bool IsBoolean(); |
| 674 inline bool IsJSArray(); | 673 inline bool IsJSArray(); |
| 675 inline bool IsJSRegExp(); | 674 inline bool IsJSRegExp(); |
| 676 inline bool IsHashTable(); | 675 inline bool IsHashTable(); |
| 677 inline bool IsDictionary(); | 676 inline bool IsDictionary(); |
| 678 inline bool IsSymbolTable(); | 677 inline bool IsSymbolTable(); |
| 679 inline bool IsCompilationCacheTable(); | 678 inline bool IsCompilationCacheTable(); |
| 680 inline bool IsMapCache(); | 679 inline bool IsMapCache(); |
| 681 inline bool IsLookupCache(); | |
| 682 inline bool IsPrimitive(); | 680 inline bool IsPrimitive(); |
| 683 inline bool IsGlobalObject(); | 681 inline bool IsGlobalObject(); |
| 684 inline bool IsJSGlobalObject(); | 682 inline bool IsJSGlobalObject(); |
| 685 inline bool IsJSBuiltinsObject(); | 683 inline bool IsJSBuiltinsObject(); |
| 686 inline bool IsJSGlobalProxy(); | 684 inline bool IsJSGlobalProxy(); |
| 687 inline bool IsUndetectableObject(); | 685 inline bool IsUndetectableObject(); |
| 688 inline bool IsAccessCheckNeeded(); | 686 inline bool IsAccessCheckNeeded(); |
| 689 | 687 |
| 690 // Returns true if this object is an instance of the specified | 688 // Returns true if this object is an instance of the specified |
| 691 // function template. | 689 // function template. |
| (...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 // Find cached value for a string key, otherwise return null. | 2003 // Find cached value for a string key, otherwise return null. |
| 2006 Object* Lookup(FixedArray* key); | 2004 Object* Lookup(FixedArray* key); |
| 2007 Object* Put(FixedArray* key, Map* value); | 2005 Object* Put(FixedArray* key, Map* value); |
| 2008 static inline MapCache* cast(Object* obj); | 2006 static inline MapCache* cast(Object* obj); |
| 2009 | 2007 |
| 2010 private: | 2008 private: |
| 2011 DISALLOW_IMPLICIT_CONSTRUCTORS(MapCache); | 2009 DISALLOW_IMPLICIT_CONSTRUCTORS(MapCache); |
| 2012 }; | 2010 }; |
| 2013 | 2011 |
| 2014 | 2012 |
| 2015 // LookupCache. | |
| 2016 // | |
| 2017 // Maps a key consisting of a map and a name to an index within a | |
| 2018 // fast-case properties array. | |
| 2019 // | |
| 2020 // LookupCaches are used to avoid repeatedly searching instance | |
| 2021 // descriptors. | |
| 2022 class LookupCache: public HashTable<0, 2> { | |
| 2023 public: | |
| 2024 int Lookup(Map* map, String* name); | |
| 2025 Object* Put(Map* map, String* name, int offset); | |
| 2026 static inline LookupCache* cast(Object* obj); | |
| 2027 | |
| 2028 // Constant returned by Lookup when the key was not found. | |
| 2029 static const int kNotFound = -1; | |
| 2030 | |
| 2031 private: | |
| 2032 DISALLOW_IMPLICIT_CONSTRUCTORS(LookupCache); | |
| 2033 }; | |
| 2034 | |
| 2035 | |
| 2036 // Dictionary for keeping properties and elements in slow case. | 2013 // Dictionary for keeping properties and elements in slow case. |
| 2037 // | 2014 // |
| 2038 // One element in the prefix is used for storing non-element | 2015 // One element in the prefix is used for storing non-element |
| 2039 // information about the dictionary. | 2016 // information about the dictionary. |
| 2040 // | 2017 // |
| 2041 // The rest of the array embeds triples of (key, value, details). | 2018 // The rest of the array embeds triples of (key, value, details). |
| 2042 // if key == undefined the triple is empty. | 2019 // if key == undefined the triple is empty. |
| 2043 // if key == null the triple has been deleted. | 2020 // if key == null the triple has been deleted. |
| 2044 // otherwise key contains the name of a property. | 2021 // otherwise key contains the name of a property. |
| 2045 class DictionaryBase: public HashTable<2, 3> {}; | 2022 class DictionaryBase: public HashTable<2, 3> {}; |
| (...skipping 2421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4467 } else { | 4444 } else { |
| 4468 value &= ~(1 << bit_position); | 4445 value &= ~(1 << bit_position); |
| 4469 } | 4446 } |
| 4470 return value; | 4447 return value; |
| 4471 } | 4448 } |
| 4472 }; | 4449 }; |
| 4473 | 4450 |
| 4474 } } // namespace v8::internal | 4451 } } // namespace v8::internal |
| 4475 | 4452 |
| 4476 #endif // V8_OBJECTS_H_ | 4453 #endif // V8_OBJECTS_H_ |
| OLD | NEW |