| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index 8323c8950f890e373e2e385631782f41daf9460a..5280256fd5e8f7d819ab3962b6b120426d5765fb 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -870,23 +870,19 @@ class ElementsAccessorBase : public ElementsAccessor {
|
|
|
| virtual void AddElementsToKeyAccumulator(Handle<JSObject> receiver,
|
| KeyAccumulator* accumulator,
|
| - KeyFilter filter) final {
|
| + AddKeyConversion convert) final {
|
| Handle<FixedArrayBase> from(receiver->elements());
|
| uint32_t add_length =
|
| ElementsAccessorSubclass::GetCapacityImpl(*receiver, *from);
|
| if (add_length == 0) return;
|
| - accumulator->PrepareForComparisons(add_length);
|
| - int prev_key_count = accumulator->GetLength();
|
| +
|
| for (uint32_t i = 0; i < add_length; i++) {
|
| if (!ElementsAccessorSubclass::HasEntryImpl(*from, i)) continue;
|
| Handle<Object> value = ElementsAccessorSubclass::GetImpl(from, i);
|
| DCHECK(!value->IsTheHole());
|
| DCHECK(!value->IsAccessorPair());
|
| DCHECK(!value->IsExecutableAccessorInfo());
|
| - if (filter == SKIP_SYMBOLS && value->IsSymbol()) {
|
| - continue;
|
| - }
|
| - accumulator->AddKey(value, prev_key_count);
|
| + accumulator->AddKey(value, convert);
|
| }
|
| }
|
|
|
| @@ -895,7 +891,8 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| return backing_store->length();
|
| }
|
|
|
| - uint32_t GetCapacity(JSObject* holder, FixedArrayBase* backing_store) final {
|
| + virtual uint32_t GetCapacity(JSObject* holder,
|
| + FixedArrayBase* backing_store) final {
|
| return ElementsAccessorSubclass::GetCapacityImpl(holder, backing_store);
|
| }
|
|
|
|
|