/** 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