| Index: src/lookup.h
|
| diff --git a/src/lookup.h b/src/lookup.h
|
| index 923e8107fd3a36c159b4396b458de7962baca666..2d609c5f666c6b77851cf3917f000e18e8d5b6e0 100644
|
| --- a/src/lookup.h
|
| +++ b/src/lookup.h
|
| @@ -47,7 +47,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED {
|
| LookupIterator(Handle<Object> receiver,
|
| Handle<Name> name,
|
| Configuration configuration = CHECK_ALL)
|
| - : configuration_(configuration),
|
| + : configuration_(ComputeConfiguration(configuration, name)),
|
| state_(NOT_FOUND),
|
| property_kind_(DATA),
|
| property_encoding_(DESCRIPTOR),
|
| @@ -66,7 +66,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED {
|
| Handle<Name> name,
|
| Handle<JSReceiver> holder,
|
| Configuration configuration = CHECK_ALL)
|
| - : configuration_(configuration),
|
| + : configuration_(ComputeConfiguration(configuration, name)),
|
| state_(NOT_FOUND),
|
| property_kind_(DATA),
|
| property_encoding_(DESCRIPTOR),
|
| @@ -187,6 +187,15 @@ class LookupIterator V8_FINAL BASE_EMBEDDED {
|
| return number_;
|
| }
|
|
|
| + static Configuration ComputeConfiguration(
|
| + Configuration configuration, Handle<Name> name) {
|
| + if (name->IsOwn()) {
|
| + return static_cast<Configuration>(configuration & CHECK_OWN);
|
| + } else {
|
| + return configuration;
|
| + }
|
| + }
|
| +
|
| Configuration configuration_;
|
| State state_;
|
| bool has_property_;
|
|
|