diff options
Diffstat (limited to 'node_modules/es5-ext/object')
-rw-r--r-- | node_modules/es5-ext/object/assign-deep.js | 29 | ||||
-rw-r--r-- | node_modules/es5-ext/object/ensure-natural-number-value.js | 9 | ||||
-rw-r--r-- | node_modules/es5-ext/object/ensure-natural-number.js | 5 | ||||
-rw-r--r-- | node_modules/es5-ext/object/ensure-promise.js | 2 | ||||
-rw-r--r-- | node_modules/es5-ext/object/index.js | 8 | ||||
-rw-r--r-- | node_modules/es5-ext/object/is-promise.js | 8 | ||||
-rw-r--r-- | node_modules/es5-ext/object/keys/implement.js | 8 | ||||
-rw-r--r-- | node_modules/es5-ext/object/keys/index.js | 4 | ||||
-rw-r--r-- | node_modules/es5-ext/object/keys/is-implemented.js | 4 | ||||
-rw-r--r-- | node_modules/es5-ext/object/keys/shim.js | 4 |
10 files changed, 43 insertions, 38 deletions
diff --git a/node_modules/es5-ext/object/assign-deep.js b/node_modules/es5-ext/object/assign-deep.js index 8034a038e..4a8597a49 100644 --- a/node_modules/es5-ext/object/assign-deep.js +++ b/node_modules/es5-ext/object/assign-deep.js @@ -2,31 +2,32 @@ var includes = require("../array/#/contains") , uniq = require("../array/#/uniq") + , copyDeep = require("./copy-deep") , objForEach = require("./for-each") , isPlainObject = require("./is-plain-object") , ensureValue = require("./valid-value"); var isArray = Array.isArray, slice = Array.prototype.slice; -var deepAssign = function (source, target) { - if (isPlainObject(source)) { - if (!isPlainObject(target)) return target; - objForEach(target, function (value, key) { - source[key] = deepAssign(source[key], value); - }); - return source; +var deepAssign = function (target, source) { + if (target === source) return target; + if (isPlainObject(target) && isPlainObject(source)) { + objForEach(source, function (value, key) { target[key] = deepAssign(target[key], value); }); + return target; } - if (isArray(source)) { - if (!isArray(target)) return target; - target.forEach(function (item) { - if (!includes.call(source, item)) source.push(item); + if (isArray(target) && isArray(source)) { + source.forEach(function (item) { + if (includes.call(target, item)) return; + if (isArray(item) || isPlainObject(item)) item = copyDeep(item); + target.push(item); }); - return source; + return target; } - return target; + if (isPlainObject(source) || isArray(source)) return copyDeep(source); + return source; }; -module.exports = function (target /*, ...objects*/) { +module.exports = function (target/*, ...objects*/) { return uniq .call([ensureValue(target)].concat(slice.call(arguments, 1).map(ensureValue))) .reduce(deepAssign); diff --git a/node_modules/es5-ext/object/ensure-natural-number-value.js b/node_modules/es5-ext/object/ensure-natural-number-value.js index d47d5d149..1a901aa42 100644 --- a/node_modules/es5-ext/object/ensure-natural-number-value.js +++ b/node_modules/es5-ext/object/ensure-natural-number-value.js @@ -1,9 +1,10 @@ "use strict"; -var ensure = require("./ensure-natural-number") - , isValue = require("./is-value"); +var isNaturalValue = require("./is-natural-number-value") + , toShortString = require("../to-short-string-representation"); module.exports = function (arg) { - if (!isValue(arg)) throw new TypeError(arg + " is not a natural number"); - return ensure(arg); + var num = Number(arg); + if (!isNaturalValue(arg)) throw new TypeError(toShortString(arg) + " is not a natural number"); + return num; }; diff --git a/node_modules/es5-ext/object/ensure-natural-number.js b/node_modules/es5-ext/object/ensure-natural-number.js index 5b35e4a13..ec7e51467 100644 --- a/node_modules/es5-ext/object/ensure-natural-number.js +++ b/node_modules/es5-ext/object/ensure-natural-number.js @@ -1,9 +1,10 @@ "use strict"; -var isNatural = require("../number/is-natural"); +var isNatural = require("../number/is-natural") + , toShortString = require("../to-short-string-representation"); module.exports = function (arg) { var num = Number(arg); - if (!isNatural(num)) throw new TypeError(arg + " is not a natural number"); + if (!isNatural(num)) throw new TypeError(toShortString(arg) + " is not a natural number"); return num; }; diff --git a/node_modules/es5-ext/object/ensure-promise.js b/node_modules/es5-ext/object/ensure-promise.js index 0a1119c4e..b5b535631 100644 --- a/node_modules/es5-ext/object/ensure-promise.js +++ b/node_modules/es5-ext/object/ensure-promise.js @@ -4,6 +4,6 @@ var safeToString = require("../safe-to-string") , isPromise = require("./is-promise"); module.exports = function (value) { - if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a thenable"); + if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a promise"); return value; }; diff --git a/node_modules/es5-ext/object/index.js b/node_modules/es5-ext/object/index.js index 7075be41a..ed0b7d5a6 100644 --- a/node_modules/es5-ext/object/index.js +++ b/node_modules/es5-ext/object/index.js @@ -12,9 +12,13 @@ module.exports = { create: require("./create"), ensureArray: require("./ensure-array"), ensureFiniteNumber: require("./ensure-finite-number"), + ensureInteger: require("./ensure-integer"), ensureNaturalNumber: require("./ensure-natural-number"), ensureNaturalNumberValue: require("./ensure-natural-number-value"), + ensurePlainFunction: require("./ensure-plain-function"), ensurePromise: require("./ensure-promise"), + ensureThenable: require("./ensure-thenable"), + entries: require("./entries"), eq: require("./eq"), every: require("./every"), filter: require("./filter"), @@ -31,11 +35,15 @@ module.exports = { isCopyDeep: require("./is-copy-deep"), isEmpty: require("./is-empty"), isFiniteNumber: require("./is-finite-number"), + isInteger: require("./is-integer"), + isNaturalNumber: require("./is-natural-number"), + isNaturalNumberValue: require("./is-natural-number-value"), isNumberValue: require("./is-number-value"), isObject: require("./is-object"), isPlainFunction: require("./is-plain-function"), isPlainObject: require("./is-plain-object"), isPromise: require("./is-promise"), + isThenable: require("./is-thenable"), isValue: require("./is-value"), keyOf: require("./key-of"), keys: require("./keys"), diff --git a/node_modules/es5-ext/object/is-promise.js b/node_modules/es5-ext/object/is-promise.js index 3e5d20d16..33d6df133 100644 --- a/node_modules/es5-ext/object/is-promise.js +++ b/node_modules/es5-ext/object/is-promise.js @@ -1,8 +1,4 @@ "use strict"; -var isCallable = require("./is-callable") - , isObject = require("./is-object"); - -module.exports = function (value) { - return isObject(value) && isCallable(value.then); -}; +// In next major this check will also confirm on promise constructor +module.exports = require("./is-thenable"); diff --git a/node_modules/es5-ext/object/keys/implement.js b/node_modules/es5-ext/object/keys/implement.js index 7119a706e..72ecfbdfc 100644 --- a/node_modules/es5-ext/object/keys/implement.js +++ b/node_modules/es5-ext/object/keys/implement.js @@ -1,8 +1,10 @@ "use strict"; if (!require("./is-implemented")()) { - Object.defineProperty(Object, "keys", { value: require("./shim"), + Object.defineProperty(Object, "keys", { + value: require("./shim"), configurable: true, -enumerable: false, -writable: true }); + enumerable: false, + writable: true + }); } diff --git a/node_modules/es5-ext/object/keys/index.js b/node_modules/es5-ext/object/keys/index.js index b56b5347c..d1942279f 100644 --- a/node_modules/es5-ext/object/keys/index.js +++ b/node_modules/es5-ext/object/keys/index.js @@ -1,5 +1,3 @@ "use strict"; -module.exports = require("./is-implemented")() - ? Object.keys - : require("./shim"); +module.exports = require("./is-implemented")() ? Object.keys : require("./shim"); diff --git a/node_modules/es5-ext/object/keys/is-implemented.js b/node_modules/es5-ext/object/keys/is-implemented.js index 7abd33a88..2dfcf1b99 100644 --- a/node_modules/es5-ext/object/keys/is-implemented.js +++ b/node_modules/es5-ext/object/keys/is-implemented.js @@ -5,6 +5,6 @@ module.exports = function () { Object.keys("primitive"); return true; } catch (e) { - return false; -} + return false; + } }; diff --git a/node_modules/es5-ext/object/keys/shim.js b/node_modules/es5-ext/object/keys/shim.js index bc802017e..a8908d5c7 100644 --- a/node_modules/es5-ext/object/keys/shim.js +++ b/node_modules/es5-ext/object/keys/shim.js @@ -4,6 +4,4 @@ var isValue = require("../is-value"); var keys = Object.keys; -module.exports = function (object) { - return keys(isValue(object) ? Object(object) : object); -}; +module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); }; |