Chromium Code Reviews| Index: src/keys.h |
| diff --git a/src/keys.h b/src/keys.h |
| index ecd3d97c550cf5a8aa80f2aa312c18d1001115ca..17fe382bc295d4ce6de88814e35c5b0c5f9745bc 100644 |
| --- a/src/keys.h |
| +++ b/src/keys.h |
| @@ -83,8 +83,8 @@ class KeyAccumulator final BASE_EMBEDDED { |
| } |
| // Shadowing keys are used to filter keys. This happens when non-enumerable |
| // keys appear again on the prototype chain. |
| - void AddShadowKey(Object* key); |
| - void AddShadowKey(Handle<Object> key); |
| + void AddShadowingKey(Object* key); |
| + void AddShadowingKey(Handle<Object> key); |
| private: |
| Maybe<bool> CollectOwnKeys(Handle<JSReceiver> receiver, |
| @@ -96,6 +96,7 @@ class KeyAccumulator final BASE_EMBEDDED { |
| Maybe<bool> AddKeysFromJSProxy(Handle<JSProxy> proxy, |
| Handle<FixedArray> keys); |
| bool IsShadowed(Handle<Object> key); |
| + bool HasShadowingKeys(); |
| Handle<OrderedHashSet> keys() { return Handle<OrderedHashSet>::cast(keys_); } |
| Isolate* isolate_; |
| @@ -104,12 +105,15 @@ class KeyAccumulator final BASE_EMBEDDED { |
| // result list, a FixedArray containing all collected keys. |
| Handle<FixedArray> keys_; |
| Handle<JSReceiver> last_non_empty_prototype_; |
| - Handle<ObjectHashSet> shadowed_keys_; |
| + Handle<ObjectHashSet> shadowing_keys_; |
| KeyCollectionMode mode_; |
| PropertyFilter filter_; |
| bool filter_proxy_keys_ = true; |
| bool is_for_in_ = false; |
| bool skip_indices_ = false; |
| + // For all the keys on the first reciever adding a shadowing key we can skip |
|
Jakob Kummerow
2016/07/21 09:25:45
nit: receiver
|
| + // the shadow check. |
| + bool skip_shadow_check_ = true; |
| DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); |
| }; |