function generator() {
  var i = 0;
  return {
    next: function() {
      i++;
      if (i >= 4) {
        return {done: true};
      } else {
        return {
          value: i,
          done: false
        };
      }
    }
  };
}

function fn() {
  var iterator = generator();
  var args = [iterator.next().value, iterator.next().value, iterator.next().value];
  iterator.next();

  return Math.max.apply(Math, args);
}

assertEqual(fn(), 3);
test(fn);
