lodash-rails 4.17.2 → 4.17.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71c27c620c28739345fd82e4ef9be84fb3e21f02
4
- data.tar.gz: 59d36f9b1aabce710afda4f4102894ddb38d6b56
3
+ metadata.gz: 5bdc40792066ab364d12216be61344b8f7deb2a7
4
+ data.tar.gz: 47c9e188cdf326b5247f2afd0475df06de377261
5
5
  SHA512:
6
- metadata.gz: 2b50ca45973f7f56aeaf14bd118f3db873810769884ab7f885bc1ba411b0ee17e76ab0bfd7ceef7419870a3a61cbee1c04d8840ea95535ec6cc9f16bbdc26625
7
- data.tar.gz: d870f9e4fa8312b2b6554ace284aecf94804bc9e238295cf0107f8417262137d41a6d7392a127ff9f69614626653333267025556be1ac287675c34aa8c218b0a
6
+ metadata.gz: 22760c7fa4a3bb929293df5d016b251c2ea838d68a3a8e889f092ec020e65b640f90ba9c32e7418c6248e77089d499abda87f29e0f2a0437409d08cafc3bee92
7
+ data.tar.gz: 9f1eb0f8f8c2596fc36980ea4759d3a994f58d6675aa0583c7f28b621578e8cc085af48620d513d6cd69555e54611f8ac95de5de178f0c9e6fb2014f5a23e88b
data/README.md CHANGED
@@ -18,7 +18,7 @@ Add the necessary library to `app/assets/javascripts/application.js`:
18
18
 
19
19
  ## What's included?
20
20
 
21
- lodash 4.17.2:
21
+ lodash 4.17.4:
22
22
 
23
23
  * lodash.core.js
24
24
  * lodash.core.min.js
@@ -1,5 +1,5 @@
1
1
  module LoDash
2
2
  module Rails
3
- VERSION = "4.17.2"
3
+ VERSION = "4.17.4"
4
4
  end
5
5
  end
@@ -13,7 +13,7 @@
13
13
  var undefined;
14
14
 
15
15
  /** Used as the semantic version number. */
16
- var VERSION = '4.17.2';
16
+ var VERSION = '4.17.4';
17
17
 
18
18
  /** Error message constants. */
19
19
  var FUNC_ERROR_TEXT = 'Expected a function';
@@ -249,9 +249,9 @@
249
249
  * Shortcut fusion is an optimization to merge iteratee calls; this avoids
250
250
  * the creation of intermediate arrays and can greatly reduce the number of
251
251
  * iteratee executions. Sections of a chain sequence qualify for shortcut
252
- * fusion if the section is applied to an array of at least `200` elements
253
- * and any iteratees accept only one argument. The heuristic for whether a
254
- * section qualifies for shortcut fusion is subject to change.
252
+ * fusion if the section is applied to an array and iteratees accept only
253
+ * one argument. The heuristic for whether a section qualifies for shortcut
254
+ * fusion is subject to change.
255
255
  *
256
256
  * Chaining is supported in custom builds as long as the `_#value` method is
257
257
  * directly or indirectly included in the build.
@@ -396,24 +396,6 @@
396
396
 
397
397
  /*------------------------------------------------------------------------*/
398
398
 
399
- /**
400
- * Used by `_.defaults` to customize its `_.assignIn` use.
401
- *
402
- * @private
403
- * @param {*} objValue The destination value.
404
- * @param {*} srcValue The source value.
405
- * @param {string} key The key of the property to assign.
406
- * @param {Object} object The parent object of `objValue`.
407
- * @returns {*} Returns the value to assign.
408
- */
409
- function assignInDefaults(objValue, srcValue, key, object) {
410
- if (objValue === undefined ||
411
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
412
- return srcValue;
413
- }
414
- return objValue;
415
- }
416
-
417
399
  /**
418
400
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
419
401
  * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -673,7 +655,7 @@
673
655
  if (value === other) {
674
656
  return true;
675
657
  }
676
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
658
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
677
659
  return value !== value && other !== other;
678
660
  }
679
661
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
@@ -696,17 +678,12 @@
696
678
  function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
697
679
  var objIsArr = isArray(object),
698
680
  othIsArr = isArray(other),
699
- objTag = arrayTag,
700
- othTag = arrayTag;
681
+ objTag = objIsArr ? arrayTag : baseGetTag(object),
682
+ othTag = othIsArr ? arrayTag : baseGetTag(other);
683
+
684
+ objTag = objTag == argsTag ? objectTag : objTag;
685
+ othTag = othTag == argsTag ? objectTag : othTag;
701
686
 
702
- if (!objIsArr) {
703
- objTag = baseGetTag(object);
704
- objTag = objTag == argsTag ? objectTag : objTag;
705
- }
706
- if (!othIsArr) {
707
- othTag = baseGetTag(other);
708
- othTag = othTag == argsTag ? objectTag : othTag;
709
- }
710
687
  var objIsObj = objTag == objectTag,
711
688
  othIsObj = othTag == objectTag,
712
689
  isSameTag = objTag == othTag;
@@ -1182,6 +1159,26 @@
1182
1159
  return wrapper;
1183
1160
  }
1184
1161
 
1162
+ /**
1163
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
1164
+ * of source objects to the destination object for all destination properties
1165
+ * that resolve to `undefined`.
1166
+ *
1167
+ * @private
1168
+ * @param {*} objValue The destination value.
1169
+ * @param {*} srcValue The source value.
1170
+ * @param {string} key The key of the property to assign.
1171
+ * @param {Object} object The parent object of `objValue`.
1172
+ * @returns {*} Returns the value to assign.
1173
+ */
1174
+ function customDefaultsAssignIn(objValue, srcValue, key, object) {
1175
+ if (objValue === undefined ||
1176
+ (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
1177
+ return srcValue;
1178
+ }
1179
+ return objValue;
1180
+ }
1181
+
1185
1182
  /**
1186
1183
  * A specialized version of `baseIsEqualDeep` for arrays with support for
1187
1184
  * partial deep comparisons.
@@ -2598,7 +2595,7 @@
2598
2595
  * date objects, error objects, maps, numbers, `Object` objects, regexes,
2599
2596
  * sets, strings, symbols, and typed arrays. `Object` objects are compared
2600
2597
  * by their own, not inherited, enumerable properties. Functions and DOM
2601
- * nodes are **not** supported.
2598
+ * nodes are compared by strict equality, i.e. `===`.
2602
2599
  *
2603
2600
  * @static
2604
2601
  * @memberOf _
@@ -3195,7 +3192,7 @@
3195
3192
  * // => { 'a': 1, 'b': 2 }
3196
3193
  */
3197
3194
  var defaults = baseRest(function(args) {
3198
- args.push(undefined, assignInDefaults);
3195
+ args.push(undefined, customDefaultsAssignIn);
3199
3196
  return assignInWith.apply(undefined, args);
3200
3197
  });
3201
3198
 
@@ -3,27 +3,27 @@
3
3
  * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
4
4
  * Build: `lodash core -o ./dist/lodash.core.js`
5
5
  */
6
- ;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return d(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r,e){return n===nn||M(n,ln[r])&&!pn.call(e,r)?t:n}function f(n,t,r){
7
- if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(nn,r)},t)}function a(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function l(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===nn?i===i:r(i,c)))var c=i,f=o}return f}function p(n,t){var r=[];return mn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function s(n,r,e,u,o){var i=-1,c=n.length;for(e||(e=D),o||(o=[]);++i<c;){var f=n[i];0<r&&e(f)?1<r?s(f,r-1,e,u,o):t(o,f):u||(o[o.length]=f);
8
- }return o}function h(n,t){return n&&On(n,t,In)}function v(n,t){return p(t,function(t){return V(n[t])})}function y(n,t){return n>t}function b(n,t,r,e,u){return n===t||(null==n||null==t||!H(n)&&!K(t)?n!==n&&t!==t:g(n,t,r,e,b,u))}function g(n,t,r,e,u,o){var i=Nn(n),c=Nn(t),f="[object Array]",a="[object Array]";i||(f=hn.call(n),f="[object Arguments]"==f?"[object Object]":f),c||(a=hn.call(t),a="[object Arguments]"==a?"[object Object]":a);var l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);
9
- var p=An(o,function(t){return t[0]==n}),s=An(o,function(n){return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 1&r||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),
10
- o.pop(),r):(i=i?n.value():n,f=f?t.value():t,r=u(i,f,r,e,o),o.pop(),r)}function _(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?m:r)(n)}function j(n,t){return n<t}function d(n,t){var r=-1,e=U(n)?Array(n.length):[];return mn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function m(n){var t=_n(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&b(n[u],r[u],3)))return false}return true}}function O(n,t){return n=Object(n),G(t,function(t,r){return r in n&&(t[r]=n[r]),
11
- t},{})}function x(n){return xn(q(n,void 0,Y),n+"")}function A(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function E(n){return A(n,0,n.length)}function w(n,t){var r;return mn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function k(n,r){return G(r,function(n,r){return r.func.apply(r.thisArg,t([n],r.args))},n)}function N(n,t,r,e){var u=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var c=t[o],f=e?e(r[c],n[c],c,r,n):nn;
12
- if(f===nn&&(f=n[c]),u)r[c]=f;else{var a=r,l=a[c];pn.call(a,c)&&M(l,f)&&(f!==nn||c in a)||(a[c]=f)}}return r}function F(n){return x(function(t,r){var e=-1,u=r.length,o=1<u?r[u-1]:nn,o=3<n.length&&typeof o=="function"?(u--,o):nn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function S(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function T(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==on&&this instanceof e?u:n;++c<f;)a[c]=r[c];
13
- for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=S(n);return e}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(1&r&&c>i))return false;for(var c=-1,f=true,a=2&r?[]:nn;++c<i;){var l=n[c],p=t[c];if(void 0!==nn){f=false;break}if(a){if(!w(t,function(n,t){if(!z(a,t)&&(l===n||u(l,n,r,e,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!u(l,p,r,e,o)){f=false;break}}return f}function R(n,t,r,e,u,o){var i=1&r,c=In(n),f=c.length,a=In(t).length;
14
- if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:pn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==nn||s!==h&&!u(s,h,r,e,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function D(t){return Nn(t)||n(t)}function I(n){var t=[];if(null!=n)for(var r in Object(n))t.push(r);return t}function q(n,t,r){
15
- return t=jn(t===nn?n.length-1:t,0),function(){for(var e=arguments,u=-1,o=jn(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];for(u=-1,o=Array(t+1);++u<t;)o[u]=e[u];return o[t]=r(i),n.apply(this,o)}}function $(n){return(null==n?0:n.length)?s(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=null==n?0:n.length;r=typeof r=="number"?0>r?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function C(n,t){return mn(n,_(t))}function G(n,t,r){return e(n,_(t),r,3>arguments.length,mn);
16
- }function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t),t&&!V(n)}function V(n){return!!H(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function H(n){var t=typeof n;
17
- return null!=n&&("object"==t||"function"==t)}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Nn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return null==n?[]:u(n,In(n))}function Y(n){return n}function Z(n,r,e){var u=In(r),o=v(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=v(r,In(r)));var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);
18
- return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=E(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
6
+ ;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return j(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");
7
+ return setTimeout(function(){n.apply(nn,r)},t)}function f(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function a(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===nn?i===i:r(i,c)))var c=i,f=o}return f}function l(n,t){var r=[];return mn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function p(n,r,e,u,o){var i=-1,c=n.length;for(e||(e=D),o||(o=[]);++i<c;){var f=n[i];0<r&&e(f)?1<r?p(f,r-1,e,u,o):t(o,f):u||(o[o.length]=f)}return o}function s(n,t){return n&&On(n,t,In);
8
+ }function h(n,t){return l(t,function(t){return V(n[t])})}function v(n,t){return n>t}function y(n,t,r,e,u){return n===t||(null==n||null==t||!K(n)&&!K(t)?n!==n&&t!==t:b(n,t,r,e,y,u))}function b(n,t,r,e,u,o){var i=Nn(n),c=Nn(t),f=i?"[object Array]":hn.call(n),a=c?"[object Array]":hn.call(t),f="[object Arguments]"==f?"[object Object]":f,a="[object Arguments]"==a?"[object Object]":a,l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);var p=An(o,function(t){return t[0]==n}),s=An(o,function(n){
9
+ return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 1&r||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),o.pop(),r):(i=i?n.value():n,f=f?t.value():t,
10
+ r=u(i,f,r,e,o),o.pop(),r)}function g(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?d:r)(n)}function _(n,t){return n<t}function j(n,t){var r=-1,e=U(n)?Array(n.length):[];return mn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function d(n){var t=_n(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&y(n[u],r[u],3)))return false}return true}}function m(n,t){return n=Object(n),G(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function O(n){return xn(q(n,void 0,Y),n+"");
11
+ }function x(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function A(n){return x(n,0,n.length)}function E(n,t){var r;return mn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function w(n,r){return G(r,function(n,r){return r.func.apply(r.thisArg,t([n],r.args))},n)}function k(n,t,r,e){var u=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var c=t[o],f=e?e(r[c],n[c],c,r,n):nn;if(f===nn&&(f=n[c]),u)r[c]=f;else{var a=r,l=a[c];
12
+ pn.call(a,c)&&M(l,f)&&(f!==nn||c in a)||(a[c]=f)}}return r}function N(n){return O(function(t,r){var e=-1,u=r.length,o=1<u?r[u-1]:nn,o=3<n.length&&typeof o=="function"?(u--,o):nn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function F(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function S(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==on&&this instanceof e?u:n;++c<f;)a[c]=r[c];for(;i--;)a[c++]=arguments[++o];
13
+ return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=F(n);return e}function T(n,t,r,e){return n===nn||M(n,ln[r])&&!pn.call(e,r)?t:n}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(1&r&&c>i))return false;for(var c=-1,f=true,a=2&r?[]:nn;++c<i;){var l=n[c],p=t[c];if(void 0!==nn){f=false;break}if(a){if(!E(t,function(n,t){if(!z(a,t)&&(l===n||u(l,n,r,e,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!u(l,p,r,e,o)){f=false;break}}return f}function R(n,t,r,e,u,o){
14
+ var i=1&r,c=In(n),f=c.length,a=In(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:pn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==nn||s!==h&&!u(s,h,r,e,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function D(t){return Nn(t)||n(t)}function I(n){var t=[];if(null!=n)for(var r in Object(n))t.push(r);
15
+ return t}function q(n,t,r){return t=jn(t===nn?n.length-1:t,0),function(){for(var e=arguments,u=-1,o=jn(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];for(u=-1,o=Array(t+1);++u<t;)o[u]=e[u];return o[t]=r(i),n.apply(this,o)}}function $(n){return(null==n?0:n.length)?p(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=null==n?0:n.length;r=typeof r=="number"?0>r?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function C(n,t){return mn(n,g(t));
16
+ }function G(n,t,r){return e(n,g(t),r,3>arguments.length,mn)}function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t),t&&!V(n)}function V(n){return!!H(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n);
17
+ }function H(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Nn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return null==n?[]:u(n,In(n))}function Y(n){return n}function Z(n,r,e){var u=In(r),o=h(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=h(r,In(r)));
18
+ var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=A(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
19
19
  return function(t){return null==n?nn:n[t]}}({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,yn=Object.create,bn=ln.propertyIsEnumerable,gn=on.isFinite,_n=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),jn=Math.max,dn=function(){function n(){}return function(t){return H(t)?yn?yn(t):(n.prototype=t,t=new n,n.prototype=nn,t):{}}}();i.prototype=dn(o.prototype),i.prototype.constructor=i;
20
- var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(h),On=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}(),xn=Y,An=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=_(r);t=In(t),r=function(n){return o(u[n],n,u)}}return r=n(t,r,e),-1<r?u[o?t[r]:r]:nn}}(function(n,t,r){var e=null==n?0:n.length;
21
- if(!e)return-1;r=null==r?0:Fn(r),0>r&&(r=jn(e+r,0));n:{for(t=_(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),En=x(function(n,t,r){return T(n,t,r)}),wn=x(function(n,t){return f(n,1,t)}),kn=x(function(n,t,r){return f(n,Sn(t)||0,r)}),Nn=Array.isArray,Fn=Number,Sn=Number,Tn=F(function(n,t){N(t,_n(t),n)}),Bn=F(function(n,t){N(t,I(t),n)}),Rn=F(function(n,t,r,e){N(t,qn(t),n,e)}),Dn=x(function(n){return n.push(nn,c),Rn.apply(nn,n)}),In=_n,qn=I,$n=function(n){return xn(q(n,nn,$),n+"");
22
- }(function(n,t){return null==n?{}:O(n,t)});o.assignIn=Bn,o.before=J,o.bind=En,o.chain=function(n){return n=o(n),n.__chain__=true,n},o.compact=function(n){return p(n,Boolean)},o.concat=function(){var n=arguments.length;if(!n)return[];for(var r=Array(n-1),e=arguments[0];n--;)r[n-1]=arguments[n];return t(Nn(e)?E(e):[e],s(r,1))},o.create=function(n,t){var r=dn(n);return null==t?r:Tn(r,t)},o.defaults=Dn,o.defer=wn,o.delay=kn,o.filter=function(n,t){return p(n,_(t))},o.flatten=$,o.flattenDeep=function(n){
23
- return(null==n?0:n.length)?s(n,tn):[]},o.iteratee=_,o.keys=In,o.map=function(n,t){return d(n,_(t))},o.matches=function(n){return m(Tn({},n))},o.mixin=Z,o.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},o.once=function(n){return J(2,n)},o.pick=$n,o.slice=function(n,t,r){var e=null==n?0:n.length;return r=r===nn?e:+r,e?A(n,null==t?0:+t,r):[]},o.sortBy=function(n,t){var e=0;return t=_(t),d(d(n,function(n,r,u){return{
24
- value:n,index:e++,criteria:t(n,r,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==nn,o=null===r,i=r===r,c=e!==nn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r<e||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),r("value"))},o.tap=function(n,t){return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return U(n)?n.length?E(n):[]:X(n)},o.values=X,o.extend=Bn,Z(o,o),o.clone=function(n){return H(n)?Nn(n)?E(n):N(n,_n(n)):n;
25
- },o.escape=function(n){return(n=W(n))&&en.test(n)?n.replace(rn,fn):n},o.every=function(n,t,r){return t=r?nn:t,a(n,_(t))},o.find=An,o.forEach=C,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=P,o.identity=Y,o.indexOf=z,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n){return true===n||false===n||K(n)&&"[object Boolean]"==hn.call(n)},o.isDate=function(n){return K(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return U(t)&&(Nn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){
26
- return b(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=V,o.isNaN=function(n){return L(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=L,o.isObject=H,o.isRegExp=function(n){return K(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=null==n?0:n.length;return t?n[t-1]:nn},o.max=function(n){return n&&n.length?l(n,Y,y):nn},o.min=function(n){return n&&n.length?l(n,Y,j):nn},o.noConflict=function(){return on._===this&&(on._=vn),
27
- this},o.noop=function(){},o.reduce=G,o.result=function(n,t,r){return t=null==n?nn:n[t],t===nn&&(t=r),V(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=U(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?nn:t,w(n,_(t))},o.uniqueId=function(n){var t=++sn;return W(n)+t},o.each=C,o.first=P,Z(o,function(){var n={};return h(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.2",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
28
- var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return k(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,
20
+ var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(s),On=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}(),xn=Y,An=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=g(r);t=In(t),r=function(n){return o(u[n],n,u)}}return r=n(t,r,e),-1<r?u[o?t[r]:r]:nn}}(function(n,t,r){var e=null==n?0:n.length;
21
+ if(!e)return-1;r=null==r?0:Fn(r),0>r&&(r=jn(e+r,0));n:{for(t=g(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),En=O(function(n,t,r){return S(n,t,r)}),wn=O(function(n,t){return c(n,1,t)}),kn=O(function(n,t,r){return c(n,Sn(t)||0,r)}),Nn=Array.isArray,Fn=Number,Sn=Number,Tn=N(function(n,t){k(t,_n(t),n)}),Bn=N(function(n,t){k(t,I(t),n)}),Rn=N(function(n,t,r,e){k(t,qn(t),n,e)}),Dn=O(function(n){return n.push(nn,T),Rn.apply(nn,n)}),In=_n,qn=I,$n=function(n){return xn(q(n,nn,$),n+"");
22
+ }(function(n,t){return null==n?{}:m(n,t)});o.assignIn=Bn,o.before=J,o.bind=En,o.chain=function(n){return n=o(n),n.__chain__=true,n},o.compact=function(n){return l(n,Boolean)},o.concat=function(){var n=arguments.length;if(!n)return[];for(var r=Array(n-1),e=arguments[0];n--;)r[n-1]=arguments[n];return t(Nn(e)?A(e):[e],p(r,1))},o.create=function(n,t){var r=dn(n);return null==t?r:Tn(r,t)},o.defaults=Dn,o.defer=wn,o.delay=kn,o.filter=function(n,t){return l(n,g(t))},o.flatten=$,o.flattenDeep=function(n){
23
+ return(null==n?0:n.length)?p(n,tn):[]},o.iteratee=g,o.keys=In,o.map=function(n,t){return j(n,g(t))},o.matches=function(n){return d(Tn({},n))},o.mixin=Z,o.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},o.once=function(n){return J(2,n)},o.pick=$n,o.slice=function(n,t,r){var e=null==n?0:n.length;return r=r===nn?e:+r,e?x(n,null==t?0:+t,r):[]},o.sortBy=function(n,t){var e=0;return t=g(t),j(j(n,function(n,r,u){return{
24
+ value:n,index:e++,criteria:t(n,r,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==nn,o=null===r,i=r===r,c=e!==nn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r<e||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),r("value"))},o.tap=function(n,t){return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return U(n)?n.length?A(n):[]:X(n)},o.values=X,o.extend=Bn,Z(o,o),o.clone=function(n){return H(n)?Nn(n)?A(n):k(n,_n(n)):n;
25
+ },o.escape=function(n){return(n=W(n))&&en.test(n)?n.replace(rn,fn):n},o.every=function(n,t,r){return t=r?nn:t,f(n,g(t))},o.find=An,o.forEach=C,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=P,o.identity=Y,o.indexOf=z,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n){return true===n||false===n||K(n)&&"[object Boolean]"==hn.call(n)},o.isDate=function(n){return K(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return U(t)&&(Nn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){
26
+ return y(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=V,o.isNaN=function(n){return L(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=L,o.isObject=H,o.isRegExp=function(n){return K(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=null==n?0:n.length;return t?n[t-1]:nn},o.max=function(n){return n&&n.length?a(n,Y,v):nn},o.min=function(n){return n&&n.length?a(n,Y,_):nn},o.noConflict=function(){return on._===this&&(on._=vn),
27
+ this},o.noop=function(){},o.reduce=G,o.result=function(n,t,r){return t=null==n?nn:n[t],t===nn&&(t=r),V(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=U(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?nn:t,E(n,g(t))},o.uniqueId=function(n){var t=++sn;return W(n)+t},o.each=C,o.first=P,Z(o,function(){var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.4",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
28
+ var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,
29
29
  define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this);
@@ -12,7 +12,7 @@
12
12
  var undefined;
13
13
 
14
14
  /** Used as the semantic version number. */
15
- var VERSION = '4.17.2';
15
+ var VERSION = '4.17.4';
16
16
 
17
17
  /** Used as the size to enable large array optimizations. */
18
18
  var LARGE_ARRAY_SIZE = 200;
@@ -1567,9 +1567,9 @@
1567
1567
  * Shortcut fusion is an optimization to merge iteratee calls; this avoids
1568
1568
  * the creation of intermediate arrays and can greatly reduce the number of
1569
1569
  * iteratee executions. Sections of a chain sequence qualify for shortcut
1570
- * fusion if the section is applied to an array of at least `200` elements
1571
- * and any iteratees accept only one argument. The heuristic for whether a
1572
- * section qualifies for shortcut fusion is subject to change.
1570
+ * fusion if the section is applied to an array and iteratees accept only
1571
+ * one argument. The heuristic for whether a section qualifies for shortcut
1572
+ * fusion is subject to change.
1573
1573
  *
1574
1574
  * Chaining is supported in custom builds as long as the `_#value` method is
1575
1575
  * directly or indirectly included in the build.
@@ -1728,8 +1728,8 @@
1728
1728
 
1729
1729
  /**
1730
1730
  * By default, the template delimiters used by lodash are like those in
1731
- * embedded Ruby (ERB). Change the following template settings to use
1732
- * alternative delimiters.
1731
+ * embedded Ruby (ERB) as well as ES2015 template strings. Change the
1732
+ * following template settings to use alternative delimiters.
1733
1733
  *
1734
1734
  * @static
1735
1735
  * @memberOf _
@@ -1876,8 +1876,7 @@
1876
1876
  resIndex = 0,
1877
1877
  takeCount = nativeMin(length, this.__takeCount__);
1878
1878
 
1879
- if (!isArr || arrLength < LARGE_ARRAY_SIZE ||
1880
- (arrLength == length && takeCount == length)) {
1879
+ if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
1881
1880
  return baseWrapperValue(array, this.__actions__);
1882
1881
  }
1883
1882
  var result = [];
@@ -1991,7 +1990,7 @@
1991
1990
  */
1992
1991
  function hashHas(key) {
1993
1992
  var data = this.__data__;
1994
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
1993
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
1995
1994
  }
1996
1995
 
1997
1996
  /**
@@ -2464,24 +2463,6 @@
2464
2463
  return shuffleSelf(copyArray(array));
2465
2464
  }
2466
2465
 
2467
- /**
2468
- * Used by `_.defaults` to customize its `_.assignIn` use.
2469
- *
2470
- * @private
2471
- * @param {*} objValue The destination value.
2472
- * @param {*} srcValue The source value.
2473
- * @param {string} key The key of the property to assign.
2474
- * @param {Object} object The parent object of `objValue`.
2475
- * @returns {*} Returns the value to assign.
2476
- */
2477
- function assignInDefaults(objValue, srcValue, key, object) {
2478
- if (objValue === undefined ||
2479
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
2480
- return srcValue;
2481
- }
2482
- return objValue;
2483
- }
2484
-
2485
2466
  /**
2486
2467
  * This function is like `assignValue` except that it doesn't assign
2487
2468
  * `undefined` values.
@@ -3094,8 +3075,7 @@
3094
3075
  if (value == null) {
3095
3076
  return value === undefined ? undefinedTag : nullTag;
3096
3077
  }
3097
- value = Object(value);
3098
- return (symToStringTag && symToStringTag in value)
3078
+ return (symToStringTag && symToStringTag in Object(value))
3099
3079
  ? getRawTag(value)
3100
3080
  : objectToString(value);
3101
3081
  }
@@ -3299,7 +3279,7 @@
3299
3279
  if (value === other) {
3300
3280
  return true;
3301
3281
  }
3302
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
3282
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
3303
3283
  return value !== value && other !== other;
3304
3284
  }
3305
3285
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
@@ -3322,17 +3302,12 @@
3322
3302
  function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
3323
3303
  var objIsArr = isArray(object),
3324
3304
  othIsArr = isArray(other),
3325
- objTag = arrayTag,
3326
- othTag = arrayTag;
3305
+ objTag = objIsArr ? arrayTag : getTag(object),
3306
+ othTag = othIsArr ? arrayTag : getTag(other);
3307
+
3308
+ objTag = objTag == argsTag ? objectTag : objTag;
3309
+ othTag = othTag == argsTag ? objectTag : othTag;
3327
3310
 
3328
- if (!objIsArr) {
3329
- objTag = getTag(object);
3330
- objTag = objTag == argsTag ? objectTag : objTag;
3331
- }
3332
- if (!othIsArr) {
3333
- othTag = getTag(other);
3334
- othTag = othTag == argsTag ? objectTag : othTag;
3335
- }
3336
3311
  var objIsObj = objTag == objectTag,
3337
3312
  othIsObj = othTag == objectTag,
3338
3313
  isSameTag = objTag == othTag;
@@ -3780,7 +3755,6 @@
3780
3755
  * @returns {Object} Returns the new object.
3781
3756
  */
3782
3757
  function basePick(object, paths) {
3783
- object = Object(object);
3784
3758
  return basePickBy(object, paths, function(value, path) {
3785
3759
  return hasIn(object, path);
3786
3760
  });
@@ -5173,8 +5147,7 @@
5173
5147
  var args = arguments,
5174
5148
  value = args[0];
5175
5149
 
5176
- if (wrapper && args.length == 1 &&
5177
- isArray(value) && value.length >= LARGE_ARRAY_SIZE) {
5150
+ if (wrapper && args.length == 1 && isArray(value)) {
5178
5151
  return wrapper.plant(value).value();
5179
5152
  }
5180
5153
  var index = 0,
@@ -5481,7 +5454,7 @@
5481
5454
  var func = Math[methodName];
5482
5455
  return function(number, precision) {
5483
5456
  number = toNumber(number);
5484
- precision = nativeMin(toInteger(precision), 292);
5457
+ precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
5485
5458
  if (precision) {
5486
5459
  // Shift with exponential notation to avoid floating-point issues.
5487
5460
  // See [MDN](https://mdn.io/round#Examples) for more details.
@@ -5586,7 +5559,7 @@
5586
5559
  thisArg = newData[2];
5587
5560
  partials = newData[3];
5588
5561
  holders = newData[4];
5589
- arity = newData[9] = newData[9] == null
5562
+ arity = newData[9] = newData[9] === undefined
5590
5563
  ? (isBindKey ? 0 : func.length)
5591
5564
  : nativeMax(newData[9] - length, 0);
5592
5565
 
@@ -5606,6 +5579,63 @@
5606
5579
  return setWrapToString(setter(result, newData), func, bitmask);
5607
5580
  }
5608
5581
 
5582
+ /**
5583
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
5584
+ * of source objects to the destination object for all destination properties
5585
+ * that resolve to `undefined`.
5586
+ *
5587
+ * @private
5588
+ * @param {*} objValue The destination value.
5589
+ * @param {*} srcValue The source value.
5590
+ * @param {string} key The key of the property to assign.
5591
+ * @param {Object} object The parent object of `objValue`.
5592
+ * @returns {*} Returns the value to assign.
5593
+ */
5594
+ function customDefaultsAssignIn(objValue, srcValue, key, object) {
5595
+ if (objValue === undefined ||
5596
+ (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
5597
+ return srcValue;
5598
+ }
5599
+ return objValue;
5600
+ }
5601
+
5602
+ /**
5603
+ * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
5604
+ * objects into destination objects that are passed thru.
5605
+ *
5606
+ * @private
5607
+ * @param {*} objValue The destination value.
5608
+ * @param {*} srcValue The source value.
5609
+ * @param {string} key The key of the property to merge.
5610
+ * @param {Object} object The parent object of `objValue`.
5611
+ * @param {Object} source The parent object of `srcValue`.
5612
+ * @param {Object} [stack] Tracks traversed source values and their merged
5613
+ * counterparts.
5614
+ * @returns {*} Returns the value to assign.
5615
+ */
5616
+ function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
5617
+ if (isObject(objValue) && isObject(srcValue)) {
5618
+ // Recursively merge objects and arrays (susceptible to call stack limits).
5619
+ stack.set(srcValue, objValue);
5620
+ baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
5621
+ stack['delete'](srcValue);
5622
+ }
5623
+ return objValue;
5624
+ }
5625
+
5626
+ /**
5627
+ * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
5628
+ * objects.
5629
+ *
5630
+ * @private
5631
+ * @param {*} value The value to inspect.
5632
+ * @param {string} key The key of the property to inspect.
5633
+ * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
5634
+ */
5635
+ function customOmitClone(value) {
5636
+ return isPlainObject(value) ? undefined : value;
5637
+ }
5638
+
5609
5639
  /**
5610
5640
  * A specialized version of `baseIsEqualDeep` for arrays with support for
5611
5641
  * partial deep comparisons.
@@ -5777,9 +5807,9 @@
5777
5807
  */
5778
5808
  function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
5779
5809
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
5780
- objProps = keys(object),
5810
+ objProps = getAllKeys(object),
5781
5811
  objLength = objProps.length,
5782
- othProps = keys(other),
5812
+ othProps = getAllKeys(other),
5783
5813
  othLength = othProps.length;
5784
5814
 
5785
5815
  if (objLength != othLength && !isPartial) {
@@ -6017,7 +6047,15 @@
6017
6047
  * @param {Object} object The object to query.
6018
6048
  * @returns {Array} Returns the array of symbols.
6019
6049
  */
6020
- var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
6050
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
6051
+ if (object == null) {
6052
+ return [];
6053
+ }
6054
+ object = Object(object);
6055
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
6056
+ return propertyIsEnumerable.call(object, symbol);
6057
+ });
6058
+ };
6021
6059
 
6022
6060
  /**
6023
6061
  * Creates an array of the own and inherited enumerable symbols of `object`.
@@ -6503,29 +6541,6 @@
6503
6541
  return data;
6504
6542
  }
6505
6543
 
6506
- /**
6507
- * Used by `_.defaultsDeep` to customize its `_.merge` use.
6508
- *
6509
- * @private
6510
- * @param {*} objValue The destination value.
6511
- * @param {*} srcValue The source value.
6512
- * @param {string} key The key of the property to merge.
6513
- * @param {Object} object The parent object of `objValue`.
6514
- * @param {Object} source The parent object of `srcValue`.
6515
- * @param {Object} [stack] Tracks traversed source values and their merged
6516
- * counterparts.
6517
- * @returns {*} Returns the value to assign.
6518
- */
6519
- function mergeDefaults(objValue, srcValue, key, object, source, stack) {
6520
- if (isObject(objValue) && isObject(srcValue)) {
6521
- // Recursively merge objects and arrays (susceptible to call stack limits).
6522
- stack.set(srcValue, objValue);
6523
- baseMerge(objValue, srcValue, undefined, mergeDefaults, stack);
6524
- stack['delete'](srcValue);
6525
- }
6526
- return objValue;
6527
- }
6528
-
6529
6544
  /**
6530
6545
  * This function is like
6531
6546
  * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
@@ -8268,7 +8283,7 @@
8268
8283
  *
8269
8284
  * var users = [
8270
8285
  * { 'user': 'barney', 'active': false },
8271
- * { 'user': 'fred', 'active': false},
8286
+ * { 'user': 'fred', 'active': false },
8272
8287
  * { 'user': 'pebbles', 'active': true }
8273
8288
  * ];
8274
8289
  *
@@ -10837,7 +10852,7 @@
10837
10852
  if (typeof func != 'function') {
10838
10853
  throw new TypeError(FUNC_ERROR_TEXT);
10839
10854
  }
10840
- start = start === undefined ? 0 : nativeMax(toInteger(start), 0);
10855
+ start = start == null ? 0 : nativeMax(toInteger(start), 0);
10841
10856
  return baseRest(function(args) {
10842
10857
  var array = args[start],
10843
10858
  otherArgs = castSlice(args, 0, start);
@@ -11507,7 +11522,7 @@
11507
11522
  * date objects, error objects, maps, numbers, `Object` objects, regexes,
11508
11523
  * sets, strings, symbols, and typed arrays. `Object` objects are compared
11509
11524
  * by their own, not inherited, enumerable properties. Functions and DOM
11510
- * nodes are **not** supported.
11525
+ * nodes are compared by strict equality, i.e. `===`.
11511
11526
  *
11512
11527
  * @static
11513
11528
  * @memberOf _
@@ -12527,7 +12542,9 @@
12527
12542
  * // => 3
12528
12543
  */
12529
12544
  function toSafeInteger(value) {
12530
- return baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
12545
+ return value
12546
+ ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
12547
+ : (value === 0 ? value : 0);
12531
12548
  }
12532
12549
 
12533
12550
  /**
@@ -12781,7 +12798,7 @@
12781
12798
  * // => { 'a': 1, 'b': 2 }
12782
12799
  */
12783
12800
  var defaults = baseRest(function(args) {
12784
- args.push(undefined, assignInDefaults);
12801
+ args.push(undefined, customDefaultsAssignIn);
12785
12802
  return apply(assignInWith, undefined, args);
12786
12803
  });
12787
12804
 
@@ -12805,7 +12822,7 @@
12805
12822
  * // => { 'a': { 'b': 2, 'c': 3 } }
12806
12823
  */
12807
12824
  var defaultsDeep = baseRest(function(args) {
12808
- args.push(undefined, mergeDefaults);
12825
+ args.push(undefined, customDefaultsMerge);
12809
12826
  return apply(mergeWith, undefined, args);
12810
12827
  });
12811
12828
 
@@ -13467,7 +13484,7 @@
13467
13484
  });
13468
13485
  copyObject(object, getAllKeysIn(object), result);
13469
13486
  if (isDeep) {
13470
- result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG);
13487
+ result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
13471
13488
  }
13472
13489
  var length = paths.length;
13473
13490
  while (length--) {
@@ -14616,7 +14633,10 @@
14616
14633
  */
14617
14634
  function startsWith(string, target, position) {
14618
14635
  string = toString(string);
14619
- position = baseClamp(toInteger(position), 0, string.length);
14636
+ position = position == null
14637
+ ? 0
14638
+ : baseClamp(toInteger(position), 0, string.length);
14639
+
14620
14640
  target = baseToString(target);
14621
14641
  return string.slice(position, position + target.length) == target;
14622
14642
  }
@@ -14735,9 +14755,9 @@
14735
14755
  options = undefined;
14736
14756
  }
14737
14757
  string = toString(string);
14738
- options = assignInWith({}, options, settings, assignInDefaults);
14758
+ options = assignInWith({}, options, settings, customDefaultsAssignIn);
14739
14759
 
14740
- var imports = assignInWith({}, options.imports, settings.imports, assignInDefaults),
14760
+ var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
14741
14761
  importsKeys = keys(imports),
14742
14762
  importsValues = baseValues(imports, importsKeys);
14743
14763
 
@@ -16821,14 +16841,13 @@
16821
16841
  // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.
16822
16842
  arrayEach(['drop', 'take'], function(methodName, index) {
16823
16843
  LazyWrapper.prototype[methodName] = function(n) {
16824
- var filtered = this.__filtered__;
16825
- if (filtered && !index) {
16826
- return new LazyWrapper(this);
16827
- }
16828
16844
  n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
16829
16845
 
16830
- var result = this.clone();
16831
- if (filtered) {
16846
+ var result = (this.__filtered__ && !index)
16847
+ ? new LazyWrapper(this)
16848
+ : this.clone();
16849
+
16850
+ if (result.__filtered__) {
16832
16851
  result.__takeCount__ = nativeMin(n, result.__takeCount__);
16833
16852
  } else {
16834
16853
  result.__views__.push({