Blame view

node_modules/es5-ext/object/copy.js 570 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  "use strict";
  
  var aFrom  = require("../array/from")
    , assign = require("./assign")
    , value  = require("./valid-value");
  
  module.exports = function (obj/*, propertyNames, options*/) {
  	var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);
  	if (copy !== obj && !propertyNames) return copy;
  	var result = {};
  	if (propertyNames) {
  		aFrom(propertyNames, function (propertyName) {
  			if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];
  		});
  	} else {
  		assign(result, obj);
  	}
  	return result;
  };