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 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 LAST_NAME_TYPE = SYMBOL_TYPE, | 756 LAST_NAME_TYPE = SYMBOL_TYPE, |
757 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, | 757 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, |
758 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, | 758 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, |
759 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, | 759 FIRST_NONSTRING_TYPE = SYMBOL_TYPE, |
760 // Boundaries for testing for an external array. | 760 // Boundaries for testing for an external array. |
761 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_INT8_ARRAY_TYPE, | 761 FIRST_EXTERNAL_ARRAY_TYPE = EXTERNAL_INT8_ARRAY_TYPE, |
762 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, | 762 LAST_EXTERNAL_ARRAY_TYPE = EXTERNAL_UINT8_CLAMPED_ARRAY_TYPE, |
763 // Boundaries for testing for a fixed typed array. | 763 // Boundaries for testing for a fixed typed array. |
764 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE, | 764 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE, |
765 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE, | 765 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE, |
766 // Boundary for promotion to old data space/old pointer space. | 766 // Boundary for promotion to old space. |
767 LAST_DATA_TYPE = FILLER_TYPE, | 767 LAST_DATA_TYPE = FILLER_TYPE, |
768 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). | 768 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). |
769 // Note that there is no range for JSObject or JSProxy, since their subtypes | 769 // Note that there is no range for JSObject or JSProxy, since their subtypes |
770 // are not continuous in this enum! The enum ranges instead reflect the | 770 // are not continuous in this enum! The enum ranges instead reflect the |
771 // external class names, where proxies are treated as either ordinary objects, | 771 // external class names, where proxies are treated as either ordinary objects, |
772 // or functions. | 772 // or functions. |
773 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, | 773 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, |
774 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 774 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
775 // Boundaries for testing the types represented as JSObject | 775 // Boundaries for testing the types represented as JSObject |
776 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, | 776 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, |
(...skipping 9565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10342 | 10342 |
10343 static const int kSizeWithInternalFields = | 10343 static const int kSizeWithInternalFields = |
10344 kSize + v8::ArrayBufferView::kInternalFieldCount * kPointerSize; | 10344 kSize + v8::ArrayBufferView::kInternalFieldCount * kPointerSize; |
10345 | 10345 |
10346 private: | 10346 private: |
10347 DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataView); | 10347 DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataView); |
10348 }; | 10348 }; |
10349 | 10349 |
10350 | 10350 |
10351 // Foreign describes objects pointing from JavaScript to C structures. | 10351 // Foreign describes objects pointing from JavaScript to C structures. |
10352 // Since they cannot contain references to JS HeapObjects they can be | |
10353 // placed in old_data_space. | |
10354 class Foreign: public HeapObject { | 10352 class Foreign: public HeapObject { |
10355 public: | 10353 public: |
10356 // [address]: field containing the address. | 10354 // [address]: field containing the address. |
10357 inline Address foreign_address(); | 10355 inline Address foreign_address(); |
10358 inline void set_foreign_address(Address value); | 10356 inline void set_foreign_address(Address value); |
10359 | 10357 |
10360 DECLARE_CAST(Foreign) | 10358 DECLARE_CAST(Foreign) |
10361 | 10359 |
10362 // Dispatched behavior. | 10360 // Dispatched behavior. |
10363 inline void ForeignIterateBody(ObjectVisitor* v); | 10361 inline void ForeignIterateBody(ObjectVisitor* v); |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11077 } else { | 11075 } else { |
11078 value &= ~(1 << bit_position); | 11076 value &= ~(1 << bit_position); |
11079 } | 11077 } |
11080 return value; | 11078 return value; |
11081 } | 11079 } |
11082 }; | 11080 }; |
11083 | 11081 |
11084 } } // namespace v8::internal | 11082 } } // namespace v8::internal |
11085 | 11083 |
11086 #endif // V8_OBJECTS_H_ | 11084 #endif // V8_OBJECTS_H_ |
OLD | NEW |