| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index d75b3e9799abae97e9fad7e6fc99c66bf99b209d..a12a21847d6401fcae43b1d4ab1b2571c34c62a7 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1322,7 +1322,7 @@ static bool LookupForWrite(Handle<JSObject> receiver,
|
| // yet prepared for this scenario.
|
| if (!FLAG_es5_readonly) return false;
|
| receiver->Lookup(*name, lookup);
|
| - if (!lookup->IsCallbacks()) return false;
|
| + if (!lookup->IsPropertyCallbacks()) return false;
|
| Handle<Object> callback(lookup->GetCallbackObject());
|
| return callback->IsAccessorPair() && StoreICableLookup(lookup);
|
| }
|
| @@ -1512,10 +1512,7 @@ void StoreIC::UpdateCaches(LookupResult* lookup,
|
| case CONSTANT_FUNCTION:
|
| return;
|
| case TRANSITION: {
|
| - Object* value = lookup->GetTransitionValue();
|
| - // Callbacks.
|
| - if (value->IsAccessorPair()) return;
|
| -
|
| + Map* value = lookup->GetTransitionTarget();
|
| Handle<Map> transition(Map::cast(value));
|
| DescriptorArray* target_descriptors = transition->instance_descriptors();
|
| int descriptor = target_descriptors->LastAdded();
|
| @@ -1978,16 +1975,8 @@ void KeyedStoreIC::UpdateCaches(LookupResult* lookup,
|
| Handle<Map>::null(), strict_mode);
|
| break;
|
| case TRANSITION: {
|
| - Object* value = lookup->GetTransitionValue();
|
| - // Callbacks transition.
|
| - if (value->IsAccessorPair()) {
|
| - code = (strict_mode == kStrictMode)
|
| - ? generic_stub_strict()
|
| - : generic_stub();
|
| - break;
|
| - }
|
| + Handle<Map> transition(lookup->GetTransitionTarget());
|
|
|
| - Handle<Map> transition(Map::cast(value));
|
| DescriptorArray* target_descriptors = transition->instance_descriptors();
|
| int descriptor = target_descriptors->LastAdded();
|
| PropertyDetails details = target_descriptors->GetDetails(descriptor);
|
| @@ -2146,7 +2135,7 @@ RUNTIME_FUNCTION(MaybeObject*, StoreIC_ArrayLength) {
|
| // The length property has to be a writable callback property.
|
| LookupResult debug_lookup(isolate);
|
| receiver->LocalLookup(isolate->heap()->length_symbol(), &debug_lookup);
|
| - ASSERT(debug_lookup.IsCallbacks() && !debug_lookup.IsReadOnly());
|
| + ASSERT(debug_lookup.IsPropertyCallbacks() && !debug_lookup.IsReadOnly());
|
| #endif
|
|
|
| Object* result;
|
|
|