Index: src/keys.cc |
diff --git a/src/keys.cc b/src/keys.cc |
index 65776041e113efe16f5a5b45033445471ee6728b..eaf33557f1de3cdbc1df0a250f6bcaa0b7b90a08 100644 |
--- a/src/keys.cc |
+++ b/src/keys.cc |
@@ -252,9 +252,11 @@ MaybeHandle<FixedArray> FilterProxyKeys(Isolate* isolate, Handle<JSProxy> owner, |
// Returns "nothing" in case of exception, "true" on success. |
Maybe<bool> KeyAccumulator::AddKeysFromProxy(Handle<JSProxy> proxy, |
Handle<FixedArray> keys) { |
- ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
- isolate_, keys, FilterProxyKeys(isolate_, proxy, keys, filter_), |
- Nothing<bool>()); |
+ if (filter_proxy_keys_) { |
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
+ isolate_, keys, FilterProxyKeys(isolate_, proxy, keys, filter_), |
+ Nothing<bool>()); |
+ } |
// Proxies define a complete list of keys with no distinction of |
// elements and properties, which breaks the normal assumption for the |
// KeyAccumulator. |
@@ -438,7 +440,8 @@ MaybeHandle<FixedArray> FastKeyAccumulator::GetKeysFast( |
MaybeHandle<FixedArray> FastKeyAccumulator::GetKeysSlow( |
GetKeysConversion convert) { |
- return JSReceiver::GetKeys(receiver_, type_, ENUMERABLE_STRINGS); |
+ return JSReceiver::GetKeys(receiver_, type_, ENUMERABLE_STRINGS, KEEP_NUMBERS, |
+ filter_proxy_keys_); |
} |
} // namespace internal |