| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 V(JS_MAP_TYPE) \ | 437 V(JS_MAP_TYPE) \ |
| 438 V(JS_SET_ITERATOR_TYPE) \ | 438 V(JS_SET_ITERATOR_TYPE) \ |
| 439 V(JS_MAP_ITERATOR_TYPE) \ | 439 V(JS_MAP_ITERATOR_TYPE) \ |
| 440 V(JS_WEAK_MAP_TYPE) \ | 440 V(JS_WEAK_MAP_TYPE) \ |
| 441 V(JS_WEAK_SET_TYPE) \ | 441 V(JS_WEAK_SET_TYPE) \ |
| 442 V(JS_PROMISE_TYPE) \ | 442 V(JS_PROMISE_TYPE) \ |
| 443 V(JS_REGEXP_TYPE) \ | 443 V(JS_REGEXP_TYPE) \ |
| 444 V(JS_ERROR_TYPE) \ | 444 V(JS_ERROR_TYPE) \ |
| 445 V(JS_STRING_ITERATOR_TYPE) \ | 445 V(JS_STRING_ITERATOR_TYPE) \ |
| 446 \ | 446 \ |
| 447 V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \ |
| 448 V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \ |
| 449 \ |
| 450 V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 451 V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 452 V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 453 V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 454 V(JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 455 V(JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 456 V(JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 457 V(JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 458 V(JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 459 \ |
| 460 V(JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 461 V(JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 462 V(JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 463 V(JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 464 V(JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 465 V(JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 466 V(JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 467 \ |
| 468 V(JS_INT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 469 V(JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 470 V(JS_INT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 471 V(JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 472 V(JS_INT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 473 V(JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 474 V(JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 475 V(JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 476 V(JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 477 \ |
| 478 V(JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 479 V(JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 480 V(JS_FAST_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 481 V(JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 482 V(JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 483 V(JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 484 V(JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 485 \ |
| 447 V(JS_BOUND_FUNCTION_TYPE) \ | 486 V(JS_BOUND_FUNCTION_TYPE) \ |
| 448 V(JS_FUNCTION_TYPE) \ | 487 V(JS_FUNCTION_TYPE) \ |
| 449 V(DEBUG_INFO_TYPE) \ | 488 V(DEBUG_INFO_TYPE) \ |
| 450 V(BREAK_POINT_INFO_TYPE) | 489 V(BREAK_POINT_INFO_TYPE) |
| 451 | 490 |
| 452 // Since string types are not consecutive, this macro is used to | 491 // Since string types are not consecutive, this macro is used to |
| 453 // iterate over them. | 492 // iterate over them. |
| 454 #define STRING_TYPE_LIST(V) \ | 493 #define STRING_TYPE_LIST(V) \ |
| 455 V(STRING_TYPE, kVariableSizeSentinel, string, String) \ | 494 V(STRING_TYPE, kVariableSizeSentinel, string, String) \ |
| 456 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \ | 495 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \ |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 JS_SET_TYPE, | 779 JS_SET_TYPE, |
| 741 JS_MAP_TYPE, | 780 JS_MAP_TYPE, |
| 742 JS_SET_ITERATOR_TYPE, | 781 JS_SET_ITERATOR_TYPE, |
| 743 JS_MAP_ITERATOR_TYPE, | 782 JS_MAP_ITERATOR_TYPE, |
| 744 JS_WEAK_MAP_TYPE, | 783 JS_WEAK_MAP_TYPE, |
| 745 JS_WEAK_SET_TYPE, | 784 JS_WEAK_SET_TYPE, |
| 746 JS_PROMISE_TYPE, | 785 JS_PROMISE_TYPE, |
| 747 JS_REGEXP_TYPE, | 786 JS_REGEXP_TYPE, |
| 748 JS_ERROR_TYPE, | 787 JS_ERROR_TYPE, |
| 749 JS_STRING_ITERATOR_TYPE, | 788 JS_STRING_ITERATOR_TYPE, |
| 789 |
| 790 JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 791 JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 792 |
| 793 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 794 JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 795 JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 796 JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 797 JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 798 JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 799 JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 800 JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 801 JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 802 |
| 803 JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 804 JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 805 JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 806 JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 807 JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 808 JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 809 JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 810 |
| 811 JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 812 JS_INT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 813 JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE, |
| 814 JS_INT16_ARRAY_VALUE_ITERATOR_TYPE, |
| 815 JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 816 JS_INT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 817 JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 818 JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE, |
| 819 JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 820 |
| 821 JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 822 JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 823 JS_FAST_ARRAY_VALUE_ITERATOR_TYPE, |
| 824 JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE, |
| 825 JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE, |
| 826 JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE, |
| 827 JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE, |
| 828 |
| 750 JS_BOUND_FUNCTION_TYPE, | 829 JS_BOUND_FUNCTION_TYPE, |
| 751 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE | 830 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE |
| 752 | 831 |
| 753 // Pseudo-types | 832 // Pseudo-types |
| 754 FIRST_TYPE = 0x0, | 833 FIRST_TYPE = 0x0, |
| 755 LAST_TYPE = JS_FUNCTION_TYPE, | 834 LAST_TYPE = JS_FUNCTION_TYPE, |
| 756 FIRST_NAME_TYPE = FIRST_TYPE, | 835 FIRST_NAME_TYPE = FIRST_TYPE, |
| 757 LAST_NAME_TYPE = SYMBOL_TYPE, | 836 LAST_NAME_TYPE = SYMBOL_TYPE, |
| 758 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, | 837 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, |
| 759 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, | 838 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 776 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 855 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
| 777 // Boundaries for testing the types represented as JSObject | 856 // Boundaries for testing the types represented as JSObject |
| 778 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, | 857 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, |
| 779 LAST_JS_OBJECT_TYPE = LAST_TYPE, | 858 LAST_JS_OBJECT_TYPE = LAST_TYPE, |
| 780 // Boundary for testing JSReceivers that need special property lookup handling | 859 // Boundary for testing JSReceivers that need special property lookup handling |
| 781 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, | 860 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, |
| 782 // Boundary case for testing JSReceivers that may have elements while having | 861 // Boundary case for testing JSReceivers that may have elements while having |
| 783 // an empty fixed array as elements backing store. This is true for string | 862 // an empty fixed array as elements backing store. This is true for string |
| 784 // wrappers. | 863 // wrappers. |
| 785 LAST_CUSTOM_ELEMENTS_RECEIVER = JS_VALUE_TYPE, | 864 LAST_CUSTOM_ELEMENTS_RECEIVER = JS_VALUE_TYPE, |
| 865 |
| 866 FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE = JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 867 LAST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE = JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 868 FIRST_JS_ARRAY_KEY_ITERATOR_TYPE = JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 869 LAST_JS_ARRAY_KEY_ITERATOR_TYPE = JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 870 FIRST_ARRAY_KEY_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 871 LAST_ARRAY_KEY_ITERATOR_TYPE = LAST_JS_ARRAY_KEY_ITERATOR_TYPE, |
| 872 |
| 873 FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 874 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 875 LAST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 876 JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 877 FIRST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 878 JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 879 LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 880 JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 881 FIRST_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 882 FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 883 LAST_ARRAY_KEY_VALUE_ITERATOR_TYPE = LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 884 |
| 885 FIRST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE = JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 886 LAST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE = |
| 887 JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 888 FIRST_JS_ARRAY_VALUE_ITERATOR_TYPE = JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 889 LAST_JS_ARRAY_VALUE_ITERATOR_TYPE = JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE, |
| 890 FIRST_ARRAY_VALUE_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 891 LAST_ARRAY_VALUE_ITERATOR_TYPE = LAST_JS_ARRAY_VALUE_ITERATOR_TYPE, |
| 892 |
| 893 FIRST_ARRAY_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 894 LAST_ARRAY_ITERATOR_TYPE = LAST_ARRAY_VALUE_ITERATOR_TYPE, |
| 786 }; | 895 }; |
| 787 | 896 |
| 788 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); | 897 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); |
| 789 STATIC_ASSERT(JS_API_OBJECT_TYPE == Internals::kJSApiObjectType); | 898 STATIC_ASSERT(JS_API_OBJECT_TYPE == Internals::kJSApiObjectType); |
| 790 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); | 899 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); |
| 791 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); | 900 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); |
| 792 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); | 901 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); |
| 793 | 902 |
| 794 | 903 |
| 795 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); | 904 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 V(JSDate) \ | 1129 V(JSDate) \ |
| 1021 V(JSMessageObject) \ | 1130 V(JSMessageObject) \ |
| 1022 V(StringWrapper) \ | 1131 V(StringWrapper) \ |
| 1023 V(Foreign) \ | 1132 V(Foreign) \ |
| 1024 V(Boolean) \ | 1133 V(Boolean) \ |
| 1025 V(JSArray) \ | 1134 V(JSArray) \ |
| 1026 V(JSArrayBuffer) \ | 1135 V(JSArrayBuffer) \ |
| 1027 V(JSArrayBufferView) \ | 1136 V(JSArrayBufferView) \ |
| 1028 V(JSCollection) \ | 1137 V(JSCollection) \ |
| 1029 V(JSTypedArray) \ | 1138 V(JSTypedArray) \ |
| 1139 V(JSArrayIterator) \ |
| 1140 V(JSTypedArrayIterator) \ |
| 1030 V(JSDataView) \ | 1141 V(JSDataView) \ |
| 1031 V(JSProxy) \ | 1142 V(JSProxy) \ |
| 1032 V(JSError) \ | 1143 V(JSError) \ |
| 1033 V(JSPromise) \ | 1144 V(JSPromise) \ |
| 1034 V(JSStringIterator) \ | 1145 V(JSStringIterator) \ |
| 1035 V(JSSet) \ | 1146 V(JSSet) \ |
| 1036 V(JSMap) \ | 1147 V(JSMap) \ |
| 1037 V(JSSetIterator) \ | 1148 V(JSSetIterator) \ |
| 1038 V(JSMapIterator) \ | 1149 V(JSMapIterator) \ |
| 1039 V(JSWeakCollection) \ | 1150 V(JSWeakCollection) \ |
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1616 // The Heap the object was allocated in. Used also to access Isolate. | 1727 // The Heap the object was allocated in. Used also to access Isolate. |
| 1617 inline Heap* GetHeap() const; | 1728 inline Heap* GetHeap() const; |
| 1618 | 1729 |
| 1619 // Convenience method to get current isolate. | 1730 // Convenience method to get current isolate. |
| 1620 inline Isolate* GetIsolate() const; | 1731 inline Isolate* GetIsolate() const; |
| 1621 | 1732 |
| 1622 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); | 1733 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); |
| 1623 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) | 1734 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) |
| 1624 #undef IS_TYPE_FUNCTION_DECL | 1735 #undef IS_TYPE_FUNCTION_DECL |
| 1625 | 1736 |
| 1737 // Helpers |
| 1738 INLINE(bool IsJSTypedArrayKeyIterator() const); |
| 1739 INLINE(bool IsJSTypedArrayValueIterator() const); |
| 1740 INLINE(bool IsJSTypedArrayKeyValueIterator() const); |
| 1741 INLINE(bool IsJSArrayKeyIterator() const); |
| 1742 INLINE(bool IsJSArrayValueIterator() const); |
| 1743 INLINE(bool IsJSArrayKeyValueIterator() const); |
| 1744 |
| 1626 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ | 1745 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ |
| 1627 INLINE(bool Is##Type(Isolate* isolate) const); | 1746 INLINE(bool Is##Type(Isolate* isolate) const); |
| 1628 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) | 1747 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) |
| 1629 #undef IS_TYPE_FUNCTION_DECL | 1748 #undef IS_TYPE_FUNCTION_DECL |
| 1630 | 1749 |
| 1631 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) \ | 1750 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) \ |
| 1632 INLINE(bool Is##Name() const); | 1751 INLINE(bool Is##Name() const); |
| 1633 STRUCT_LIST(DECLARE_STRUCT_PREDICATE) | 1752 STRUCT_LIST(DECLARE_STRUCT_PREDICATE) |
| 1634 #undef DECLARE_STRUCT_PREDICATE | 1753 #undef DECLARE_STRUCT_PREDICATE |
| 1635 | 1754 |
| (...skipping 8819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10455 static void Clear(Handle<JSMap> map); | 10574 static void Clear(Handle<JSMap> map); |
| 10456 | 10575 |
| 10457 // Dispatched behavior. | 10576 // Dispatched behavior. |
| 10458 DECLARE_PRINTER(JSMap) | 10577 DECLARE_PRINTER(JSMap) |
| 10459 DECLARE_VERIFIER(JSMap) | 10578 DECLARE_VERIFIER(JSMap) |
| 10460 | 10579 |
| 10461 private: | 10580 private: |
| 10462 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); | 10581 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); |
| 10463 }; | 10582 }; |
| 10464 | 10583 |
| 10584 class JSTypedArrayIterator : public JSObject { |
| 10585 public: |
| 10586 DECLARE_PRINTER(JSTypedArrayIterator) |
| 10587 DECLARE_VERIFIER(JSTypedArrayIterator) |
| 10588 |
| 10589 DECLARE_CAST(JSTypedArrayIterator) |
| 10590 |
| 10591 // [object]: the [[IteratedObject]] internal field. |
| 10592 DECL_ACCESSORS(object, Object) |
| 10593 |
| 10594 // [index]: The [[ArrayIteratorNextIndex]] internal field. Always an Smi for |
| 10595 // TypedArrays. |
| 10596 DECL_INT_ACCESSORS(index) |
| 10597 |
| 10598 static const int kIteratedObjectOffset = JSObject::kHeaderSize; |
| 10599 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize; |
| 10600 static const int kSize = kNextIndexOffset + kPointerSize; |
| 10601 |
| 10602 private: |
| 10603 DISALLOW_IMPLICIT_CONSTRUCTORS(JSTypedArrayIterator); |
| 10604 }; |
| 10605 |
| 10606 class JSArrayIterator : public JSObject { |
| 10607 public: |
| 10608 DECLARE_PRINTER(JSArrayIterator) |
| 10609 DECLARE_VERIFIER(JSArrayIterator) |
| 10610 |
| 10611 DECLARE_CAST(JSArrayIterator) |
| 10612 |
| 10613 // [object]: the [[IteratedObject]] internal field. |
| 10614 DECL_ACCESSORS(object, Object) |
| 10615 |
| 10616 // [index]: The [[ArrayIteratorNextIndex]] internal field. |
| 10617 DECL_ACCESSORS(index, Object) |
| 10618 |
| 10619 // [map]: The Map of the [[IteratedObject]] field at the time the iterator is |
| 10620 // allocated. |
| 10621 DECL_ACCESSORS(map, Map) |
| 10622 |
| 10623 static const int kIteratedObjectOffset = JSObject::kHeaderSize; |
| 10624 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize; |
| 10625 static const int kIteratedObjectMapOffset = kNextIndexOffset + kPointerSize; |
| 10626 static const int kSize = kIteratedObjectMapOffset + kPointerSize; |
| 10627 |
| 10628 private: |
| 10629 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayIterator); |
| 10630 }; |
| 10631 |
| 10465 class JSStringIterator : public JSObject { | 10632 class JSStringIterator : public JSObject { |
| 10466 public: | 10633 public: |
| 10467 // Dispatched behavior. | 10634 // Dispatched behavior. |
| 10468 DECLARE_PRINTER(JSStringIterator) | 10635 DECLARE_PRINTER(JSStringIterator) |
| 10469 DECLARE_VERIFIER(JSStringIterator) | 10636 DECLARE_VERIFIER(JSStringIterator) |
| 10470 | 10637 |
| 10471 DECLARE_CAST(JSStringIterator) | 10638 DECLARE_CAST(JSStringIterator) |
| 10472 | 10639 |
| 10473 // [string]: the [[IteratedString]] internal field. | 10640 // [string]: the [[IteratedString]] internal field. |
| 10474 DECL_ACCESSORS(string, String) | 10641 DECL_ACCESSORS(string, String) |
| (...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11555 } | 11722 } |
| 11556 return value; | 11723 return value; |
| 11557 } | 11724 } |
| 11558 }; | 11725 }; |
| 11559 | 11726 |
| 11560 | 11727 |
| 11561 } // NOLINT, false-positive due to second-order macros. | 11728 } // NOLINT, false-positive due to second-order macros. |
| 11562 } // NOLINT, false-positive due to second-order macros. | 11729 } // NOLINT, false-positive due to second-order macros. |
| 11563 | 11730 |
| 11564 #endif // V8_OBJECTS_H_ | 11731 #endif // V8_OBJECTS_H_ |
| OLD | NEW |