dOfMicrotask() {
var len = callbacks.length;
for (var i = 0; i < len; i++) {
var cb = callbacks[i];
if (cb) {
cb();
}
}
callbacks.splice(0, len);
lastVal += len;
}
new (window.MutationObserver || JsMutationObserver)(atEndOfMicrotask).observe(twiddle, {
characterData: true
});
return {
run: runAsync,
cancel: cancelAsync
};
}();

Polymer.Debounce = function() {
var Async = Polymer.Async;
var Debouncer = function(context) {
this.context = context;
this.boundComplete = this.complete.bind(this);
};
Debouncer.pro