| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 79c9d49a894b836b47997a5b1374e5a9ca003af6..6aa356803f24513c6a4bd8cf40081f8b70ae5687 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -5026,15 +5026,12 @@ RUNTIME_FUNCTION(Runtime_DefineDataPropertyUnchecked) {
|
| return isolate->heap()->undefined_value();
|
| }
|
|
|
| - LookupResult lookup(isolate);
|
| - js_object->LookupOwnRealNamedProperty(name, &lookup);
|
| + LookupIterator it(js_object, name, LookupIterator::CHECK_PROPERTY);
|
|
|
| // Take special care when attributes are different and there is already
|
| - // a property. For simplicity we normalize the property which enables us
|
| - // to not worry about changing the instance_descriptor and creating a new
|
| - // map.
|
| - if (lookup.IsFound() &&
|
| - (attr != lookup.GetAttributes() || lookup.IsPropertyCallbacks())) {
|
| + // a property.
|
| + if (it.IsFound() && it.HasProperty() &&
|
| + it.property_kind() == LookupIterator::ACCESSOR) {
|
| // Use IgnoreAttributes version since a readonly property may be
|
| // overridden and SetProperty does not allow this.
|
| Handle<Object> result;
|
|
|