== Why is this an issue? In JavaScript, a generator is a special type of function that can be paused and resumed during its execution. It allows you to define an iterative algorithm by writing a function that can maintain its internal state and produce a sequence of values over time. Generators are defined using a function syntax with an asterisk ``++(*)++`` appended to the ``++function++`` keyword (``++function*++``). Within the generator function, you can use the ``++yield++`` keyword to produce a value and temporarily pause the execution of the function, returning that value to the consumer. [source,javascript] ---- function* generate() { yield 1; yield 2; yield 3; } ---- This example defines a generator function named ``++generate++`` that produces a sequence of values: 1, 2, and 3. Using a generator without the ``++yield++`` keyword can limit the usefulness and potential benefits of generators. When you use the ``++yield++`` keyword without providing a value, it creates a yield expression that pauses the execution of the generator function and returns ``++undefined++`` as the yielded value. [source,javascript,diff-id=1,diff-type=noncompliant] ---- function* range(start, end) { while (start < end) { yield; // Noncompliant: The generator yields undefined start++; } } ---- Yielding without a value makes it harder for the generator consumer to understand the purpose or context of the yielded value. Instead, one should always provide an explicit value with ``++yield++`` (using `undefined` when that is the intention) to make the generated sequence more meaningful and informative. [source,javascript,diff-id=1,diff-type=compliant] ---- function* range(start, end) { while (start < end) { yield start; start++; } } ---- == Resources === Documentation * MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator[Generator] * MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield[``++yield++``] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Add a "yield" statement to this generator. === Highlighting ``++function* xxx++`` ''' == Comments And Links (visible only on this page) === on 5 Feb 2016, 15:52:49 Elena Vilchik wrote: \[~ann.campbell.2] Could you add to description smth like "It even could be a bug in your problem as you your iterator produced by this generator function is always empty"? And I would like to remove highlighting and specific message for return, I don't think it's worth that. Are you ok? === on 5 Feb 2016, 16:06:15 Ann Campbell wrote: done [~elena.vilchik] endif::env-github,rspecator-view[]