| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index 76b9b03bf62d51a0ff4a59127f809f8f441fef84..c28a34173d81cbd7304fe5041f418d4aa960263a 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -751,7 +751,8 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| Handle<Object> receiver,
|
| Handle<JSObject> holder,
|
| Handle<FixedArray> to,
|
| - Handle<FixedArrayBase> from) V8_FINAL V8_OVERRIDE {
|
| + Handle<FixedArrayBase> from,
|
| + FixedArray::KeyFilter filter) V8_FINAL V8_OVERRIDE {
|
| int len0 = to->length();
|
| #ifdef ENABLE_SLOW_DCHECKS
|
| if (FLAG_enable_slow_asserts) {
|
| @@ -781,6 +782,11 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| FixedArray);
|
|
|
| DCHECK(!value->IsTheHole());
|
| +
|
| + if (filter == FixedArray::NON_SYMBOL_KEYS && value->IsSymbol()) {
|
| + continue;
|
| + }
|
| +
|
| if (!HasKey(to, value)) {
|
| extra++;
|
| }
|
| @@ -814,6 +820,9 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| isolate, value,
|
| ElementsAccessorSubclass::GetImpl(receiver, holder, key, from),
|
| FixedArray);
|
| + if (filter == FixedArray::NON_SYMBOL_KEYS && value->IsSymbol()) {
|
| + continue;
|
| + }
|
| if (!value->IsTheHole() && !HasKey(to, value)) {
|
| result->set(len0 + index, *value);
|
| index++;
|
|
|