e, postMessage, or MessageQueue, the runMutation line will become erratic, and eventually not fire at all.
</p>

<input type="button" value="Start" onclick="doStart(); return false;">
<div id="log"></div>

<script>
var logElement = document.getElementById('log');

var iterations = 0;
var twiddle = document.createTextNode('');
var observer = new MutationObserver(runMutation).observe(twiddle, {characterData: true});
function runMutation() {
  setTimeout(function() {
    twiddle.textContent = iterations++;
  }