| 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 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 2175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2186 Handle<AccessorInfo> info); | 2186 Handle<AccessorInfo> info); |
| 2187 | 2187 |
| 2188 // The result must be checked first for exceptions. If there's no exception, | 2188 // The result must be checked first for exceptions. If there's no exception, |
| 2189 // the output parameter |done| indicates whether the interceptor has a result | 2189 // the output parameter |done| indicates whether the interceptor has a result |
| 2190 // or not. | 2190 // or not. |
| 2191 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithInterceptor( | 2191 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithInterceptor( |
| 2192 LookupIterator* it, bool* done); | 2192 LookupIterator* it, bool* done); |
| 2193 | 2193 |
| 2194 // Accessors for hidden properties object. | 2194 // Accessors for hidden properties object. |
| 2195 // | 2195 // |
| 2196 // Hidden properties are not own properties of the object itself. | 2196 // Hidden properties are not own properties of the object itself. Instead |
| 2197 // Instead they are stored in an auxiliary structure kept as an own | 2197 // they are stored in an auxiliary structure kept as an own property with a |
| 2198 // property with a special name Heap::hidden_string(). But if the | 2198 // special name Heap::hidden_properties_symbol(). But if the receiver is a |
| 2199 // receiver is a JSGlobalProxy then the auxiliary object is a property | 2199 // JSGlobalProxy then the auxiliary object is a property of its prototype, and |
| 2200 // of its prototype, and if it's a detached proxy, then you can't have | 2200 // if it's a detached proxy, then you can't have hidden properties. |
| 2201 // hidden properties. | |
| 2202 | 2201 |
| 2203 // Sets a hidden property on this object. Returns this object if successful, | 2202 // Sets a hidden property on this object. Returns this object if successful, |
| 2204 // undefined if called on a detached proxy. | 2203 // undefined if called on a detached proxy. |
| 2205 static Handle<Object> SetHiddenProperty(Handle<JSObject> object, | 2204 static Handle<Object> SetHiddenProperty(Handle<JSObject> object, |
| 2206 Handle<Name> key, | 2205 Handle<Name> key, |
| 2207 Handle<Object> value); | 2206 Handle<Object> value); |
| 2208 // Gets the value of a hidden property with the given key. Returns the hole | 2207 // Gets the value of a hidden property with the given key. Returns the hole |
| 2209 // if the property doesn't exist (or if called on a detached proxy), | 2208 // if the property doesn't exist (or if called on a detached proxy), |
| 2210 // otherwise returns the value set for the key. | 2209 // otherwise returns the value set for the key. |
| 2211 Object* GetHiddenProperty(Handle<Name> key); | 2210 Object* GetHiddenProperty(Handle<Name> key); |
| (...skipping 6759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8971 static const int kMaxArrayIndexSize = 10; | 8970 static const int kMaxArrayIndexSize = 10; |
| 8972 STATIC_ASSERT(kMaxArrayIndexSize < (1 << kArrayIndexLengthBits)); | 8971 STATIC_ASSERT(kMaxArrayIndexSize < (1 << kArrayIndexLengthBits)); |
| 8973 | 8972 |
| 8974 // Max char codes. | 8973 // Max char codes. |
| 8975 static const int32_t kMaxOneByteCharCode = unibrow::Latin1::kMaxChar; | 8974 static const int32_t kMaxOneByteCharCode = unibrow::Latin1::kMaxChar; |
| 8976 static const uint32_t kMaxOneByteCharCodeU = unibrow::Latin1::kMaxChar; | 8975 static const uint32_t kMaxOneByteCharCodeU = unibrow::Latin1::kMaxChar; |
| 8977 static const int kMaxUtf16CodeUnit = 0xffff; | 8976 static const int kMaxUtf16CodeUnit = 0xffff; |
| 8978 static const uint32_t kMaxUtf16CodeUnitU = kMaxUtf16CodeUnit; | 8977 static const uint32_t kMaxUtf16CodeUnitU = kMaxUtf16CodeUnit; |
| 8979 static const uc32 kMaxCodePoint = 0x10ffff; | 8978 static const uc32 kMaxCodePoint = 0x10ffff; |
| 8980 | 8979 |
| 8981 // Value of hash field containing computed hash equal to zero. | |
| 8982 static const int kEmptyStringHash = kIsNotArrayIndexMask; | |
| 8983 | |
| 8984 // Maximal string length. | 8980 // Maximal string length. |
| 8985 static const int kMaxLength = (1 << 28) - 16; | 8981 static const int kMaxLength = (1 << 28) - 16; |
| 8986 | 8982 |
| 8987 // Max length for computing hash. For strings longer than this limit the | 8983 // Max length for computing hash. For strings longer than this limit the |
| 8988 // string length is used as the hash value. | 8984 // string length is used as the hash value. |
| 8989 static const int kMaxHashCalcLength = 16383; | 8985 static const int kMaxHashCalcLength = 16383; |
| 8990 | 8986 |
| 8991 // Limit for truncation in short printing. | 8987 // Limit for truncation in short printing. |
| 8992 static const int kMaxShortPrintLength = 1024; | 8988 static const int kMaxShortPrintLength = 1024; |
| 8993 | 8989 |
| (...skipping 1854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10848 } | 10844 } |
| 10849 return value; | 10845 return value; |
| 10850 } | 10846 } |
| 10851 }; | 10847 }; |
| 10852 | 10848 |
| 10853 | 10849 |
| 10854 } // NOLINT, false-positive due to second-order macros. | 10850 } // NOLINT, false-positive due to second-order macros. |
| 10855 } // NOLINT, false-positive due to second-order macros. | 10851 } // NOLINT, false-positive due to second-order macros. |
| 10856 | 10852 |
| 10857 #endif // V8_OBJECTS_H_ | 10853 #endif // V8_OBJECTS_H_ |
| OLD | NEW |