ECMAScript 6 for..of

Currently Firefox only.

HTML

<button id="test">Click</button>

JavaScript

var first = function* (){
    console.log("first click");
    yield true;
    console.log("second click");
    yield true;
};

document.getElementById("test").addEventListener('click', first().next.bind(first()));