| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index abb046725c8a0923e2ccd45aaf9826ebb9eb0453..0d4e2cb76fcbb956ba81f45ca6f5e5e0549b6551 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -766,10 +766,9 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| }
|
|
|
| virtual MaybeHandle<FixedArray> AddElementsToFixedArray(
|
| - Handle<Object> receiver,
|
| - Handle<JSObject> holder,
|
| - Handle<FixedArray> to,
|
| - Handle<FixedArrayBase> from) FINAL OVERRIDE {
|
| + Handle<Object> receiver, Handle<JSObject> holder, Handle<FixedArray> to,
|
| + Handle<FixedArrayBase> from,
|
| + FixedArray::KeyFilter filter) FINAL OVERRIDE {
|
| int len0 = to->length();
|
| #ifdef ENABLE_SLOW_DCHECKS
|
| if (FLAG_enable_slow_asserts) {
|
| @@ -799,6 +798,9 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| FixedArray);
|
|
|
| DCHECK(!value->IsTheHole());
|
| + if (filter == FixedArray::NON_SYMBOL_KEYS && value->IsSymbol()) {
|
| + continue;
|
| + }
|
| if (!HasKey(to, value)) {
|
| extra++;
|
| }
|
| @@ -832,6 +834,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++;
|
|
|