| Index: src/key-accumulator.cc
|
| diff --git a/src/key-accumulator.cc b/src/key-accumulator.cc
|
| index 9951636963d29d458c80ee4ab946e49f20f0dcd7..e7a9c3ccebccd3ba56b7a87b6cc7c1f9148deae7 100644
|
| --- a/src/key-accumulator.cc
|
| +++ b/src/key-accumulator.cc
|
| @@ -234,10 +234,10 @@ MaybeHandle<FixedArray> FilterProxyKeys(Isolate* isolate, Handle<JSProxy> owner,
|
| if (key->FilterKey(filter)) continue; // Skip this key.
|
| if (filter & ONLY_ENUMERABLE) {
|
| PropertyDescriptor desc;
|
| - bool found =
|
| + Maybe<bool> found =
|
| JSProxy::GetOwnPropertyDescriptor(isolate, owner, key, &desc);
|
| - if (isolate->has_pending_exception()) return MaybeHandle<FixedArray>();
|
| - if (!found || !desc.enumerable()) continue; // Skip this key.
|
| + MAYBE_RETURN(found, MaybeHandle<FixedArray>());
|
| + if (!found.FromJust() || !desc.enumerable()) continue; // Skip this key.
|
| }
|
| // Keep this key.
|
| if (store_position != i) {
|
| @@ -251,11 +251,12 @@ MaybeHandle<FixedArray> FilterProxyKeys(Isolate* isolate, Handle<JSProxy> owner,
|
| }
|
|
|
|
|
| -// Returns "false" in case of exception, "true" on success.
|
| -bool KeyAccumulator::AddKeysFromProxy(Handle<JSProxy> proxy,
|
| - Handle<FixedArray> keys) {
|
| +// 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_), false);
|
| + 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.
|
| @@ -264,7 +265,7 @@ bool KeyAccumulator::AddKeysFromProxy(Handle<JSProxy> proxy,
|
| // element keys for this level. Otherwise we would not fully respect the order
|
| // given by the proxy.
|
| level_string_length_ = -level_string_length_;
|
| - return true;
|
| + return Just(true);
|
| }
|
|
|
|
|
|
|