Итак, с генератором это будет выглядеть так:
function test() {
// first part of function
yield;
// second part of function
yield;
}
var gen = test(); // creating a generator
gen.next(); // execute first part
button.onclick = function () {
gen.next(); // execute second part on button click
};
Живая демоверсия: http://jsfiddle.net/MQ9PT/
Это, однако, не работает за пределами Firefox. Он станет частью стандарта ECMAScript в следующем издании ...