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 |