Backport: Fix Object.entries/values with changing elements

Bug: 111274046
Test: m -j proxy_resolver_v8_unittest && adb sync && adb shell \
/data/nativetest64/proxy_resolver_v8_unittest/proxy_resolver_v8_unittest
Change-Id: I705fc512cc5837e9364ed187559cc75d079aa5cb
(cherry picked from commit d8be9a10287afed07705ac8af027d6a46d4def99)

 static void GrowCapacityAndConvertImpl(Handle<JSObject> object,
 uint32_t capacity) {
 ElementsKind from_kind = object->GetElementsKind();
 if (IsFastSmiOrObjectElementsKind(from_kind)) {
      object->GetIsolate()->UpdateArrayProtectorOnSetLength(object);
 }
 Handle<FixedArrayBase> old_elements(object->elements());
    DCHECK(IsFastDoubleElementsKind(from_kind) !=
 IsFastDoubleElementsKind(kind()) ||
 IsDictionaryElementsKind(from_kind) ||
 static_cast<uint32_t>(old_elements->length()) < capacity);
 Subclass::BasicGrowCapacityAndConvertImpl(object, old_elements, from_kind,
                                              kind(), capacity);
 }

 static void GrowCapacityAndConvertImpl(Handle<JSObject> object,
 uint32_t capacity) {
 ElementsKind from_kind = object->GetElementsKind();
 if (IsFastSmiOrObjectElementsKind(from_kind)) {
      object->GetIsolate()->UpdateArrayProtectorOnSetLength(object);
 }
 Handle<FixedArrayBase> old_elements(object->elements());
    DCHECK(IsFastDoubleElementsKind(from_kind) !=
 IsFastDoubleElementsKind(kind()) ||
 IsDictionaryElementsKind(from_kind) ||
 static_cast<uint32_t>(old_elements->length()) < capacity);
 Subclass::BasicGrowCapacityAndConvertImpl(object, old_elements, from_kind,
                                              kind(), capacity);
 }
