function log(arg) { $('<div>').text(arg).appendTo('body') } var fibGen = function *(a) { var q = 0, r = 1; while (true) { r += q; q = r - q; var injected = yield r; log('You injected: ' + injected); } }; var fib = fibGen(); log(fib.next().value) log(fib.next('a').value) log(fib.next('b').value) log(fib.next('c').value) log(fib.next('d').value)