UNPKG

webdash-readme-preview

Version:
63 lines (57 loc) 1.74 kB
<!-- @license Copyright (c) 2017 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 --> <link rel="import" href="boot.html"> <script> (function() { 'use strict'; let debouncerQueue = []; /** * Adds a `Polymer.Debouncer` to a list of globally flushable tasks. * * @memberof Polymer * @param {!Polymer.Debouncer} debouncer Debouncer to enqueue * @return {void} */ Polymer.enqueueDebouncer = function(debouncer) { debouncerQueue.push(debouncer); }; function flushDebouncers() { const didFlush = Boolean(debouncerQueue.length); while (debouncerQueue.length) { try { debouncerQueue.shift().flush(); } catch(e) { setTimeout(() => { throw e; }); } } return didFlush; } /** * Forces several classes of asynchronously queued tasks to flush: * - Debouncers added via `enqueueDebouncer` * - ShadyDOM distribution * * @memberof Polymer * @return {void} */ Polymer.flush = function() { let shadyDOM, debouncers; do { shadyDOM = window.ShadyDOM && ShadyDOM.flush(); if (window.ShadyCSS && window.ShadyCSS.ScopingShim) { window.ShadyCSS.ScopingShim.flush(); } debouncers = flushDebouncers(); } while (shadyDOM || debouncers); }; })(); </script>