Interesting but can still be spammed, we need both techniques in play. This plus cookie/ip tagging.<p><pre><code> for (let i = 0; i < 20; i++) (() => {
const elem = document.querySelector('.votewdgt');
let widget = new VoteWidget(elem);
function vote () {
console.log('voted');
widget._state.voted = false;
widget.vote(vote);
}
vote();
})()</code></pre>