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

Side by Side Diff: src/objects.h

Issue 2405253006: [builtins] implement Array.prototype[@@iterator] in TFJ builtins (Closed)
Patch Set: V1 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 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698