/* * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ (function(scope) { var iterations = 0; var callbacks = []; var twiddle = document.createTextNode(''); function endOfMicrotask(callback) { twiddle.textContent = iterations++; callbacks.push(callback); } function atEndOfMicrotask() { while (callbacks.length) { callbacks.shift()(); } } new (window.MutationObserver || JsMutationObserver)(atEndOfMicrotask) .observe(twiddle, {characterData: true}) ; // exports scope.endOfMicrotask = endOfMicrotask; })(Platform);