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 <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, | 167 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, |
168 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT, | 168 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT, |
169 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, | 169 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, |
170 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, | 170 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, |
171 STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT, | 171 STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT, |
172 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS, | 172 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS, |
173 STORE_NO_TRANSITION_HANDLE_COW | 173 STORE_NO_TRANSITION_HANDLE_COW |
174 }; | 174 }; |
175 | 175 |
176 | 176 |
| 177 enum SharedFlag { NOT_SHARED, SHARED }; |
| 178 |
| 179 |
177 enum ContextualMode { | 180 enum ContextualMode { |
178 NOT_CONTEXTUAL, | 181 NOT_CONTEXTUAL, |
179 CONTEXTUAL | 182 CONTEXTUAL |
180 }; | 183 }; |
181 | 184 |
182 | 185 |
183 enum MutableMode { | 186 enum MutableMode { |
184 MUTABLE, | 187 MUTABLE, |
185 IMMUTABLE | 188 IMMUTABLE |
186 }; | 189 }; |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ | 453 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
451 V(JS_GENERATOR_OBJECT_TYPE) \ | 454 V(JS_GENERATOR_OBJECT_TYPE) \ |
452 V(JS_MODULE_TYPE) \ | 455 V(JS_MODULE_TYPE) \ |
453 V(JS_GLOBAL_OBJECT_TYPE) \ | 456 V(JS_GLOBAL_OBJECT_TYPE) \ |
454 V(JS_BUILTINS_OBJECT_TYPE) \ | 457 V(JS_BUILTINS_OBJECT_TYPE) \ |
455 V(JS_GLOBAL_PROXY_TYPE) \ | 458 V(JS_GLOBAL_PROXY_TYPE) \ |
456 V(JS_ARRAY_TYPE) \ | 459 V(JS_ARRAY_TYPE) \ |
457 V(JS_ARRAY_BUFFER_TYPE) \ | 460 V(JS_ARRAY_BUFFER_TYPE) \ |
458 V(JS_TYPED_ARRAY_TYPE) \ | 461 V(JS_TYPED_ARRAY_TYPE) \ |
459 V(JS_DATA_VIEW_TYPE) \ | 462 V(JS_DATA_VIEW_TYPE) \ |
| 463 V(JS_SHARED_ARRAY_BUFFER_TYPE) \ |
| 464 V(JS_SHARED_TYPED_ARRAY_TYPE) \ |
460 V(JS_PROXY_TYPE) \ | 465 V(JS_PROXY_TYPE) \ |
461 V(JS_SET_TYPE) \ | 466 V(JS_SET_TYPE) \ |
462 V(JS_MAP_TYPE) \ | 467 V(JS_MAP_TYPE) \ |
463 V(JS_SET_ITERATOR_TYPE) \ | 468 V(JS_SET_ITERATOR_TYPE) \ |
464 V(JS_MAP_ITERATOR_TYPE) \ | 469 V(JS_MAP_ITERATOR_TYPE) \ |
465 V(JS_WEAK_MAP_TYPE) \ | 470 V(JS_WEAK_MAP_TYPE) \ |
466 V(JS_WEAK_SET_TYPE) \ | 471 V(JS_WEAK_SET_TYPE) \ |
467 V(JS_REGEXP_TYPE) \ | 472 V(JS_REGEXP_TYPE) \ |
468 \ | 473 \ |
469 V(JS_FUNCTION_TYPE) \ | 474 V(JS_FUNCTION_TYPE) \ |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 JS_CONTEXT_EXTENSION_OBJECT_TYPE, | 756 JS_CONTEXT_EXTENSION_OBJECT_TYPE, |
752 JS_GENERATOR_OBJECT_TYPE, | 757 JS_GENERATOR_OBJECT_TYPE, |
753 JS_MODULE_TYPE, | 758 JS_MODULE_TYPE, |
754 JS_GLOBAL_OBJECT_TYPE, | 759 JS_GLOBAL_OBJECT_TYPE, |
755 JS_BUILTINS_OBJECT_TYPE, | 760 JS_BUILTINS_OBJECT_TYPE, |
756 JS_GLOBAL_PROXY_TYPE, | 761 JS_GLOBAL_PROXY_TYPE, |
757 JS_ARRAY_TYPE, | 762 JS_ARRAY_TYPE, |
758 JS_ARRAY_BUFFER_TYPE, | 763 JS_ARRAY_BUFFER_TYPE, |
759 JS_TYPED_ARRAY_TYPE, | 764 JS_TYPED_ARRAY_TYPE, |
760 JS_DATA_VIEW_TYPE, | 765 JS_DATA_VIEW_TYPE, |
| 766 JS_SHARED_ARRAY_BUFFER_TYPE, |
| 767 JS_SHARED_TYPED_ARRAY_TYPE, |
761 JS_SET_TYPE, | 768 JS_SET_TYPE, |
762 JS_MAP_TYPE, | 769 JS_MAP_TYPE, |
763 JS_SET_ITERATOR_TYPE, | 770 JS_SET_ITERATOR_TYPE, |
764 JS_MAP_ITERATOR_TYPE, | 771 JS_MAP_ITERATOR_TYPE, |
765 JS_WEAK_MAP_TYPE, | 772 JS_WEAK_MAP_TYPE, |
766 JS_WEAK_SET_TYPE, | 773 JS_WEAK_SET_TYPE, |
767 JS_REGEXP_TYPE, | 774 JS_REGEXP_TYPE, |
768 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE | 775 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE |
769 | 776 |
770 // Pseudo-types | 777 // Pseudo-types |
(...skipping 9487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10258 | 10265 |
10259 inline bool is_external(); | 10266 inline bool is_external(); |
10260 inline void set_is_external(bool value); | 10267 inline void set_is_external(bool value); |
10261 | 10268 |
10262 inline bool is_neuterable(); | 10269 inline bool is_neuterable(); |
10263 inline void set_is_neuterable(bool value); | 10270 inline void set_is_neuterable(bool value); |
10264 | 10271 |
10265 inline bool was_neutered(); | 10272 inline bool was_neutered(); |
10266 inline void set_was_neutered(bool value); | 10273 inline void set_was_neutered(bool value); |
10267 | 10274 |
| 10275 inline bool is_shared(); |
| 10276 |
10268 DECLARE_CAST(JSArrayBuffer) | 10277 DECLARE_CAST(JSArrayBuffer) |
10269 | 10278 |
10270 void Neuter(); | 10279 void Neuter(); |
10271 | 10280 |
10272 // Dispatched behavior. | 10281 // Dispatched behavior. |
10273 DECLARE_PRINTER(JSArrayBuffer) | 10282 DECLARE_PRINTER(JSArrayBuffer) |
10274 DECLARE_VERIFIER(JSArrayBuffer) | 10283 DECLARE_VERIFIER(JSArrayBuffer) |
10275 | 10284 |
10276 static const int kBackingStoreOffset = JSObject::kHeaderSize; | 10285 static const int kBackingStoreOffset = JSObject::kHeaderSize; |
10277 static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize; | 10286 static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize; |
(...skipping 27 matching lines...) Expand all Loading... |
10305 | 10314 |
10306 // [byte_length]: length of typed array in bytes. | 10315 // [byte_length]: length of typed array in bytes. |
10307 DECL_ACCESSORS(byte_length, Object) | 10316 DECL_ACCESSORS(byte_length, Object) |
10308 | 10317 |
10309 DECLARE_CAST(JSArrayBufferView) | 10318 DECLARE_CAST(JSArrayBufferView) |
10310 | 10319 |
10311 DECLARE_VERIFIER(JSArrayBufferView) | 10320 DECLARE_VERIFIER(JSArrayBufferView) |
10312 | 10321 |
10313 inline bool WasNeutered() const; | 10322 inline bool WasNeutered() const; |
10314 | 10323 |
| 10324 inline bool is_shared() const; |
| 10325 |
10315 static const int kBufferOffset = JSObject::kHeaderSize; | 10326 static const int kBufferOffset = JSObject::kHeaderSize; |
10316 static const int kByteOffsetOffset = kBufferOffset + kPointerSize; | 10327 static const int kByteOffsetOffset = kBufferOffset + kPointerSize; |
10317 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize; | 10328 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize; |
10318 static const int kViewSize = kByteLengthOffset + kPointerSize; | 10329 static const int kViewSize = kByteLengthOffset + kPointerSize; |
10319 | 10330 |
10320 private: | 10331 private: |
10321 #ifdef VERIFY_HEAP | 10332 #ifdef VERIFY_HEAP |
10322 DECL_ACCESSORS(raw_byte_offset, Object) | 10333 DECL_ACCESSORS(raw_byte_offset, Object) |
10323 DECL_ACCESSORS(raw_byte_length, Object) | 10334 DECL_ACCESSORS(raw_byte_length, Object) |
10324 #endif | 10335 #endif |
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11115 } else { | 11126 } else { |
11116 value &= ~(1 << bit_position); | 11127 value &= ~(1 << bit_position); |
11117 } | 11128 } |
11118 return value; | 11129 return value; |
11119 } | 11130 } |
11120 }; | 11131 }; |
11121 | 11132 |
11122 } } // namespace v8::internal | 11133 } } // namespace v8::internal |
11123 | 11134 |
11124 #endif // V8_OBJECTS_H_ | 11135 #endif // V8_OBJECTS_H_ |
OLD | NEW |