Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 47b555c27706a8d9c65f53f856a9c4b3afaac916..1dbd10f8cabda3080e11635a8009b566f458d31d 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -785,16 +785,18 @@ static bool CompileUnoptimizedCode(CompilationInfo* info) { |
return true; |
} |
- |
static bool UseIgnition(CompilationInfo* info) { |
- // Cannot use Ignition when the {function_data} is already used. |
- if (info->has_shared_info() && info->shared_info()->HasBuiltinFunctionId()) { |
+ // TODO(4681): Generator functions are not yet supported. |
+ if ((info->has_shared_info() && info->shared_info()->is_generator()) || |
+ (info->has_literal() && IsGeneratorFunction(info->literal()->kind()))) { |
return false; |
} |
- // TODO(4681): Generators are not yet supported. |
- if ((info->has_shared_info() && info->shared_info()->is_generator()) || |
- (info->has_literal() && IsGeneratorFunction(info->literal()->kind()))) { |
+ // TODO(4681): Resuming a suspended frame is not supported. |
+ if (info->has_shared_info() && info->shared_info()->HasBuiltinFunctionId() && |
+ (info->shared_info()->builtin_function_id() == kGeneratorObjectNext || |
+ info->shared_info()->builtin_function_id() == kGeneratorObjectReturn || |
+ info->shared_info()->builtin_function_id() == kGeneratorObjectThrow)) { |
return false; |
} |