2.1.4 [ECMA-262/6] Section 7.4.6 IteratorClose( iterator, completion )

V0035: IteratorClose is not correctly implemented

The specification states:

 7.4.6 IteratorClose( iterator, completion )
     The abstract operation IteratorClose with arguments iterator and completion is used 
     to notify an iterator that it should perform any actions it would normally perform 
     when it has reached its completed state:
         1.  Assert: Type(iterator) is Object.
         2.  Assert: completion is a Completion Record.
         3.  Let return be GetMethod(iterator, "return").
         4.  ReturnIfAbrupt(return).
         5.  If return is undefined, return Completion(completion).
         6.  Let innerResult be Call(return, iterator, «‍ »).
         7.  If completion.[[type]] is throw, return Completion(completion).
         8.  If innerResult.[[type]] is throw, return Completion(innerResult).
         9.  If Type(innerResult.[[value]]) is not Object, throw a TypeError exception.
         10. Return Completion(completion).

IE11 Mode and EdgeHTML Mode (All versions)

IteratorClose is not correctly implemented. It behaves as follows:

    7.4.6 IteratorClose( iterator, completion )

        1.  Assert: iterator is an Object.

        2.  Assert: completion is a Completion Record.

        3.  Return Completion(completion).