| Index: src/objects.h | 
| diff --git a/src/objects.h b/src/objects.h | 
| index 64b9aaad10dcc8997643b6d105c0a0e6149ced7e..9427227ac398fcb666b2b214bb96e72d586222ed 100644 | 
| --- a/src/objects.h | 
| +++ b/src/objects.h | 
| @@ -2562,6 +2562,52 @@ class JSObject: public JSReceiver { | 
| }; | 
|  | 
|  | 
| +// JSAccessorPropertyDescriptor is just a JSObject with a specific initial | 
| +// map. This initial map adds in-object properties for "get", "set", | 
| +// "enumerable" and "configurable" properties, as assigned by the | 
| +// FromPropertyDescriptor function for regular accessor properties. | 
| +class JSAccessorPropertyDescriptor: public JSObject { | 
| + public: | 
| +  // Offsets of object fields. | 
| +  static const int kGetOffset = JSObject::kHeaderSize; | 
| +  static const int kSetOffset = kGetOffset + kPointerSize; | 
| +  static const int kEnumerableOffset = kSetOffset + kPointerSize; | 
| +  static const int kConfigurableOffset = kEnumerableOffset + kPointerSize; | 
| +  static const int kSize = kConfigurableOffset + kPointerSize; | 
| +  // Indices of in-object properties. | 
| +  static const int kGetIndex = 0; | 
| +  static const int kSetIndex = 1; | 
| +  static const int kEnumerableIndex = 2; | 
| +  static const int kConfigurableIndex = 3; | 
| + | 
| + private: | 
| +  DISALLOW_IMPLICIT_CONSTRUCTORS(JSAccessorPropertyDescriptor); | 
| +}; | 
| + | 
| + | 
| +// JSDataPropertyDescriptor is just a JSObject with a specific initial map. | 
| +// This initial map adds in-object properties for "value", "writable", | 
| +// "enumerable" and "configurable" properties, as assigned by the | 
| +// FromPropertyDescriptor function for regular data properties. | 
| +class JSDataPropertyDescriptor: public JSObject { | 
| + public: | 
| +  // Offsets of object fields. | 
| +  static const int kValueOffset = JSObject::kHeaderSize; | 
| +  static const int kWritableOffset = kValueOffset + kPointerSize; | 
| +  static const int kEnumerableOffset = kWritableOffset + kPointerSize; | 
| +  static const int kConfigurableOffset = kEnumerableOffset + kPointerSize; | 
| +  static const int kSize = kConfigurableOffset + kPointerSize; | 
| +  // Indices of in-object properties. | 
| +  static const int kValueIndex = 0; | 
| +  static const int kWritableIndex = 1; | 
| +  static const int kEnumerableIndex = 2; | 
| +  static const int kConfigurableIndex = 3; | 
| + | 
| + private: | 
| +  DISALLOW_IMPLICIT_CONSTRUCTORS(JSDataPropertyDescriptor); | 
| +}; | 
| + | 
| + | 
| // Common superclass for FixedArrays that allow implementations to share | 
| // common accessors and some code paths. | 
| class FixedArrayBase: public HeapObject { | 
|  |