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 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 V(JS_MAP_TYPE) \ | 431 V(JS_MAP_TYPE) \ |
432 V(JS_SET_ITERATOR_TYPE) \ | 432 V(JS_SET_ITERATOR_TYPE) \ |
433 V(JS_MAP_ITERATOR_TYPE) \ | 433 V(JS_MAP_ITERATOR_TYPE) \ |
434 V(JS_WEAK_MAP_TYPE) \ | 434 V(JS_WEAK_MAP_TYPE) \ |
435 V(JS_WEAK_SET_TYPE) \ | 435 V(JS_WEAK_SET_TYPE) \ |
436 V(JS_PROMISE_TYPE) \ | 436 V(JS_PROMISE_TYPE) \ |
437 V(JS_REGEXP_TYPE) \ | 437 V(JS_REGEXP_TYPE) \ |
438 V(JS_ERROR_TYPE) \ | 438 V(JS_ERROR_TYPE) \ |
439 V(JS_STRING_ITERATOR_TYPE) \ | 439 V(JS_STRING_ITERATOR_TYPE) \ |
440 \ | 440 \ |
| 441 V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \ |
| 442 V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \ |
| 443 \ |
| 444 V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 445 V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 446 V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 447 V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 448 V(JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 449 V(JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 450 V(JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 451 V(JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 452 V(JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 453 \ |
| 454 V(JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 455 V(JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 456 V(JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 457 V(JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 458 V(JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 459 V(JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 460 V(JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ |
| 461 \ |
| 462 V(JS_INT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 463 V(JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 464 V(JS_INT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 465 V(JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 466 V(JS_INT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 467 V(JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 468 V(JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 469 V(JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 470 V(JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 471 \ |
| 472 V(JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 473 V(JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 474 V(JS_FAST_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 475 V(JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 476 V(JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 477 V(JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 478 V(JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE) \ |
| 479 \ |
441 V(JS_BOUND_FUNCTION_TYPE) \ | 480 V(JS_BOUND_FUNCTION_TYPE) \ |
442 V(JS_FUNCTION_TYPE) \ | 481 V(JS_FUNCTION_TYPE) \ |
443 V(DEBUG_INFO_TYPE) \ | 482 V(DEBUG_INFO_TYPE) \ |
444 V(BREAK_POINT_INFO_TYPE) | 483 V(BREAK_POINT_INFO_TYPE) |
445 | 484 |
446 // Since string types are not consecutive, this macro is used to | 485 // Since string types are not consecutive, this macro is used to |
447 // iterate over them. | 486 // iterate over them. |
448 #define STRING_TYPE_LIST(V) \ | 487 #define STRING_TYPE_LIST(V) \ |
449 V(STRING_TYPE, kVariableSizeSentinel, string, String) \ | 488 V(STRING_TYPE, kVariableSizeSentinel, string, String) \ |
450 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \ | 489 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \ |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 JS_SET_TYPE, | 766 JS_SET_TYPE, |
728 JS_MAP_TYPE, | 767 JS_MAP_TYPE, |
729 JS_SET_ITERATOR_TYPE, | 768 JS_SET_ITERATOR_TYPE, |
730 JS_MAP_ITERATOR_TYPE, | 769 JS_MAP_ITERATOR_TYPE, |
731 JS_WEAK_MAP_TYPE, | 770 JS_WEAK_MAP_TYPE, |
732 JS_WEAK_SET_TYPE, | 771 JS_WEAK_SET_TYPE, |
733 JS_PROMISE_TYPE, | 772 JS_PROMISE_TYPE, |
734 JS_REGEXP_TYPE, | 773 JS_REGEXP_TYPE, |
735 JS_ERROR_TYPE, | 774 JS_ERROR_TYPE, |
736 JS_STRING_ITERATOR_TYPE, | 775 JS_STRING_ITERATOR_TYPE, |
| 776 |
| 777 JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 778 JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 779 |
| 780 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 781 JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 782 JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 783 JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 784 JS_UINT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 785 JS_INT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 786 JS_FLOAT32_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 787 JS_FLOAT64_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 788 JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 789 |
| 790 JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 791 JS_FAST_HOLEY_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 792 JS_FAST_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 793 JS_FAST_HOLEY_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 794 JS_FAST_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 795 JS_FAST_HOLEY_DOUBLE_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 796 JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 797 |
| 798 JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 799 JS_INT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 800 JS_UINT16_ARRAY_VALUE_ITERATOR_TYPE, |
| 801 JS_INT16_ARRAY_VALUE_ITERATOR_TYPE, |
| 802 JS_UINT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 803 JS_INT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 804 JS_FLOAT32_ARRAY_VALUE_ITERATOR_TYPE, |
| 805 JS_FLOAT64_ARRAY_VALUE_ITERATOR_TYPE, |
| 806 JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 807 |
| 808 JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 809 JS_FAST_HOLEY_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 810 JS_FAST_ARRAY_VALUE_ITERATOR_TYPE, |
| 811 JS_FAST_HOLEY_ARRAY_VALUE_ITERATOR_TYPE, |
| 812 JS_FAST_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE, |
| 813 JS_FAST_HOLEY_DOUBLE_ARRAY_VALUE_ITERATOR_TYPE, |
| 814 JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE, |
| 815 |
737 JS_BOUND_FUNCTION_TYPE, | 816 JS_BOUND_FUNCTION_TYPE, |
738 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE | 817 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE |
739 | 818 |
740 // Pseudo-types | 819 // Pseudo-types |
741 FIRST_TYPE = 0x0, | 820 FIRST_TYPE = 0x0, |
742 LAST_TYPE = JS_FUNCTION_TYPE, | 821 LAST_TYPE = JS_FUNCTION_TYPE, |
743 FIRST_NAME_TYPE = FIRST_TYPE, | 822 FIRST_NAME_TYPE = FIRST_TYPE, |
744 LAST_NAME_TYPE = SYMBOL_TYPE, | 823 LAST_NAME_TYPE = SYMBOL_TYPE, |
745 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, | 824 FIRST_UNIQUE_NAME_TYPE = INTERNALIZED_STRING_TYPE, |
746 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, | 825 LAST_UNIQUE_NAME_TYPE = SYMBOL_TYPE, |
(...skipping 16 matching lines...) Expand all Loading... |
763 LAST_JS_RECEIVER_TYPE = LAST_TYPE, | 842 LAST_JS_RECEIVER_TYPE = LAST_TYPE, |
764 // Boundaries for testing the types represented as JSObject | 843 // Boundaries for testing the types represented as JSObject |
765 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, | 844 FIRST_JS_OBJECT_TYPE = JS_GLOBAL_OBJECT_TYPE, |
766 LAST_JS_OBJECT_TYPE = LAST_TYPE, | 845 LAST_JS_OBJECT_TYPE = LAST_TYPE, |
767 // Boundary for testing JSReceivers that need special property lookup handling | 846 // Boundary for testing JSReceivers that need special property lookup handling |
768 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, | 847 LAST_SPECIAL_RECEIVER_TYPE = JS_SPECIAL_API_OBJECT_TYPE, |
769 // Boundary case for testing JSReceivers that may have elements while having | 848 // Boundary case for testing JSReceivers that may have elements while having |
770 // an empty fixed array as elements backing store. This is true for string | 849 // an empty fixed array as elements backing store. This is true for string |
771 // wrappers. | 850 // wrappers. |
772 LAST_CUSTOM_ELEMENTS_RECEIVER = JS_VALUE_TYPE, | 851 LAST_CUSTOM_ELEMENTS_RECEIVER = JS_VALUE_TYPE, |
| 852 |
| 853 FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE = JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 854 LAST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE = JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 855 FIRST_JS_ARRAY_KEY_ITERATOR_TYPE = JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 856 LAST_JS_ARRAY_KEY_ITERATOR_TYPE = JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, |
| 857 FIRST_ARRAY_KEY_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 858 LAST_ARRAY_KEY_ITERATOR_TYPE = LAST_JS_ARRAY_KEY_ITERATOR_TYPE, |
| 859 |
| 860 FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 861 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 862 LAST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 863 JS_UINT8_CLAMPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 864 FIRST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 865 JS_FAST_SMI_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 866 LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 867 JS_GENERIC_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 868 FIRST_ARRAY_KEY_VALUE_ITERATOR_TYPE = |
| 869 FIRST_JS_TYPED_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 870 LAST_ARRAY_KEY_VALUE_ITERATOR_TYPE = LAST_JS_ARRAY_KEY_VALUE_ITERATOR_TYPE, |
| 871 |
| 872 FIRST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE = JS_UINT8_ARRAY_VALUE_ITERATOR_TYPE, |
| 873 LAST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE = |
| 874 JS_UINT8_CLAMPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 875 FIRST_JS_ARRAY_VALUE_ITERATOR_TYPE = JS_FAST_SMI_ARRAY_VALUE_ITERATOR_TYPE, |
| 876 LAST_JS_ARRAY_VALUE_ITERATOR_TYPE = JS_GENERIC_ARRAY_VALUE_ITERATOR_TYPE, |
| 877 FIRST_ARRAY_VALUE_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_VALUE_ITERATOR_TYPE, |
| 878 LAST_ARRAY_VALUE_ITERATOR_TYPE = LAST_JS_ARRAY_VALUE_ITERATOR_TYPE, |
| 879 |
| 880 FIRST_ARRAY_ITERATOR_TYPE = FIRST_JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, |
| 881 LAST_ARRAY_ITERATOR_TYPE = LAST_ARRAY_VALUE_ITERATOR_TYPE, |
773 }; | 882 }; |
774 | 883 |
775 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); | 884 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); |
776 STATIC_ASSERT(JS_API_OBJECT_TYPE == Internals::kJSApiObjectType); | 885 STATIC_ASSERT(JS_API_OBJECT_TYPE == Internals::kJSApiObjectType); |
777 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); | 886 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); |
778 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); | 887 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); |
779 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); | 888 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); |
780 | 889 |
781 | 890 |
782 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); | 891 std::ostream& operator<<(std::ostream& os, InstanceType instance_type); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 V(JSDate) \ | 1115 V(JSDate) \ |
1007 V(JSMessageObject) \ | 1116 V(JSMessageObject) \ |
1008 V(StringWrapper) \ | 1117 V(StringWrapper) \ |
1009 V(Foreign) \ | 1118 V(Foreign) \ |
1010 V(Boolean) \ | 1119 V(Boolean) \ |
1011 V(JSArray) \ | 1120 V(JSArray) \ |
1012 V(JSArrayBuffer) \ | 1121 V(JSArrayBuffer) \ |
1013 V(JSArrayBufferView) \ | 1122 V(JSArrayBufferView) \ |
1014 V(JSCollection) \ | 1123 V(JSCollection) \ |
1015 V(JSTypedArray) \ | 1124 V(JSTypedArray) \ |
| 1125 V(JSArrayIterator) \ |
| 1126 V(JSTypedArrayIterator) \ |
1016 V(JSDataView) \ | 1127 V(JSDataView) \ |
1017 V(JSProxy) \ | 1128 V(JSProxy) \ |
1018 V(JSError) \ | 1129 V(JSError) \ |
1019 V(JSPromise) \ | 1130 V(JSPromise) \ |
1020 V(JSStringIterator) \ | 1131 V(JSStringIterator) \ |
1021 V(JSSet) \ | 1132 V(JSSet) \ |
1022 V(JSMap) \ | 1133 V(JSMap) \ |
1023 V(JSSetIterator) \ | 1134 V(JSSetIterator) \ |
1024 V(JSMapIterator) \ | 1135 V(JSMapIterator) \ |
1025 V(JSWeakCollection) \ | 1136 V(JSWeakCollection) \ |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1602 // The Heap the object was allocated in. Used also to access Isolate. | 1713 // The Heap the object was allocated in. Used also to access Isolate. |
1603 inline Heap* GetHeap() const; | 1714 inline Heap* GetHeap() const; |
1604 | 1715 |
1605 // Convenience method to get current isolate. | 1716 // Convenience method to get current isolate. |
1606 inline Isolate* GetIsolate() const; | 1717 inline Isolate* GetIsolate() const; |
1607 | 1718 |
1608 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); | 1719 #define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const); |
1609 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) | 1720 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL) |
1610 #undef IS_TYPE_FUNCTION_DECL | 1721 #undef IS_TYPE_FUNCTION_DECL |
1611 | 1722 |
| 1723 // Helpers |
| 1724 INLINE(bool IsJSTypedArrayKeyIterator() const); |
| 1725 INLINE(bool IsJSTypedArrayValueIterator() const); |
| 1726 INLINE(bool IsJSTypedArrayKeyValueIterator() const); |
| 1727 INLINE(bool IsJSArrayKeyIterator() const); |
| 1728 INLINE(bool IsJSArrayValueIterator() const); |
| 1729 INLINE(bool IsJSArrayKeyValueIterator() const); |
| 1730 |
1612 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ | 1731 #define IS_TYPE_FUNCTION_DECL(Type, Value) \ |
1613 INLINE(bool Is##Type(Isolate* isolate) const); | 1732 INLINE(bool Is##Type(Isolate* isolate) const); |
1614 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) | 1733 ODDBALL_LIST(IS_TYPE_FUNCTION_DECL) |
1615 #undef IS_TYPE_FUNCTION_DECL | 1734 #undef IS_TYPE_FUNCTION_DECL |
1616 | 1735 |
1617 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) \ | 1736 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) \ |
1618 INLINE(bool Is##Name() const); | 1737 INLINE(bool Is##Name() const); |
1619 STRUCT_LIST(DECLARE_STRUCT_PREDICATE) | 1738 STRUCT_LIST(DECLARE_STRUCT_PREDICATE) |
1620 #undef DECLARE_STRUCT_PREDICATE | 1739 #undef DECLARE_STRUCT_PREDICATE |
1621 | 1740 |
(...skipping 8752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10374 static void Clear(Handle<JSMap> map); | 10493 static void Clear(Handle<JSMap> map); |
10375 | 10494 |
10376 // Dispatched behavior. | 10495 // Dispatched behavior. |
10377 DECLARE_PRINTER(JSMap) | 10496 DECLARE_PRINTER(JSMap) |
10378 DECLARE_VERIFIER(JSMap) | 10497 DECLARE_VERIFIER(JSMap) |
10379 | 10498 |
10380 private: | 10499 private: |
10381 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); | 10500 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); |
10382 }; | 10501 }; |
10383 | 10502 |
| 10503 class JSTypedArrayIterator : public JSObject { |
| 10504 public: |
| 10505 DECLARE_PRINTER(JSTypedArrayIterator) |
| 10506 DECLARE_VERIFIER(JSTypedArrayIterator) |
| 10507 |
| 10508 DECLARE_CAST(JSTypedArrayIterator) |
| 10509 |
| 10510 // [object]: the [[IteratedObject]] internal field. |
| 10511 DECL_ACCESSORS(object, Object) |
| 10512 |
| 10513 // [index]: The [[ArrayIteratorNextIndex]] internal field. Always an Smi for |
| 10514 // TypedArrays. |
| 10515 DECL_INT_ACCESSORS(index) |
| 10516 |
| 10517 static const int kIteratedObjectOffset = JSObject::kHeaderSize; |
| 10518 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize; |
| 10519 static const int kSize = kNextIndexOffset + kPointerSize; |
| 10520 |
| 10521 private: |
| 10522 DISALLOW_IMPLICIT_CONSTRUCTORS(JSTypedArrayIterator); |
| 10523 }; |
| 10524 |
| 10525 class JSArrayIterator : public JSObject { |
| 10526 public: |
| 10527 DECLARE_PRINTER(JSArrayIterator) |
| 10528 DECLARE_VERIFIER(JSArrayIterator) |
| 10529 |
| 10530 DECLARE_CAST(JSArrayIterator) |
| 10531 |
| 10532 // [object]: the [[IteratedObject]] internal field. |
| 10533 DECL_ACCESSORS(object, Object) |
| 10534 |
| 10535 // [index]: The [[ArrayIteratorNextIndex]] internal field. |
| 10536 DECL_ACCESSORS(index, Object) |
| 10537 |
| 10538 // [map]: The Map of the [[IteratedObject]] field at the time the iterator is |
| 10539 // allocated. |
| 10540 DECL_ACCESSORS(map, Map) |
| 10541 |
| 10542 static const int kIteratedObjectOffset = JSObject::kHeaderSize; |
| 10543 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize; |
| 10544 static const int kIteratedObjectMapOffset = kNextIndexOffset + kPointerSize; |
| 10545 static const int kSize = kIteratedObjectMapOffset + kPointerSize; |
| 10546 |
| 10547 private: |
| 10548 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayIterator); |
| 10549 }; |
| 10550 |
10384 class JSStringIterator : public JSObject { | 10551 class JSStringIterator : public JSObject { |
10385 public: | 10552 public: |
10386 // Dispatched behavior. | 10553 // Dispatched behavior. |
10387 DECLARE_PRINTER(JSStringIterator) | 10554 DECLARE_PRINTER(JSStringIterator) |
10388 DECLARE_VERIFIER(JSStringIterator) | 10555 DECLARE_VERIFIER(JSStringIterator) |
10389 | 10556 |
10390 DECLARE_CAST(JSStringIterator) | 10557 DECLARE_CAST(JSStringIterator) |
10391 | 10558 |
10392 // [string]: the [[IteratedString]] internal field. | 10559 // [string]: the [[IteratedString]] internal field. |
10393 DECL_ACCESSORS(string, String) | 10560 DECL_ACCESSORS(string, String) |
(...skipping 1049 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11443 } | 11610 } |
11444 return value; | 11611 return value; |
11445 } | 11612 } |
11446 }; | 11613 }; |
11447 | 11614 |
11448 | 11615 |
11449 } // NOLINT, false-positive due to second-order macros. | 11616 } // NOLINT, false-positive due to second-order macros. |
11450 } // NOLINT, false-positive due to second-order macros. | 11617 } // NOLINT, false-positive due to second-order macros. |
11451 | 11618 |
11452 #endif // V8_OBJECTS_H_ | 11619 #endif // V8_OBJECTS_H_ |
OLD | NEW |