Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 43759571fabe93f0ef1db338c1b8f0329024b773..78021d5681b1f8f19d0d7dbcad3a6ee3d54b93cc 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -506,8 +506,7 @@ bool UseIgnition(CompilationInfo* info) { |
return false; |
} |
- // TODO(4681): Generator functions are not yet supported. |
- if (info->shared_info()->is_generator()) { |
+ if (info->shared_info()->is_generator() && !FLAG_ignition_generators) { |
return false; |
} |
@@ -840,6 +839,13 @@ MaybeHandle<Code> GetOptimizedCode(Handle<JSFunction> function, |
return MaybeHandle<Code>(); |
} |
+ // Do not use Crankshaft/TurboFan on a generator function. |
+ // TODO(neis): Eventually enable for Turbofan. |
+ if (IsGeneratorFunction(info->shared_info()->kind())) { |
+ info->AbortOptimization(kGenerator); |
+ return MaybeHandle<Code>(); |
+ } |
+ |
// Limit the number of times we try to optimize functions. |
const int kMaxOptCount = |
FLAG_deopt_every_n_times == 0 ? FLAG_max_opt_count : 1000; |