| Index: src/runtime/runtime-classes.cc | 
| diff --git a/src/runtime/runtime-classes.cc b/src/runtime/runtime-classes.cc | 
| index 50c2ccae9bc3120cc4b9f87a5f88e38bdad0e799..5219a6882b2ea72c61f4ff9f53dba107f74a8cdd 100644 | 
| --- a/src/runtime/runtime-classes.cc | 
| +++ b/src/runtime/runtime-classes.cc | 
| @@ -105,8 +105,9 @@ static MaybeHandle<Object> DefineClass(Isolate* isolate, Handle<Object> name, | 
| } else { | 
| if (super_class->IsNull()) { | 
| prototype_parent = isolate->factory()->null_value(); | 
| -    } else if (super_class->IsJSFunction()) {  // TODO(bmeurer): IsConstructor. | 
| -      if (Handle<JSFunction>::cast(super_class)->shared()->is_generator()) { | 
| +    } else if (super_class->IsConstructor()) { | 
| +      if (super_class->IsJSFunction() && | 
| +          Handle<JSFunction>::cast(super_class)->shared()->is_generator()) { | 
| THROW_NEW_ERROR( | 
| isolate, | 
| NewTypeError(MessageTemplate::kExtendsValueGenerator, super_class), | 
|  |