| 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 |