Index: src/runtime/runtime-classes.cc |
diff --git a/src/runtime/runtime-classes.cc b/src/runtime/runtime-classes.cc |
index 167abcc310642710c6bbe9fe57735e38c277189b..dafaacf06293fffa99fbb7a6c9354bfc6d2853ef 100644 |
--- a/src/runtime/runtime-classes.cc |
+++ b/src/runtime/runtime-classes.cc |
@@ -119,6 +119,12 @@ RUNTIME_FUNCTION(Runtime_DefineClass) { |
if (super_class->IsNull()) { |
prototype_parent = isolate->factory()->null_value(); |
} else if (super_class->IsSpecFunction()) { |
+ if (Handle<JSFunction>::cast(super_class)->shared()->is_generator()) { |
+ Handle<Object> args[1] = {super_class}; |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, |
+ NewTypeError("extends_value_generator", HandleVector(args, 1))); |
+ } |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, prototype_parent, |
Runtime::GetObjectProperty(isolate, super_class, |