Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: src/objects.h

Issue 2405253006: [builtins] implement Array.prototype[@@iterator] in TFJ builtins (Closed)
Patch Set: remove apparently redundant var bindings and fix other bugs Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698