| Index: src/objects.h
|
| ===================================================================
|
| --- src/objects.h (revision 474)
|
| +++ src/objects.h (working copy)
|
| @@ -1303,10 +1303,27 @@
|
| JSFunction* function,
|
| PropertyAttributes attributes);
|
|
|
| - // Replace a constant function property on a fast-case object.
|
| - Object* ReplaceConstantFunctionProperty(String* name,
|
| - Object* value);
|
| + Object* ReplaceSlowProperty(String* name,
|
| + Object* value,
|
| + PropertyAttributes attributes);
|
|
|
| + // Converts a descriptor of any other type to a real field,
|
| + // backed by the properties array. Descriptors of visible
|
| + // types, such as CONSTANT_FUNCTION, keep their enumeration order.
|
| + // Converts the descriptor on the original object's map to a
|
| + // map transition, and the the new field is on the object's new map.
|
| + Object* ConvertDescriptorToFieldAndMapTransition(
|
| + String* name,
|
| + Object* new_value,
|
| + PropertyAttributes attributes);
|
| +
|
| + // Converts a descriptor of any other type to a real field,
|
| + // backed by the properties array. Descriptors of visible
|
| + // types, such as CONSTANT_FUNCTION, keep their enumeration order.
|
| + Object* ConvertDescriptorToField(String* name,
|
| + Object* new_value,
|
| + PropertyAttributes attributes);
|
| +
|
| // Add a property to a fast-case object.
|
| Object* AddFastProperty(String* name,
|
| Object* value,
|
| @@ -1377,6 +1394,10 @@
|
| static const uint32_t kMaxGap = 1024;
|
| static const int kMaxFastElementsLength = 5000;
|
| static const int kMaxFastProperties = 8;
|
| + // When extending the backing storage for property values, we increase
|
| + // its size by more than the 1 entry necessary, so sequentially adding fields
|
| + // to the same object requires fewer allocations and copies.
|
| + static const int kFieldsAdded = 3;
|
|
|
| // Layout description.
|
| static const int kPropertiesOffset = HeapObject::kHeaderSize;
|
| @@ -1562,7 +1583,6 @@
|
| inline void Get(int descriptor_number, Descriptor* desc);
|
| inline void Set(int descriptor_number, Descriptor* desc);
|
|
|
| - void ReplaceConstantFunction(int descriptor_number, JSFunction* value);
|
|
|
| // Copy the descriptor array, insert a new descriptor and optionally
|
| // remove map transitions. If the descriptor is already present, it is
|
| @@ -1572,20 +1592,6 @@
|
| // a transition, they must not be removed. All null descriptors are removed.
|
| Object* CopyInsert(Descriptor* descriptor, TransitionFlag transition_flag);
|
|
|
| - // Makes a copy of the descriptor array with the descriptor with key name
|
| - // removed. If name is the empty string, the descriptor array is copied.
|
| - // Transitions are removed if TransitionFlag is REMOVE_TRANSITIONS.
|
| - // All null descriptors are removed.
|
| - Object* CopyRemove(TransitionFlag remove_transitions, String* name);
|
| -
|
| - // Copy the descriptor array, replace the property index and attributes
|
| - // of the named property, but preserve its enumeration index.
|
| - Object* CopyReplace(String* name, int index, PropertyAttributes attributes);
|
| -
|
| - // Copy the descriptor array, removing the property index and attributes
|
| - // of the named property.
|
| - Object* CopyRemove(String* name);
|
| -
|
| // Remove all transitions. Return a copy of the array with all transitions
|
| // removed, or a Failure object if the new array could not be allocated.
|
| Object* RemoveTransitions();
|
|
|