| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index ca3af0c088a23ce6c46fbdd577a6a40d2582943f..0573ba13b6e56e388755dfed0008d60837d950b3 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -1352,8 +1352,14 @@ MaybeHandle<Object> Object::GetPropertyWithAccessor(LookupIterator* it) {
|
| Handle<Object> result = args.Call(call_fun, name);
|
| RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
|
| if (result.is_null()) return isolate->factory()->undefined_value();
|
| - // Rebox handle before return.
|
| - return handle(*result, isolate);
|
| + Handle<Object> reboxed_result = handle(*result, isolate);
|
| + if (info->replace_on_access() && receiver->IsJSReceiver()) {
|
| + args.Call(reinterpret_cast<GenericNamedPropertySetterCallback>(
|
| + &Accessors::ReconfigureToDataProperty),
|
| + name, result);
|
| + RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
|
| + }
|
| + return reboxed_result;
|
| }
|
|
|
| // Regular accessor.
|
|
|