Chromium Code Reviews| 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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 116 // - ExternalTwoByteString | 116 // - ExternalTwoByteString |
| 117 // - InternalizedString | 117 // - InternalizedString |
| 118 // - SeqInternalizedString | 118 // - SeqInternalizedString |
| 119 // - SeqOneByteInternalizedString | 119 // - SeqOneByteInternalizedString |
| 120 // - SeqTwoByteInternalizedString | 120 // - SeqTwoByteInternalizedString |
| 121 // - ConsInternalizedString | 121 // - ConsInternalizedString |
| 122 // - ExternalInternalizedString | 122 // - ExternalInternalizedString |
| 123 // - ExternalAsciiInternalizedString | 123 // - ExternalAsciiInternalizedString |
| 124 // - ExternalTwoByteInternalizedString | 124 // - ExternalTwoByteInternalizedString |
| 125 // - Symbol | 125 // - Symbol |
| 126 // - Private | |
| 126 // - HeapNumber | 127 // - HeapNumber |
| 127 // - Cell | 128 // - Cell |
| 128 // - PropertyCell | 129 // - PropertyCell |
| 129 // - Code | 130 // - Code |
| 130 // - Map | 131 // - Map |
| 131 // - Oddball | 132 // - Oddball |
| 132 // - Foreign | 133 // - Foreign |
| 133 // - SharedFunctionInfo | 134 // - SharedFunctionInfo |
| 134 // - Struct | 135 // - Struct |
| 135 // - Box | 136 // - Box |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 352 V(CONS_INTERNALIZED_STRING_TYPE) \ | 353 V(CONS_INTERNALIZED_STRING_TYPE) \ |
| 353 V(CONS_ASCII_INTERNALIZED_STRING_TYPE) \ | 354 V(CONS_ASCII_INTERNALIZED_STRING_TYPE) \ |
| 354 V(EXTERNAL_INTERNALIZED_STRING_TYPE) \ | 355 V(EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| 355 V(EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \ | 356 V(EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \ |
| 356 V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ | 357 V(EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| 357 V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE) \ | 358 V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE) \ |
| 358 V(SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \ | 359 V(SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \ |
| 359 V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ | 360 V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE) \ |
| 360 \ | 361 \ |
| 361 V(SYMBOL_TYPE) \ | 362 V(SYMBOL_TYPE) \ |
| 363 \ | |
|
Yang
2013/10/29 12:47:26
stray edit?
rossberg
2013/10/29 15:08:19
On purpose. :)
| |
| 362 V(MAP_TYPE) \ | 364 V(MAP_TYPE) \ |
| 363 V(CODE_TYPE) \ | 365 V(CODE_TYPE) \ |
| 364 V(ODDBALL_TYPE) \ | 366 V(ODDBALL_TYPE) \ |
| 365 V(CELL_TYPE) \ | 367 V(CELL_TYPE) \ |
| 366 V(PROPERTY_CELL_TYPE) \ | 368 V(PROPERTY_CELL_TYPE) \ |
| 367 \ | 369 \ |
| 368 V(HEAP_NUMBER_TYPE) \ | 370 V(HEAP_NUMBER_TYPE) \ |
| 369 V(FOREIGN_TYPE) \ | 371 V(FOREIGN_TYPE) \ |
| 370 V(BYTE_ARRAY_TYPE) \ | 372 V(BYTE_ARRAY_TYPE) \ |
| 371 V(FREE_SPACE_TYPE) \ | 373 V(FREE_SPACE_TYPE) \ |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 684 | kNotInternalizedTag, | 686 | kNotInternalizedTag, |
| 685 SHORT_EXTERNAL_STRING_TYPE = | 687 SHORT_EXTERNAL_STRING_TYPE = |
| 686 SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag, | 688 SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag, |
| 687 SHORT_EXTERNAL_ASCII_STRING_TYPE = | 689 SHORT_EXTERNAL_ASCII_STRING_TYPE = |
| 688 SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag, | 690 SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag, |
| 689 SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE = | 691 SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE = |
| 690 SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE | 692 SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE |
| 691 | kNotInternalizedTag, | 693 | kNotInternalizedTag, |
| 692 | 694 |
| 693 // Non-string names | 695 // Non-string names |
| 694 SYMBOL_TYPE = kNotStringTag, // LAST_NAME_TYPE, FIRST_NONSTRING_TYPE | 696 SYMBOL_TYPE = kNotStringTag, // FIRST_NONSTRING_TYPE, LAST_NAME_TYPE |
| 695 | 697 |
| 696 // Objects allocated in their own spaces (never in new space). | 698 // Objects allocated in their own spaces (never in new space). |
| 697 MAP_TYPE, | 699 MAP_TYPE, |
| 698 CODE_TYPE, | 700 CODE_TYPE, |
| 699 ODDBALL_TYPE, | 701 ODDBALL_TYPE, |
| 700 CELL_TYPE, | 702 CELL_TYPE, |
| 701 PROPERTY_CELL_TYPE, | 703 PROPERTY_CELL_TYPE, |
| 702 | 704 |
| 703 // "Data", objects that cannot contain non-map-word pointers to heap | 705 // "Data", objects that cannot contain non-map-word pointers to heap |
| 704 // objects. | 706 // objects. |
| (...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1377 INLINE(bool IsSpecObject()); | 1379 INLINE(bool IsSpecObject()); |
| 1378 INLINE(bool IsSpecFunction()); | 1380 INLINE(bool IsSpecFunction()); |
| 1379 | 1381 |
| 1380 // Oddball testing. | 1382 // Oddball testing. |
| 1381 INLINE(bool IsUndefined()); | 1383 INLINE(bool IsUndefined()); |
| 1382 INLINE(bool IsNull()); | 1384 INLINE(bool IsNull()); |
| 1383 INLINE(bool IsTheHole()); // Shadows MaybeObject's implementation. | 1385 INLINE(bool IsTheHole()); // Shadows MaybeObject's implementation. |
| 1384 INLINE(bool IsUninitialized()); | 1386 INLINE(bool IsUninitialized()); |
| 1385 INLINE(bool IsTrue()); | 1387 INLINE(bool IsTrue()); |
| 1386 INLINE(bool IsFalse()); | 1388 INLINE(bool IsFalse()); |
| 1389 INLINE(bool IsPrivate()); | |
| 1387 inline bool IsArgumentsMarker(); | 1390 inline bool IsArgumentsMarker(); |
| 1388 inline bool NonFailureIsHeapObject(); | 1391 inline bool NonFailureIsHeapObject(); |
| 1389 | 1392 |
| 1390 // Filler objects (fillers and free space objects). | 1393 // Filler objects (fillers and free space objects). |
| 1391 inline bool IsFiller(); | 1394 inline bool IsFiller(); |
| 1392 | 1395 |
| 1393 // Extract the number. | 1396 // Extract the number. |
| 1394 inline double Number(); | 1397 inline double Number(); |
| 1395 inline bool IsNaN(); | 1398 inline bool IsNaN(); |
| 1396 bool ToInt32(int32_t* value); | 1399 bool ToInt32(int32_t* value); |
| (...skipping 6926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8323 kIsNotArrayIndexMask | kHashNotComputedMask; | 8326 kIsNotArrayIndexMask | kHashNotComputedMask; |
| 8324 | 8327 |
| 8325 protected: | 8328 protected: |
| 8326 static inline bool IsHashFieldComputed(uint32_t field); | 8329 static inline bool IsHashFieldComputed(uint32_t field); |
| 8327 | 8330 |
| 8328 private: | 8331 private: |
| 8329 DISALLOW_IMPLICIT_CONSTRUCTORS(Name); | 8332 DISALLOW_IMPLICIT_CONSTRUCTORS(Name); |
| 8330 }; | 8333 }; |
| 8331 | 8334 |
| 8332 | 8335 |
| 8333 // ES6 symbols. | 8336 // ES6 unique symbols. |
| 8334 class Symbol: public Name { | 8337 class Symbol: public Name { |
| 8335 public: | 8338 public: |
| 8336 // [name]: the print name of a symbol, or undefined if none. | 8339 // [name]: the print name of a symbol, or undefined if none, |
| 8340 // or for private symbols, a Box containing one of those. | |
| 8337 DECL_ACCESSORS(name, Object) | 8341 DECL_ACCESSORS(name, Object) |
| 8338 | 8342 |
| 8339 // Casting. | 8343 // Casting. |
| 8340 static inline Symbol* cast(Object* obj); | 8344 static inline Symbol* cast(Object* obj); |
| 8341 | 8345 |
| 8342 // Dispatched behavior. | 8346 // Dispatched behavior. |
| 8343 DECLARE_PRINTER(Symbol) | 8347 DECLARE_PRINTER(Symbol) |
| 8344 DECLARE_VERIFIER(Symbol) | 8348 DECLARE_VERIFIER(Symbol) |
| 8345 | 8349 |
| 8346 // Layout description. | 8350 // Layout description. |
| 8347 static const int kNameOffset = Name::kSize; | 8351 static const int kNameOffset = Name::kSize; |
| 8348 static const int kSize = kNameOffset + kPointerSize; | 8352 static const int kSize = kNameOffset + kPointerSize; |
| 8349 | 8353 |
| 8350 typedef FixedBodyDescriptor<kNameOffset, kNameOffset + kPointerSize, kSize> | 8354 typedef FixedBodyDescriptor<kNameOffset, kNameOffset + kPointerSize, kSize> |
| 8351 BodyDescriptor; | 8355 BodyDescriptor; |
| 8352 | 8356 |
| 8353 private: | 8357 private: |
| 8354 DISALLOW_IMPLICIT_CONSTRUCTORS(Symbol); | 8358 DISALLOW_IMPLICIT_CONSTRUCTORS(Symbol); |
| 8355 }; | 8359 }; |
| 8356 | 8360 |
| 8357 | 8361 |
| 8362 // Private symbols. | |
| 8363 class Private: public Symbol { | |
| 8364 public: | |
| 8365 // The print name of a private symbol, or undefined if none. | |
| 8366 DECL_ACCESSORS(name, Object) | |
| 8367 | |
| 8368 // Casting. | |
| 8369 static inline Private* cast(Object* obj); | |
| 8370 | |
| 8371 private: | |
| 8372 DISALLOW_IMPLICIT_CONSTRUCTORS(Private); | |
| 8373 }; | |
| 8374 | |
| 8375 | |
| 8358 class ConsString; | 8376 class ConsString; |
| 8359 | 8377 |
| 8360 // The String abstract class captures JavaScript string values: | 8378 // The String abstract class captures JavaScript string values: |
| 8361 // | 8379 // |
| 8362 // Ecma-262: | 8380 // Ecma-262: |
| 8363 // 4.3.16 String Value | 8381 // 4.3.16 String Value |
| 8364 // A string value is a member of the type String and is a finite | 8382 // A string value is a member of the type String and is a finite |
| 8365 // ordered sequence of zero or more 16-bit unsigned integer values. | 8383 // ordered sequence of zero or more 16-bit unsigned integer values. |
| 8366 // | 8384 // |
| 8367 // All string values have a length field. | 8385 // All string values have a length field. |
| (...skipping 2069 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 10437 } else { | 10455 } else { |
| 10438 value &= ~(1 << bit_position); | 10456 value &= ~(1 << bit_position); |
| 10439 } | 10457 } |
| 10440 return value; | 10458 return value; |
| 10441 } | 10459 } |
| 10442 }; | 10460 }; |
| 10443 | 10461 |
| 10444 } } // namespace v8::internal | 10462 } } // namespace v8::internal |
| 10445 | 10463 |
| 10446 #endif // V8_OBJECTS_H_ | 10464 #endif // V8_OBJECTS_H_ |
| OLD | NEW |