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 2816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2827 inline Object** RawFieldOfElementAt(int index); | 2827 inline Object** RawFieldOfElementAt(int index); |
2828 | 2828 |
2829 DECLARE_CAST(FixedArray) | 2829 DECLARE_CAST(FixedArray) |
2830 | 2830 |
2831 // Maximal allowed size, in bytes, of a single FixedArray. | 2831 // Maximal allowed size, in bytes, of a single FixedArray. |
2832 // Prevents overflowing size computations, as well as extreme memory | 2832 // Prevents overflowing size computations, as well as extreme memory |
2833 // consumption. | 2833 // consumption. |
2834 static const int kMaxSize = 128 * MB * kPointerSize; | 2834 static const int kMaxSize = 128 * MB * kPointerSize; |
2835 // Maximally allowed length of a FixedArray. | 2835 // Maximally allowed length of a FixedArray. |
2836 static const int kMaxLength = (kMaxSize - kHeaderSize) / kPointerSize; | 2836 static const int kMaxLength = (kMaxSize - kHeaderSize) / kPointerSize; |
| 2837 // Maximally allowed length for regular (non large object space) object. |
| 2838 STATIC_ASSERT(kMaxRegularHeapObjectSize < kMaxSize); |
| 2839 static const int kMaxRegularLength = |
| 2840 (kMaxRegularHeapObjectSize - kHeaderSize) / kPointerSize; |
2837 | 2841 |
2838 // Dispatched behavior. | 2842 // Dispatched behavior. |
2839 DECLARE_PRINTER(FixedArray) | 2843 DECLARE_PRINTER(FixedArray) |
2840 DECLARE_VERIFIER(FixedArray) | 2844 DECLARE_VERIFIER(FixedArray) |
2841 #ifdef DEBUG | 2845 #ifdef DEBUG |
2842 // Checks if two FixedArrays have identical contents. | 2846 // Checks if two FixedArrays have identical contents. |
2843 bool IsEqualTo(FixedArray* other); | 2847 bool IsEqualTo(FixedArray* other); |
2844 #endif | 2848 #endif |
2845 | 2849 |
2846 typedef FlexibleBodyDescriptor<kHeaderSize> BodyDescriptor; | 2850 typedef FlexibleBodyDescriptor<kHeaderSize> BodyDescriptor; |
(...skipping 1981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4828 | 4832 |
4829 // Returns a non-deprecated version of the input. This method may deprecate | 4833 // Returns a non-deprecated version of the input. This method may deprecate |
4830 // existing maps along the way if encodings conflict. Not for use while | 4834 // existing maps along the way if encodings conflict. Not for use while |
4831 // gathering type feedback. Use TryUpdate in those cases instead. | 4835 // gathering type feedback. Use TryUpdate in those cases instead. |
4832 static Handle<Map> Update(Handle<Map> map); | 4836 static Handle<Map> Update(Handle<Map> map); |
4833 | 4837 |
4834 static inline Handle<Map> CopyInitialMap(Handle<Map> map); | 4838 static inline Handle<Map> CopyInitialMap(Handle<Map> map); |
4835 static Handle<Map> CopyInitialMap(Handle<Map> map, int instance_size, | 4839 static Handle<Map> CopyInitialMap(Handle<Map> map, int instance_size, |
4836 int in_object_properties, | 4840 int in_object_properties, |
4837 int unused_property_fields); | 4841 int unused_property_fields); |
| 4842 static Handle<Map> CopyInitialMapNormalized( |
| 4843 Handle<Map> map, |
| 4844 PropertyNormalizationMode mode = CLEAR_INOBJECT_PROPERTIES); |
4838 static Handle<Map> CopyDropDescriptors(Handle<Map> map); | 4845 static Handle<Map> CopyDropDescriptors(Handle<Map> map); |
4839 static Handle<Map> CopyInsertDescriptor(Handle<Map> map, | 4846 static Handle<Map> CopyInsertDescriptor(Handle<Map> map, |
4840 Descriptor* descriptor, | 4847 Descriptor* descriptor, |
4841 TransitionFlag flag); | 4848 TransitionFlag flag); |
4842 | 4849 |
4843 static Handle<Object> WrapFieldType(Handle<FieldType> type); | 4850 static Handle<Object> WrapFieldType(Handle<FieldType> type); |
4844 static FieldType* UnwrapFieldType(Object* wrapped_type); | 4851 static FieldType* UnwrapFieldType(Object* wrapped_type); |
4845 | 4852 |
4846 MUST_USE_RESULT static MaybeHandle<Map> CopyWithField( | 4853 MUST_USE_RESULT static MaybeHandle<Map> CopyWithField( |
4847 Handle<Map> map, Handle<Name> name, Handle<FieldType> type, | 4854 Handle<Map> map, Handle<Name> name, Handle<FieldType> type, |
(...skipping 5429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10277 } | 10284 } |
10278 }; | 10285 }; |
10279 | 10286 |
10280 | 10287 |
10281 } // NOLINT, false-positive due to second-order macros. | 10288 } // NOLINT, false-positive due to second-order macros. |
10282 } // NOLINT, false-positive due to second-order macros. | 10289 } // NOLINT, false-positive due to second-order macros. |
10283 | 10290 |
10284 #include "src/objects/object-macros-undef.h" | 10291 #include "src/objects/object-macros-undef.h" |
10285 | 10292 |
10286 #endif // V8_OBJECTS_H_ | 10293 #endif // V8_OBJECTS_H_ |
OLD | NEW |