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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 // - JSWeakSet | 65 // - JSWeakSet |
66 // - JSRegExp | 66 // - JSRegExp |
67 // - JSFunction | 67 // - JSFunction |
68 // - JSGeneratorObject | 68 // - JSGeneratorObject |
69 // - JSGlobalObject | 69 // - JSGlobalObject |
70 // - JSGlobalProxy | 70 // - JSGlobalProxy |
71 // - JSValue | 71 // - JSValue |
72 // - JSDate | 72 // - JSDate |
73 // - JSMessageObject | 73 // - JSMessageObject |
74 // - JSModuleNamespace | 74 // - JSModuleNamespace |
75 // - JSFixedArrayIterator | |
76 // - JSProxy | 75 // - JSProxy |
77 // - FixedArrayBase | 76 // - FixedArrayBase |
78 // - ByteArray | 77 // - ByteArray |
79 // - BytecodeArray | 78 // - BytecodeArray |
80 // - FixedArray | 79 // - FixedArray |
81 // - DescriptorArray | 80 // - DescriptorArray |
82 // - FrameArray | 81 // - FrameArray |
83 // - LiteralsArray | 82 // - LiteralsArray |
84 // - HashTable | 83 // - HashTable |
85 // - Dictionary | 84 // - Dictionary |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 \ | 402 \ |
404 V(JS_MESSAGE_OBJECT_TYPE) \ | 403 V(JS_MESSAGE_OBJECT_TYPE) \ |
405 \ | 404 \ |
406 V(JS_VALUE_TYPE) \ | 405 V(JS_VALUE_TYPE) \ |
407 V(JS_DATE_TYPE) \ | 406 V(JS_DATE_TYPE) \ |
408 V(JS_OBJECT_TYPE) \ | 407 V(JS_OBJECT_TYPE) \ |
409 V(JS_ARGUMENTS_TYPE) \ | 408 V(JS_ARGUMENTS_TYPE) \ |
410 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ | 409 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ |
411 V(JS_GENERATOR_OBJECT_TYPE) \ | 410 V(JS_GENERATOR_OBJECT_TYPE) \ |
412 V(JS_MODULE_NAMESPACE_TYPE) \ | 411 V(JS_MODULE_NAMESPACE_TYPE) \ |
413 V(JS_FIXED_ARRAY_ITERATOR_TYPE) \ | |
414 V(JS_GLOBAL_OBJECT_TYPE) \ | 412 V(JS_GLOBAL_OBJECT_TYPE) \ |
415 V(JS_GLOBAL_PROXY_TYPE) \ | 413 V(JS_GLOBAL_PROXY_TYPE) \ |
416 V(JS_API_OBJECT_TYPE) \ | 414 V(JS_API_OBJECT_TYPE) \ |
417 V(JS_SPECIAL_API_OBJECT_TYPE) \ | 415 V(JS_SPECIAL_API_OBJECT_TYPE) \ |
418 V(JS_ARRAY_TYPE) \ | 416 V(JS_ARRAY_TYPE) \ |
419 V(JS_ARRAY_BUFFER_TYPE) \ | 417 V(JS_ARRAY_BUFFER_TYPE) \ |
420 V(JS_TYPED_ARRAY_TYPE) \ | 418 V(JS_TYPED_ARRAY_TYPE) \ |
421 V(JS_DATA_VIEW_TYPE) \ | 419 V(JS_DATA_VIEW_TYPE) \ |
422 V(JS_PROXY_TYPE) \ | 420 V(JS_PROXY_TYPE) \ |
423 V(JS_SET_TYPE) \ | 421 V(JS_SET_TYPE) \ |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 JS_VALUE_TYPE, // LAST_CUSTOM_ELEMENTS_RECEIVER | 754 JS_VALUE_TYPE, // LAST_CUSTOM_ELEMENTS_RECEIVER |
757 JS_MESSAGE_OBJECT_TYPE, | 755 JS_MESSAGE_OBJECT_TYPE, |
758 JS_DATE_TYPE, | 756 JS_DATE_TYPE, |
759 // Like JS_OBJECT_TYPE, but created from API function. | 757 // Like JS_OBJECT_TYPE, but created from API function. |
760 JS_API_OBJECT_TYPE, | 758 JS_API_OBJECT_TYPE, |
761 JS_OBJECT_TYPE, | 759 JS_OBJECT_TYPE, |
762 JS_ARGUMENTS_TYPE, | 760 JS_ARGUMENTS_TYPE, |
763 JS_CONTEXT_EXTENSION_OBJECT_TYPE, | 761 JS_CONTEXT_EXTENSION_OBJECT_TYPE, |
764 JS_GENERATOR_OBJECT_TYPE, | 762 JS_GENERATOR_OBJECT_TYPE, |
765 JS_MODULE_NAMESPACE_TYPE, | 763 JS_MODULE_NAMESPACE_TYPE, |
766 JS_FIXED_ARRAY_ITERATOR_TYPE, | |
767 JS_ARRAY_TYPE, | 764 JS_ARRAY_TYPE, |
768 JS_ARRAY_BUFFER_TYPE, | 765 JS_ARRAY_BUFFER_TYPE, |
769 JS_TYPED_ARRAY_TYPE, | 766 JS_TYPED_ARRAY_TYPE, |
770 JS_DATA_VIEW_TYPE, | 767 JS_DATA_VIEW_TYPE, |
771 JS_SET_TYPE, | 768 JS_SET_TYPE, |
772 JS_MAP_TYPE, | 769 JS_MAP_TYPE, |
773 JS_SET_ITERATOR_TYPE, | 770 JS_SET_ITERATOR_TYPE, |
774 JS_MAP_ITERATOR_TYPE, | 771 JS_MAP_ITERATOR_TYPE, |
775 JS_WEAK_MAP_TYPE, | 772 JS_WEAK_MAP_TYPE, |
776 JS_WEAK_SET_TYPE, | 773 JS_WEAK_SET_TYPE, |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1065 V(FixedFloat64Array) \ | 1062 V(FixedFloat64Array) \ |
1066 V(FixedUint8ClampedArray) \ | 1063 V(FixedUint8ClampedArray) \ |
1067 V(ByteArray) \ | 1064 V(ByteArray) \ |
1068 V(BytecodeArray) \ | 1065 V(BytecodeArray) \ |
1069 V(FreeSpace) \ | 1066 V(FreeSpace) \ |
1070 V(JSReceiver) \ | 1067 V(JSReceiver) \ |
1071 V(JSObject) \ | 1068 V(JSObject) \ |
1072 V(JSContextExtensionObject) \ | 1069 V(JSContextExtensionObject) \ |
1073 V(JSGeneratorObject) \ | 1070 V(JSGeneratorObject) \ |
1074 V(JSModuleNamespace) \ | 1071 V(JSModuleNamespace) \ |
1075 V(JSFixedArrayIterator) \ | |
1076 V(Map) \ | 1072 V(Map) \ |
1077 V(DescriptorArray) \ | 1073 V(DescriptorArray) \ |
1078 V(FrameArray) \ | 1074 V(FrameArray) \ |
1079 V(TransitionArray) \ | 1075 V(TransitionArray) \ |
1080 V(LiteralsArray) \ | 1076 V(LiteralsArray) \ |
1081 V(TypeFeedbackMetadata) \ | 1077 V(TypeFeedbackMetadata) \ |
1082 V(TypeFeedbackVector) \ | 1078 V(TypeFeedbackVector) \ |
1083 V(DeoptimizationInputData) \ | 1079 V(DeoptimizationInputData) \ |
1084 V(DeoptimizationOutputData) \ | 1080 V(DeoptimizationOutputData) \ |
1085 V(DependentCode) \ | 1081 V(DependentCode) \ |
(...skipping 9821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10907 inline void set_index(int value); | 10903 inline void set_index(int value); |
10908 | 10904 |
10909 static const int kStringOffset = JSObject::kHeaderSize; | 10905 static const int kStringOffset = JSObject::kHeaderSize; |
10910 static const int kNextIndexOffset = kStringOffset + kPointerSize; | 10906 static const int kNextIndexOffset = kStringOffset + kPointerSize; |
10911 static const int kSize = kNextIndexOffset + kPointerSize; | 10907 static const int kSize = kNextIndexOffset + kPointerSize; |
10912 | 10908 |
10913 private: | 10909 private: |
10914 DISALLOW_IMPLICIT_CONSTRUCTORS(JSStringIterator); | 10910 DISALLOW_IMPLICIT_CONSTRUCTORS(JSStringIterator); |
10915 }; | 10911 }; |
10916 | 10912 |
10917 // A JS iterator over the elements of a FixedArray. | |
10918 // This corresponds to ListIterator in ecma262/#sec-createlistiterator. | |
10919 class JSFixedArrayIterator : public JSObject { | |
10920 public: | |
10921 DECLARE_CAST(JSFixedArrayIterator) | |
10922 DECLARE_PRINTER(JSFixedArrayIterator) | |
10923 DECLARE_VERIFIER(JSFixedArrayIterator) | |
10924 | |
10925 // The array over which the iterator iterates. | |
10926 DECL_ACCESSORS(array, FixedArray) | |
10927 | |
10928 // The index of the array element that will be returned next. | |
10929 DECL_INT_ACCESSORS(index) | |
10930 | |
10931 // The initial value of the object's "next" property. | |
10932 DECL_ACCESSORS(initial_next, JSFunction) | |
10933 | |
10934 static const int kArrayOffset = JSObject::kHeaderSize; | |
10935 static const int kIndexOffset = kArrayOffset + kPointerSize; | |
10936 static const int kNextOffset = kIndexOffset + kPointerSize; | |
10937 static const int kHeaderSize = kNextOffset + kPointerSize; | |
10938 | |
10939 enum InObjectPropertyIndex { | |
10940 kNextIndex, | |
10941 kInObjectPropertyCount // Dummy. | |
10942 }; | |
10943 | |
10944 private: | |
10945 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFixedArrayIterator); | |
10946 }; | |
10947 | |
10948 // OrderedHashTableIterator is an iterator that iterates over the keys and | 10913 // OrderedHashTableIterator is an iterator that iterates over the keys and |
10949 // values of an OrderedHashTable. | 10914 // values of an OrderedHashTable. |
10950 // | 10915 // |
10951 // The iterator has a reference to the underlying OrderedHashTable data, | 10916 // The iterator has a reference to the underlying OrderedHashTable data, |
10952 // [table], as well as the current [index] the iterator is at. | 10917 // [table], as well as the current [index] the iterator is at. |
10953 // | 10918 // |
10954 // When the OrderedHashTable is rehashed it adds a reference from the old table | 10919 // When the OrderedHashTable is rehashed it adds a reference from the old table |
10955 // to the new table as well as storing enough data about the changes so that the | 10920 // to the new table as well as storing enough data about the changes so that the |
10956 // iterator [index] can be adjusted accordingly. | 10921 // iterator [index] can be adjusted accordingly. |
10957 // | 10922 // |
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12008 } | 11973 } |
12009 return value; | 11974 return value; |
12010 } | 11975 } |
12011 }; | 11976 }; |
12012 | 11977 |
12013 | 11978 |
12014 } // NOLINT, false-positive due to second-order macros. | 11979 } // NOLINT, false-positive due to second-order macros. |
12015 } // NOLINT, false-positive due to second-order macros. | 11980 } // NOLINT, false-positive due to second-order macros. |
12016 | 11981 |
12017 #endif // V8_OBJECTS_H_ | 11982 #endif // V8_OBJECTS_H_ |
OLD | NEW |