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 7977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7988 | 7988 |
7989 // Equality operations. | 7989 // Equality operations. |
7990 inline bool Equals(Name* other); | 7990 inline bool Equals(Name* other); |
7991 | 7991 |
7992 // Conversion. | 7992 // Conversion. |
7993 inline bool AsArrayIndex(uint32_t* index); | 7993 inline bool AsArrayIndex(uint32_t* index); |
7994 | 7994 |
7995 // Casting. | 7995 // Casting. |
7996 static inline Name* cast(Object* obj); | 7996 static inline Name* cast(Object* obj); |
7997 | 7997 |
| 7998 inline bool IsCacheable(Isolate* isolate); |
| 7999 |
7998 DECLARE_PRINTER(Name) | 8000 DECLARE_PRINTER(Name) |
7999 | 8001 |
8000 // Layout description. | 8002 // Layout description. |
8001 static const int kHashFieldOffset = HeapObject::kHeaderSize; | 8003 static const int kHashFieldOffset = HeapObject::kHeaderSize; |
8002 static const int kSize = kHashFieldOffset + kPointerSize; | 8004 static const int kSize = kHashFieldOffset + kPointerSize; |
8003 | 8005 |
8004 // Mask constant for checking if a name has a computed hash code | 8006 // Mask constant for checking if a name has a computed hash code |
8005 // and if it is a string that is an array index. The least significant bit | 8007 // and if it is a string that is an array index. The least significant bit |
8006 // indicates whether a hash code has been computed. If the hash code has | 8008 // indicates whether a hash code has been computed. If the hash code has |
8007 // been computed the 2nd bit tells whether the string can be used as an | 8009 // been computed the 2nd bit tells whether the string can be used as an |
(...skipping 2151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10159 } else { | 10161 } else { |
10160 value &= ~(1 << bit_position); | 10162 value &= ~(1 << bit_position); |
10161 } | 10163 } |
10162 return value; | 10164 return value; |
10163 } | 10165 } |
10164 }; | 10166 }; |
10165 | 10167 |
10166 } } // namespace v8::internal | 10168 } } // namespace v8::internal |
10167 | 10169 |
10168 #endif // V8_OBJECTS_H_ | 10170 #endif // V8_OBJECTS_H_ |
OLD | NEW |