| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 79dda37866f3e452ed6d1a33862e8375d5fe68b5..fd2a2c6ecf5fad06ae458acb5e92aeb4630c1863 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -8659,7 +8659,7 @@ static Maybe<bool> GetKeys_Internal(Isolate* isolate,
|
| : PrototypeIterator::END_AT_NULL;
|
| for (PrototypeIterator iter(isolate, object,
|
| PrototypeIterator::START_AT_RECEIVER, end);
|
| - !iter.IsAtEnd(); iter.Advance()) {
|
| + !iter.IsAtEnd();) {
|
| Handle<JSReceiver> current =
|
| PrototypeIterator::GetCurrent<JSReceiver>(iter);
|
| Maybe<bool> result = Just(false); // Dummy initialization.
|
| @@ -8675,6 +8675,9 @@ static Maybe<bool> GetKeys_Internal(Isolate* isolate,
|
| }
|
| MAYBE_RETURN(result, Nothing<bool>());
|
| if (!result.FromJust()) break; // |false| means "stop iterating".
|
| + if (!iter.AdvanceFollowingProxies(PrototypeIterator::STOP_EARLY)) {
|
| + return Nothing<bool>();
|
| + }
|
| }
|
| return Just(true);
|
| }
|
|
|