| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 5dc18607b2b9431a96dd50693f00d35837a27af3..4c3e47db97894811792337eb0eba7f3976f1e84f 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -2479,12 +2479,6 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT static Maybe<bool> SetPropertyWithFailedAccessCheck(
|
| LookupIterator* it, Handle<Object> value, ShouldThrow should_throw);
|
|
|
| - // Add a property to a slow-case object.
|
| - static void AddSlowProperty(Handle<JSObject> object,
|
| - Handle<Name> name,
|
| - Handle<Object> value,
|
| - PropertyAttributes attributes);
|
| -
|
| MUST_USE_RESULT static Maybe<bool> DeletePropertyWithInterceptor(
|
| LookupIterator* it, ShouldThrow should_throw);
|
|
|
| @@ -3514,11 +3508,10 @@ class Dictionary: public HashTable<Derived, Shape, Key> {
|
| Handle<Object> value,
|
| PropertyDetails details);
|
|
|
| - MUST_USE_RESULT static Handle<Derived> Add(
|
| - Handle<Derived> dictionary,
|
| - Key key,
|
| - Handle<Object> value,
|
| - PropertyDetails details);
|
| + MUST_USE_RESULT static Handle<Derived> Add(Handle<Derived> dictionary,
|
| + Key key, Handle<Object> value,
|
| + PropertyDetails details,
|
| + int* entry_out = nullptr);
|
|
|
| // Returns iteration indices array for the |dictionary|.
|
| // Values are direct indices in the |HashTable| array.
|
| @@ -3532,13 +3525,9 @@ class Dictionary: public HashTable<Derived, Shape, Key> {
|
| Key key,
|
| Handle<Object> value);
|
|
|
| - // Add entry to dictionary.
|
| - static void AddEntry(
|
| - Handle<Derived> dictionary,
|
| - Key key,
|
| - Handle<Object> value,
|
| - PropertyDetails details,
|
| - uint32_t hash);
|
| + // Add entry to dictionary. Returns entry value.
|
| + static int AddEntry(Handle<Derived> dictionary, Key key, Handle<Object> value,
|
| + PropertyDetails details, uint32_t hash);
|
|
|
| // Generate new enumeration indices to avoid enumeration index overflow.
|
| // Returns iteration indices array for the |dictionary|.
|
| @@ -7829,8 +7818,9 @@ class JSGlobalObject : public JSObject {
|
| static void InvalidatePropertyCell(Handle<JSGlobalObject> object,
|
| Handle<Name> name);
|
| // Ensure that the global object has a cell for the given property name.
|
| - static Handle<PropertyCell> EnsurePropertyCell(Handle<JSGlobalObject> global,
|
| - Handle<Name> name);
|
| + static Handle<PropertyCell> EnsureEmptyPropertyCell(
|
| + Handle<JSGlobalObject> global, Handle<Name> name,
|
| + PropertyCellType cell_type, int* entry_out = nullptr);
|
|
|
| DECLARE_CAST(JSGlobalObject)
|
|
|
| @@ -9680,8 +9670,12 @@ class PropertyCell : public HeapObject {
|
| static PropertyCellType UpdatedType(Handle<PropertyCell> cell,
|
| Handle<Object> value,
|
| PropertyDetails details);
|
| - static void UpdateCell(Handle<GlobalDictionary> dictionary, int entry,
|
| - Handle<Object> value, PropertyDetails details);
|
| + // Prepares property cell at given entry for receiving given value.
|
| + // As a result the old cell could be invalidated and/or dependent code could
|
| + // be deoptimized. Returns the prepared property cell.
|
| + static Handle<PropertyCell> PrepareForValue(
|
| + Handle<GlobalDictionary> dictionary, int entry, Handle<Object> value,
|
| + PropertyDetails details);
|
|
|
| static Handle<PropertyCell> InvalidateEntry(
|
| Handle<GlobalDictionary> dictionary, int entry);
|
|
|