From 30b577138dda685f65a8529be1866afa6e321845 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 4 Oct 2016 11:50:26 +0200 Subject: Squashed 'thirdparty/preact/' content from commit b2d90cc git-subtree-dir: thirdparty/preact git-subtree-split: b2d90cc116f1d1998f7a7c98dc6986bf4c1841f4 --- src/render-queue.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/render-queue.js (limited to 'src/render-queue.js') diff --git a/src/render-queue.js b/src/render-queue.js new file mode 100644 index 000000000..ff603611b --- /dev/null +++ b/src/render-queue.js @@ -0,0 +1,23 @@ +import options from './options'; +import { defer } from './util'; +import { renderComponent } from './vdom/component'; + +/** Managed queue of dirty components to be re-rendered */ + +// items/itemsOffline swap on each rerender() call (just a simple pool technique) +let items = []; + +export function enqueueRender(component) { + if (!component._dirty && (component._dirty = true) && items.push(component)==1) { + (options.debounceRendering || defer)(rerender); + } +} + + +export function rerender() { + let p, list = items; + items = []; + while ( (p = list.pop()) ) { + if (p._dirty) renderComponent(p); + } +} -- cgit v1.2.3