function GetIterator(obj) {
            var method = GetMethod(obj, iteratorSymbol);
            if (!IsCallable(method))
                throw new TypeError(); // from Call
            var iterator = method.call(obj);
            if (!IsObject(iterator))
                throw new TypeError();
            return iterator;
        }
function GetIterator(obj) {
            var method = GetMethod(obj, iteratorSymbol);
            if (!IsCallable(method))
                throw new TypeError(); 
            var iterator = method.call(obj);
            if (!IsObject(iterator))
                throw new TypeError();
            return iterator;
        }
function GetIterator ( obj ) { var method = GetMethod ( obj , iteratorSymbol ) ; if ( ! IsCallable ( method ) ) throw new TypeError ( ) ; // from Call var iterator = method . call ( obj ) ; if ( ! IsObject ( iterator ) ) throw new TypeError ( ) ; return iterator ; }
7.4 Operations on Iterator Objects https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects
7 . 4 Operations on Iterator Objects https : // tc39 . github . io / ecma262 / #sec - operations - on - iterator - objects