UNPKG

d2-ui

Version:
37 lines (30 loc) 967 B
'use strict' var mergeDescriptors = require('merge-descriptors') var isObject = require('is-object') var hasOwnProperty = Object.prototype.hasOwnProperty function fill (destination, source, merge) { if (destination && (isObject(source) || isFunction(source))) { merge(destination, source, false) if (isFunction(destination) && isFunction(source) && source.prototype) { merge(destination.prototype, source.prototype, false) } } return destination } exports = module.exports = function fillKeys (destination, source) { return fill(destination, source, mergeDescriptors) } exports.es3 = function fillKeysEs3 (destination, source) { return fill(destination, source, es3Merge) } function es3Merge (destination, source) { for (var key in source) { if (!hasOwnProperty.call(destination, key)) { destination[key] = source[key] } } return destination } function isFunction (value) { return typeof value === 'function' }