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 26 matching lines...) Expand all Loading... |
37 // - Object | 37 // - Object |
38 // - Smi (immediate small integer) | 38 // - Smi (immediate small integer) |
39 // - HeapObject (superclass for everything allocated in the heap) | 39 // - HeapObject (superclass for everything allocated in the heap) |
40 // - JSReceiver (suitable for property access) | 40 // - JSReceiver (suitable for property access) |
41 // - JSObject | 41 // - JSObject |
42 // - JSArray | 42 // - JSArray |
43 // - JSArrayBuffer | 43 // - JSArrayBuffer |
44 // - JSArrayBufferView | 44 // - JSArrayBufferView |
45 // - JSTypedArray | 45 // - JSTypedArray |
46 // - JSDataView | 46 // - JSDataView |
47 // - JSCollection | 47 // - JSSet |
48 // - JSSet | 48 // - JSMap |
49 // - JSMap | |
50 // - JSSetIterator | 49 // - JSSetIterator |
51 // - JSMapIterator | 50 // - JSMapIterator |
52 // - JSWeakCollection | 51 // - JSWeakCollection |
53 // - JSWeakMap | 52 // - JSWeakMap |
54 // - JSWeakSet | 53 // - JSWeakSet |
55 // - JSRegExp | 54 // - JSRegExp |
56 // - JSFunction | 55 // - JSFunction |
57 // - JSGeneratorObject | 56 // - JSGeneratorObject |
58 // - JSModule | 57 // - JSModule |
59 // - GlobalObject | 58 // - GlobalObject |
(...skipping 10012 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10072 | 10071 |
10073 typedef FixedBodyDescriptor<kHandlerOffset, | 10072 typedef FixedBodyDescriptor<kHandlerOffset, |
10074 kConstructTrapOffset + kPointerSize, | 10073 kConstructTrapOffset + kPointerSize, |
10075 kSize> BodyDescriptor; | 10074 kSize> BodyDescriptor; |
10076 | 10075 |
10077 private: | 10076 private: |
10078 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunctionProxy); | 10077 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunctionProxy); |
10079 }; | 10078 }; |
10080 | 10079 |
10081 | 10080 |
10082 class JSCollection : public JSObject { | |
10083 public: | |
10084 // [table]: the backing hash table | |
10085 DECL_ACCESSORS(table, Object) | |
10086 | |
10087 static const int kTableOffset = JSObject::kHeaderSize; | |
10088 static const int kSize = kTableOffset + kPointerSize; | |
10089 | |
10090 private: | |
10091 DISALLOW_IMPLICIT_CONSTRUCTORS(JSCollection); | |
10092 }; | |
10093 | |
10094 | |
10095 // The JSSet describes EcmaScript Harmony sets | 10081 // The JSSet describes EcmaScript Harmony sets |
10096 class JSSet : public JSCollection { | 10082 class JSSet: public JSObject { |
10097 public: | 10083 public: |
| 10084 // [set]: the backing hash set containing keys. |
| 10085 DECL_ACCESSORS(table, Object) |
| 10086 |
10098 DECLARE_CAST(JSSet) | 10087 DECLARE_CAST(JSSet) |
10099 | 10088 |
10100 // Dispatched behavior. | 10089 // Dispatched behavior. |
10101 DECLARE_PRINTER(JSSet) | 10090 DECLARE_PRINTER(JSSet) |
10102 DECLARE_VERIFIER(JSSet) | 10091 DECLARE_VERIFIER(JSSet) |
10103 | 10092 |
| 10093 static const int kTableOffset = JSObject::kHeaderSize; |
| 10094 static const int kSize = kTableOffset + kPointerSize; |
| 10095 |
10104 private: | 10096 private: |
10105 DISALLOW_IMPLICIT_CONSTRUCTORS(JSSet); | 10097 DISALLOW_IMPLICIT_CONSTRUCTORS(JSSet); |
10106 }; | 10098 }; |
10107 | 10099 |
10108 | 10100 |
10109 // The JSMap describes EcmaScript Harmony maps | 10101 // The JSMap describes EcmaScript Harmony maps |
10110 class JSMap : public JSCollection { | 10102 class JSMap: public JSObject { |
10111 public: | 10103 public: |
| 10104 // [table]: the backing hash table mapping keys to values. |
| 10105 DECL_ACCESSORS(table, Object) |
| 10106 |
10112 DECLARE_CAST(JSMap) | 10107 DECLARE_CAST(JSMap) |
10113 | 10108 |
10114 // Dispatched behavior. | 10109 // Dispatched behavior. |
10115 DECLARE_PRINTER(JSMap) | 10110 DECLARE_PRINTER(JSMap) |
10116 DECLARE_VERIFIER(JSMap) | 10111 DECLARE_VERIFIER(JSMap) |
10117 | 10112 |
| 10113 static const int kTableOffset = JSObject::kHeaderSize; |
| 10114 static const int kSize = kTableOffset + kPointerSize; |
| 10115 |
10118 private: | 10116 private: |
10119 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); | 10117 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); |
10120 }; | 10118 }; |
10121 | 10119 |
10122 | 10120 |
10123 // OrderedHashTableIterator is an iterator that iterates over the keys and | 10121 // OrderedHashTableIterator is an iterator that iterates over the keys and |
10124 // values of an OrderedHashTable. | 10122 // values of an OrderedHashTable. |
10125 // | 10123 // |
10126 // The iterator has a reference to the underlying OrderedHashTable data, | 10124 // The iterator has a reference to the underlying OrderedHashTable data, |
10127 // [table], as well as the current [index] the iterator is at. | 10125 // [table], as well as the current [index] the iterator is at. |
(...skipping 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11231 } else { | 11229 } else { |
11232 value &= ~(1 << bit_position); | 11230 value &= ~(1 << bit_position); |
11233 } | 11231 } |
11234 return value; | 11232 return value; |
11235 } | 11233 } |
11236 }; | 11234 }; |
11237 | 11235 |
11238 } } // namespace v8::internal | 11236 } } // namespace v8::internal |
11239 | 11237 |
11240 #endif // V8_OBJECTS_H_ | 11238 #endif // V8_OBJECTS_H_ |
OLD | NEW |