| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index c40549d514bd6a39d9d068c2f08329df566809e0..d7a47e32023ce61435e8d20b208535d4cdb31c28 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -870,7 +870,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent(
|
|
|
| Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
|
| Handle<Name> name, Handle<ExecutableAccessorInfo> callback) {
|
| - Register reg = CallbackFrontend(receiver(), name, callback);
|
| + Register reg = Frontend(receiver(), name);
|
| GenerateLoadCallback(reg, callback);
|
| return GetCode(kind(), Code::FAST, name);
|
| }
|
| @@ -879,8 +879,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
|
| Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
|
| Handle<Name> name, const CallOptimization& call_optimization) {
|
| DCHECK(call_optimization.is_simple_api_call());
|
| - Handle<JSFunction> callback = call_optimization.constant_function();
|
| - CallbackFrontend(receiver(), name, callback);
|
| + Frontend(receiver(), name);
|
| Handle<Map> receiver_map = IC::TypeToMap(*type(), isolate());
|
| GenerateFastApiCall(
|
| masm(), call_optimization, receiver_map,
|
| @@ -912,26 +911,18 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadInterceptor(
|
| void NamedLoadHandlerCompiler::GenerateLoadPostInterceptor(
|
| Register interceptor_reg, Handle<Name> name, LookupResult* lookup) {
|
| Handle<JSObject> real_named_property_holder(lookup->holder());
|
| +
|
| + set_type_for_object(holder());
|
| + set_holder(real_named_property_holder);
|
| + Register reg = Frontend(interceptor_reg, name);
|
| +
|
| if (lookup->IsField()) {
|
| - FieldIndex field = lookup->GetFieldIndex();
|
| - if (holder().is_identical_to(real_named_property_holder)) {
|
| - GenerateLoadField(interceptor_reg, field, lookup->representation());
|
| - } else {
|
| - set_type_for_object(holder());
|
| - set_holder(real_named_property_holder);
|
| - Register reg = Frontend(interceptor_reg, name);
|
| - GenerateLoadField(reg, field, lookup->representation());
|
| - }
|
| + GenerateLoadField(reg, lookup->GetFieldIndex(), lookup->representation());
|
| } else {
|
| - // We found CALLBACKS property in prototype chain of interceptor's holder.
|
| DCHECK(lookup->type() == CALLBACKS);
|
| Handle<ExecutableAccessorInfo> callback(
|
| ExecutableAccessorInfo::cast(lookup->GetCallbackObject()));
|
| DCHECK(callback->getter() != NULL);
|
| -
|
| - set_type_for_object(holder());
|
| - set_holder(real_named_property_holder);
|
| - Register reg = CallbackFrontend(interceptor_reg, name, callback);
|
| GenerateLoadCallback(reg, callback);
|
| }
|
| }
|
|
|