Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 6d002919c23d92215633f5cc22bffe339ea72555..6328b81753bc5402ae70d67272f00ea0f8cb1edd 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -2840,8 +2840,12 @@ RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly) { |
DCHECK(args.length() == NamedLoadHandlerCompiler::kInterceptorArgsLength); |
Handle<Name> name = |
args.at<Name>(NamedLoadHandlerCompiler::kInterceptorArgsNameIndex); |
- Handle<InterceptorInfo> interceptor_info = args.at<InterceptorInfo>( |
- NamedLoadHandlerCompiler::kInterceptorArgsInfoIndex); |
+ Handle<JSObject> receiver = |
+ args.at<JSObject>(NamedLoadHandlerCompiler::kInterceptorArgsThisIndex); |
+ Handle<JSObject> holder = |
+ args.at<JSObject>(NamedLoadHandlerCompiler::kInterceptorArgsHolderIndex); |
+ HandleScope scope(isolate); |
+ Handle<InterceptorInfo> interceptor_info(holder->GetNamedInterceptor()); |
if (name->IsSymbol() && !interceptor_info->can_intercept_symbols()) |
return isolate->heap()->no_interceptor_result_sentinel(); |
@@ -2851,15 +2855,10 @@ RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly) { |
FUNCTION_CAST<v8::GenericNamedPropertyGetterCallback>(getter_address); |
DCHECK(getter != NULL); |
- Handle<JSObject> receiver = |
- args.at<JSObject>(NamedLoadHandlerCompiler::kInterceptorArgsThisIndex); |
- Handle<JSObject> holder = |
- args.at<JSObject>(NamedLoadHandlerCompiler::kInterceptorArgsHolderIndex); |
PropertyCallbackArguments callback_args(isolate, interceptor_info->data(), |
*receiver, *holder); |
{ |
// Use the interceptor getter. |
- HandleScope scope(isolate); |
v8::Handle<v8::Value> r = |
callback_args.Call(getter, v8::Utils::ToLocal(name)); |
RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate); |