| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index f5cc051c095c70000986095d62d875c5c7f34476..3ddbe50f75904e7099ac25752d4c1edec6bec22e 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -5337,29 +5337,32 @@
|
| CERTAINLY_NOT_STORE_FROM_KEYED);
|
| }
|
|
|
| +
|
| MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
|
| Handle<JSObject> object, Handle<Name> name, Handle<Object> value,
|
| - PropertyAttributes attributes) {
|
| + PropertyAttributes attributes, AccessorInfoHandling handling) {
|
| DCHECK(!value->IsTheHole());
|
| LookupIterator it(object, name, LookupIterator::OWN);
|
| - return DefineOwnPropertyIgnoreAttributes(&it, value, attributes);
|
| -}
|
| + return DefineOwnPropertyIgnoreAttributes(&it, value, attributes, handling);
|
| +}
|
| +
|
|
|
| MaybeHandle<Object> JSObject::SetOwnElementIgnoreAttributes(
|
| Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes) {
|
| + PropertyAttributes attributes, AccessorInfoHandling handling) {
|
| Isolate* isolate = object->GetIsolate();
|
| LookupIterator it(isolate, object, index, LookupIterator::OWN);
|
| - return DefineOwnPropertyIgnoreAttributes(&it, value, attributes);
|
| -}
|
| + return DefineOwnPropertyIgnoreAttributes(&it, value, attributes, handling);
|
| +}
|
| +
|
|
|
| MaybeHandle<Object> JSObject::DefinePropertyOrElementIgnoreAttributes(
|
| Handle<JSObject> object, Handle<Name> name, Handle<Object> value,
|
| - PropertyAttributes attributes) {
|
| + PropertyAttributes attributes, AccessorInfoHandling handling) {
|
| Isolate* isolate = object->GetIsolate();
|
| LookupIterator it = LookupIterator::PropertyOrElement(isolate, object, name,
|
| LookupIterator::OWN);
|
| - return DefineOwnPropertyIgnoreAttributes(&it, value, attributes);
|
| + return DefineOwnPropertyIgnoreAttributes(&it, value, attributes, handling);
|
| }
|
|
|
|
|
| @@ -6591,8 +6594,8 @@
|
| ? desc->value()
|
| : Handle<Object>::cast(isolate->factory()->undefined_value()));
|
| MaybeHandle<Object> result =
|
| - JSObject::DefineOwnPropertyIgnoreAttributes(it, value,
|
| - desc->ToAttributes());
|
| + JSObject::DefineOwnPropertyIgnoreAttributes(
|
| + it, value, desc->ToAttributes(), JSObject::DONT_FORCE_FIELD);
|
| if (result.is_null()) return Nothing<bool>();
|
| }
|
| } else {
|
| @@ -6784,8 +6787,8 @@
|
| ? current->value()
|
| : Handle<Object>::cast(
|
| isolate->factory()->undefined_value()));
|
| - MaybeHandle<Object> result =
|
| - JSObject::DefineOwnPropertyIgnoreAttributes(it, value, attrs);
|
| + MaybeHandle<Object> result = JSObject::DefineOwnPropertyIgnoreAttributes(
|
| + it, value, attrs, JSObject::DONT_FORCE_FIELD);
|
| if (result.is_null()) return Nothing<bool>();
|
| } else {
|
| DCHECK(desc_is_accessor_descriptor ||
|
| @@ -6849,9 +6852,10 @@
|
| return Just(false);
|
| }
|
|
|
| - RETURN_ON_EXCEPTION_VALUE(it->isolate(),
|
| - DefineOwnPropertyIgnoreAttributes(it, value, NONE),
|
| - Nothing<bool>());
|
| + RETURN_ON_EXCEPTION_VALUE(
|
| + it->isolate(),
|
| + DefineOwnPropertyIgnoreAttributes(it, value, NONE, DONT_FORCE_FIELD),
|
| + Nothing<bool>());
|
|
|
| return Just(true);
|
| }
|
|
|