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;
| };
|
|