OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 // _ JSGlobalProxy | 51 // _ JSGlobalProxy |
52 // - JSValue | 52 // - JSValue |
53 // - Script | 53 // - Script |
54 // - Array | 54 // - Array |
55 // - ByteArray | 55 // - ByteArray |
56 // - FixedArray | 56 // - FixedArray |
57 // - DescriptorArray | 57 // - DescriptorArray |
58 // - HashTable | 58 // - HashTable |
59 // - Dictionary | 59 // - Dictionary |
60 // - SymbolTable | 60 // - SymbolTable |
| 61 // - CompilationCacheTable |
| 62 // - MapCache |
| 63 // - LookupCache |
61 // - Context | 64 // - Context |
62 // - GlobalContext | 65 // - GlobalContext |
63 // - String | 66 // - String |
64 // - SeqString | 67 // - SeqString |
65 // - SeqAsciiString | 68 // - SeqAsciiString |
66 // - SeqTwoByteString | 69 // - SeqTwoByteString |
67 // - ConsString | 70 // - ConsString |
68 // - SlicedString | 71 // - SlicedString |
69 // - ExternalString | 72 // - ExternalString |
70 // - ExternalAsciiString | 73 // - ExternalAsciiString |
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 inline bool IsJSValue(); | 622 inline bool IsJSValue(); |
620 inline bool IsProxy(); | 623 inline bool IsProxy(); |
621 inline bool IsBoolean(); | 624 inline bool IsBoolean(); |
622 inline bool IsJSArray(); | 625 inline bool IsJSArray(); |
623 inline bool IsJSRegExp(); | 626 inline bool IsJSRegExp(); |
624 inline bool IsHashTable(); | 627 inline bool IsHashTable(); |
625 inline bool IsDictionary(); | 628 inline bool IsDictionary(); |
626 inline bool IsSymbolTable(); | 629 inline bool IsSymbolTable(); |
627 inline bool IsCompilationCacheTable(); | 630 inline bool IsCompilationCacheTable(); |
628 inline bool IsMapCache(); | 631 inline bool IsMapCache(); |
| 632 inline bool IsLookupCache(); |
629 inline bool IsPrimitive(); | 633 inline bool IsPrimitive(); |
630 inline bool IsGlobalObject(); | 634 inline bool IsGlobalObject(); |
631 inline bool IsJSGlobalObject(); | 635 inline bool IsJSGlobalObject(); |
632 inline bool IsJSBuiltinsObject(); | 636 inline bool IsJSBuiltinsObject(); |
633 inline bool IsJSGlobalProxy(); | 637 inline bool IsJSGlobalProxy(); |
634 inline bool IsUndetectableObject(); | 638 inline bool IsUndetectableObject(); |
635 inline bool IsAccessCheckNeeded(); | 639 inline bool IsAccessCheckNeeded(); |
636 | 640 |
637 // Returns true if this object is an instance of the specified | 641 // Returns true if this object is an instance of the specified |
638 // function template. | 642 // function template. |
(...skipping 1224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1863 // Find cached value for a string key, otherwise return null. | 1867 // Find cached value for a string key, otherwise return null. |
1864 Object* Lookup(FixedArray* key); | 1868 Object* Lookup(FixedArray* key); |
1865 Object* Put(FixedArray* key, Map* value); | 1869 Object* Put(FixedArray* key, Map* value); |
1866 static inline MapCache* cast(Object* obj); | 1870 static inline MapCache* cast(Object* obj); |
1867 | 1871 |
1868 private: | 1872 private: |
1869 DISALLOW_IMPLICIT_CONSTRUCTORS(MapCache); | 1873 DISALLOW_IMPLICIT_CONSTRUCTORS(MapCache); |
1870 }; | 1874 }; |
1871 | 1875 |
1872 | 1876 |
| 1877 // LookupCache. |
| 1878 // |
| 1879 // Maps a key consisting of a map and a name to an index within a |
| 1880 // fast-case properties array. |
| 1881 // |
| 1882 // LookupCaches are used to avoid repeatedly searching instance |
| 1883 // descriptors. |
| 1884 class LookupCache: public HashTable<0, 2> { |
| 1885 public: |
| 1886 int Lookup(Map* map, String* name); |
| 1887 Object* Put(Map* map, String* name, int offset); |
| 1888 static inline LookupCache* cast(Object* obj); |
| 1889 |
| 1890 private: |
| 1891 DISALLOW_IMPLICIT_CONSTRUCTORS(LookupCache); |
| 1892 }; |
| 1893 |
| 1894 |
1873 // Dictionary for keeping properties and elements in slow case. | 1895 // Dictionary for keeping properties and elements in slow case. |
1874 // | 1896 // |
1875 // One element in the prefix is used for storing non-element | 1897 // One element in the prefix is used for storing non-element |
1876 // information about the dictionary. | 1898 // information about the dictionary. |
1877 // | 1899 // |
1878 // The rest of the array embeds triples of (key, value, details). | 1900 // The rest of the array embeds triples of (key, value, details). |
1879 // if key == undefined the triple is empty. | 1901 // if key == undefined the triple is empty. |
1880 // if key == null the triple has been deleted. | 1902 // if key == null the triple has been deleted. |
1881 // otherwise key contains the name of a property. | 1903 // otherwise key contains the name of a property. |
1882 class DictionaryBase: public HashTable<2, 3> {}; | 1904 class DictionaryBase: public HashTable<2, 3> {}; |
(...skipping 2168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4051 } else { | 4073 } else { |
4052 value &= ~(1 << bit_position); | 4074 value &= ~(1 << bit_position); |
4053 } | 4075 } |
4054 return value; | 4076 return value; |
4055 } | 4077 } |
4056 }; | 4078 }; |
4057 | 4079 |
4058 } } // namespace v8::internal | 4080 } } // namespace v8::internal |
4059 | 4081 |
4060 #endif // V8_OBJECTS_H_ | 4082 #endif // V8_OBJECTS_H_ |
OLD | NEW |