/ cloudformation-templates / node_modules / aws-cdk / node_modules / es5-ext / lib / Object / extend-properties.js
extend-properties.js
1 'use strict'; 2 3 var forEach = Array.prototype.forEach 4 , slice = Array.prototype.slice 5 , defineProperties = Object.defineProperties 6 , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor 7 , getOwnPropertyNames = Object.getOwnPropertyNames 8 , value = require('./valid-value') 9 , extend; 10 11 extend = function (properties, src) { 12 getOwnPropertyNames(src).forEach(function (key) { 13 var desc; 14 if (!(desc = getOwnPropertyDescriptor(this, key)) || desc.configurable) { 15 properties[key] = getOwnPropertyDescriptor(src, key); 16 } 17 }, this); 18 }; 19 20 module.exports = function (dest, src) { 21 var properties; 22 forEach.call(arguments, value); 23 slice.call(arguments, 1).forEach(extend.bind(dest, properties = {})); 24 return defineProperties(dest, properties); 25 };