| OLD | NEW | 
|     1 // Copyright 2011 the V8 project authors. All rights reserved. |     1 // Copyright 2011 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 617 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   628   inline bool name();                  \ |   628   inline bool name();                  \ | 
|   629   inline void set_##name(bool value);  \ |   629   inline void set_##name(bool value);  \ | 
|   630  |   630  | 
|   631  |   631  | 
|   632 #define DECL_ACCESSORS(name, type)                                      \ |   632 #define DECL_ACCESSORS(name, type)                                      \ | 
|   633   inline type* name();                                                  \ |   633   inline type* name();                                                  \ | 
|   634   inline void set_##name(type* value,                                   \ |   634   inline void set_##name(type* value,                                   \ | 
|   635                          WriteBarrierMode mode = UPDATE_WRITE_BARRIER); \ |   635                          WriteBarrierMode mode = UPDATE_WRITE_BARRIER); \ | 
|   636  |   636  | 
|   637  |   637  | 
 |   638 class DictionaryElementsAccessor; | 
|   638 class ElementsAccessor; |   639 class ElementsAccessor; | 
 |   640 class FixedArrayBase; | 
 |   641 class ObjectVisitor; | 
|   639 class StringStream; |   642 class StringStream; | 
|   640 class ObjectVisitor; |  | 
|   641 class DictionaryElementsAccessor; |  | 
|   642  |   643  | 
|   643 struct ValueInfo : public Malloced { |   644 struct ValueInfo : public Malloced { | 
|   644   ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { } |   645   ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { } | 
|   645   InstanceType type; |   646   InstanceType type; | 
|   646   Object* ptr; |   647   Object* ptr; | 
|   647   const char* str; |   648   const char* str; | 
|   648   double number; |   649   double number; | 
|   649 }; |   650 }; | 
|   650  |   651  | 
|   651  |   652  | 
| (...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1486   // elements array can have one of three maps in this mode: |  1487   // elements array can have one of three maps in this mode: | 
|  1487   // fixed_array_map, non_strict_arguments_elements_map or |  1488   // fixed_array_map, non_strict_arguments_elements_map or | 
|  1488   // fixed_cow_array_map (for copy-on-write arrays). In the latter case |  1489   // fixed_cow_array_map (for copy-on-write arrays). In the latter case | 
|  1489   // the elements array may be shared by a few objects and so before |  1490   // the elements array may be shared by a few objects and so before | 
|  1490   // writing to any element the array must be copied. Use |  1491   // writing to any element the array must be copied. Use | 
|  1491   // EnsureWritableFastElements in this case. |  1492   // EnsureWritableFastElements in this case. | 
|  1492   // |  1493   // | 
|  1493   // In the slow mode the elements is either a NumberDictionary, an |  1494   // In the slow mode the elements is either a NumberDictionary, an | 
|  1494   // ExternalArray, or a FixedArray parameter map for a (non-strict) |  1495   // ExternalArray, or a FixedArray parameter map for a (non-strict) | 
|  1495   // arguments object. |  1496   // arguments object. | 
|  1496   DECL_ACCESSORS(elements, HeapObject) |  1497   DECL_ACCESSORS(elements, FixedArrayBase) | 
|  1497   inline void initialize_elements(); |  1498   inline void initialize_elements(); | 
|  1498   MUST_USE_RESULT inline MaybeObject* ResetElements(); |  1499   MUST_USE_RESULT inline MaybeObject* ResetElements(); | 
|  1499   inline ElementsKind GetElementsKind(); |  1500   inline ElementsKind GetElementsKind(); | 
|  1500   inline ElementsAccessor* GetElementsAccessor(); |  1501   inline ElementsAccessor* GetElementsAccessor(); | 
|  1501   inline bool HasFastElements(); |  1502   inline bool HasFastElements(); | 
|  1502   inline bool HasFastDoubleElements(); |  1503   inline bool HasFastDoubleElements(); | 
|  1503   inline bool HasDictionaryElements(); |  1504   inline bool HasDictionaryElements(); | 
|  1504   inline bool HasExternalPixelElements(); |  1505   inline bool HasExternalPixelElements(); | 
|  1505   inline bool HasExternalArrayElements(); |  1506   inline bool HasExternalArrayElements(); | 
|  1506   inline bool HasExternalByteElements(); |  1507   inline bool HasExternalByteElements(); | 
| (...skipping 5804 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  7311     } else { |  7312     } else { | 
|  7312       value &= ~(1 << bit_position); |  7313       value &= ~(1 << bit_position); | 
|  7313     } |  7314     } | 
|  7314     return value; |  7315     return value; | 
|  7315   } |  7316   } | 
|  7316 }; |  7317 }; | 
|  7317  |  7318  | 
|  7318 } }  // namespace v8::internal |  7319 } }  // namespace v8::internal | 
|  7319  |  7320  | 
|  7320 #endif  // V8_OBJECTS_H_ |  7321 #endif  // V8_OBJECTS_H_ | 
| OLD | NEW |