Was passiert in ES6 mit den Argumenten im ersten Aufruf der `next` -Methode eines Iterators?

Wenn Sie einen Generator wie haben,

function* f () {
  // Before stuff.
  let a = yield 1;
  let b = yield 2;
  return [a,b];
}

Und dann renn

var g = f();
// this question is over this value.
g.next(123); // returns: { value: 1, done: false }
g.next(456); // returns: { value: 2, done: false }
g.next(); // returns: { value: [ 456, undefined ], done: true }

Der erste Anruf bei.next() zu setzena zu123 und der zweite Anruf zu setzenb zu456allerdings beim letzten anruf an.next() das ist rückkehr,

{ value: [ 456, undefined ], done: true }

Macht das Argument beim ersten Aufruf zug.next Hau ab? Was passiert mit ihnen? Wie stelle ich anhand des obigen Beispiels ein?a?