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 9479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10250 | 10257 |
10251 inline bool should_be_freed(); | 10258 inline bool should_be_freed(); |
10252 inline void set_should_be_freed(bool value); | 10259 inline void set_should_be_freed(bool value); |
10253 | 10260 |
10254 inline bool is_neuterable(); | 10261 inline bool is_neuterable(); |
10255 inline void set_is_neuterable(bool value); | 10262 inline void set_is_neuterable(bool value); |
10256 | 10263 |
10257 inline bool was_neutered(); | 10264 inline bool was_neutered(); |
10258 inline void set_was_neutered(bool value); | 10265 inline void set_was_neutered(bool value); |
10259 | 10266 |
10267 inline SharedFlag is_shared(); | |
jochen (gone - plz use gerrit)
2015/04/28 18:31:46
why is that not just a bool like the other bits?
binji
2015/04/29 18:27:22
Done.
| |
10268 | |
10260 // [weak_next]: linked list of array buffers. | 10269 // [weak_next]: linked list of array buffers. |
10261 DECL_ACCESSORS(weak_next, Object) | 10270 DECL_ACCESSORS(weak_next, Object) |
10262 | 10271 |
10263 DECLARE_CAST(JSArrayBuffer) | 10272 DECLARE_CAST(JSArrayBuffer) |
10264 | 10273 |
10265 void Neuter(); | 10274 void Neuter(); |
10266 | 10275 |
10267 // Dispatched behavior. | 10276 // Dispatched behavior. |
10268 DECLARE_PRINTER(JSArrayBuffer) | 10277 DECLARE_PRINTER(JSArrayBuffer) |
10269 DECLARE_VERIFIER(JSArrayBuffer) | 10278 DECLARE_VERIFIER(JSArrayBuffer) |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10318 | 10327 |
10319 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBufferView); | 10328 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBufferView); |
10320 }; | 10329 }; |
10321 | 10330 |
10322 | 10331 |
10323 class JSTypedArray: public JSArrayBufferView { | 10332 class JSTypedArray: public JSArrayBufferView { |
10324 public: | 10333 public: |
10325 // [length]: length of typed array in elements. | 10334 // [length]: length of typed array in elements. |
10326 DECL_ACCESSORS(length, Object) | 10335 DECL_ACCESSORS(length, Object) |
10327 | 10336 |
10337 // [is_shared] | |
10338 inline SharedFlag is_shared() const; | |
10339 | |
10328 DECLARE_CAST(JSTypedArray) | 10340 DECLARE_CAST(JSTypedArray) |
10329 | 10341 |
10330 ExternalArrayType type(); | 10342 ExternalArrayType type(); |
10331 size_t element_size(); | 10343 size_t element_size(); |
10332 | 10344 |
10333 Handle<JSArrayBuffer> GetBuffer(); | 10345 Handle<JSArrayBuffer> GetBuffer(); |
10334 | 10346 |
10335 // Dispatched behavior. | 10347 // Dispatched behavior. |
10336 DECLARE_PRINTER(JSTypedArray) | 10348 DECLARE_PRINTER(JSTypedArray) |
10337 DECLARE_VERIFIER(JSTypedArray) | 10349 DECLARE_VERIFIER(JSTypedArray) |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
11103 } else { | 11115 } else { |
11104 value &= ~(1 << bit_position); | 11116 value &= ~(1 << bit_position); |
11105 } | 11117 } |
11106 return value; | 11118 return value; |
11107 } | 11119 } |
11108 }; | 11120 }; |
11109 | 11121 |
11110 } } // namespace v8::internal | 11122 } } // namespace v8::internal |
11111 | 11123 |
11112 #endif // V8_OBJECTS_H_ | 11124 #endif // V8_OBJECTS_H_ |
OLD | NEW |