| /* |
| * 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; |
| // bc |
| Platform.endOfMicrotask = endOfMicrotask; |
| |
| })(Polymer); |
| |