| Index: src/objects.h
|
| ===================================================================
|
| --- src/objects.h (revision 500)
|
| +++ src/objects.h (working copy)
|
| @@ -1349,6 +1349,11 @@
|
| // Returns failure if allocation failed.
|
| Object* TransformToFastProperties(int unused_property_fields);
|
|
|
| + // Access fast-case object properties at index.
|
| + inline Object* FastPropertyAt(int index);
|
| + inline Object* FastPropertyAtPut(int index, Object* value);
|
| +
|
| +
|
| // initializes the body after properties slot, properties slot is
|
| // initialized by set_properties
|
| // Note: this call does not update write barrier, it is caller's
|
| @@ -2254,6 +2259,10 @@
|
| inline int instance_size();
|
| inline void set_instance_size(int value);
|
|
|
| + // Count of properties allocated in the object.
|
| + inline int inobject_properties();
|
| + inline void set_inobject_properties(int value);
|
| +
|
| // instance type.
|
| inline InstanceType instance_type();
|
| inline void set_instance_type(InstanceType value);
|
| @@ -2396,7 +2405,8 @@
|
| #endif
|
|
|
| // Layout description.
|
| - static const int kInstanceAttributesOffset = HeapObject::kHeaderSize;
|
| + static const int kInstanceSizesOffset = HeapObject::kHeaderSize;
|
| + static const int kInstanceAttributesOffset = kInstanceSizesOffset + kIntSize;
|
| static const int kPrototypeOffset = kInstanceAttributesOffset + kIntSize;
|
| static const int kConstructorOffset = kPrototypeOffset + kPointerSize;
|
| static const int kInstanceDescriptorsOffset =
|
| @@ -2404,11 +2414,17 @@
|
| static const int kCodeCacheOffset = kInstanceDescriptorsOffset + kPointerSize;
|
| static const int kSize = kCodeCacheOffset + kIntSize;
|
|
|
| + // Byte offsets within kInstanceSizesOffset.
|
| + static const int kInstanceSizeOffset = kInstanceSizesOffset + 0;
|
| + static const int kInObjectPropertiesOffset = kInstanceSizesOffset + 1;
|
| + // The bytes at positions 2 and 3 are not in use at the moment.
|
| +
|
| +
|
| // Byte offsets within kInstanceAttributesOffset attributes.
|
| - static const int kInstanceSizeOffset = kInstanceAttributesOffset + 0;
|
| - static const int kInstanceTypeOffset = kInstanceAttributesOffset + 1;
|
| - static const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 2;
|
| - static const int kBitFieldOffset = kInstanceAttributesOffset + 3;
|
| + static const int kInstanceTypeOffset = kInstanceAttributesOffset + 0;
|
| + static const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 1;
|
| + static const int kBitFieldOffset = kInstanceAttributesOffset + 2;
|
| + // The byte at position 3 is not in use at the moment.
|
|
|
| // Bit positions for bit field.
|
| static const int kUnused = 0; // To be used for marking recently used maps.
|
|
|