Why isn't this `iterator.call(context || array, array[i], i)`?