2.8.13.4.5 Enumerator.prototype.moveNext ( )

1. If the this object is not an Enumerator object, throw a TypeError exception.

2. Let collection be the value of the this object’s [[Collection]] property.

3. If collection is undefined, return undefined.

4. Let state be the value of the this object’s [[EnumerationState]] property.

5. If state indicates that the end of the enumeration has been reached, return undefined.

6. Modify state to a state indicating that the current enumeration of collection is now positioned at the next item beyond the current item of the enumeration. The new state may indicate that the end of the enumeration has been reached.

7. Update the [[EnumerationState]] property of the this object to state.

8. Return undefined.