| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 01d313a9237faa329217f5fb986b1ae28e329346..a75fb4753cef8d8d79cf4283509655ad58ee0555 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -3997,20 +3997,11 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
|
|
|
| case LookupIterator::ACCESSOR: {
|
| PropertyDetails details = it.property_details();
|
| - Handle<Object> old_value = it.isolate()->factory()->the_hole_value();
|
| // Ensure the context isn't changed after calling into accessors.
|
| AssertNoContextChange ncc(it.isolate());
|
|
|
| Handle<Object> accessors = it.GetAccessors();
|
|
|
| - if (is_observed && accessors->IsAccessorInfo()) {
|
| - ASSIGN_RETURN_ON_EXCEPTION(
|
| - it.isolate(), old_value,
|
| - GetPropertyWithAccessor(it.GetReceiver(), it.name(),
|
| - it.GetHolder<JSObject>(), accessors),
|
| - Object);
|
| - }
|
| -
|
| // Special handling for ExecutableAccessorInfo, which behaves like a
|
| // data property.
|
| if (handling == DONT_FORCE_FIELD &&
|
| @@ -4025,21 +4016,6 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
|
| DCHECK(result->SameValue(*value));
|
|
|
| if (details.attributes() == attributes) {
|
| - // Regular property update if the attributes match.
|
| - if (is_observed && !old_value->SameValue(*value)) {
|
| - // If we are setting the prototype of a function and are
|
| - // observed, don't send change records because the prototype
|
| - // handles that itself.
|
| - if (!object->IsJSFunction() ||
|
| - !Name::Equals(it.isolate()->factory()->prototype_string(),
|
| - name) ||
|
| - !Handle<JSFunction>::cast(object)->should_have_prototype()) {
|
| - RETURN_ON_EXCEPTION(
|
| - it.isolate(),
|
| - EnqueueChangeRecord(object, "update", name, old_value),
|
| - Object);
|
| - }
|
| - }
|
| return value;
|
| }
|
|
|
| @@ -4053,12 +4029,10 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
|
| if (attributes & READ_ONLY) new_data->clear_setter();
|
| SetPropertyCallback(object, name, new_data, attributes);
|
| if (is_observed) {
|
| - if (old_value->SameValue(*value)) {
|
| - old_value = it.isolate()->factory()->the_hole_value();
|
| - }
|
| RETURN_ON_EXCEPTION(
|
| it.isolate(),
|
| - EnqueueChangeRecord(object, "reconfigure", name, old_value),
|
| + EnqueueChangeRecord(object, "reconfigure", name,
|
| + it.isolate()->factory()->the_hole_value()),
|
| Object);
|
| }
|
| return value;
|
| @@ -4069,12 +4043,10 @@ MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
|
| it.WriteDataValue(value);
|
|
|
| if (is_observed) {
|
| - if (old_value->SameValue(*value)) {
|
| - old_value = it.isolate()->factory()->the_hole_value();
|
| - }
|
| RETURN_ON_EXCEPTION(
|
| it.isolate(),
|
| - EnqueueChangeRecord(object, "reconfigure", name, old_value),
|
| + EnqueueChangeRecord(object, "reconfigure", name,
|
| + it.isolate()->factory()->the_hole_value()),
|
| Object);
|
| }
|
|
|
|
|