lodash-rails 4.16.4 → 4.16.6

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: 914872f926a0640f469d084adcdd5d27fb21a6d3
4
- data.tar.gz: 998558d9f56f8396e7e72a2c43563069d935d35f
3
+ metadata.gz: 0d248b315ca3c39114125653a2c8461329cba0f3
4
+ data.tar.gz: 7ad073112e6bff73df5507441a3d38f2faf81875
5
5
  SHA512:
6
- metadata.gz: 50e32bbf5c6ceda1838802552f6c016c2d5c5d34b757539a157f5c579a7c09fd4ddc904c2a8958ff22eaaee950d5e393de61ae31bf7c81ac9aee2f590c090bb9
7
- data.tar.gz: d36843f9512236559acb3e845b752c4b243950ef5751d29c8d38b806593169659db63c99ed0233c117686b62d2c4d4ac286d908ca0ec4097564c3c5053f05b16
6
+ metadata.gz: 488c0396641d03d98521c15705df36cd1d9354d2fb2057b39b9245063d614d45ab95afe0bb8b4f2eb35f9d4311c12c20e9aca66d6fea19de56a7c3ce0811c69e
7
+ data.tar.gz: c5e41e2ee27171546bd5edde67469623a982b725b62c6e1668896fc59f0da64e05658493d4b99ffb8bdaec225b19005265037be1bdbb668d7ca8bcaa39c35510
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.16.4:
21
+ lodash 4.16.6:
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.16.4"
3
+ VERSION = "4.16.6"
4
4
  end
5
5
  end
@@ -2,7 +2,7 @@
2
2
  * @license
3
3
  * lodash (Custom Build) <https://lodash.com/>
4
4
  * Build: `lodash core -o ./dist/lodash.core.js`
5
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
5
+ * Copyright JS Foundation and other contributors <https://js.foundation/>
6
6
  * Released under MIT license <https://lodash.com/license>
7
7
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
8
8
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
@@ -13,7 +13,7 @@
13
13
  var undefined;
14
14
 
15
15
  /** Used as the semantic version number. */
16
- var VERSION = '4.16.4';
16
+ var VERSION = '4.16.6';
17
17
 
18
18
  /** Error message constants. */
19
19
  var FUNC_ERROR_TEXT = 'Expected a function';
@@ -33,6 +33,7 @@
33
33
  /** `Object#toString` result references. */
34
34
  var argsTag = '[object Arguments]',
35
35
  arrayTag = '[object Array]',
36
+ asyncTag = '[object AsyncFunction]',
36
37
  boolTag = '[object Boolean]',
37
38
  dateTag = '[object Date]',
38
39
  errorTag = '[object Error]',
@@ -214,7 +215,7 @@
214
215
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
215
216
  * of values.
216
217
  */
217
- var objectToString = objectProto.toString;
218
+ var nativeObjectToString = objectProto.toString;
218
219
 
219
220
  /** Used to restore the original `_` reference in `_.noConflict`. */
220
221
  var oldDash = root._;
@@ -610,6 +611,17 @@
610
611
  });
611
612
  }
612
613
 
614
+ /**
615
+ * The base implementation of `getTag` without fallbacks for buggy environments.
616
+ *
617
+ * @private
618
+ * @param {*} value The value to query.
619
+ * @returns {string} Returns the `toStringTag`.
620
+ */
621
+ function baseGetTag(value) {
622
+ return objectToString(value);
623
+ }
624
+
613
625
  /**
614
626
  * The base implementation of `_.gt` which doesn't coerce arguments.
615
627
  *
@@ -640,7 +652,7 @@
640
652
  * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
641
653
  */
642
654
  function baseIsDate(value) {
643
- return isObjectLike(value) && objectToString.call(value) == dateTag;
655
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
644
656
  }
645
657
 
646
658
  /**
@@ -690,11 +702,11 @@
690
702
  othTag = arrayTag;
691
703
 
692
704
  if (!objIsArr) {
693
- objTag = objectToString.call(object);
705
+ objTag = baseGetTag(object);
694
706
  objTag = objTag == argsTag ? objectTag : objTag;
695
707
  }
696
708
  if (!othIsArr) {
697
- othTag = objectToString.call(other);
709
+ othTag = baseGetTag(other);
698
710
  othTag = othTag == argsTag ? objectTag : othTag;
699
711
  }
700
712
  var objIsObj = objTag == objectTag,
@@ -749,7 +761,7 @@
749
761
  * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
750
762
  */
751
763
  function baseIsRegExp(value) {
752
- return isObject(value) && objectToString.call(value) == regexpTag;
764
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
753
765
  }
754
766
 
755
767
  /**
@@ -1381,6 +1393,17 @@
1381
1393
  return result;
1382
1394
  }
1383
1395
 
1396
+ /**
1397
+ * Converts `value` to a string using `Object.prototype.toString`.
1398
+ *
1399
+ * @private
1400
+ * @param {*} value The value to convert.
1401
+ * @returns {string} Returns the converted string.
1402
+ */
1403
+ function objectToString(value) {
1404
+ return nativeObjectToString.call(value);
1405
+ }
1406
+
1384
1407
  /**
1385
1408
  * A specialized version of `baseRest` which transforms the rest array.
1386
1409
  *
@@ -1497,8 +1520,7 @@
1497
1520
  * @since 1.1.0
1498
1521
  * @category Array
1499
1522
  * @param {Array} array The array to inspect.
1500
- * @param {Function} [predicate=_.identity]
1501
- * The function invoked per iteration.
1523
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
1502
1524
  * @param {number} [fromIndex=0] The index to search from.
1503
1525
  * @returns {number} Returns the index of the found element, else `-1`.
1504
1526
  * @example
@@ -1525,7 +1547,7 @@
1525
1547
  * // => 2
1526
1548
  */
1527
1549
  function findIndex(array, predicate, fromIndex) {
1528
- var length = array ? array.length : 0;
1550
+ var length = array == null ? 0 : array.length;
1529
1551
  if (!length) {
1530
1552
  return -1;
1531
1553
  }
@@ -1551,7 +1573,7 @@
1551
1573
  * // => [1, 2, [3, [4]], 5]
1552
1574
  */
1553
1575
  function flatten(array) {
1554
- var length = array ? array.length : 0;
1576
+ var length = array == null ? 0 : array.length;
1555
1577
  return length ? baseFlatten(array, 1) : [];
1556
1578
  }
1557
1579
 
@@ -1570,7 +1592,7 @@
1570
1592
  * // => [1, 2, 3, 4, 5]
1571
1593
  */
1572
1594
  function flattenDeep(array) {
1573
- var length = array ? array.length : 0;
1595
+ var length = array == null ? 0 : array.length;
1574
1596
  return length ? baseFlatten(array, INFINITY) : [];
1575
1597
  }
1576
1598
 
@@ -1620,7 +1642,7 @@
1620
1642
  * // => 3
1621
1643
  */
1622
1644
  function indexOf(array, value, fromIndex) {
1623
- var length = array ? array.length : 0;
1645
+ var length = array == null ? 0 : array.length;
1624
1646
  if (typeof fromIndex == 'number') {
1625
1647
  fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;
1626
1648
  } else {
@@ -1653,7 +1675,7 @@
1653
1675
  * // => 3
1654
1676
  */
1655
1677
  function last(array) {
1656
- var length = array ? array.length : 0;
1678
+ var length = array == null ? 0 : array.length;
1657
1679
  return length ? array[length - 1] : undefined;
1658
1680
  }
1659
1681
 
@@ -1674,7 +1696,7 @@
1674
1696
  * @returns {Array} Returns the slice of `array`.
1675
1697
  */
1676
1698
  function slice(array, start, end) {
1677
- var length = array ? array.length : 0;
1699
+ var length = array == null ? 0 : array.length;
1678
1700
  start = start == null ? 0 : +start;
1679
1701
  end = end === undefined ? length : +end;
1680
1702
  return length ? baseSlice(array, start, end) : [];
@@ -1838,8 +1860,7 @@
1838
1860
  * @since 0.1.0
1839
1861
  * @category Collection
1840
1862
  * @param {Array|Object} collection The collection to iterate over.
1841
- * @param {Function} [predicate=_.identity]
1842
- * The function invoked per iteration.
1863
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
1843
1864
  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
1844
1865
  * @returns {boolean} Returns `true` if all elements pass the predicate check,
1845
1866
  * else `false`.
@@ -1882,8 +1903,7 @@
1882
1903
  * @since 0.1.0
1883
1904
  * @category Collection
1884
1905
  * @param {Array|Object} collection The collection to iterate over.
1885
- * @param {Function} [predicate=_.identity]
1886
- * The function invoked per iteration.
1906
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
1887
1907
  * @returns {Array} Returns the new filtered array.
1888
1908
  * @see _.reject
1889
1909
  * @example
@@ -1922,8 +1942,7 @@
1922
1942
  * @since 0.1.0
1923
1943
  * @category Collection
1924
1944
  * @param {Array|Object} collection The collection to inspect.
1925
- * @param {Function} [predicate=_.identity]
1926
- * The function invoked per iteration.
1945
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
1927
1946
  * @param {number} [fromIndex=0] The index to search from.
1928
1947
  * @returns {*} Returns the matched element, else `undefined`.
1929
1948
  * @example
@@ -2521,7 +2540,7 @@
2521
2540
  */
2522
2541
  function isBoolean(value) {
2523
2542
  return value === true || value === false ||
2524
- (isObjectLike(value) && objectToString.call(value) == boolTag);
2543
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
2525
2544
  }
2526
2545
 
2527
2546
  /**
@@ -2665,10 +2684,13 @@
2665
2684
  * // => false
2666
2685
  */
2667
2686
  function isFunction(value) {
2687
+ if (!isObject(value)) {
2688
+ return false;
2689
+ }
2668
2690
  // The use of `Object#toString` avoids issues with the `typeof` operator
2669
- // in Safari 9 which returns 'object' for typed array and other constructors.
2670
- var tag = isObject(value) ? objectToString.call(value) : '';
2671
- return tag == funcTag || tag == genTag || tag == proxyTag;
2691
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
2692
+ var tag = baseGetTag(value);
2693
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
2672
2694
  }
2673
2695
 
2674
2696
  /**
@@ -2844,7 +2866,7 @@
2844
2866
  */
2845
2867
  function isNumber(value) {
2846
2868
  return typeof value == 'number' ||
2847
- (isObjectLike(value) && objectToString.call(value) == numberTag);
2869
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
2848
2870
  }
2849
2871
 
2850
2872
  /**
@@ -2885,7 +2907,7 @@
2885
2907
  */
2886
2908
  function isString(value) {
2887
2909
  return typeof value == 'string' ||
2888
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
2910
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
2889
2911
  }
2890
2912
 
2891
2913
  /**
@@ -3162,7 +3184,7 @@
3162
3184
  */
3163
3185
  function create(prototype, properties) {
3164
3186
  var result = baseCreate(prototype);
3165
- return properties ? assign(result, properties) : result;
3187
+ return properties == null ? result : assign(result, properties);
3166
3188
  }
3167
3189
 
3168
3190
  /**
@@ -3362,7 +3384,7 @@
3362
3384
  * // => ['h', 'i']
3363
3385
  */
3364
3386
  function values(object) {
3365
- return object ? baseValues(object, keys(object)) : [];
3387
+ return object == null ? [] : baseValues(object, keys(object));
3366
3388
  }
3367
3389
 
3368
3390
  /*------------------------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * lodash (Custom Build) /license | Underscore.js 1.8.3 underscorejs.org/LICENSE
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
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){
@@ -9,21 +9,21 @@ if(typeof n!="function")throw new TypeError("Expected a function");return setTim
9
9
  var p=En(o,function(t){return t[0]==n}),s=En(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 2&u||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),
10
10
  o.pop(),r):(i=i?n.value():n,f=f?t.value():t,r=r(i,f,e,u,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],nn,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
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 S(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 T(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function F(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=T(n);return e}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]: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||r(l,n,e,u,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function R(n,t,r,e,u,o){var i=2&u,c=qn(n),f=c.length,a=qn(t).length;
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 S(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 F(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=F(n);return e}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]: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||r(l,n,e,u,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function R(n,t,r,e,u,o){var i=2&u,c=qn(n),f=c.length,a=qn(t).length;
14
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&&!r(s,h,e,u,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 Sn(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 n&&n.length?s(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=n?n.length:0;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=Tn(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 n=H(n)?hn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n||"[object Proxy]"==n}function H(n){var t=typeof n;return null!=n&&("object"==t||"function"==t);
17
- }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"||!Sn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return n?u(n,qn(n)):[]}function Y(n){return n}function Z(n,r,e){var u=qn(r),o=v(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=v(r,qn(r)));var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);return mn(o,function(e){
18
- 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){
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"||!Sn(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,qn(n))}function Y(n){return n}function Z(n,r,e){var u=qn(r),o=v(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=v(r,qn(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){
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
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=String,En=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=_(r);t=qn(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){
21
- var e=n?n.length:0;if(!e)return-1;r=null==r?0:Tn(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}),wn=x(function(n,t,r){return F(n,t,r)}),kn=x(function(n,t){return f(n,1,t)}),Nn=x(function(n,t,r){return f(n,Fn(t)||0,r)}),Sn=Array.isArray,Tn=Number,Fn=Number,Bn=S(function(n,t){N(t,_n(t),n)}),Rn=S(function(n,t){N(t,I(t),n)}),Dn=S(function(n,t,r,e){N(t,$n(t),n,e)}),In=x(function(n){return n.push(nn,c),Dn.apply(nn,n)}),qn=_n,$n=I,Pn=function(n){return xn(q(n,nn,$),n+"");
22
- }(function(n,t){return null==n?{}:O(n,d(t,An))});o.assignIn=Rn,o.before=J,o.bind=wn,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(Sn(e)?E(e):[e],s(r,1))},o.create=function(n,t){var r=dn(n);return t?Bn(r,t):r},o.defaults=In,o.defer=kn,o.delay=Nn,o.filter=function(n,t){return p(n,_(t))},o.flatten=$,o.flattenDeep=function(n){
23
- return n&&n.length?s(n,tn):[]},o.iteratee=_,o.keys=qn,o.map=function(n,t){return d(n,_(t))},o.matches=function(n){return m(Bn({},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=Pn,o.slice=function(n,t,r){var e=n?n.length:0;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{value:n,index:e++,
24
- 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=Rn,Z(o,o),o.clone=function(n){return H(n)?Sn(n)?E(n):N(n,_n(n)):n},o.escape=function(n){
25
- 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=En,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=Sn,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)&&(Sn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){return b(n,t);
26
- },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 H(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=n?n.length:0;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.16.4",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
21
+ var e=null==n?0:n.length;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}),wn=x(function(n,t,r){return T(n,t,r)}),kn=x(function(n,t){return f(n,1,t)}),Nn=x(function(n,t,r){return f(n,Tn(t)||0,r)}),Sn=Array.isArray,Fn=Number,Tn=Number,Bn=S(function(n,t){N(t,_n(t),n)}),Rn=S(function(n,t){N(t,I(t),n)}),Dn=S(function(n,t,r,e){N(t,$n(t),n,e)}),In=x(function(n){return n.push(nn,c),Dn.apply(nn,n)}),qn=_n,$n=I,Pn=function(n){
22
+ return xn(q(n,nn,$),n+"")}(function(n,t){return null==n?{}:O(n,d(t,An))});o.assignIn=Rn,o.before=J,o.bind=wn,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(Sn(e)?E(e):[e],s(r,1))},o.create=function(n,t){var r=dn(n);return null==t?r:Bn(r,t)},o.defaults=In,o.defer=kn,o.delay=Nn,o.filter=function(n,t){return p(n,_(t))},o.flatten=$,
23
+ o.flattenDeep=function(n){return(null==n?0:n.length)?s(n,tn):[]},o.iteratee=_,o.keys=qn,o.map=function(n,t){return d(n,_(t))},o.matches=function(n){return m(Bn({},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=Pn,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),
24
+ d(d(n,function(n,r,u){return{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=Rn,Z(o,o),o.clone=function(n){
25
+ return H(n)?Sn(n)?E(n):N(n,_n(n)):n},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=En,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=Sn,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)&&(Sn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length;
26
+ },o.isEqual=function(n,t){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},
27
+ o.noConflict=function(){return on._===this&&(on._=vn),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.16.6",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
28
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(Sn(u)?u:[],n)}return this[r](function(r){return t.apply(Sn(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,
29
29
  define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  * lodash <https://lodash.com/>
4
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
4
+ * Copyright JS Foundation and other contributors <https://js.foundation/>
5
5
  * Released under MIT license <https://lodash.com/license>
6
6
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
7
7
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
@@ -12,7 +12,7 @@
12
12
  var undefined;
13
13
 
14
14
  /** Used as the semantic version number. */
15
- var VERSION = '4.16.4';
15
+ var VERSION = '4.16.6';
16
16
 
17
17
  /** Used as the size to enable large array optimizations. */
18
18
  var LARGE_ARRAY_SIZE = 200;
@@ -51,7 +51,7 @@
51
51
  DEFAULT_TRUNC_OMISSION = '...';
52
52
 
53
53
  /** Used to detect hot functions by number of calls within a span of milliseconds. */
54
- var HOT_COUNT = 500,
54
+ var HOT_COUNT = 800,
55
55
  HOT_SPAN = 16;
56
56
 
57
57
  /** Used to indicate the type of lazy iteratees. */
@@ -86,13 +86,16 @@
86
86
  /** `Object#toString` result references. */
87
87
  var argsTag = '[object Arguments]',
88
88
  arrayTag = '[object Array]',
89
+ asyncTag = '[object AsyncFunction]',
89
90
  boolTag = '[object Boolean]',
90
91
  dateTag = '[object Date]',
92
+ domExcTag = '[object DOMException]',
91
93
  errorTag = '[object Error]',
92
94
  funcTag = '[object Function]',
93
95
  genTag = '[object GeneratorFunction]',
94
96
  mapTag = '[object Map]',
95
97
  numberTag = '[object Number]',
98
+ nullTag = '[object Null]',
96
99
  objectTag = '[object Object]',
97
100
  promiseTag = '[object Promise]',
98
101
  proxyTag = '[object Proxy]',
@@ -100,6 +103,7 @@
100
103
  setTag = '[object Set]',
101
104
  stringTag = '[object String]',
102
105
  symbolTag = '[object Symbol]',
106
+ undefinedTag = '[object Undefined]',
103
107
  weakMapTag = '[object WeakMap]',
104
108
  weakSetTag = '[object WeakSet]';
105
109
 
@@ -225,13 +229,15 @@
225
229
  rsZWJ = '\\u200d';
226
230
 
227
231
  /** Used to compose unicode regexes. */
228
- var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',
229
- rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',
230
- rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
231
- rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
232
+ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
233
+ rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
234
+ rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
235
+ rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
232
236
  reOptMod = rsModifier + '?',
233
237
  rsOptVar = '[' + rsVarRange + ']?',
234
238
  rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
239
+ rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)',
240
+ rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)',
235
241
  rsSeq = rsOptVar + reOptMod + rsOptJoin,
236
242
  rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
237
243
  rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
@@ -250,10 +256,12 @@
250
256
 
251
257
  /** Used to match complex or compound words. */
252
258
  var reUnicodeWord = RegExp([
253
- rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
254
- rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',
255
- rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,
256
- rsUpper + '+' + rsOptUpperContr,
259
+ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
260
+ rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
261
+ rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
262
+ rsUpper + '+' + rsOptContrUpper,
263
+ rsOrdUpper,
264
+ rsOrdLower,
257
265
  rsDigits,
258
266
  rsEmoji
259
267
  ].join('|'), 'g');
@@ -496,7 +504,7 @@
496
504
  */
497
505
  function arrayAggregator(array, setter, iteratee, accumulator) {
498
506
  var index = -1,
499
- length = array ? array.length : 0;
507
+ length = array == null ? 0 : array.length;
500
508
 
501
509
  while (++index < length) {
502
510
  var value = array[index];
@@ -516,7 +524,7 @@
516
524
  */
517
525
  function arrayEach(array, iteratee) {
518
526
  var index = -1,
519
- length = array ? array.length : 0;
527
+ length = array == null ? 0 : array.length;
520
528
 
521
529
  while (++index < length) {
522
530
  if (iteratee(array[index], index, array) === false) {
@@ -536,7 +544,7 @@
536
544
  * @returns {Array} Returns `array`.
537
545
  */
538
546
  function arrayEachRight(array, iteratee) {
539
- var length = array ? array.length : 0;
547
+ var length = array == null ? 0 : array.length;
540
548
 
541
549
  while (length--) {
542
550
  if (iteratee(array[length], length, array) === false) {
@@ -558,7 +566,7 @@
558
566
  */
559
567
  function arrayEvery(array, predicate) {
560
568
  var index = -1,
561
- length = array ? array.length : 0;
569
+ length = array == null ? 0 : array.length;
562
570
 
563
571
  while (++index < length) {
564
572
  if (!predicate(array[index], index, array)) {
@@ -579,7 +587,7 @@
579
587
  */
580
588
  function arrayFilter(array, predicate) {
581
589
  var index = -1,
582
- length = array ? array.length : 0,
590
+ length = array == null ? 0 : array.length,
583
591
  resIndex = 0,
584
592
  result = [];
585
593
 
@@ -602,7 +610,7 @@
602
610
  * @returns {boolean} Returns `true` if `target` is found, else `false`.
603
611
  */
604
612
  function arrayIncludes(array, value) {
605
- var length = array ? array.length : 0;
613
+ var length = array == null ? 0 : array.length;
606
614
  return !!length && baseIndexOf(array, value, 0) > -1;
607
615
  }
608
616
 
@@ -617,7 +625,7 @@
617
625
  */
618
626
  function arrayIncludesWith(array, value, comparator) {
619
627
  var index = -1,
620
- length = array ? array.length : 0;
628
+ length = array == null ? 0 : array.length;
621
629
 
622
630
  while (++index < length) {
623
631
  if (comparator(value, array[index])) {
@@ -638,7 +646,7 @@
638
646
  */
639
647
  function arrayMap(array, iteratee) {
640
648
  var index = -1,
641
- length = array ? array.length : 0,
649
+ length = array == null ? 0 : array.length,
642
650
  result = Array(length);
643
651
 
644
652
  while (++index < length) {
@@ -680,7 +688,7 @@
680
688
  */
681
689
  function arrayReduce(array, iteratee, accumulator, initAccum) {
682
690
  var index = -1,
683
- length = array ? array.length : 0;
691
+ length = array == null ? 0 : array.length;
684
692
 
685
693
  if (initAccum && length) {
686
694
  accumulator = array[++index];
@@ -704,7 +712,7 @@
704
712
  * @returns {*} Returns the accumulated value.
705
713
  */
706
714
  function arrayReduceRight(array, iteratee, accumulator, initAccum) {
707
- var length = array ? array.length : 0;
715
+ var length = array == null ? 0 : array.length;
708
716
  if (initAccum && length) {
709
717
  accumulator = array[--length];
710
718
  }
@@ -726,7 +734,7 @@
726
734
  */
727
735
  function arraySome(array, predicate) {
728
736
  var index = -1,
729
- length = array ? array.length : 0;
737
+ length = array == null ? 0 : array.length;
730
738
 
731
739
  while (++index < length) {
732
740
  if (predicate(array[index], index, array)) {
@@ -870,7 +878,7 @@
870
878
  * @returns {number} Returns the mean.
871
879
  */
872
880
  function baseMean(array, iteratee) {
873
- var length = array ? array.length : 0;
881
+ var length = array == null ? 0 : array.length;
874
882
  return length ? (baseSum(array, iteratee) / length) : NAN;
875
883
  }
876
884
 
@@ -1410,7 +1418,7 @@
1410
1418
  * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
1411
1419
  */
1412
1420
  var runInContext = (function runInContext(context) {
1413
- context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root;
1421
+ context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
1414
1422
 
1415
1423
  /** Built-in constructor references. */
1416
1424
  var Array = context.Array,
@@ -1431,12 +1439,6 @@
1431
1439
  /** Used to detect overreaching core-js shims. */
1432
1440
  var coreJsData = context['__core-js_shared__'];
1433
1441
 
1434
- /** Used to detect methods masquerading as native. */
1435
- var maskSrcKey = (function() {
1436
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
1437
- return uid ? ('Symbol(src)_1.' + uid) : '';
1438
- }());
1439
-
1440
1442
  /** Used to resolve the decompiled source of functions. */
1441
1443
  var funcToString = funcProto.toString;
1442
1444
 
@@ -1446,15 +1448,21 @@
1446
1448
  /** Used to generate unique IDs. */
1447
1449
  var idCounter = 0;
1448
1450
 
1449
- /** Used to infer the `Object` constructor. */
1450
- var objectCtorString = funcToString.call(Object);
1451
+ /** Used to detect methods masquerading as native. */
1452
+ var maskSrcKey = (function() {
1453
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
1454
+ return uid ? ('Symbol(src)_1.' + uid) : '';
1455
+ }());
1451
1456
 
1452
1457
  /**
1453
1458
  * Used to resolve the
1454
1459
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
1455
1460
  * of values.
1456
1461
  */
1457
- var objectToString = objectProto.toString;
1462
+ var nativeObjectToString = objectProto.toString;
1463
+
1464
+ /** Used to infer the `Object` constructor. */
1465
+ var objectCtorString = funcToString.call(Object);
1458
1466
 
1459
1467
  /** Used to restore the original `_` reference in `_.noConflict`. */
1460
1468
  var oldDash = root._;
@@ -1471,11 +1479,12 @@
1471
1479
  Uint8Array = context.Uint8Array,
1472
1480
  allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
1473
1481
  getPrototype = overArg(Object.getPrototypeOf, Object),
1474
- iteratorSymbol = Symbol ? Symbol.iterator : undefined,
1475
1482
  objectCreate = Object.create,
1476
1483
  propertyIsEnumerable = objectProto.propertyIsEnumerable,
1477
1484
  splice = arrayProto.splice,
1478
- spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
1485
+ spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
1486
+ symIterator = Symbol ? Symbol.iterator : undefined,
1487
+ symToStringTag = Symbol ? Symbol.toStringTag : undefined;
1479
1488
 
1480
1489
  var defineProperty = (function() {
1481
1490
  try {
@@ -1909,7 +1918,7 @@
1909
1918
  */
1910
1919
  function Hash(entries) {
1911
1920
  var index = -1,
1912
- length = entries ? entries.length : 0;
1921
+ length = entries == null ? 0 : entries.length;
1913
1922
 
1914
1923
  this.clear();
1915
1924
  while (++index < length) {
@@ -2013,7 +2022,7 @@
2013
2022
  */
2014
2023
  function ListCache(entries) {
2015
2024
  var index = -1,
2016
- length = entries ? entries.length : 0;
2025
+ length = entries == null ? 0 : entries.length;
2017
2026
 
2018
2027
  this.clear();
2019
2028
  while (++index < length) {
@@ -2130,7 +2139,7 @@
2130
2139
  */
2131
2140
  function MapCache(entries) {
2132
2141
  var index = -1,
2133
- length = entries ? entries.length : 0;
2142
+ length = entries == null ? 0 : entries.length;
2134
2143
 
2135
2144
  this.clear();
2136
2145
  while (++index < length) {
@@ -2234,7 +2243,7 @@
2234
2243
  */
2235
2244
  function SetCache(values) {
2236
2245
  var index = -1,
2237
- length = values ? values.length : 0;
2246
+ length = values == null ? 0 : values.length;
2238
2247
 
2239
2248
  this.__data__ = new MapCache;
2240
2249
  while (++index < length) {
@@ -2581,12 +2590,12 @@
2581
2590
  */
2582
2591
  function baseAt(object, paths) {
2583
2592
  var index = -1,
2584
- isNil = object == null,
2585
2593
  length = paths.length,
2586
- result = Array(length);
2594
+ result = Array(length),
2595
+ skip = object == null;
2587
2596
 
2588
2597
  while (++index < length) {
2589
- result[index] = isNil ? undefined : get(object, paths[index]);
2598
+ result[index] = skip ? undefined : get(object, paths[index]);
2590
2599
  }
2591
2600
  return result;
2592
2601
  }
@@ -2776,7 +2785,7 @@
2776
2785
  outer:
2777
2786
  while (++index < length) {
2778
2787
  var value = array[index],
2779
- computed = iteratee ? iteratee(value) : value;
2788
+ computed = iteratee == null ? value : iteratee(value);
2780
2789
 
2781
2790
  value = (comparator || value !== 0) ? value : 0;
2782
2791
  if (isCommon && computed === computed) {
@@ -3043,14 +3052,20 @@
3043
3052
  }
3044
3053
 
3045
3054
  /**
3046
- * The base implementation of `getTag`.
3055
+ * The base implementation of `getTag` without fallbacks for buggy environments.
3047
3056
  *
3048
3057
  * @private
3049
3058
  * @param {*} value The value to query.
3050
3059
  * @returns {string} Returns the `toStringTag`.
3051
3060
  */
3052
3061
  function baseGetTag(value) {
3053
- return objectToString.call(value);
3062
+ if (value == null) {
3063
+ return value === undefined ? undefinedTag : nullTag;
3064
+ }
3065
+ value = Object(value);
3066
+ return (symToStringTag && symToStringTag in value)
3067
+ ? getRawTag(value)
3068
+ : objectToString(value);
3054
3069
  }
3055
3070
 
3056
3071
  /**
@@ -3212,7 +3227,7 @@
3212
3227
  * @returns {boolean} Returns `true` if `value` is an `arguments` object,
3213
3228
  */
3214
3229
  function baseIsArguments(value) {
3215
- return isObjectLike(value) && objectToString.call(value) == argsTag;
3230
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
3216
3231
  }
3217
3232
 
3218
3233
  /**
@@ -3223,7 +3238,7 @@
3223
3238
  * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
3224
3239
  */
3225
3240
  function baseIsArrayBuffer(value) {
3226
- return isObjectLike(value) && objectToString.call(value) == arrayBufferTag;
3241
+ return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
3227
3242
  }
3228
3243
 
3229
3244
  /**
@@ -3234,7 +3249,7 @@
3234
3249
  * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
3235
3250
  */
3236
3251
  function baseIsDate(value) {
3237
- return isObjectLike(value) && objectToString.call(value) == dateTag;
3252
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
3238
3253
  }
3239
3254
 
3240
3255
  /**
@@ -3416,7 +3431,7 @@
3416
3431
  * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
3417
3432
  */
3418
3433
  function baseIsRegExp(value) {
3419
- return isObject(value) && objectToString.call(value) == regexpTag;
3434
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
3420
3435
  }
3421
3436
 
3422
3437
  /**
@@ -3439,7 +3454,7 @@
3439
3454
  */
3440
3455
  function baseIsTypedArray(value) {
3441
3456
  return isObjectLike(value) &&
3442
- isLength(value.length) && !!typedArrayTags[objectToString.call(value)];
3457
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
3443
3458
  }
3444
3459
 
3445
3460
  /**
@@ -4100,7 +4115,7 @@
4100
4115
  */
4101
4116
  function baseSortedIndex(array, value, retHighest) {
4102
4117
  var low = 0,
4103
- high = array ? array.length : low;
4118
+ high = array == null ? low : array.length;
4104
4119
 
4105
4120
  if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
4106
4121
  while (low < high) {
@@ -4136,7 +4151,7 @@
4136
4151
  value = iteratee(value);
4137
4152
 
4138
4153
  var low = 0,
4139
- high = array ? array.length : 0,
4154
+ high = array == null ? 0 : array.length,
4140
4155
  valIsNaN = value !== value,
4141
4156
  valIsNull = value === null,
4142
4157
  valIsSymbol = isSymbol(value),
@@ -4386,18 +4401,24 @@
4386
4401
  * @returns {Array} Returns the new array of values.
4387
4402
  */
4388
4403
  function baseXor(arrays, iteratee, comparator) {
4404
+ var length = arrays.length;
4405
+ if (length < 2) {
4406
+ return length ? baseUniq(arrays[0]) : [];
4407
+ }
4389
4408
  var index = -1,
4390
- length = arrays.length;
4409
+ result = Array(length);
4391
4410
 
4392
4411
  while (++index < length) {
4393
- var result = result
4394
- ? arrayPush(
4395
- baseDifference(result, arrays[index], iteratee, comparator),
4396
- baseDifference(arrays[index], result, iteratee, comparator)
4397
- )
4398
- : arrays[index];
4412
+ var array = arrays[index],
4413
+ othIndex = -1;
4414
+
4415
+ while (++othIndex < length) {
4416
+ if (othIndex != index) {
4417
+ result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
4418
+ }
4419
+ }
4399
4420
  }
4400
- return (result && result.length) ? baseUniq(result, iteratee, comparator) : [];
4421
+ return baseUniq(baseFlatten(result, 1), iteratee, comparator);
4401
4422
  }
4402
4423
 
4403
4424
  /**
@@ -5934,6 +5955,33 @@
5934
5955
  return baseIsNative(value) ? value : undefined;
5935
5956
  }
5936
5957
 
5958
+ /**
5959
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
5960
+ *
5961
+ * @private
5962
+ * @param {*} value The value to query.
5963
+ * @returns {string} Returns the raw `toStringTag`.
5964
+ */
5965
+ function getRawTag(value) {
5966
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
5967
+ tag = value[symToStringTag];
5968
+
5969
+ try {
5970
+ value[symToStringTag] = undefined;
5971
+ var unmasked = true;
5972
+ } catch (e) {}
5973
+
5974
+ var result = nativeObjectToString.call(value);
5975
+ if (unmasked) {
5976
+ if (isOwn) {
5977
+ value[symToStringTag] = tag;
5978
+ } else {
5979
+ delete value[symToStringTag];
5980
+ }
5981
+ }
5982
+ return result;
5983
+ }
5984
+
5937
5985
  /**
5938
5986
  * Creates an array of the own enumerable symbol properties of `object`.
5939
5987
  *
@@ -5976,9 +6024,9 @@
5976
6024
  (Set && getTag(new Set) != setTag) ||
5977
6025
  (WeakMap && getTag(new WeakMap) != weakMapTag)) {
5978
6026
  getTag = function(value) {
5979
- var result = objectToString.call(value),
6027
+ var result = baseGetTag(value),
5980
6028
  Ctor = result == objectTag ? value.constructor : undefined,
5981
- ctorString = Ctor ? toSource(Ctor) : undefined;
6029
+ ctorString = Ctor ? toSource(Ctor) : '';
5982
6030
 
5983
6031
  if (ctorString) {
5984
6032
  switch (ctorString) {
@@ -6059,7 +6107,7 @@
6059
6107
  if (result || ++index != length) {
6060
6108
  return result;
6061
6109
  }
6062
- length = object ? object.length : 0;
6110
+ length = object == null ? 0 : object.length;
6063
6111
  return !!length && isLength(length) && isIndex(key, length) &&
6064
6112
  (isArray(object) || isArguments(object));
6065
6113
  }
@@ -6470,6 +6518,17 @@
6470
6518
  return result;
6471
6519
  }
6472
6520
 
6521
+ /**
6522
+ * Converts `value` to a string using `Object.prototype.toString`.
6523
+ *
6524
+ * @private
6525
+ * @param {*} value The value to convert.
6526
+ * @returns {string} Returns the converted string.
6527
+ */
6528
+ function objectToString(value) {
6529
+ return nativeObjectToString.call(value);
6530
+ }
6531
+
6473
6532
  /**
6474
6533
  * A specialized version of `baseRest` which transforms the rest array.
6475
6534
  *
@@ -6680,7 +6739,7 @@
6680
6739
  * Converts `func` to its source code.
6681
6740
  *
6682
6741
  * @private
6683
- * @param {Function} func The function to process.
6742
+ * @param {Function} func The function to convert.
6684
6743
  * @returns {string} Returns the source code.
6685
6744
  */
6686
6745
  function toSource(func) {
@@ -6760,7 +6819,7 @@
6760
6819
  } else {
6761
6820
  size = nativeMax(toInteger(size), 0);
6762
6821
  }
6763
- var length = array ? array.length : 0;
6822
+ var length = array == null ? 0 : array.length;
6764
6823
  if (!length || size < 1) {
6765
6824
  return [];
6766
6825
  }
@@ -6791,7 +6850,7 @@
6791
6850
  */
6792
6851
  function compact(array) {
6793
6852
  var index = -1,
6794
- length = array ? array.length : 0,
6853
+ length = array == null ? 0 : array.length,
6795
6854
  resIndex = 0,
6796
6855
  result = [];
6797
6856
 
@@ -6963,7 +7022,7 @@
6963
7022
  * // => [1, 2, 3]
6964
7023
  */
6965
7024
  function drop(array, n, guard) {
6966
- var length = array ? array.length : 0;
7025
+ var length = array == null ? 0 : array.length;
6967
7026
  if (!length) {
6968
7027
  return [];
6969
7028
  }
@@ -6997,7 +7056,7 @@
6997
7056
  * // => [1, 2, 3]
6998
7057
  */
6999
7058
  function dropRight(array, n, guard) {
7000
- var length = array ? array.length : 0;
7059
+ var length = array == null ? 0 : array.length;
7001
7060
  if (!length) {
7002
7061
  return [];
7003
7062
  }
@@ -7057,8 +7116,7 @@
7057
7116
  * @since 3.0.0
7058
7117
  * @category Array
7059
7118
  * @param {Array} array The array to query.
7060
- * @param {Function} [predicate=_.identity]
7061
- * The function invoked per iteration.
7119
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
7062
7120
  * @returns {Array} Returns the slice of `array`.
7063
7121
  * @example
7064
7122
  *
@@ -7119,7 +7177,7 @@
7119
7177
  * // => [4, '*', '*', 10]
7120
7178
  */
7121
7179
  function fill(array, value, start, end) {
7122
- var length = array ? array.length : 0;
7180
+ var length = array == null ? 0 : array.length;
7123
7181
  if (!length) {
7124
7182
  return [];
7125
7183
  }
@@ -7139,8 +7197,7 @@
7139
7197
  * @since 1.1.0
7140
7198
  * @category Array
7141
7199
  * @param {Array} array The array to inspect.
7142
- * @param {Function} [predicate=_.identity]
7143
- * The function invoked per iteration.
7200
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
7144
7201
  * @param {number} [fromIndex=0] The index to search from.
7145
7202
  * @returns {number} Returns the index of the found element, else `-1`.
7146
7203
  * @example
@@ -7167,7 +7224,7 @@
7167
7224
  * // => 2
7168
7225
  */
7169
7226
  function findIndex(array, predicate, fromIndex) {
7170
- var length = array ? array.length : 0;
7227
+ var length = array == null ? 0 : array.length;
7171
7228
  if (!length) {
7172
7229
  return -1;
7173
7230
  }
@@ -7187,8 +7244,7 @@
7187
7244
  * @since 2.0.0
7188
7245
  * @category Array
7189
7246
  * @param {Array} array The array to inspect.
7190
- * @param {Function} [predicate=_.identity]
7191
- * The function invoked per iteration.
7247
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
7192
7248
  * @param {number} [fromIndex=array.length-1] The index to search from.
7193
7249
  * @returns {number} Returns the index of the found element, else `-1`.
7194
7250
  * @example
@@ -7215,7 +7271,7 @@
7215
7271
  * // => 0
7216
7272
  */
7217
7273
  function findLastIndex(array, predicate, fromIndex) {
7218
- var length = array ? array.length : 0;
7274
+ var length = array == null ? 0 : array.length;
7219
7275
  if (!length) {
7220
7276
  return -1;
7221
7277
  }
@@ -7244,7 +7300,7 @@
7244
7300
  * // => [1, 2, [3, [4]], 5]
7245
7301
  */
7246
7302
  function flatten(array) {
7247
- var length = array ? array.length : 0;
7303
+ var length = array == null ? 0 : array.length;
7248
7304
  return length ? baseFlatten(array, 1) : [];
7249
7305
  }
7250
7306
 
@@ -7263,7 +7319,7 @@
7263
7319
  * // => [1, 2, 3, 4, 5]
7264
7320
  */
7265
7321
  function flattenDeep(array) {
7266
- var length = array ? array.length : 0;
7322
+ var length = array == null ? 0 : array.length;
7267
7323
  return length ? baseFlatten(array, INFINITY) : [];
7268
7324
  }
7269
7325
 
@@ -7288,7 +7344,7 @@
7288
7344
  * // => [1, 2, 3, [4], 5]
7289
7345
  */
7290
7346
  function flattenDepth(array, depth) {
7291
- var length = array ? array.length : 0;
7347
+ var length = array == null ? 0 : array.length;
7292
7348
  if (!length) {
7293
7349
  return [];
7294
7350
  }
@@ -7313,7 +7369,7 @@
7313
7369
  */
7314
7370
  function fromPairs(pairs) {
7315
7371
  var index = -1,
7316
- length = pairs ? pairs.length : 0,
7372
+ length = pairs == null ? 0 : pairs.length,
7317
7373
  result = {};
7318
7374
 
7319
7375
  while (++index < length) {
@@ -7369,7 +7425,7 @@
7369
7425
  * // => 3
7370
7426
  */
7371
7427
  function indexOf(array, value, fromIndex) {
7372
- var length = array ? array.length : 0;
7428
+ var length = array == null ? 0 : array.length;
7373
7429
  if (!length) {
7374
7430
  return -1;
7375
7431
  }
@@ -7395,7 +7451,7 @@
7395
7451
  * // => [1, 2]
7396
7452
  */
7397
7453
  function initial(array) {
7398
- var length = array ? array.length : 0;
7454
+ var length = array == null ? 0 : array.length;
7399
7455
  return length ? baseSlice(array, 0, -1) : [];
7400
7456
  }
7401
7457
 
@@ -7485,9 +7541,8 @@
7485
7541
  var comparator = last(arrays),
7486
7542
  mapped = arrayMap(arrays, castArrayLikeObject);
7487
7543
 
7488
- if (comparator === last(mapped)) {
7489
- comparator = undefined;
7490
- } else {
7544
+ comparator = typeof comparator == 'function' ? comparator : undefined;
7545
+ if (comparator) {
7491
7546
  mapped.pop();
7492
7547
  }
7493
7548
  return (mapped.length && mapped[0] === arrays[0])
@@ -7511,7 +7566,7 @@
7511
7566
  * // => 'a~b~c'
7512
7567
  */
7513
7568
  function join(array, separator) {
7514
- return array ? nativeJoin.call(array, separator) : '';
7569
+ return array == null ? '' : nativeJoin.call(array, separator);
7515
7570
  }
7516
7571
 
7517
7572
  /**
@@ -7529,7 +7584,7 @@
7529
7584
  * // => 3
7530
7585
  */
7531
7586
  function last(array) {
7532
- var length = array ? array.length : 0;
7587
+ var length = array == null ? 0 : array.length;
7533
7588
  return length ? array[length - 1] : undefined;
7534
7589
  }
7535
7590
 
@@ -7555,7 +7610,7 @@
7555
7610
  * // => 1
7556
7611
  */
7557
7612
  function lastIndexOf(array, value, fromIndex) {
7558
- var length = array ? array.length : 0;
7613
+ var length = array == null ? 0 : array.length;
7559
7614
  if (!length) {
7560
7615
  return -1;
7561
7616
  }
@@ -7658,8 +7713,7 @@
7658
7713
  * @category Array
7659
7714
  * @param {Array} array The array to modify.
7660
7715
  * @param {Array} values The values to remove.
7661
- * @param {Function} [iteratee=_.identity]
7662
- * The iteratee invoked per element.
7716
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
7663
7717
  * @returns {Array} Returns `array`.
7664
7718
  * @example
7665
7719
  *
@@ -7729,7 +7783,7 @@
7729
7783
  * // => ['b', 'd']
7730
7784
  */
7731
7785
  var pullAt = flatRest(function(array, indexes) {
7732
- var length = array ? array.length : 0,
7786
+ var length = array == null ? 0 : array.length,
7733
7787
  result = baseAt(array, indexes);
7734
7788
 
7735
7789
  basePullAt(array, arrayMap(indexes, function(index) {
@@ -7752,8 +7806,7 @@
7752
7806
  * @since 2.0.0
7753
7807
  * @category Array
7754
7808
  * @param {Array} array The array to modify.
7755
- * @param {Function} [predicate=_.identity]
7756
- * The function invoked per iteration.
7809
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
7757
7810
  * @returns {Array} Returns the new array of removed elements.
7758
7811
  * @example
7759
7812
  *
@@ -7813,7 +7866,7 @@
7813
7866
  * // => [3, 2, 1]
7814
7867
  */
7815
7868
  function reverse(array) {
7816
- return array ? nativeReverse.call(array) : array;
7869
+ return array == null ? array : nativeReverse.call(array);
7817
7870
  }
7818
7871
 
7819
7872
  /**
@@ -7833,7 +7886,7 @@
7833
7886
  * @returns {Array} Returns the slice of `array`.
7834
7887
  */
7835
7888
  function slice(array, start, end) {
7836
- var length = array ? array.length : 0;
7889
+ var length = array == null ? 0 : array.length;
7837
7890
  if (!length) {
7838
7891
  return [];
7839
7892
  }
@@ -7880,8 +7933,7 @@
7880
7933
  * @category Array
7881
7934
  * @param {Array} array The sorted array to inspect.
7882
7935
  * @param {*} value The value to evaluate.
7883
- * @param {Function} [iteratee=_.identity]
7884
- * The iteratee invoked per element.
7936
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
7885
7937
  * @returns {number} Returns the index at which `value` should be inserted
7886
7938
  * into `array`.
7887
7939
  * @example
@@ -7916,7 +7968,7 @@
7916
7968
  * // => 1
7917
7969
  */
7918
7970
  function sortedIndexOf(array, value) {
7919
- var length = array ? array.length : 0;
7971
+ var length = array == null ? 0 : array.length;
7920
7972
  if (length) {
7921
7973
  var index = baseSortedIndex(array, value);
7922
7974
  if (index < length && eq(array[index], value)) {
@@ -7959,8 +8011,7 @@
7959
8011
  * @category Array
7960
8012
  * @param {Array} array The sorted array to inspect.
7961
8013
  * @param {*} value The value to evaluate.
7962
- * @param {Function} [iteratee=_.identity]
7963
- * The iteratee invoked per element.
8014
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
7964
8015
  * @returns {number} Returns the index at which `value` should be inserted
7965
8016
  * into `array`.
7966
8017
  * @example
@@ -7995,7 +8046,7 @@
7995
8046
  * // => 3
7996
8047
  */
7997
8048
  function sortedLastIndexOf(array, value) {
7998
- var length = array ? array.length : 0;
8049
+ var length = array == null ? 0 : array.length;
7999
8050
  if (length) {
8000
8051
  var index = baseSortedIndex(array, value, true) - 1;
8001
8052
  if (eq(array[index], value)) {
@@ -8063,7 +8114,7 @@
8063
8114
  * // => [2, 3]
8064
8115
  */
8065
8116
  function tail(array) {
8066
- var length = array ? array.length : 0;
8117
+ var length = array == null ? 0 : array.length;
8067
8118
  return length ? baseSlice(array, 1, length) : [];
8068
8119
  }
8069
8120
 
@@ -8126,7 +8177,7 @@
8126
8177
  * // => []
8127
8178
  */
8128
8179
  function takeRight(array, n, guard) {
8129
- var length = array ? array.length : 0;
8180
+ var length = array == null ? 0 : array.length;
8130
8181
  if (!length) {
8131
8182
  return [];
8132
8183
  }
@@ -8145,8 +8196,7 @@
8145
8196
  * @since 3.0.0
8146
8197
  * @category Array
8147
8198
  * @param {Array} array The array to query.
8148
- * @param {Function} [predicate=_.identity]
8149
- * The function invoked per iteration.
8199
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
8150
8200
  * @returns {Array} Returns the slice of `array`.
8151
8201
  * @example
8152
8202
  *
@@ -8187,8 +8237,7 @@
8187
8237
  * @since 3.0.0
8188
8238
  * @category Array
8189
8239
  * @param {Array} array The array to query.
8190
- * @param {Function} [predicate=_.identity]
8191
- * The function invoked per iteration.
8240
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
8192
8241
  * @returns {Array} Returns the slice of `array`.
8193
8242
  * @example
8194
8243
  *
@@ -8251,8 +8300,7 @@
8251
8300
  * @since 4.0.0
8252
8301
  * @category Array
8253
8302
  * @param {...Array} [arrays] The arrays to inspect.
8254
- * @param {Function} [iteratee=_.identity]
8255
- * The iteratee invoked per element.
8303
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
8256
8304
  * @returns {Array} Returns the new array of combined values.
8257
8305
  * @example
8258
8306
  *
@@ -8294,9 +8342,7 @@
8294
8342
  */
8295
8343
  var unionWith = baseRest(function(arrays) {
8296
8344
  var comparator = last(arrays);
8297
- if (isArrayLikeObject(comparator)) {
8298
- comparator = undefined;
8299
- }
8345
+ comparator = typeof comparator == 'function' ? comparator : undefined;
8300
8346
  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
8301
8347
  });
8302
8348
 
@@ -8319,9 +8365,7 @@
8319
8365
  * // => [2, 1]
8320
8366
  */
8321
8367
  function uniq(array) {
8322
- return (array && array.length)
8323
- ? baseUniq(array)
8324
- : [];
8368
+ return (array && array.length) ? baseUniq(array) : [];
8325
8369
  }
8326
8370
 
8327
8371
  /**
@@ -8336,8 +8380,7 @@
8336
8380
  * @since 4.0.0
8337
8381
  * @category Array
8338
8382
  * @param {Array} array The array to inspect.
8339
- * @param {Function} [iteratee=_.identity]
8340
- * The iteratee invoked per element.
8383
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
8341
8384
  * @returns {Array} Returns the new duplicate free array.
8342
8385
  * @example
8343
8386
  *
@@ -8349,9 +8392,7 @@
8349
8392
  * // => [{ 'x': 1 }, { 'x': 2 }]
8350
8393
  */
8351
8394
  function uniqBy(array, iteratee) {
8352
- return (array && array.length)
8353
- ? baseUniq(array, getIteratee(iteratee, 2))
8354
- : [];
8395
+ return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
8355
8396
  }
8356
8397
 
8357
8398
  /**
@@ -8375,9 +8416,8 @@
8375
8416
  * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
8376
8417
  */
8377
8418
  function uniqWith(array, comparator) {
8378
- return (array && array.length)
8379
- ? baseUniq(array, undefined, comparator)
8380
- : [];
8419
+ comparator = typeof comparator == 'function' ? comparator : undefined;
8420
+ return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
8381
8421
  }
8382
8422
 
8383
8423
  /**
@@ -8509,8 +8549,7 @@
8509
8549
  * @since 4.0.0
8510
8550
  * @category Array
8511
8551
  * @param {...Array} [arrays] The arrays to inspect.
8512
- * @param {Function} [iteratee=_.identity]
8513
- * The iteratee invoked per element.
8552
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
8514
8553
  * @returns {Array} Returns the new array of filtered values.
8515
8554
  * @example
8516
8555
  *
@@ -8552,9 +8591,7 @@
8552
8591
  */
8553
8592
  var xorWith = baseRest(function(arrays) {
8554
8593
  var comparator = last(arrays);
8555
- if (isArrayLikeObject(comparator)) {
8556
- comparator = undefined;
8557
- }
8594
+ comparator = typeof comparator == 'function' ? comparator : undefined;
8558
8595
  return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
8559
8596
  });
8560
8597
 
@@ -8625,7 +8662,8 @@
8625
8662
  * @since 3.8.0
8626
8663
  * @category Array
8627
8664
  * @param {...Array} [arrays] The arrays to process.
8628
- * @param {Function} [iteratee=_.identity] The function to combine grouped values.
8665
+ * @param {Function} [iteratee=_.identity] The function to combine
8666
+ * grouped values.
8629
8667
  * @returns {Array} Returns the new array of grouped elements.
8630
8668
  * @example
8631
8669
  *
@@ -9002,8 +9040,7 @@
9002
9040
  * @since 0.5.0
9003
9041
  * @category Collection
9004
9042
  * @param {Array|Object} collection The collection to iterate over.
9005
- * @param {Function} [iteratee=_.identity]
9006
- * The iteratee to transform keys.
9043
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
9007
9044
  * @returns {Object} Returns the composed aggregate object.
9008
9045
  * @example
9009
9046
  *
@@ -9037,8 +9074,7 @@
9037
9074
  * @since 0.1.0
9038
9075
  * @category Collection
9039
9076
  * @param {Array|Object} collection The collection to iterate over.
9040
- * @param {Function} [predicate=_.identity]
9041
- * The function invoked per iteration.
9077
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
9042
9078
  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
9043
9079
  * @returns {boolean} Returns `true` if all elements pass the predicate check,
9044
9080
  * else `false`.
@@ -9084,8 +9120,7 @@
9084
9120
  * @since 0.1.0
9085
9121
  * @category Collection
9086
9122
  * @param {Array|Object} collection The collection to iterate over.
9087
- * @param {Function} [predicate=_.identity]
9088
- * The function invoked per iteration.
9123
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
9089
9124
  * @returns {Array} Returns the new filtered array.
9090
9125
  * @see _.reject
9091
9126
  * @example
@@ -9125,8 +9160,7 @@
9125
9160
  * @since 0.1.0
9126
9161
  * @category Collection
9127
9162
  * @param {Array|Object} collection The collection to inspect.
9128
- * @param {Function} [predicate=_.identity]
9129
- * The function invoked per iteration.
9163
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
9130
9164
  * @param {number} [fromIndex=0] The index to search from.
9131
9165
  * @returns {*} Returns the matched element, else `undefined`.
9132
9166
  * @example
@@ -9163,8 +9197,7 @@
9163
9197
  * @since 2.0.0
9164
9198
  * @category Collection
9165
9199
  * @param {Array|Object} collection The collection to inspect.
9166
- * @param {Function} [predicate=_.identity]
9167
- * The function invoked per iteration.
9200
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
9168
9201
  * @param {number} [fromIndex=collection.length-1] The index to search from.
9169
9202
  * @returns {*} Returns the matched element, else `undefined`.
9170
9203
  * @example
@@ -9186,8 +9219,7 @@
9186
9219
  * @since 4.0.0
9187
9220
  * @category Collection
9188
9221
  * @param {Array|Object} collection The collection to iterate over.
9189
- * @param {Function} [iteratee=_.identity]
9190
- * The function invoked per iteration.
9222
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
9191
9223
  * @returns {Array} Returns the new flattened array.
9192
9224
  * @example
9193
9225
  *
@@ -9211,8 +9243,7 @@
9211
9243
  * @since 4.7.0
9212
9244
  * @category Collection
9213
9245
  * @param {Array|Object} collection The collection to iterate over.
9214
- * @param {Function} [iteratee=_.identity]
9215
- * The function invoked per iteration.
9246
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
9216
9247
  * @returns {Array} Returns the new flattened array.
9217
9248
  * @example
9218
9249
  *
@@ -9236,8 +9267,7 @@
9236
9267
  * @since 4.7.0
9237
9268
  * @category Collection
9238
9269
  * @param {Array|Object} collection The collection to iterate over.
9239
- * @param {Function} [iteratee=_.identity]
9240
- * The function invoked per iteration.
9270
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
9241
9271
  * @param {number} [depth=1] The maximum recursion depth.
9242
9272
  * @returns {Array} Returns the new flattened array.
9243
9273
  * @example
@@ -9326,8 +9356,7 @@
9326
9356
  * @since 0.1.0
9327
9357
  * @category Collection
9328
9358
  * @param {Array|Object} collection The collection to iterate over.
9329
- * @param {Function} [iteratee=_.identity]
9330
- * The iteratee to transform keys.
9359
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
9331
9360
  * @returns {Object} Returns the composed aggregate object.
9332
9361
  * @example
9333
9362
  *
@@ -9436,8 +9465,7 @@
9436
9465
  * @since 4.0.0
9437
9466
  * @category Collection
9438
9467
  * @param {Array|Object} collection The collection to iterate over.
9439
- * @param {Function} [iteratee=_.identity]
9440
- * The iteratee to transform keys.
9468
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
9441
9469
  * @returns {Object} Returns the composed aggregate object.
9442
9470
  * @example
9443
9471
  *
@@ -10452,7 +10480,7 @@
10452
10480
  * function. Its creation may be customized by replacing the `_.memoize.Cache`
10453
10481
  * constructor with one whose instances implement the
10454
10482
  * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
10455
- * method interface of `delete`, `get`, `has`, and `set`.
10483
+ * method interface of `clear`, `delete`, `get`, `has`, and `set`.
10456
10484
  *
10457
10485
  * @static
10458
10486
  * @memberOf _
@@ -10486,7 +10514,7 @@
10486
10514
  * _.memoize.Cache = WeakMap;
10487
10515
  */
10488
10516
  function memoize(func, resolver) {
10489
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
10517
+ if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
10490
10518
  throw new TypeError(FUNC_ERROR_TEXT);
10491
10519
  }
10492
10520
  var memoized = function() {
@@ -10902,8 +10930,7 @@
10902
10930
  * // => '<p>fred, barney, &amp; pebbles</p>'
10903
10931
  */
10904
10932
  function wrap(value, wrapper) {
10905
- wrapper = wrapper == null ? identity : wrapper;
10906
- return partial(wrapper, value);
10933
+ return partial(castFunction(wrapper), value);
10907
10934
  }
10908
10935
 
10909
10936
  /*------------------------------------------------------------------------*/
@@ -11011,6 +11038,7 @@
11011
11038
  * // => 0
11012
11039
  */
11013
11040
  function cloneWith(value, customizer) {
11041
+ customizer = typeof customizer == 'function' ? customizer : undefined;
11014
11042
  return baseClone(value, false, true, customizer);
11015
11043
  }
11016
11044
 
@@ -11065,6 +11093,7 @@
11065
11093
  * // => 20
11066
11094
  */
11067
11095
  function cloneDeepWith(value, customizer) {
11096
+ customizer = typeof customizer == 'function' ? customizer : undefined;
11068
11097
  return baseClone(value, true, true, customizer);
11069
11098
  }
11070
11099
 
@@ -11328,7 +11357,7 @@
11328
11357
  */
11329
11358
  function isBoolean(value) {
11330
11359
  return value === true || value === false ||
11331
- (isObjectLike(value) && objectToString.call(value) == boolTag);
11360
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
11332
11361
  }
11333
11362
 
11334
11363
  /**
@@ -11387,7 +11416,7 @@
11387
11416
  * // => false
11388
11417
  */
11389
11418
  function isElement(value) {
11390
- return value != null && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value);
11419
+ return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
11391
11420
  }
11392
11421
 
11393
11422
  /**
@@ -11424,6 +11453,9 @@
11424
11453
  * // => false
11425
11454
  */
11426
11455
  function isEmpty(value) {
11456
+ if (value == null) {
11457
+ return true;
11458
+ }
11427
11459
  if (isArrayLike(value) &&
11428
11460
  (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
11429
11461
  isBuffer(value) || isTypedArray(value) || isArguments(value))) {
@@ -11536,8 +11568,9 @@
11536
11568
  if (!isObjectLike(value)) {
11537
11569
  return false;
11538
11570
  }
11539
- return (objectToString.call(value) == errorTag) ||
11540
- (typeof value.message == 'string' && typeof value.name == 'string');
11571
+ var tag = baseGetTag(value);
11572
+ return tag == errorTag || tag == domExcTag ||
11573
+ (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
11541
11574
  }
11542
11575
 
11543
11576
  /**
@@ -11588,10 +11621,13 @@
11588
11621
  * // => false
11589
11622
  */
11590
11623
  function isFunction(value) {
11624
+ if (!isObject(value)) {
11625
+ return false;
11626
+ }
11591
11627
  // The use of `Object#toString` avoids issues with the `typeof` operator
11592
- // in Safari 9 which returns 'object' for typed array and other constructors.
11593
- var tag = isObject(value) ? objectToString.call(value) : '';
11594
- return tag == funcTag || tag == genTag || tag == proxyTag;
11628
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
11629
+ var tag = baseGetTag(value);
11630
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
11595
11631
  }
11596
11632
 
11597
11633
  /**
@@ -11942,7 +11978,7 @@
11942
11978
  */
11943
11979
  function isNumber(value) {
11944
11980
  return typeof value == 'number' ||
11945
- (isObjectLike(value) && objectToString.call(value) == numberTag);
11981
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
11946
11982
  }
11947
11983
 
11948
11984
  /**
@@ -11974,7 +12010,7 @@
11974
12010
  * // => true
11975
12011
  */
11976
12012
  function isPlainObject(value) {
11977
- if (!isObjectLike(value) || objectToString.call(value) != objectTag) {
12013
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
11978
12014
  return false;
11979
12015
  }
11980
12016
  var proto = getPrototype(value);
@@ -11982,8 +12018,8 @@
11982
12018
  return true;
11983
12019
  }
11984
12020
  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
11985
- return (typeof Ctor == 'function' &&
11986
- Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
12021
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
12022
+ funcToString.call(Ctor) == objectCtorString;
11987
12023
  }
11988
12024
 
11989
12025
  /**
@@ -12074,7 +12110,7 @@
12074
12110
  */
12075
12111
  function isString(value) {
12076
12112
  return typeof value == 'string' ||
12077
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
12113
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
12078
12114
  }
12079
12115
 
12080
12116
  /**
@@ -12096,7 +12132,7 @@
12096
12132
  */
12097
12133
  function isSymbol(value) {
12098
12134
  return typeof value == 'symbol' ||
12099
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
12135
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
12100
12136
  }
12101
12137
 
12102
12138
  /**
@@ -12178,7 +12214,7 @@
12178
12214
  * // => false
12179
12215
  */
12180
12216
  function isWeakSet(value) {
12181
- return isObjectLike(value) && objectToString.call(value) == weakSetTag;
12217
+ return isObjectLike(value) && baseGetTag(value) == weakSetTag;
12182
12218
  }
12183
12219
 
12184
12220
  /**
@@ -12263,8 +12299,8 @@
12263
12299
  if (isArrayLike(value)) {
12264
12300
  return isString(value) ? stringToArray(value) : copyArray(value);
12265
12301
  }
12266
- if (iteratorSymbol && value[iteratorSymbol]) {
12267
- return iteratorToArray(value[iteratorSymbol]());
12302
+ if (symIterator && value[symIterator]) {
12303
+ return iteratorToArray(value[symIterator]());
12268
12304
  }
12269
12305
  var tag = getTag(value),
12270
12306
  func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
@@ -12697,7 +12733,7 @@
12697
12733
  */
12698
12734
  function create(prototype, properties) {
12699
12735
  var result = baseCreate(prototype);
12700
- return properties ? baseAssign(result, properties) : result;
12736
+ return properties == null ? result : baseAssign(result, properties);
12701
12737
  }
12702
12738
 
12703
12739
  /**
@@ -13804,7 +13840,7 @@
13804
13840
  * // => ['h', 'i']
13805
13841
  */
13806
13842
  function values(object) {
13807
- return object ? baseValues(object, keys(object)) : [];
13843
+ return object == null ? [] : baseValues(object, keys(object));
13808
13844
  }
13809
13845
 
13810
13846
  /**
@@ -15191,7 +15227,7 @@
15191
15227
  * // => 'no match'
15192
15228
  */
15193
15229
  function cond(pairs) {
15194
- var length = pairs ? pairs.length : 0,
15230
+ var length = pairs == null ? 0 : pairs.length,
15195
15231
  toIteratee = getIteratee();
15196
15232
 
15197
15233
  pairs = !length ? [] : arrayMap(pairs, function(pair) {
@@ -16943,8 +16979,8 @@
16943
16979
  // Add lazy aliases.
16944
16980
  lodash.prototype.first = lodash.prototype.head;
16945
16981
 
16946
- if (iteratorSymbol) {
16947
- lodash.prototype[iteratorSymbol] = wrapperToIterator;
16982
+ if (symIterator) {
16983
+ lodash.prototype[symIterator] = wrapperToIterator;
16948
16984
  }
16949
16985
  return lodash;
16950
16986
  });