| Index: src/lookup.cc
|
| diff --git a/src/lookup.cc b/src/lookup.cc
|
| index 6131ac96d0177c2139dab715212096a497b18cef..5391640ac1f1f1a3e7dc4f6f831b2c6724b039c2 100644
|
| --- a/src/lookup.cc
|
| +++ b/src/lookup.cc
|
| @@ -53,11 +53,12 @@ bool LookupIterator::NextHolder() {
|
| Handle<JSReceiver> next(JSReceiver::cast(holder_map_->prototype()));
|
|
|
| if (!check_derived() &&
|
| - // TODO(verwaest): Check if this is actually necessary currently. If it
|
| - // is, this should be handled by setting is_hidden_prototype on the
|
| - // global object behind the proxy.
|
| - !holder_map_->IsJSGlobalProxyMap() &&
|
| - !next->map()->is_hidden_prototype()) {
|
| + !(check_hidden() &&
|
| + // TODO(verwaest): Check if this is actually necessary currently. If it
|
| + // is, this should be handled by setting is_hidden_prototype on the
|
| + // global object behind the proxy.
|
| + (holder_map_->IsJSGlobalProxyMap() ||
|
| + next->map()->is_hidden_prototype()))) {
|
| return false;
|
| }
|
|
|
| @@ -189,8 +190,6 @@ Handle<Object> LookupIterator::GetDataValue() const {
|
| ASSERT_EQ(DATA, property_kind_);
|
| Handle<Object> value = FetchValue();
|
| if (value->IsTheHole()) {
|
| - ASSERT_EQ(DICTIONARY, property_encoding_);
|
| - ASSERT(GetHolder()->IsGlobalObject());
|
| ASSERT(property_details_.IsReadOnly());
|
| return factory()->undefined_value();
|
| }
|
|
|