| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 8632)
|
| +++ src/objects.cc (working copy)
|
| @@ -1883,13 +1883,9 @@
|
| pt = pt->GetPrototype()) {
|
| JSObject::cast(pt)->LocalLookupRealNamedProperty(name, result);
|
| if (result->IsProperty()) {
|
| - if (result->IsReadOnly()) {
|
| - result->NotFound();
|
| - return;
|
| - }
|
| - if (result->type() == CALLBACKS) {
|
| - return;
|
| - }
|
| + if (result->type() == CALLBACKS && !result->IsReadOnly()) return;
|
| + // Found non-callback or read-only callback, stop looking.
|
| + break;
|
| }
|
| }
|
| result->NotFound();
|
| @@ -2273,10 +2269,10 @@
|
|
|
|
|
| MaybeObject* JSObject::SetPropertyForResult(LookupResult* result,
|
| - String* name,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode) {
|
| + String* name,
|
| + Object* value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode) {
|
| Heap* heap = GetHeap();
|
| // Make sure that the top context does not change when doing callbacks or
|
| // interceptor calls.
|
| @@ -4122,6 +4118,8 @@
|
| }
|
| }
|
| if (!map_done) continue;
|
| + } else {
|
| + map_or_index_field = NULL;
|
| }
|
| // That was the regular transitions, now for the prototype transitions.
|
| FixedArray* prototype_transitions =
|
|
|