| Index: src/isolate.cc | 
| diff --git a/src/isolate.cc b/src/isolate.cc | 
| index da298efee31dfcf64489cb99ee859537c4ac91fc..1edae6b61e4e98f7e112e0e9824f58806ba39d08 100644 | 
| --- a/src/isolate.cc | 
| +++ b/src/isolate.cc | 
| @@ -718,7 +718,9 @@ void Isolate::SetFailedAccessCheckCallback( | 
|  | 
| static inline AccessCheckInfo* GetAccessCheckInfo(Isolate* isolate, | 
| Handle<JSObject> receiver) { | 
| -  JSFunction* constructor = JSFunction::cast(receiver->map()->GetConstructor()); | 
| +  Object* maybe_constructor = receiver->map()->GetConstructor(); | 
| +  if (!maybe_constructor->IsJSFunction()) return NULL; | 
| +  JSFunction* constructor = JSFunction::cast(maybe_constructor); | 
| if (!constructor->shared()->IsApiFunction()) return NULL; | 
|  | 
| Object* data_obj = | 
| @@ -729,11 +731,16 @@ static inline AccessCheckInfo* GetAccessCheckInfo(Isolate* isolate, | 
| } | 
|  | 
|  | 
| +static void ThrowAccessCheckError(Isolate* isolate) { | 
| +  Handle<String> message = | 
| +      isolate->factory()->InternalizeUtf8String("no access"); | 
| +  isolate->ScheduleThrow(*isolate->factory()->NewTypeError(message)); | 
| +} | 
| + | 
| + | 
| void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) { | 
| if (!thread_local_top()->failed_access_check_callback_) { | 
| -    Handle<String> message = factory()->InternalizeUtf8String("no access"); | 
| -    ScheduleThrow(*factory()->NewTypeError(message)); | 
| -    return; | 
| +    return ThrowAccessCheckError(this); | 
| } | 
|  | 
| DCHECK(receiver->IsAccessCheckNeeded()); | 
| @@ -744,7 +751,10 @@ void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) { | 
| Handle<Object> data; | 
| { DisallowHeapAllocation no_gc; | 
| AccessCheckInfo* access_check_info = GetAccessCheckInfo(this, receiver); | 
| -    if (!access_check_info) return; | 
| +    if (!access_check_info) { | 
| +      AllowHeapAllocation doesnt_matter_anymore; | 
| +      return ThrowAccessCheckError(this); | 
| +    } | 
| data = handle(access_check_info->data(), this); | 
| } | 
|  | 
|  |