Firefox, prior to version 26 implemented another iterator protocol that is similar to the standard ES2015 Iterator protocol.
The legacy generator function statement declares legacy generator functions with the specified parameters.
The Iterator function returns an object which implements legacy iterator protocol and iterates over enumerable properties of an object.
One addition of ECMAScript 2015 (ES6) is not new syntax or a new built-in, but a protocol. This protocol can be implemented by any object respecting some conventions.
The generator comprehension syntax is a JavaScript expression which allows you to quickly assemble a new generator function based on an existing iterable object. Comprehensions exist in many programming languages.
The function keyword can be used to define a legacy generator function inside an expression. To make the function a legacy generator, the function body should contain at least one yield expression.
The spread syntax allows an expression to be expanded in places where multiple arguments (for function calls) or multiple elements (for array literals) or multiple variables  (for destructuring assignment) are expected.
The function* declaration (function keyword followed by an asterisk) defines a generator function, which returns a Generator object.
The FormData.entries() method returns an iterator allowing to go through all key/value pairs contained in this object. The key of each pair is a USVString object; the value either a USVString, or a Blob.
The FormData.keys() method returns an iterator allowing to go through all keys contained in this object. The keys are USVString objects.
The FormData.values() method returns an iterator allowing to go through all values contained in this object. The values are USVString or Blob objects.
The initial value of the @@iterator property is the same function object as the initial value of the values() property.
The entries() method returns a new Array Iterator object that contains the key/value pairs for each index in the array.
The keys() method returns a new Array Iterator that contains the keys for each index in the array.
The values() method returns a new Array Iterator object that contains the values for each index in the array.
The GeneratorFunction constructor creates a new generator function object. In JavaScript every generator function is actually a GeneratorFunction object.
The GeneratorFunction.prototype property represents the GeneratorFunction prototype object.
The initial value of the @@iterator property is the same function object as the initial value of the entries property.
The entries() method returns a new Iterator object that contains the [key, value] pairs for each element in the Map object in insertion order.
The keys() method returns a new Iterator object that contains the keys for each element in the Map object in insertion order.