| Index: src/accessors.cc
 | 
| diff --git a/src/accessors.cc b/src/accessors.cc
 | 
| index 7a9d72515c328b4adf9ecbe2269d7b23b5c89cf2..8f2a8d52fd3da229c661d8e521a1ca628835b7bd 100644
 | 
| --- a/src/accessors.cc
 | 
| +++ b/src/accessors.cc
 | 
| @@ -797,16 +797,10 @@ static Handle<Object> GetFunctionPrototype(Isolate* isolate,
 | 
|  }
 | 
|  
 | 
|  
 | 
| -Handle<Object> Accessors::FunctionGetPrototype(Handle<JSFunction> function) {
 | 
| -  return GetFunctionPrototype(function->GetIsolate(), function);
 | 
| -}
 | 
| -
 | 
| -
 | 
| -
 | 
| -MaybeHandle<Object> SetFunctionPrototype(Isolate* isolate,
 | 
| -                                         Handle<JSObject> receiver,
 | 
| -                                         Handle<Object> value) {
 | 
| -    Handle<JSFunction> function;
 | 
| +static Handle<Object> SetFunctionPrototype(Isolate* isolate,
 | 
| +                                           Handle<JSObject> receiver,
 | 
| +                                           Handle<Object> value) {
 | 
| +  Handle<JSFunction> function;
 | 
|    {
 | 
|      DisallowHeapAllocation no_allocation;
 | 
|      JSFunction* function_raw = FindInstanceOf<JSFunction>(isolate, *receiver);
 | 
| @@ -816,8 +810,10 @@ MaybeHandle<Object> SetFunctionPrototype(Isolate* isolate,
 | 
|  
 | 
|    if (!function->should_have_prototype()) {
 | 
|      // Since we hit this accessor, object will have no prototype property.
 | 
| -    return JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| -        receiver, isolate->factory()->prototype_string(), value, NONE);
 | 
| +    MaybeHandle<Object> maybe_result =
 | 
| +        JSObject::SetLocalPropertyIgnoreAttributes(
 | 
| +            receiver, isolate->factory()->prototype_string(), value, NONE);
 | 
| +    return maybe_result.ToHandleChecked();
 | 
|    }
 | 
|  
 | 
|    Handle<Object> old_value;
 | 
| @@ -841,43 +837,51 @@ MaybeHandle<Object> SetFunctionPrototype(Isolate* isolate,
 | 
|  }
 | 
|  
 | 
|  
 | 
| +Handle<Object> Accessors::FunctionGetPrototype(Handle<JSFunction> function) {
 | 
| +  return GetFunctionPrototype(function->GetIsolate(), function);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  Handle<Object> Accessors::FunctionSetPrototype(Handle<JSFunction> function,
 | 
|                                                 Handle<Object> prototype) {
 | 
|    ASSERT(function->should_have_prototype());
 | 
|    Isolate* isolate = function->GetIsolate();
 | 
| -  Handle<Object> result;
 | 
| -  SetFunctionPrototype(isolate, function, prototype).ToHandle(&result);
 | 
| -  return result;
 | 
| +  return SetFunctionPrototype(isolate, function, prototype);
 | 
|  }
 | 
|  
 | 
|  
 | 
| -MaybeObject* Accessors::FunctionGetPrototype(Isolate* isolate,
 | 
| -                                             Object* object,
 | 
| -                                             void*) {
 | 
| +void Accessors::FunctionPrototypeGetter(
 | 
| +    v8::Local<v8::String> name,
 | 
| +    const v8::PropertyCallbackInfo<v8::Value>& info) {
 | 
| +  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
 | 
|    HandleScope scope(isolate);
 | 
| -  return *GetFunctionPrototype(isolate, Handle<Object>(object, isolate));
 | 
| +  Handle<Object> object = Utils::OpenHandle(*info.This());
 | 
| +  Handle<Object> result = GetFunctionPrototype(isolate, object);
 | 
| +  info.GetReturnValue().Set(Utils::ToLocal(result));
 | 
|  }
 | 
|  
 | 
|  
 | 
| -MaybeObject* Accessors::FunctionSetPrototype(Isolate* isolate,
 | 
| -                                             JSObject* object,
 | 
| -                                             Object* value,
 | 
| -                                             void*) {
 | 
| -  Handle<Object> result;
 | 
| -  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
 | 
| -      isolate, result,
 | 
| -      SetFunctionPrototype(isolate,
 | 
| -                           Handle<JSObject>(object, isolate),
 | 
| -                           Handle<Object>(value, isolate)));
 | 
| -  return *result;
 | 
| +void Accessors::FunctionPrototypeSetter(
 | 
| +    v8::Local<v8::String> name,
 | 
| +    v8::Local<v8::Value> val,
 | 
| +    const v8::PropertyCallbackInfo<void>& info) {
 | 
| +  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
 | 
| +  HandleScope scope(isolate);
 | 
| +  Handle<JSObject> object = Utils::OpenHandle(*info.This());
 | 
| +  Handle<Object> value = Utils::OpenHandle(*val);
 | 
| +
 | 
| +  SetFunctionPrototype(isolate, object, value);
 | 
|  }
 | 
|  
 | 
|  
 | 
| -const AccessorDescriptor Accessors::FunctionPrototype = {
 | 
| -  FunctionGetPrototype,
 | 
| -  FunctionSetPrototype,
 | 
| -  0
 | 
| -};
 | 
| +Handle<AccessorInfo> Accessors::FunctionPrototypeInfo(
 | 
| +      Isolate* isolate, PropertyAttributes attributes) {
 | 
| +  return MakeAccessor(isolate,
 | 
| +                      isolate->factory()->prototype_string(),
 | 
| +                      &FunctionPrototypeGetter,
 | 
| +                      &FunctionPrototypeSetter,
 | 
| +                      attributes);
 | 
| +}
 | 
|  
 | 
|  
 | 
|  //
 | 
| 
 |