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/util.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/util.js (limited to 'src/util.js') diff --git a/src/util.js b/src/util.js new file mode 100644 index 000000000..d2e63b090 --- /dev/null +++ b/src/util.js @@ -0,0 +1,68 @@ +/** Copy own-properties from `props` onto `obj`. + * @returns obj + * @private + */ +export function extend(obj, props) { + if (props) { + for (let i in props) obj[i] = props[i]; + } + return obj; +} + + +/** Fast clone. Note: does not filter out non-own properties. + * @see https://esbench.com/bench/56baa34f45df6895002e03b6 + */ +export function clone(obj) { + return extend({}, obj); +} + + +/** Get a deep property value from the given object, expressed in dot-notation. + * @private + */ +export function delve(obj, key) { + for (let p=key.split('.'), i=0; i lcCache[s] || (lcCache[s] = s.toLowerCase()); + + +/** Call a function asynchronously, as soon as possible. + * @param {Function} callback + */ +let resolved = typeof Promise!=='undefined' && Promise.resolve(); +export const defer = resolved ? (f => { resolved.then(f); }) : setTimeout; -- cgit v1.2.3