Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 46bd43541762a1956e37b96ddfd8152fed72d8e0..a5224f58468d4838e64a8bf579daffcdaa2b6c64 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -3067,19 +3067,17 @@ RUNTIME_FUNCTION(StoreCallbackProperty) { |
*/ |
RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly) { |
DCHECK(args.length() == NamedLoadHandlerCompiler::kInterceptorArgsLength); |
- Handle<Name> name_handle = |
+ Handle<Name> name = |
args.at<Name>(NamedLoadHandlerCompiler::kInterceptorArgsNameIndex); |
Handle<InterceptorInfo> interceptor_info = args.at<InterceptorInfo>( |
NamedLoadHandlerCompiler::kInterceptorArgsInfoIndex); |
- // TODO(rossberg): Support symbols in the API. |
- if (name_handle->IsSymbol()) |
+ if (name->IsSymbol() && !interceptor_info->can_intercept_symbols()) |
return isolate->heap()->no_interceptor_result_sentinel(); |
- Handle<String> name = Handle<String>::cast(name_handle); |
Address getter_address = v8::ToCData<Address>(interceptor_info->getter()); |
- v8::NamedPropertyGetterCallback getter = |
- FUNCTION_CAST<v8::NamedPropertyGetterCallback>(getter_address); |
+ v8::GenericNamedPropertyGetterCallback getter = |
+ FUNCTION_CAST<v8::GenericNamedPropertyGetterCallback>(getter_address); |
DCHECK(getter != NULL); |
Handle<JSObject> receiver = |