| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1710 inline bool HasExternalShortElements(); | 1710 inline bool HasExternalShortElements(); |
| 1711 inline bool HasExternalUnsignedShortElements(); | 1711 inline bool HasExternalUnsignedShortElements(); |
| 1712 inline bool HasExternalIntElements(); | 1712 inline bool HasExternalIntElements(); |
| 1713 inline bool HasExternalUnsignedIntElements(); | 1713 inline bool HasExternalUnsignedIntElements(); |
| 1714 inline bool HasExternalFloatElements(); | 1714 inline bool HasExternalFloatElements(); |
| 1715 inline bool HasExternalDoubleElements(); | 1715 inline bool HasExternalDoubleElements(); |
| 1716 bool HasFastArgumentsElements(); | 1716 bool HasFastArgumentsElements(); |
| 1717 bool HasDictionaryArgumentsElements(); | 1717 bool HasDictionaryArgumentsElements(); |
| 1718 inline SeededNumberDictionary* element_dictionary(); // Gets slow elements. | 1718 inline SeededNumberDictionary* element_dictionary(); // Gets slow elements. |
| 1719 | 1719 |
| 1720 inline bool ShouldTrackAllocationInfo(); |
| 1721 |
| 1720 inline void set_map_and_elements( | 1722 inline void set_map_and_elements( |
| 1721 Map* map, | 1723 Map* map, |
| 1722 FixedArrayBase* value, | 1724 FixedArrayBase* value, |
| 1723 WriteBarrierMode mode = UPDATE_WRITE_BARRIER); | 1725 WriteBarrierMode mode = UPDATE_WRITE_BARRIER); |
| 1724 | 1726 |
| 1725 // Requires: HasFastElements(). | 1727 // Requires: HasFastElements(). |
| 1726 MUST_USE_RESULT inline MaybeObject* EnsureWritableFastElements(); | 1728 MUST_USE_RESULT inline MaybeObject* EnsureWritableFastElements(); |
| 1727 | 1729 |
| 1728 // Collects elements starting at index 0. | 1730 // Collects elements starting at index 0. |
| 1729 // Undefined values are placed after non-undefined values. | 1731 // Undefined values are placed after non-undefined values. |
| (...skipping 5491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7221 public: | 7223 public: |
| 7222 DECL_ACCESSORS(payload, Object) | 7224 DECL_ACCESSORS(payload, Object) |
| 7223 | 7225 |
| 7224 static inline AllocationSiteInfo* cast(Object* obj); | 7226 static inline AllocationSiteInfo* cast(Object* obj); |
| 7225 | 7227 |
| 7226 DECLARE_PRINTER(AllocationSiteInfo) | 7228 DECLARE_PRINTER(AllocationSiteInfo) |
| 7227 DECLARE_VERIFIER(AllocationSiteInfo) | 7229 DECLARE_VERIFIER(AllocationSiteInfo) |
| 7228 | 7230 |
| 7229 // Returns NULL if no AllocationSiteInfo is available for object. | 7231 // Returns NULL if no AllocationSiteInfo is available for object. |
| 7230 static AllocationSiteInfo* FindForJSObject(JSObject* object); | 7232 static AllocationSiteInfo* FindForJSObject(JSObject* object); |
| 7231 | 7233 static inline AllocationSiteMode GetMode( |
| 7232 static AllocationSiteMode GetMode(ElementsKind boilerplate_elements_kind); | 7234 ElementsKind boilerplate_elements_kind); |
| 7233 static AllocationSiteMode GetMode(ElementsKind from, ElementsKind to); | 7235 static inline AllocationSiteMode GetMode(ElementsKind from, ElementsKind to); |
| 7234 | 7236 |
| 7235 static const int kPayloadOffset = HeapObject::kHeaderSize; | 7237 static const int kPayloadOffset = HeapObject::kHeaderSize; |
| 7236 static const int kSize = kPayloadOffset + kPointerSize; | 7238 static const int kSize = kPayloadOffset + kPointerSize; |
| 7237 static const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024; | 7239 static const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024; |
| 7238 | 7240 |
| 7239 bool GetElementsKindPayload(ElementsKind* kind); | 7241 bool GetElementsKindPayload(ElementsKind* kind); |
| 7240 private: | 7242 private: |
| 7241 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSiteInfo); | 7243 DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSiteInfo); |
| 7242 }; | 7244 }; |
| 7243 | 7245 |
| (...skipping 1399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8643 | 8645 |
| 8644 private: | 8646 private: |
| 8645 // Expand the fixed array backing of a fast-case JSArray to at least | 8647 // Expand the fixed array backing of a fast-case JSArray to at least |
| 8646 // the requested size. | 8648 // the requested size. |
| 8647 void Expand(int minimum_size_of_backing_fixed_array); | 8649 void Expand(int minimum_size_of_backing_fixed_array); |
| 8648 | 8650 |
| 8649 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArray); | 8651 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArray); |
| 8650 }; | 8652 }; |
| 8651 | 8653 |
| 8652 | 8654 |
| 8655 MUST_USE_RESULT MaybeObject* CacheInitialJSArrayMaps( |
| 8656 Context* native_context, Map* initial_map); |
| 8657 |
| 8658 |
| 8653 // JSRegExpResult is just a JSArray with a specific initial map. | 8659 // JSRegExpResult is just a JSArray with a specific initial map. |
| 8654 // This initial map adds in-object properties for "index" and "input" | 8660 // This initial map adds in-object properties for "index" and "input" |
| 8655 // properties, as assigned by RegExp.prototype.exec, which allows | 8661 // properties, as assigned by RegExp.prototype.exec, which allows |
| 8656 // faster creation of RegExp exec results. | 8662 // faster creation of RegExp exec results. |
| 8657 // This class just holds constants used when creating the result. | 8663 // This class just holds constants used when creating the result. |
| 8658 // After creation the result must be treated as a JSArray in all regards. | 8664 // After creation the result must be treated as a JSArray in all regards. |
| 8659 class JSRegExpResult: public JSArray { | 8665 class JSRegExpResult: public JSArray { |
| 8660 public: | 8666 public: |
| 8661 // Offsets of object fields. | 8667 // Offsets of object fields. |
| 8662 static const int kIndexOffset = JSArray::kSize; | 8668 static const int kIndexOffset = JSArray::kSize; |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9356 } else { | 9362 } else { |
| 9357 value &= ~(1 << bit_position); | 9363 value &= ~(1 << bit_position); |
| 9358 } | 9364 } |
| 9359 return value; | 9365 return value; |
| 9360 } | 9366 } |
| 9361 }; | 9367 }; |
| 9362 | 9368 |
| 9363 } } // namespace v8::internal | 9369 } } // namespace v8::internal |
| 9364 | 9370 |
| 9365 #endif // V8_OBJECTS_H_ | 9371 #endif // V8_OBJECTS_H_ |
| OLD | NEW |