| Index: src/bootstrapper.cc
 | 
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
 | 
| index a82d1d69661f14d2e94757f724e17921075e1676..6e6c2c639c3708d0e42af10cf5ad61c62c445a4e 100644
 | 
| --- a/src/bootstrapper.cc
 | 
| +++ b/src/bootstrapper.cc
 | 
| @@ -1344,23 +1344,33 @@ bool Genesis::InstallNatives() {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -static void InstallCustomCallGenerator(Handle<JSFunction> holder_function,
 | 
| -                                       const char* function_name,
 | 
| -                                       int id) {
 | 
| -  Handle<JSObject> proto(JSObject::cast(holder_function->instance_prototype()));
 | 
| +static void InstallCustomCallGenerator(
 | 
| +    Handle<JSFunction> holder_function,
 | 
| +    CallStubCompiler::CustomGeneratorOwner owner_flag,
 | 
| +    const char* function_name,
 | 
| +    int id) {
 | 
| +  Handle<JSObject> owner;
 | 
| +  if (owner_flag == CallStubCompiler::FUNCTION) {
 | 
| +    owner = Handle<JSObject>::cast(holder_function);
 | 
| +  } else {
 | 
| +    ASSERT(owner_flag == CallStubCompiler::INSTANCE_PROTOTYPE);
 | 
| +    owner = Handle<JSObject>(
 | 
| +        JSObject::cast(holder_function->instance_prototype()));
 | 
| +  }
 | 
|    Handle<String> name = Factory::LookupAsciiSymbol(function_name);
 | 
| -  Handle<JSFunction> function(JSFunction::cast(proto->GetProperty(*name)));
 | 
| +  Handle<JSFunction> function(JSFunction::cast(owner->GetProperty(*name)));
 | 
|    function->shared()->set_function_data(Smi::FromInt(id));
 | 
|  }
 | 
|  
 | 
|  
 | 
|  void Genesis::InstallCustomCallGenerators() {
 | 
|    HandleScope scope;
 | 
| -#define INSTALL_CALL_GENERATOR(holder_fun, fun_name, name)                \
 | 
| +#define INSTALL_CALL_GENERATOR(holder_fun, owner_flag, fun_name, name)    \
 | 
|    {                                                                       \
 | 
|      Handle<JSFunction> holder(global_context()->holder_fun##_function()); \
 | 
|      const int id = CallStubCompiler::k##name##CallGenerator;              \
 | 
| -    InstallCustomCallGenerator(holder, #fun_name, id);                    \
 | 
| +    InstallCustomCallGenerator(holder, CallStubCompiler::owner_flag,      \
 | 
| +                               #fun_name, id);                            \
 | 
|    }
 | 
|    CUSTOM_CALL_IC_GENERATORS(INSTALL_CALL_GENERATOR)
 | 
|  #undef INSTALL_CALL_GENERATOR
 | 
| 
 |