The yield keyword is used in a generator function to return an IteratorResult to the caller. It has no other purpose, and if found outside such a function will raise a ReferenceError because it is then treated as an identifier.

Noncompliant Code Example

function foo() {
  for (var i = 0; i < 5; i++) {
    yield i * 2;
  }
}

Compliant Solution

function * foo() {
  for (var i = 0; i < 5; i++) {
    yield i * 2;
  }
}