| Index: src/keys.h
|
| diff --git a/src/keys.h b/src/keys.h
|
| index e24064699d694f2b127c77af18723f7db6d2fe86..aa1ffc4265d4d44a91f85316c163e71c2fe2240f 100644
|
| --- a/src/keys.h
|
| +++ b/src/keys.h
|
| @@ -36,6 +36,15 @@ class KeyAccumulator final BASE_EMBEDDED {
|
| : isolate_(isolate), type_(type), filter_(filter) {}
|
| ~KeyAccumulator();
|
|
|
| + Handle<FixedArray> GetKeys(GetKeysConversion convert = KEEP_NUMBERS);
|
| + Maybe<bool> CollectKeys(Handle<JSReceiver> receiver,
|
| + Handle<JSReceiver> object);
|
| + void CollectOwnElementIndices(Handle<JSObject> object);
|
| + void CollectOwnPropertyNames(Handle<JSObject> object);
|
| +
|
| + static Handle<FixedArray> GetEnumPropertyKeys(Isolate* isolate,
|
| + Handle<JSObject> object);
|
| +
|
| bool AddKey(uint32_t key);
|
| bool AddKey(Object* key, AddKeyConversion convert);
|
| bool AddKey(Handle<Object> key, AddKeyConversion convert);
|
| @@ -44,38 +53,27 @@ class KeyAccumulator final BASE_EMBEDDED {
|
| void AddKeysFromProxy(Handle<JSObject> array);
|
| Maybe<bool> AddKeysFromProxy(Handle<JSProxy> proxy, Handle<FixedArray> keys);
|
| void AddElementKeysFromInterceptor(Handle<JSObject> array);
|
| +
|
| // Jump to the next level, pushing the current |levelLength_| to
|
| // |levelLengths_| and adding a new list to |elements_|.
|
| void NextPrototype();
|
| // Sort the integer indices in the last list in |elements_|
|
| void SortCurrentElementsList();
|
| - Handle<FixedArray> GetKeys(GetKeysConversion convert = KEEP_NUMBERS);
|
| int length() { return length_; }
|
| Isolate* isolate() { return isolate_; }
|
| - void set_filter_proxy_keys(bool filter) { filter_proxy_keys_ = filter; }
|
| PropertyFilter filter() { return filter_; }
|
| -
|
| - Maybe<bool> GetKeys_Internal(Handle<JSReceiver> receiver,
|
| - Handle<JSReceiver> object,
|
| - KeyCollectionType type);
|
| - static Handle<FixedArray> GetEnumPropertyKeys(Isolate* isolate,
|
| - Handle<JSObject> object);
|
| -
|
| - void CollectOwnElementKeys(Handle<JSObject> object);
|
| - void CollectOwnPropertyNames(Handle<JSObject> object);
|
| + void set_filter_proxy_keys(bool filter) { filter_proxy_keys_ = filter; }
|
|
|
| private:
|
| + Maybe<bool> CollectOwnJSProxyKeys(Handle<JSReceiver> receiver,
|
| + Handle<JSProxy> proxy);
|
| + Maybe<bool> CollectOwnKeys(Handle<JSReceiver> receiver,
|
| + Handle<JSObject> object);
|
| bool AddIntegerKey(uint32_t key);
|
| bool AddStringKey(Handle<Object> key, AddKeyConversion convert);
|
| bool AddSymbolKey(Handle<Object> array);
|
| void SortCurrentElementsListRemoveDuplicates();
|
|
|
| - Maybe<bool> JSProxyOwnPropertyKeys(Handle<JSReceiver> receiver,
|
| - Handle<JSProxy> proxy);
|
| - Maybe<bool> GetKeysFromJSObject(Handle<JSReceiver> receiver,
|
| - Handle<JSObject> object,
|
| - KeyCollectionType type);
|
| -
|
| Isolate* isolate_;
|
| KeyCollectionType type_;
|
| PropertyFilter filter_;
|
|
|