promise.js
function CreateArrayIterator ( array, kind ) {
    var O = ToObject(array),
      iterator = Object.create(ArrayIteratorPrototype);
    defineInternal(iterator, '[[IteratedObject]]', O);
    defineInternal(iterator, '[[ArrayIteratorNextIndex]]', 0);
    defineInternal(iterator, '[[ArrayIteratorKind]]', kind);
    return iterator;
  }
function CreateArrayIterator ( array, kind ) {
    var O = ToObject(array),
      iterator = Object.create(ArrayIteratorPrototype);
    defineInternal(iterator, '[[IteratedObject]]', O);
    defineInternal(iterator, '[[ArrayIteratorNextIndex]]', 0);
    defineInternal(iterator, '[[ArrayIteratorKind]]', kind);
    return iterator;
  }
function CreateArrayIterator ( array , kind ) { var O = ToObject ( array ) , iterator = Object . create ( ArrayIteratorPrototype ) ; defineInternal ( iterator , '[[IteratedObject]]' , O ) ; defineInternal ( iterator , '[[ArrayIteratorNextIndex]]' , 0 ) ; defineInternal ( iterator , '[[ArrayIteratorKind]]' , kind ) ; return iterator ; }
22.1.5.1 CreateArrayIterator Abstract Operation
22 . 1 . 5 . 1 CreateArrayIterator Abstract Operation