This is a good start. You can extend this to other ES5 array methods too and then extend `lookupIterator` to allow passing `iterator = toIterator(iterator, context)` to wrap if `context` is not `undefined`.