lodash-rails 4.12.0 → 4.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,28 @@
1
1
  /**
2
2
  * @license
3
- * lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
3
+ * lodash (Custom Build) /license | Underscore.js 1.8.3 underscorejs.org/LICENSE
4
+ * Build: `lodash core -o ./dist/lodash.core.js`
4
5
  */
5
- ;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function r(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function e(n,t){return O(t,function(t){return n[t]})}function u(n){return n&&n.Object===Object?n:null}function o(n){return gn[n]}function i(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function c(n){return n instanceof f?n:new f(n)}function f(n,t){
6
- this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function a(n,t,r,e){var u;return(u=n===pn)||(u=En[r],u=(n===u||n!==n&&u!==u)&&!kn.call(e,r)),u?t:n}function l(n){return nn(n)?Bn(n):{}}function p(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(pn,r)},t)}function s(n,t){var r=true;return zn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function h(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===pn?i===i:r(i,c)))var c=i,f=o;
7
- }return f}function v(n,t){var r=[];return zn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function y(t,r,e,u,o){var i=-1,c=t.length;for(e||(e=G),o||(o=[]);++i<c;){var f=t[i];r>0&&e(f)?r>1?y(f,r-1,e,u,o):n(o,f):u||(o[o.length]=f)}return o}function g(n,t){return n&&Cn(n,t,on)}function b(n,t){return v(t,function(t){return Y(n[t])})}function _(n,t){return n>t}function d(n,t,r,e,u){return n===t?true:null==n||null==t||!nn(n)&&!tn(t)?n!==n&&t!==t:j(n,t,d,r,e,u)}function j(n,t,r,e,u,o){var c=Vn(n),f=Vn(t),a="[object Array]",l="[object Array]";
8
- c||(a=Sn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=Sn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!i(n),f="[object Object]"==l&&!i(t),l=a==l;o||(o=[]);var s=V(o,function(t){return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(r=c||isTypedArray(n)?$(n,t,r,e,u,o):q(n,t,a),o.pop(),r):2&u||(c=p&&kn.call(n,"__wrapped__"),a=f&&kn.call(t,"__wrapped__"),!c&&!a)?l?(r=z(n,t,r,e,u,o),o.pop(),r):false:(c=c?n.value():n,t=a?t.value():t,r=r(c,t,e,u,o),
9
- o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?an:(typeof n=="object"?A:k)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function x(n,t){return t>n}function O(n,t){var r=-1,e=X(n)?Array(n.length):[];return zn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function A(n){var t=on(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&&d(n[u],r[u],pn,3)))return false}return true}}function E(n,t){return n=Object(n),K(t,function(t,r){
10
- return r in n&&(t[r]=n[r]),t},{})}function k(n){return function(t){return null==t?pn:t[n]}}function N(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 S(n){return N(n,0,n.length)}function T(n,t){var r;return zn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(t,r){return K(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function R(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){
11
- var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];kn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==pn||i in f)||(f[i]=c)}return r}function B(n){return Q(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:pn,o=n.length>3&&typeof o=="function"?(u--,o):pn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function D(n){return function(){var t=arguments,r=l(n.prototype),t=n.apply(r,t);return nn(t)?t:r}}function I(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];
12
- for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=D(n);return e}function $(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?[]:pn;++c<i;){var l=n[c],p=t[c];if(void 0!==pn){f=false;break}if(a){if(!T(t,function(n,t){return U(a,t)||l!==n&&!r(l,n,e,u,o)?void 0:a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function q(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":
13
- return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function z(n,t,r,e,u,o){var i=2&u,c=on(n),f=c.length,a=on(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:kn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==pn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,
14
- r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function C(n){var t=n?n.length:pn;if(Z(t)&&(Vn(n)||en(n)||W(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function G(n){return Vn(n)||W(n)}function J(n,t){return t=null==t?9007199254740991:t,!!t&&(typeof n=="number"||yn.test(n))&&n>-1&&0==n%1&&t>n}function M(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||En);
15
- }function P(n){return n&&n.length?n[0]:pn}function U(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?qn(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 V(n,r){return t(n,m(r),zn)}function H(n,t){return zn(n,m(t))}function K(n,t,e){return r(n,m(t),e,3>arguments.length,zn)}function L(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Hn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=pn),r}}
16
- function Q(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=qn(t===pn?n.length-1:Hn(t),0),function(){for(var r=arguments,e=-1,u=qn(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function W(n){return tn(n)&&X(n)&&kn.call(n,"callee")&&(!Dn.call(n,"callee")||"[object Arguments]"==Sn.call(n))}function X(n){return null!=n&&Z(Gn(n))&&!Y(n)}function Y(n){return n=nn(n)?Sn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n;
17
- }function Z(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function nn(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function tn(n){return!!n&&typeof n=="object"}function rn(n){return typeof n=="number"||tn(n)&&"[object Number]"==Sn.call(n)}function en(n){return typeof n=="string"||!Vn(n)&&tn(n)&&"[object String]"==Sn.call(n)}function un(n){return typeof n=="string"?n:null==n?"":n+""}function on(n){var t=M(n);if(!t&&!X(n))return $n(Object(n));var r,e=C(n),u=!!e,e=e||[],o=e.length;
18
- for(r in n)!kn.call(n,r)||u&&("length"==r||J(r,o))||t&&"constructor"==r||e.push(r);return e}function cn(n){for(var t=-1,r=M(n),e=w(n),u=e.length,o=C(n),i=!!o,o=o||[],c=o.length;++t<u;){var f=e[t];i&&("length"==f||J(f,c))||"constructor"==f&&(r||!kn.call(n,f))||o.push(f)}return o}function fn(n){return n?e(n,on(n)):[]}function an(n){return n}function ln(t,r,e){var u=on(r),o=b(r,u);null!=e||nn(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,on(r)));var i=!(nn(e)&&"chain"in e&&!e.chain),c=Y(t);return zn(o,function(e){
19
- var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=S(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var pn,sn=1/0,hn=/[&<>"'`]/g,vn=RegExp(hn.source),yn=/^(?:0|[1-9]\d*)$/,gn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},bn={"function":true,object:true},_n=bn[typeof exports]&&exports&&!exports.nodeType?exports:pn,dn=bn[typeof module]&&module&&!module.nodeType?module:pn,jn=dn&&dn.exports===_n?_n:pn,mn=u(bn[typeof self]&&self),wn=u(bn[typeof window]&&window),xn=u(bn[typeof this]&&this),On=u(_n&&dn&&typeof global=="object"&&global)||wn!==(xn&&xn.window)&&wn||mn||xn||Function("return this")(),An=Array.prototype,En=Object.prototype,kn=En.hasOwnProperty,Nn=0,Sn=En.toString,Tn=On._,Fn=On.Reflect,Rn=Fn?Fn.a:pn,Bn=Object.create,Dn=En.propertyIsEnumerable,In=On.isFinite,$n=Object.keys,qn=Math.max;
20
- f.prototype=l(c.prototype),f.prototype.constructor=f;var zn=function(n,t){return function(r,e){if(null==r)return r;if(!X(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}}(g),Cn=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}}();Rn&&!Dn.call({valueOf:1},"valueOf")&&(w=function(n){n=Rn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var Gn=k("length"),Jn=String,Mn=Q(function(n,t,r){
21
- return I(n,t,r)}),Pn=Q(function(n,t){return p(n,1,t)}),Un=Q(function(n,t,r){return p(n,Kn(t)||0,r)}),Vn=Array.isArray,Hn=Number,Kn=Number,Ln=B(function(n,t){R(t,on(t),n)}),Qn=B(function(n,t){R(t,cn(t),n)}),Wn=B(function(n,t,r,e){R(t,cn(t),n,e)}),Xn=Q(function(n){return n.push(pn,a),Wn.apply(pn,n)}),Yn=Q(function(n,t){return null==n?{}:E(n,O(y(t,1),Jn))}),Zn=m;c.assignIn=Qn,c.before=L,c.bind=Mn,c.chain=function(n){return n=c(n),n.__chain__=true,n},c.compact=function(n){return v(n,Boolean)},c.concat=function(){
22
- for(var t=arguments.length,r=Array(t?t-1:0),e=arguments[0],u=t;u--;)r[u-1]=arguments[u];return t?n(Vn(e)?S(e):[e],y(r,1)):[]},c.create=function(n,t){var r=l(n);return t?Ln(r,t):r},c.defaults=Xn,c.defer=Pn,c.delay=Un,c.filter=function(n,t){return v(n,m(t))},c.flatten=function(n){return n&&n.length?y(n,1):[]},c.flattenDeep=function(n){return n&&n.length?y(n,sn):[]},c.iteratee=Zn,c.keys=on,c.map=function(n,t){return O(n,m(t))},c.matches=function(n){return A(Ln({},n))},c.mixin=ln,c.negate=function(n){
23
- if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return L(2,n)},c.pick=Yn,c.slice=function(n,t,r){var e=n?n.length:0;return r=r===pn?e:+r,e?N(n,null==t?0:+t,r):[]},c.sortBy=function(n,t){var r=0;return t=m(t),O(O(n,function(n,e,u){return{value:n,index:r++,criteria:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==pn,o=null===r,i=r===r,c=e!==pn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){
24
- r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),k("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return X(n)?n.length?S(n):[]:fn(n)},c.values=fn,c.extend=Qn,ln(c,c),c.clone=function(n){return nn(n)?Vn(n)?S(n):R(n,on(n)):n},c.escape=function(n){return(n=un(n))&&vn.test(n)?n.replace(hn,o):n},c.every=function(n,t,r){return t=r?pn:t,s(n,m(t))},c.find=V,c.forEach=H,c.has=function(n,t){return null!=n&&kn.call(n,t);
25
- },c.head=P,c.identity=an,c.indexOf=U,c.isArguments=W,c.isArray=Vn,c.isBoolean=function(n){return true===n||false===n||tn(n)&&"[object Boolean]"==Sn.call(n)},c.isDate=function(n){return tn(n)&&"[object Date]"==Sn.call(n)},c.isEmpty=function(n){return X(n)&&(Vn(n)||en(n)||Y(n.splice)||W(n))?!n.length:!on(n).length},c.isEqual=function(n,t){return d(n,t)},c.isFinite=function(n){return typeof n=="number"&&In(n)},c.isFunction=Y,c.isNaN=function(n){return rn(n)&&n!=+n},c.isNull=function(n){return null===n},c.isNumber=rn,
26
- c.isObject=nn,c.isRegExp=function(n){return nn(n)&&"[object RegExp]"==Sn.call(n)},c.isString=en,c.isUndefined=function(n){return n===pn},c.last=function(n){var t=n?n.length:0;return t?n[t-1]:pn},c.max=function(n){return n&&n.length?h(n,an,_):pn},c.min=function(n){return n&&n.length?h(n,an,x):pn},c.noConflict=function(){return On._===this&&(On._=Tn),this},c.noop=function(){},c.reduce=K,c.result=function(n,t,r){return t=null==n?pn:n[t],t===pn&&(t=r),Y(t)?t.call(n):t},c.size=function(n){return null==n?0:(n=X(n)?n:on(n),
27
- n.length)},c.some=function(n,t,r){return t=r?pn:t,T(n,m(t))},c.uniqueId=function(n){var t=++Nn;return un(n)+t},c.each=H,c.first=P,ln(c,function(){var n={};return g(c,function(t,r){kn.call(c.prototype,r)||(n[r]=t)}),n}(),{chain:false}),c.VERSION="4.12.0",zn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){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);c.prototype[n]=function(){
28
- var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Vn(u)?u:[],n)}return this[r](function(r){return t.apply(Vn(r)?r:[],n)})}}),c.prototype.toJSON=c.prototype.valueOf=c.prototype.value=function(){return F(this.__wrapped__,this.__actions__)},(wn||mn||{})._=c,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return c}):_n&&dn?(jn&&((dn.exports=c)._=c),_n._=c):On._=c}).call(this);
6
+ ;(function(){function n(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function t(n){return mn(Object(n))}function r(n,t){return n.push.apply(n,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 x(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return cn[n]}function c(n){return n instanceof f?n:new f(n)}function f(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function a(n,t,r,e){
7
+ var u;return(u=n===rn)||(u=hn[r],u=(n===u||n!==n&&u!==u)&&!vn.call(e,r)),u?t:n}function l(n){return L(n)?_n(n):{}}function p(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(rn,r)},t)}function s(n,t){var r=true;return xn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function h(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===rn?i===i:r(i,c)))var c=i,f=o}return f}function v(n,t){var r=[];return xn(n,function(n,e,u){t(n,e,u)&&r.push(n);
8
+ }),r}function y(n,t,e,u,o){var i=-1,c=n.length;for(e||(e=z),o||(o=[]);++i<c;){var f=n[i];t>0&&e(f)?t>1?y(f,t-1,e,u,o):r(o,f):u||(o[o.length]=f)}return o}function b(n,r){return n&&En(n,r,t)}function g(n,t){return v(t,function(t){return K(n[t])})}function _(n,t){return n>t}function j(n,t,r,e,u){return n===t?true:null==n||null==t||!L(n)&&!Q(t)?n!==n&&t!==t:d(n,t,j,r,e,u)}function d(n,t,r,e,u,o){var i=Tn(n),c=Tn(t),f="[object Array]",a="[object Array]";i||(f=bn.call(n),f="[object Arguments]"==f?"[object Object]":f),
9
+ c||(a=bn.call(t),a="[object Arguments]"==a?"[object Object]":a);var l="[object Object]"==f&&true,c="[object Object]"==a&&true,a=f==a;o||(o=[]);var p=kn(o,function(t){return t[0]===n});return p&&p[1]?p[1]==t:(o.push([n,t]),a&&!l?(r=i?I(n,t,r,e,u,o):q(n,t,f),o.pop(),r):2&u||(i=l&&vn.call(n,"__wrapped__"),f=c&&vn.call(t,"__wrapped__"),!i&&!f)?a?(r=$(n,t,r,e,u,o),o.pop(),r):false:(i=i?n.value():n,t=f?t.value():t,r=r(i,t,e,u,o),o.pop(),r))}function m(n){return typeof n=="function"?n:null==n?nn:(typeof n=="object"?E:w)(n);
10
+ }function O(n,t){return t>n}function x(n,t){var r=-1,e=H(n)?Array(n.length):[];return xn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function E(n){var r=t(n);return function(t){var e=r.length;if(null==t)return!e;for(t=Object(t);e--;){var u=r[e];if(!(u in t&&j(n[u],t[u],rn,3)))return false}return true}}function A(n,t){return n=Object(n),M(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function w(n){return function(t){return null==t?rn:t[n]}}function k(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,
11
+ 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 N(n){return k(n,0,n.length)}function S(n,t){var r;return xn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function F(n,t){return M(t,function(n,t){return t.func.apply(t.thisArg,r([n],t.args))},n)}function T(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];vn.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==rn||i in f)||(f[i]=c)}return r}function B(n){return U(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:rn,o=n.length>3&&typeof o=="function"?(u--,
12
+ o):rn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function R(n){return function(){var t=arguments,r=l(n.prototype),t=n.apply(r,t);return L(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==pn&&this instanceof e?u:n;++c<f;)a[c]=r[c];for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=R(n);return e}function I(n,t,r,e,u,o){var i=n.length,c=t.length;
13
+ if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]:rn;++c<i;){var l=n[c],p=t[c];if(void 0!==rn){f=false;break}if(a){if(!S(t,function(n,t){return G(a,t)||l!==n&&!r(l,n,e,u,o)?void 0:a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function q(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+"";
14
+ }return false}function $(n,r,e,u,o,i){var c=2&o,f=t(n),a=f.length,l=t(r).length;if(a!=l&&!c)return false;for(var p=a;p--;){var s=f[p];if(!(c?s in r:vn.call(r,s)))return false}for(l=true;++p<a;){var s=f[p],h=n[s],v=r[s];if(void 0!==rn||h!==v&&!e(h,v,u,o,i)){l=false;break}c||(c="constructor"==s)}return l&&!c&&(e=n.constructor,u=r.constructor,e!=u&&"constructor"in n&&"constructor"in r&&!(typeof e=="function"&&e instanceof e&&typeof u=="function"&&u instanceof u)&&(l=false)),l}function z(n){return Tn(n)||V(n)}function C(n){
15
+ return n&&n.length?n[0]:rn}function G(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?On(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 J(n,t){return xn(n,m(t))}function M(n,t,r){return e(n,m(t),r,3>arguments.length,xn)}function P(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Bn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=rn),r}}function U(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");
16
+ return t=On(t===rn?n.length-1:Bn(t),0),function(){for(var r=arguments,e=-1,u=On(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function V(n){return Q(n)&&H(n)&&vn.call(n,"callee")&&(!jn.call(n,"callee")||"[object Arguments]"==bn.call(n))}function H(n){var t;return(t=null!=n)&&(t=An(n),t=typeof t=="number"&&t>-1&&0==t%1&&9007199254740991>=t),t&&!K(n)}function K(n){return n=L(n)?bn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n;
17
+ }function L(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function Q(n){return!!n&&typeof n=="object"}function W(n){return typeof n=="number"||Q(n)&&"[object Number]"==bn.call(n)}function X(n){return typeof n=="string"||!Tn(n)&&Q(n)&&"[object String]"==bn.call(n)}function Y(n){return typeof n=="string"?n:null==n?"":n+""}function Z(n){return n?u(n,t(n)):[]}function nn(n){return n}function tn(n,e,u){var o=t(e),i=g(e,o);null!=u||L(e)&&(i.length||!o.length)||(u=e,e=n,n=this,i=g(e,t(e)));var c=!(L(u)&&"chain"in u&&!u.chain),f=K(n);
18
+ return xn(i,function(t){var u=e[t];n[t]=u,f&&(n.prototype[t]=function(){var t=this.__chain__;if(c||t){var e=n(this.__wrapped__);return(e.__actions__=N(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=t,e}return u.apply(n,r([this.value()],arguments))})}),n}var rn,en=1/0,un=/[&<>"'`]/g,on=RegExp(un.source),cn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},fn=typeof exports=="object"&&exports,an=fn&&typeof module=="object"&&module,ln=o(typeof self=="object"&&self),pn=o(typeof global=="object"&&global)||ln||o(typeof this=="object"&&this)||Function("return this")(),sn=Array.prototype,hn=Object.prototype,vn=hn.hasOwnProperty,yn=0,bn=hn.toString,gn=pn._,_n=Object.create,jn=hn.propertyIsEnumerable,dn=pn.isFinite,mn=Object.keys,On=Math.max;
19
+ f.prototype=l(c.prototype),f.prototype.constructor=f;var xn=function(n,t){return function(r,e){if(null==r)return r;if(!H(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}}(b),En=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}}(),An=w("length"),wn=String,kn=function(n){return function(r,e,u){var o=Object(r);if(e=m(e),!H(r))var i=t(r);return u=n(i||r,function(n,t){
20
+ return i&&(t=n,n=o[t]),e(n,t,o)},u),u>-1?r[i?i[u]:u]:rn}}(function(n,t,r){var e=n?n.length:0;if(!e)return-1;r=null==r?0:Bn(r),0>r&&(r=On(e+r,0));n:{for(t=m(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),Nn=U(function(n,t,r){return D(n,t,r)}),Sn=U(function(n,t){return p(n,1,t)}),Fn=U(function(n,t,r){return p(n,Rn(t)||0,r)}),Tn=Array.isArray,Bn=Number,Rn=Number,Dn=B(function(n,r){T(r,t(r),n)}),In=B(function(t,r){T(r,n(r),t)}),qn=B(function(t,r,e,u){T(r,n(r),t,u)}),$n=U(function(n){
21
+ return n.push(rn,a),qn.apply(rn,n)}),zn=U(function(n,t){return null==n?{}:A(n,x(y(t,1),wn))});c.assignIn=In,c.before=P,c.bind=Nn,c.chain=function(n){return n=c(n),n.__chain__=true,n},c.compact=function(n){return v(n,Boolean)},c.concat=function(){for(var n=arguments.length,t=Array(n?n-1:0),e=arguments[0],u=n;u--;)t[u-1]=arguments[u];return n?r(Tn(e)?N(e):[e],y(t,1)):[]},c.create=function(n,t){var r=l(n);return t?Dn(r,t):r},c.defaults=$n,c.defer=Sn,c.delay=Fn,c.filter=function(n,t){return v(n,m(t))},
22
+ c.flatten=function(n){return n&&n.length?y(n,1):[]},c.flattenDeep=function(n){return n&&n.length?y(n,en):[]},c.iteratee=m,c.keys=t,c.map=function(n,t){return x(n,m(t))},c.matches=function(n){return E(Dn({},n))},c.mixin=tn,c.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},c.once=function(n){return P(2,n)},c.pick=zn,c.slice=function(n,t,r){var e=n?n.length:0;return r=r===rn?e:+r,e?k(n,null==t?0:+t,r):[]},c.sortBy=function(n,t){
23
+ var r=0;return t=m(t),x(x(n,function(n,e,u){return{value:n,index:r++,criteria:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==rn,o=null===r,i=r===r,c=e!==rn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&e>r||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),w("value"))},c.tap=function(n,t){return t(n),n},c.thru=function(n,t){return t(n)},c.toArray=function(n){return H(n)?n.length?N(n):[]:Z(n)},c.values=Z,c.extend=In,
24
+ tn(c,c),c.clone=function(n){return L(n)?Tn(n)?N(n):T(n,t(n)):n},c.escape=function(n){return(n=Y(n))&&on.test(n)?n.replace(un,i):n},c.every=function(n,t,r){return t=r?rn:t,s(n,m(t))},c.find=kn,c.forEach=J,c.has=function(n,t){return null!=n&&vn.call(n,t)},c.head=C,c.identity=nn,c.indexOf=G,c.isArguments=V,c.isArray=Tn,c.isBoolean=function(n){return true===n||false===n||Q(n)&&"[object Boolean]"==bn.call(n)},c.isDate=function(n){return Q(n)&&"[object Date]"==bn.call(n)},c.isEmpty=function(n){return H(n)&&(Tn(n)||X(n)||K(n.splice)||V(n))?!n.length:!t(n).length;
25
+ },c.isEqual=function(n,t){return j(n,t)},c.isFinite=function(n){return typeof n=="number"&&dn(n)},c.isFunction=K,c.isNaN=function(n){return W(n)&&n!=+n},c.isNull=function(n){return null===n},c.isNumber=W,c.isObject=L,c.isRegExp=function(n){return L(n)&&"[object RegExp]"==bn.call(n)},c.isString=X,c.isUndefined=function(n){return n===rn},c.last=function(n){var t=n?n.length:0;return t?n[t-1]:rn},c.max=function(n){return n&&n.length?h(n,nn,_):rn},c.min=function(n){return n&&n.length?h(n,nn,O):rn},c.noConflict=function(){
26
+ return pn._===this&&(pn._=gn),this},c.noop=function(){},c.reduce=M,c.result=function(n,t,r){return t=null==n?rn:n[t],t===rn&&(t=r),K(t)?t.call(n):t},c.size=function(n){return null==n?0:(n=H(n)?n:t(n),n.length)},c.some=function(n,t,r){return t=r?rn:t,S(n,m(t))},c.uniqueId=function(n){var t=++yn;return Y(n)+t},c.each=J,c.first=C,tn(c,function(){var n={};return b(c,function(t,r){vn.call(c.prototype,r)||(n[r]=t)}),n}(),{chain:false}),c.VERSION="4.13.1",xn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
27
+ var t=(/^(?:replace|split)$/.test(n)?String.prototype:sn)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);c.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Tn(u)?u:[],n)}return this[r](function(r){return t.apply(Tn(r)?r:[],n)})}}),c.prototype.toJSON=c.prototype.valueOf=c.prototype.value=function(){return F(this.__wrapped__,this.__actions__)},(ln||{})._=c,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){
28
+ return c}):an?((an.exports=c)._=c,fn._=c):pn._=c}).call(this);
@@ -12,7 +12,7 @@
12
12
  var undefined;
13
13
 
14
14
  /** Used as the semantic version number. */
15
- var VERSION = '4.12.0';
15
+ var VERSION = '4.13.1';
16
16
 
17
17
  /** Used as the size to enable large array optimizations. */
18
18
  var LARGE_ARRAY_SIZE = 200;
@@ -116,7 +116,7 @@
116
116
  /** Used to match property names within property paths. */
117
117
  var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
118
118
  reIsPlainProp = /^\w*$/,
119
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g;
119
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
120
120
 
121
121
  /**
122
122
  * Used to match `RegExp`
@@ -249,7 +249,7 @@
249
249
  'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
250
250
  'Promise', 'Reflect', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError',
251
251
  'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
252
- '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
252
+ '_', 'isFinite', 'parseInt', 'setTimeout'
253
253
  ];
254
254
 
255
255
  /** Used to make template sourceURLs easier to identify. */
@@ -328,12 +328,6 @@
328
328
  '&#96;': '`'
329
329
  };
330
330
 
331
- /** Used to determine if values are of the language type `Object`. */
332
- var objectTypes = {
333
- 'function': true,
334
- 'object': true
335
- };
336
-
337
331
  /** Used to escape characters for inclusion in compiled string literals. */
338
332
  var stringEscapes = {
339
333
  '\\': '\\',
@@ -349,41 +343,25 @@
349
343
  freeParseInt = parseInt;
350
344
 
351
345
  /** Detect free variable `exports`. */
352
- var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
353
- ? exports
354
- : undefined;
346
+ var freeExports = typeof exports == 'object' && exports;
355
347
 
356
348
  /** Detect free variable `module`. */
357
- var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
358
- ? module
359
- : undefined;
349
+ var freeModule = freeExports && typeof module == 'object' && module;
360
350
 
361
351
  /** Detect the popular CommonJS extension `module.exports`. */
362
- var moduleExports = (freeModule && freeModule.exports === freeExports)
363
- ? freeExports
364
- : undefined;
352
+ var moduleExports = freeModule && freeModule.exports === freeExports;
365
353
 
366
354
  /** Detect free variable `global` from Node.js. */
367
- var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
355
+ var freeGlobal = checkGlobal(typeof global == 'object' && global);
368
356
 
369
357
  /** Detect free variable `self`. */
370
- var freeSelf = checkGlobal(objectTypes[typeof self] && self);
371
-
372
- /** Detect free variable `window`. */
373
- var freeWindow = checkGlobal(objectTypes[typeof window] && window);
358
+ var freeSelf = checkGlobal(typeof self == 'object' && self);
374
359
 
375
360
  /** Detect `this` as the global object. */
376
- var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
361
+ var thisGlobal = checkGlobal(typeof this == 'object' && this);
377
362
 
378
- /**
379
- * Used as a reference to the global object.
380
- *
381
- * The `this` value is used if it's the global object to avoid Greasemonkey's
382
- * restricted `window` object, otherwise the `window` object is used.
383
- */
384
- var root = freeGlobal ||
385
- ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
386
- freeSelf || thisGlobal || Function('return this')();
363
+ /** Used as a reference to the global object. */
364
+ var root = freeGlobal || freeSelf || thisGlobal || Function('return this')();
387
365
 
388
366
  /*--------------------------------------------------------------------------*/
389
367
 
@@ -439,7 +417,7 @@
439
417
  * A specialized version of `baseAggregator` for arrays.
440
418
  *
441
419
  * @private
442
- * @param {Array} array The array to iterate over.
420
+ * @param {Array} [array] The array to iterate over.
443
421
  * @param {Function} setter The function to set `accumulator` values.
444
422
  * @param {Function} iteratee The iteratee to transform keys.
445
423
  * @param {Object} accumulator The initial aggregated object.
@@ -447,7 +425,7 @@
447
425
  */
448
426
  function arrayAggregator(array, setter, iteratee, accumulator) {
449
427
  var index = -1,
450
- length = array.length;
428
+ length = array ? array.length : 0;
451
429
 
452
430
  while (++index < length) {
453
431
  var value = array[index];
@@ -461,13 +439,13 @@
461
439
  * iteratee shorthands.
462
440
  *
463
441
  * @private
464
- * @param {Array} array The array to iterate over.
442
+ * @param {Array} [array] The array to iterate over.
465
443
  * @param {Function} iteratee The function invoked per iteration.
466
444
  * @returns {Array} Returns `array`.
467
445
  */
468
446
  function arrayEach(array, iteratee) {
469
447
  var index = -1,
470
- length = array.length;
448
+ length = array ? array.length : 0;
471
449
 
472
450
  while (++index < length) {
473
451
  if (iteratee(array[index], index, array) === false) {
@@ -482,12 +460,12 @@
482
460
  * iteratee shorthands.
483
461
  *
484
462
  * @private
485
- * @param {Array} array The array to iterate over.
463
+ * @param {Array} [array] The array to iterate over.
486
464
  * @param {Function} iteratee The function invoked per iteration.
487
465
  * @returns {Array} Returns `array`.
488
466
  */
489
467
  function arrayEachRight(array, iteratee) {
490
- var length = array.length;
468
+ var length = array ? array.length : 0;
491
469
 
492
470
  while (length--) {
493
471
  if (iteratee(array[length], length, array) === false) {
@@ -502,14 +480,14 @@
502
480
  * iteratee shorthands.
503
481
  *
504
482
  * @private
505
- * @param {Array} array The array to iterate over.
483
+ * @param {Array} [array] The array to iterate over.
506
484
  * @param {Function} predicate The function invoked per iteration.
507
485
  * @returns {boolean} Returns `true` if all elements pass the predicate check,
508
486
  * else `false`.
509
487
  */
510
488
  function arrayEvery(array, predicate) {
511
489
  var index = -1,
512
- length = array.length;
490
+ length = array ? array.length : 0;
513
491
 
514
492
  while (++index < length) {
515
493
  if (!predicate(array[index], index, array)) {
@@ -524,13 +502,13 @@
524
502
  * iteratee shorthands.
525
503
  *
526
504
  * @private
527
- * @param {Array} array The array to iterate over.
505
+ * @param {Array} [array] The array to iterate over.
528
506
  * @param {Function} predicate The function invoked per iteration.
529
507
  * @returns {Array} Returns the new filtered array.
530
508
  */
531
509
  function arrayFilter(array, predicate) {
532
510
  var index = -1,
533
- length = array.length,
511
+ length = array ? array.length : 0,
534
512
  resIndex = 0,
535
513
  result = [];
536
514
 
@@ -548,26 +526,27 @@
548
526
  * specifying an index to search from.
549
527
  *
550
528
  * @private
551
- * @param {Array} array The array to search.
529
+ * @param {Array} [array] The array to search.
552
530
  * @param {*} target The value to search for.
553
531
  * @returns {boolean} Returns `true` if `target` is found, else `false`.
554
532
  */
555
533
  function arrayIncludes(array, value) {
556
- return !!array.length && baseIndexOf(array, value, 0) > -1;
534
+ var length = array ? array.length : 0;
535
+ return !!length && baseIndexOf(array, value, 0) > -1;
557
536
  }
558
537
 
559
538
  /**
560
539
  * This function is like `arrayIncludes` except that it accepts a comparator.
561
540
  *
562
541
  * @private
563
- * @param {Array} array The array to search.
542
+ * @param {Array} [array] The array to search.
564
543
  * @param {*} target The value to search for.
565
544
  * @param {Function} comparator The comparator invoked per element.
566
545
  * @returns {boolean} Returns `true` if `target` is found, else `false`.
567
546
  */
568
547
  function arrayIncludesWith(array, value, comparator) {
569
548
  var index = -1,
570
- length = array.length;
549
+ length = array ? array.length : 0;
571
550
 
572
551
  while (++index < length) {
573
552
  if (comparator(value, array[index])) {
@@ -582,13 +561,13 @@
582
561
  * shorthands.
583
562
  *
584
563
  * @private
585
- * @param {Array} array The array to iterate over.
564
+ * @param {Array} [array] The array to iterate over.
586
565
  * @param {Function} iteratee The function invoked per iteration.
587
566
  * @returns {Array} Returns the new mapped array.
588
567
  */
589
568
  function arrayMap(array, iteratee) {
590
569
  var index = -1,
591
- length = array.length,
570
+ length = array ? array.length : 0,
592
571
  result = Array(length);
593
572
 
594
573
  while (++index < length) {
@@ -621,7 +600,7 @@
621
600
  * iteratee shorthands.
622
601
  *
623
602
  * @private
624
- * @param {Array} array The array to iterate over.
603
+ * @param {Array} [array] The array to iterate over.
625
604
  * @param {Function} iteratee The function invoked per iteration.
626
605
  * @param {*} [accumulator] The initial value.
627
606
  * @param {boolean} [initAccum] Specify using the first element of `array` as
@@ -630,7 +609,7 @@
630
609
  */
631
610
  function arrayReduce(array, iteratee, accumulator, initAccum) {
632
611
  var index = -1,
633
- length = array.length;
612
+ length = array ? array.length : 0;
634
613
 
635
614
  if (initAccum && length) {
636
615
  accumulator = array[++index];
@@ -646,7 +625,7 @@
646
625
  * iteratee shorthands.
647
626
  *
648
627
  * @private
649
- * @param {Array} array The array to iterate over.
628
+ * @param {Array} [array] The array to iterate over.
650
629
  * @param {Function} iteratee The function invoked per iteration.
651
630
  * @param {*} [accumulator] The initial value.
652
631
  * @param {boolean} [initAccum] Specify using the last element of `array` as
@@ -654,7 +633,7 @@
654
633
  * @returns {*} Returns the accumulated value.
655
634
  */
656
635
  function arrayReduceRight(array, iteratee, accumulator, initAccum) {
657
- var length = array.length;
636
+ var length = array ? array.length : 0;
658
637
  if (initAccum && length) {
659
638
  accumulator = array[--length];
660
639
  }
@@ -669,14 +648,14 @@
669
648
  * shorthands.
670
649
  *
671
650
  * @private
672
- * @param {Array} array The array to iterate over.
651
+ * @param {Array} [array] The array to iterate over.
673
652
  * @param {Function} predicate The function invoked per iteration.
674
653
  * @returns {boolean} Returns `true` if any element passes the predicate check,
675
654
  * else `false`.
676
655
  */
677
656
  function arraySome(array, predicate) {
678
657
  var index = -1,
679
- length = array.length;
658
+ length = array ? array.length : 0;
680
659
 
681
660
  while (++index < length) {
682
661
  if (predicate(array[index], index, array)) {
@@ -687,23 +666,21 @@
687
666
  }
688
667
 
689
668
  /**
690
- * The base implementation of methods like `_.find` and `_.findKey`, without
691
- * support for iteratee shorthands, which iterates over `collection` using
692
- * `eachFunc`.
669
+ * The base implementation of methods like `_.findKey` and `_.findLastKey`,
670
+ * without support for iteratee shorthands, which iterates over `collection`
671
+ * using `eachFunc`.
693
672
  *
694
673
  * @private
695
674
  * @param {Array|Object} collection The collection to search.
696
675
  * @param {Function} predicate The function invoked per iteration.
697
676
  * @param {Function} eachFunc The function to iterate over `collection`.
698
- * @param {boolean} [retKey] Specify returning the key of the found element
699
- * instead of the element itself.
700
677
  * @returns {*} Returns the found element or its key, else `undefined`.
701
678
  */
702
- function baseFind(collection, predicate, eachFunc, retKey) {
679
+ function baseFindKey(collection, predicate, eachFunc) {
703
680
  var result;
704
681
  eachFunc(collection, function(value, key, collection) {
705
682
  if (predicate(value, key, collection)) {
706
- result = retKey ? key : value;
683
+ result = key;
707
684
  return false;
708
685
  }
709
686
  });
@@ -717,12 +694,13 @@
717
694
  * @private
718
695
  * @param {Array} array The array to search.
719
696
  * @param {Function} predicate The function invoked per iteration.
697
+ * @param {number} fromIndex The index to search from.
720
698
  * @param {boolean} [fromRight] Specify iterating from right to left.
721
699
  * @returns {number} Returns the index of the matched value, else `-1`.
722
700
  */
723
- function baseFindIndex(array, predicate, fromRight) {
701
+ function baseFindIndex(array, predicate, fromIndex, fromRight) {
724
702
  var length = array.length,
725
- index = fromRight ? length : -1;
703
+ index = fromIndex + (fromRight ? 1 : -1);
726
704
 
727
705
  while ((fromRight ? index-- : ++index < length)) {
728
706
  if (predicate(array[index], index, array)) {
@@ -1029,6 +1007,18 @@
1029
1007
  return '\\' + stringEscapes[chr];
1030
1008
  }
1031
1009
 
1010
+ /**
1011
+ * Gets the value at `key` of `object`.
1012
+ *
1013
+ * @private
1014
+ * @param {Object} [object] The object to query.
1015
+ * @param {string} key The key of the property to get.
1016
+ * @returns {*} Returns the property value.
1017
+ */
1018
+ function getValue(object, key) {
1019
+ return object == null ? undefined : object[key];
1020
+ }
1021
+
1032
1022
  /**
1033
1023
  * Gets the index at which the first occurrence of `NaN` is found in `array`.
1034
1024
  *
@@ -1040,7 +1030,7 @@
1040
1030
  */
1041
1031
  function indexOfNaN(array, fromIndex, fromRight) {
1042
1032
  var length = array.length,
1043
- index = fromIndex + (fromRight ? 0 : -1);
1033
+ index = fromIndex + (fromRight ? 1 : -1);
1044
1034
 
1045
1035
  while ((fromRight ? index-- : ++index < length)) {
1046
1036
  var other = array[index];
@@ -1231,10 +1221,10 @@
1231
1221
  * lodash.isFunction(lodash.bar);
1232
1222
  * // => true
1233
1223
  *
1234
- * // Use `context` to mock `Date#getTime` use in `_.now`.
1235
- * var mock = _.runInContext({
1224
+ * // Use `context` to stub `Date#getTime` use in `_.now`.
1225
+ * var stubbed = _.runInContext({
1236
1226
  * 'Date': function() {
1237
- * return { 'getTime': getTimeMock };
1227
+ * return { 'getTime': stubGetTime };
1238
1228
  * }
1239
1229
  * });
1240
1230
  *
@@ -1256,6 +1246,15 @@
1256
1246
  objectProto = context.Object.prototype,
1257
1247
  stringProto = context.String.prototype;
1258
1248
 
1249
+ /** Used to detect overreaching core-js shims. */
1250
+ var coreJsData = context['__core-js_shared__'];
1251
+
1252
+ /** Used to detect methods masquerading as native. */
1253
+ var maskSrcKey = (function() {
1254
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
1255
+ return uid ? ('Symbol(src)_1.' + uid) : '';
1256
+ }());
1257
+
1259
1258
  /** Used to resolve the decompiled source of functions. */
1260
1259
  var funcToString = context.Function.prototype.toString;
1261
1260
 
@@ -1289,15 +1288,16 @@
1289
1288
  Reflect = context.Reflect,
1290
1289
  Symbol = context.Symbol,
1291
1290
  Uint8Array = context.Uint8Array,
1292
- clearTimeout = context.clearTimeout,
1293
1291
  enumerate = Reflect ? Reflect.enumerate : undefined,
1294
1292
  getOwnPropertySymbols = Object.getOwnPropertySymbols,
1295
1293
  iteratorSymbol = typeof (iteratorSymbol = Symbol && Symbol.iterator) == 'symbol' ? iteratorSymbol : undefined,
1296
1294
  objectCreate = Object.create,
1297
1295
  propertyIsEnumerable = objectProto.propertyIsEnumerable,
1298
- setTimeout = context.setTimeout,
1299
1296
  splice = arrayProto.splice;
1300
1297
 
1298
+ /** Built-in method references that are mockable. */
1299
+ var setTimeout = function(func, wait) { return context.setTimeout.call(root, func, wait); };
1300
+
1301
1301
  /* Built-in method references for those with the same name as other `lodash` methods. */
1302
1302
  var nativeCeil = Math.ceil,
1303
1303
  nativeFloor = Math.floor,
@@ -1419,19 +1419,21 @@
1419
1419
  * `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
1420
1420
  * `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
1421
1421
  * `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
1422
- * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
1423
- * `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
1424
- * `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
1425
- * `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
1426
- * `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, `min`, `minBy`, `multiply`,
1427
- * `noConflict`, `noop`, `now`, `nth`, `pad`, `padEnd`, `padStart`, `parseInt`,
1428
- * `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`, `round`,
1429
- * `runInContext`, `sample`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`,
1430
- * `sortedIndexBy`, `sortedLastIndex`, `sortedLastIndexBy`, `startCase`,
1431
- * `startsWith`, `subtract`, `sum`, `sumBy`, `template`, `times`, `toFinite`,
1432
- * `toInteger`, `toJSON`, `toLength`, `toLower`, `toNumber`, `toSafeInteger`,
1433
- * `toString`, `toUpper`, `trim`, `trimEnd`, `trimStart`, `truncate`, `unescape`,
1434
- * `uniqueId`, `upperCase`, `upperFirst`, `value`, and `words`
1422
+ * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
1423
+ * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
1424
+ * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
1425
+ * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
1426
+ * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
1427
+ * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
1428
+ * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
1429
+ * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
1430
+ * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
1431
+ * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
1432
+ * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
1433
+ * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
1434
+ * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
1435
+ * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
1436
+ * `upperFirst`, `value`, and `words`
1435
1437
  *
1436
1438
  * @name _
1437
1439
  * @constructor
@@ -2732,7 +2734,7 @@
2732
2734
  * The base implementation of `_.has` without support for deep paths.
2733
2735
  *
2734
2736
  * @private
2735
- * @param {Object} object The object to query.
2737
+ * @param {Object} [object] The object to query.
2736
2738
  * @param {Array|string} key The key to check.
2737
2739
  * @returns {boolean} Returns `true` if `key` exists, else `false`.
2738
2740
  */
@@ -2740,20 +2742,21 @@
2740
2742
  // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,
2741
2743
  // that are composed entirely of index properties, return `false` for
2742
2744
  // `hasOwnProperty` checks of them.
2743
- return hasOwnProperty.call(object, key) ||
2744
- (typeof object == 'object' && key in object && getPrototype(object) === null);
2745
+ return object != null &&
2746
+ (hasOwnProperty.call(object, key) ||
2747
+ (typeof object == 'object' && key in object && getPrototype(object) === null));
2745
2748
  }
2746
2749
 
2747
2750
  /**
2748
2751
  * The base implementation of `_.hasIn` without support for deep paths.
2749
2752
  *
2750
2753
  * @private
2751
- * @param {Object} object The object to query.
2754
+ * @param {Object} [object] The object to query.
2752
2755
  * @param {Array|string} key The key to check.
2753
2756
  * @returns {boolean} Returns `true` if `key` exists, else `false`.
2754
2757
  */
2755
2758
  function baseHasIn(object, key) {
2756
- return key in Object(object);
2759
+ return object != null && key in Object(object);
2757
2760
  }
2758
2761
 
2759
2762
  /**
@@ -3007,6 +3010,22 @@
3007
3010
  return true;
3008
3011
  }
3009
3012
 
3013
+ /**
3014
+ * The base implementation of `_.isNative` without bad shim checks.
3015
+ *
3016
+ * @private
3017
+ * @param {*} value The value to check.
3018
+ * @returns {boolean} Returns `true` if `value` is a native function,
3019
+ * else `false`.
3020
+ */
3021
+ function baseIsNative(value) {
3022
+ if (!isObject(value) || isMasked(value)) {
3023
+ return false;
3024
+ }
3025
+ var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
3026
+ return pattern.test(toSource(value));
3027
+ }
3028
+
3010
3029
  /**
3011
3030
  * The base implementation of `_.iteratee`.
3012
3031
  *
@@ -3375,6 +3394,9 @@
3375
3394
  length = values.length,
3376
3395
  seen = array;
3377
3396
 
3397
+ if (array === values) {
3398
+ values = copyArray(values);
3399
+ }
3378
3400
  if (iteratee) {
3379
3401
  seen = arrayMap(array, baseUnary(iteratee));
3380
3402
  }
@@ -4527,6 +4549,31 @@
4527
4549
  return wrapper;
4528
4550
  }
4529
4551
 
4552
+ /**
4553
+ * Creates a `_.find` or `_.findLast` function.
4554
+ *
4555
+ * @private
4556
+ * @param {Function} findIndexFunc The function to find the collection index.
4557
+ * @returns {Function} Returns the new find function.
4558
+ */
4559
+ function createFind(findIndexFunc) {
4560
+ return function(collection, predicate, fromIndex) {
4561
+ var iterable = Object(collection);
4562
+ predicate = getIteratee(predicate, 3);
4563
+ if (!isArrayLike(collection)) {
4564
+ var props = keys(collection);
4565
+ }
4566
+ var index = findIndexFunc(props || collection, function(value, key) {
4567
+ if (props) {
4568
+ key = value;
4569
+ value = iterable[key];
4570
+ }
4571
+ return predicate(value, key, iterable);
4572
+ }, fromIndex);
4573
+ return index > -1 ? collection[props ? props[index] : index] : undefined;
4574
+ };
4575
+ }
4576
+
4530
4577
  /**
4531
4578
  * Creates a `_.flow` or `_.flowRight` function.
4532
4579
  *
@@ -4890,7 +4937,7 @@
4890
4937
  var func = Math[methodName];
4891
4938
  return function(number, precision) {
4892
4939
  number = toNumber(number);
4893
- precision = toInteger(precision);
4940
+ precision = nativeMin(toInteger(precision), 292);
4894
4941
  if (precision) {
4895
4942
  // Shift with exponential notation to avoid floating-point issues.
4896
4943
  // See [MDN](https://mdn.io/round#Examples) for more details.
@@ -5371,11 +5418,14 @@
5371
5418
  * @returns {Array} Returns the match data of `object`.
5372
5419
  */
5373
5420
  function getMatchData(object) {
5374
- var result = toPairs(object),
5421
+ var result = keys(object),
5375
5422
  length = result.length;
5376
5423
 
5377
5424
  while (length--) {
5378
- result[length][2] = isStrictComparable(result[length][1]);
5425
+ var key = result[length],
5426
+ value = object[key];
5427
+
5428
+ result[length] = [key, value, isStrictComparable(value)];
5379
5429
  }
5380
5430
  return result;
5381
5431
  }
@@ -5389,8 +5439,8 @@
5389
5439
  * @returns {*} Returns the function if it's native, else `undefined`.
5390
5440
  */
5391
5441
  function getNative(object, key) {
5392
- var value = object[key];
5393
- return isNative(value) ? value : undefined;
5442
+ var value = getValue(object, key);
5443
+ return baseIsNative(value) ? value : undefined;
5394
5444
  }
5395
5445
 
5396
5446
  /**
@@ -5419,9 +5469,7 @@
5419
5469
 
5420
5470
  // Fallback for IE < 11.
5421
5471
  if (!getOwnPropertySymbols) {
5422
- getSymbols = function() {
5423
- return [];
5424
- };
5472
+ getSymbols = stubArray;
5425
5473
  }
5426
5474
 
5427
5475
  /**
@@ -5753,6 +5801,26 @@
5753
5801
  return !!data && func === data[0];
5754
5802
  }
5755
5803
 
5804
+ /**
5805
+ * Checks if `func` has its source masked.
5806
+ *
5807
+ * @private
5808
+ * @param {Function} func The function to check.
5809
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
5810
+ */
5811
+ function isMasked(func) {
5812
+ return !!maskSrcKey && (maskSrcKey in func);
5813
+ }
5814
+
5815
+ /**
5816
+ * Checks if `func` is capable of being masked.
5817
+ *
5818
+ * @private
5819
+ * @param {*} value The value to check.
5820
+ * @returns {boolean} Returns `true` if `func` is maskable, else `false`.
5821
+ */
5822
+ var isMaskable = coreJsData ? isFunction : stubFalse;
5823
+
5756
5824
  /**
5757
5825
  * Checks if `value` is likely a prototype object.
5758
5826
  *
@@ -6149,8 +6217,8 @@
6149
6217
  * @see _.without, _.xor
6150
6218
  * @example
6151
6219
  *
6152
- * _.difference([3, 2, 1], [4, 2]);
6153
- * // => [3, 1]
6220
+ * _.difference([2, 1], [2, 3]);
6221
+ * // => [1]
6154
6222
  */
6155
6223
  var difference = rest(function(array, values) {
6156
6224
  return isArrayLikeObject(array)
@@ -6175,8 +6243,8 @@
6175
6243
  * @returns {Array} Returns the new array of filtered values.
6176
6244
  * @example
6177
6245
  *
6178
- * _.differenceBy([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor);
6179
- * // => [3.1, 1.3]
6246
+ * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
6247
+ * // => [1.2]
6180
6248
  *
6181
6249
  * // The `_.property` iteratee shorthand.
6182
6250
  * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
@@ -6428,6 +6496,7 @@
6428
6496
  * @param {Array} array The array to search.
6429
6497
  * @param {Array|Function|Object|string} [predicate=_.identity]
6430
6498
  * The function invoked per iteration.
6499
+ * @param {number} [fromIndex=0] The index to search from.
6431
6500
  * @returns {number} Returns the index of the found element, else `-1`.
6432
6501
  * @example
6433
6502
  *
@@ -6452,10 +6521,16 @@
6452
6521
  * _.findIndex(users, 'active');
6453
6522
  * // => 2
6454
6523
  */
6455
- function findIndex(array, predicate) {
6456
- return (array && array.length)
6457
- ? baseFindIndex(array, getIteratee(predicate, 3))
6458
- : -1;
6524
+ function findIndex(array, predicate, fromIndex) {
6525
+ var length = array ? array.length : 0;
6526
+ if (!length) {
6527
+ return -1;
6528
+ }
6529
+ var index = fromIndex == null ? 0 : toInteger(fromIndex);
6530
+ if (index < 0) {
6531
+ index = nativeMax(length + index, 0);
6532
+ }
6533
+ return baseFindIndex(array, getIteratee(predicate, 3), index);
6459
6534
  }
6460
6535
 
6461
6536
  /**
@@ -6469,6 +6544,7 @@
6469
6544
  * @param {Array} array The array to search.
6470
6545
  * @param {Array|Function|Object|string} [predicate=_.identity]
6471
6546
  * The function invoked per iteration.
6547
+ * @param {number} [fromIndex=array.length-1] The index to search from.
6472
6548
  * @returns {number} Returns the index of the found element, else `-1`.
6473
6549
  * @example
6474
6550
  *
@@ -6493,10 +6569,19 @@
6493
6569
  * _.findLastIndex(users, 'active');
6494
6570
  * // => 0
6495
6571
  */
6496
- function findLastIndex(array, predicate) {
6497
- return (array && array.length)
6498
- ? baseFindIndex(array, getIteratee(predicate, 3), true)
6499
- : -1;
6572
+ function findLastIndex(array, predicate, fromIndex) {
6573
+ var length = array ? array.length : 0;
6574
+ if (!length) {
6575
+ return -1;
6576
+ }
6577
+ var index = length - 1;
6578
+ if (fromIndex !== undefined) {
6579
+ index = toInteger(fromIndex);
6580
+ index = fromIndex < 0
6581
+ ? nativeMax(length + index, 0)
6582
+ : nativeMin(index, length - 1);
6583
+ }
6584
+ return baseFindIndex(array, getIteratee(predicate, 3), index, true);
6500
6585
  }
6501
6586
 
6502
6587
  /**
@@ -6643,11 +6728,11 @@
6643
6728
  if (!length) {
6644
6729
  return -1;
6645
6730
  }
6646
- fromIndex = toInteger(fromIndex);
6647
- if (fromIndex < 0) {
6648
- fromIndex = nativeMax(length + fromIndex, 0);
6731
+ var index = fromIndex == null ? 0 : toInteger(fromIndex);
6732
+ if (index < 0) {
6733
+ index = nativeMax(length + index, 0);
6649
6734
  }
6650
- return baseIndexOf(array, value, fromIndex);
6735
+ return baseIndexOf(array, value, index);
6651
6736
  }
6652
6737
 
6653
6738
  /**
@@ -6682,7 +6767,7 @@
6682
6767
  * @returns {Array} Returns the new array of intersecting values.
6683
6768
  * @example
6684
6769
  *
6685
- * _.intersection([2, 1], [4, 2], [1, 2]);
6770
+ * _.intersection([2, 1], [2, 3]);
6686
6771
  * // => [2]
6687
6772
  */
6688
6773
  var intersection = rest(function(arrays) {
@@ -6708,7 +6793,7 @@
6708
6793
  * @returns {Array} Returns the new array of intersecting values.
6709
6794
  * @example
6710
6795
  *
6711
- * _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
6796
+ * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
6712
6797
  * // => [2.1]
6713
6798
  *
6714
6799
  * // The `_.property` iteratee shorthand.
@@ -6838,7 +6923,7 @@
6838
6923
  ) + 1;
6839
6924
  }
6840
6925
  if (value !== value) {
6841
- return indexOfNaN(array, index, true);
6926
+ return indexOfNaN(array, index - 1, true);
6842
6927
  }
6843
6928
  while (index--) {
6844
6929
  if (array[index] === value) {
@@ -6849,7 +6934,7 @@
6849
6934
  }
6850
6935
 
6851
6936
  /**
6852
- * Gets the element at `n` index of `array`. If `n` is negative, the nth
6937
+ * Gets the element at index `n` of `array`. If `n` is negative, the nth
6853
6938
  * element from the end is returned.
6854
6939
  *
6855
6940
  * @static
@@ -6890,11 +6975,11 @@
6890
6975
  * @returns {Array} Returns `array`.
6891
6976
  * @example
6892
6977
  *
6893
- * var array = [1, 2, 3, 1, 2, 3];
6978
+ * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
6894
6979
  *
6895
- * _.pull(array, 2, 3);
6980
+ * _.pull(array, 'a', 'c');
6896
6981
  * console.log(array);
6897
- * // => [1, 1]
6982
+ * // => ['b', 'b']
6898
6983
  */
6899
6984
  var pull = rest(pullAll);
6900
6985
 
@@ -6912,11 +6997,11 @@
6912
6997
  * @returns {Array} Returns `array`.
6913
6998
  * @example
6914
6999
  *
6915
- * var array = [1, 2, 3, 1, 2, 3];
7000
+ * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
6916
7001
  *
6917
- * _.pullAll(array, [2, 3]);
7002
+ * _.pullAll(array, ['a', 'c']);
6918
7003
  * console.log(array);
6919
- * // => [1, 1]
7004
+ * // => ['b', 'b']
6920
7005
  */
6921
7006
  function pullAll(array, values) {
6922
7007
  return (array && array.length && values && values.length)
@@ -6998,14 +7083,14 @@
6998
7083
  * @returns {Array} Returns the new array of removed elements.
6999
7084
  * @example
7000
7085
  *
7001
- * var array = [5, 10, 15, 20];
7002
- * var evens = _.pullAt(array, 1, 3);
7086
+ * var array = ['a', 'b', 'c', 'd'];
7087
+ * var pulled = _.pullAt(array, [1, 3]);
7003
7088
  *
7004
7089
  * console.log(array);
7005
- * // => [5, 15]
7090
+ * // => ['a', 'c']
7006
7091
  *
7007
- * console.log(evens);
7008
- * // => [10, 20]
7092
+ * console.log(pulled);
7093
+ * // => ['b', 'd']
7009
7094
  */
7010
7095
  var pullAt = rest(function(array, indexes) {
7011
7096
  indexes = baseFlatten(indexes, 1);
@@ -7145,9 +7230,6 @@
7145
7230
  *
7146
7231
  * _.sortedIndex([30, 50], 40);
7147
7232
  * // => 1
7148
- *
7149
- * _.sortedIndex([4, 5], 4);
7150
- * // => 0
7151
7233
  */
7152
7234
  function sortedIndex(array, value) {
7153
7235
  return baseSortedIndex(array, value);
@@ -7170,13 +7252,13 @@
7170
7252
  * into `array`.
7171
7253
  * @example
7172
7254
  *
7173
- * var dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };
7255
+ * var objects = [{ 'x': 4 }, { 'x': 5 }];
7174
7256
  *
7175
- * _.sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));
7176
- * // => 1
7257
+ * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
7258
+ * // => 0
7177
7259
  *
7178
7260
  * // The `_.property` iteratee shorthand.
7179
- * _.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
7261
+ * _.sortedIndexBy(objects, { 'x': 4 }, 'x');
7180
7262
  * // => 0
7181
7263
  */
7182
7264
  function sortedIndexBy(array, value, iteratee) {
@@ -7196,8 +7278,8 @@
7196
7278
  * @returns {number} Returns the index of the matched value, else `-1`.
7197
7279
  * @example
7198
7280
  *
7199
- * _.sortedIndexOf([1, 1, 2, 2], 2);
7200
- * // => 2
7281
+ * _.sortedIndexOf([4, 5, 5, 5, 6], 5);
7282
+ * // => 1
7201
7283
  */
7202
7284
  function sortedIndexOf(array, value) {
7203
7285
  var length = array ? array.length : 0;
@@ -7225,8 +7307,8 @@
7225
7307
  * into `array`.
7226
7308
  * @example
7227
7309
  *
7228
- * _.sortedLastIndex([4, 5], 4);
7229
- * // => 1
7310
+ * _.sortedLastIndex([4, 5, 5, 5, 6], 5);
7311
+ * // => 4
7230
7312
  */
7231
7313
  function sortedLastIndex(array, value) {
7232
7314
  return baseSortedIndex(array, value, true);
@@ -7249,8 +7331,13 @@
7249
7331
  * into `array`.
7250
7332
  * @example
7251
7333
  *
7334
+ * var objects = [{ 'x': 4 }, { 'x': 5 }];
7335
+ *
7336
+ * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
7337
+ * // => 1
7338
+ *
7252
7339
  * // The `_.property` iteratee shorthand.
7253
- * _.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
7340
+ * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
7254
7341
  * // => 1
7255
7342
  */
7256
7343
  function sortedLastIndexBy(array, value, iteratee) {
@@ -7270,7 +7357,7 @@
7270
7357
  * @returns {number} Returns the index of the matched value, else `-1`.
7271
7358
  * @example
7272
7359
  *
7273
- * _.sortedLastIndexOf([1, 1, 2, 2], 2);
7360
+ * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
7274
7361
  * // => 3
7275
7362
  */
7276
7363
  function sortedLastIndexOf(array, value) {
@@ -7510,8 +7597,8 @@
7510
7597
  * @returns {Array} Returns the new array of combined values.
7511
7598
  * @example
7512
7599
  *
7513
- * _.union([2, 1], [4, 2], [1, 2]);
7514
- * // => [2, 1, 4]
7600
+ * _.union([2], [1, 2]);
7601
+ * // => [2, 1]
7515
7602
  */
7516
7603
  var union = rest(function(arrays) {
7517
7604
  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
@@ -7533,8 +7620,8 @@
7533
7620
  * @returns {Array} Returns the new array of combined values.
7534
7621
  * @example
7535
7622
  *
7536
- * _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
7537
- * // => [2.1, 1.2, 4.3]
7623
+ * _.unionBy([2.1], [1.2, 2.3], Math.floor);
7624
+ * // => [2.1, 1.2]
7538
7625
  *
7539
7626
  * // The `_.property` iteratee shorthand.
7540
7627
  * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
@@ -7641,7 +7728,7 @@
7641
7728
  * @returns {Array} Returns the new duplicate free array.
7642
7729
  * @example
7643
7730
  *
7644
- * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
7731
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
7645
7732
  *
7646
7733
  * _.uniqWith(objects, _.isEqual);
7647
7734
  * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
@@ -7736,7 +7823,7 @@
7736
7823
  * @see _.difference, _.xor
7737
7824
  * @example
7738
7825
  *
7739
- * _.without([1, 2, 1, 3], 1, 2);
7826
+ * _.without([2, 1, 2, 3], 1, 2);
7740
7827
  * // => [3]
7741
7828
  */
7742
7829
  var without = rest(function(array, values) {
@@ -7760,8 +7847,8 @@
7760
7847
  * @see _.difference, _.without
7761
7848
  * @example
7762
7849
  *
7763
- * _.xor([2, 1], [4, 2]);
7764
- * // => [1, 4]
7850
+ * _.xor([2, 1], [2, 3]);
7851
+ * // => [1, 3]
7765
7852
  */
7766
7853
  var xor = rest(function(arrays) {
7767
7854
  return baseXor(arrayFilter(arrays, isArrayLikeObject));
@@ -7783,8 +7870,8 @@
7783
7870
  * @returns {Array} Returns the new array of filtered values.
7784
7871
  * @example
7785
7872
  *
7786
- * _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
7787
- * // => [1.2, 4.3]
7873
+ * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
7874
+ * // => [1.2, 3.4]
7788
7875
  *
7789
7876
  * // The `_.property` iteratee shorthand.
7790
7877
  * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
@@ -8017,9 +8104,6 @@
8017
8104
  *
8018
8105
  * _(object).at(['a[0].b.c', 'a[1]']).value();
8019
8106
  * // => [3, 4]
8020
- *
8021
- * _(['a', 'b', 'c']).at(0, 2).value();
8022
- * // => ['a', 'c']
8023
8107
  */
8024
8108
  var wrapperAt = rest(function(paths) {
8025
8109
  paths = baseFlatten(paths, 1);
@@ -8282,6 +8366,7 @@
8282
8366
  * _.countBy([6.1, 4.2, 6.3], Math.floor);
8283
8367
  * // => { '4': 1, '6': 2 }
8284
8368
  *
8369
+ * // The `_.property` iteratee shorthand.
8285
8370
  * _.countBy(['one', 'two', 'three'], 'length');
8286
8371
  * // => { '3': 2, '5': 1 }
8287
8372
  */
@@ -8387,6 +8472,7 @@
8387
8472
  * @param {Array|Object} collection The collection to search.
8388
8473
  * @param {Array|Function|Object|string} [predicate=_.identity]
8389
8474
  * The function invoked per iteration.
8475
+ * @param {number} [fromIndex=0] The index to search from.
8390
8476
  * @returns {*} Returns the matched element, else `undefined`.
8391
8477
  * @example
8392
8478
  *
@@ -8411,14 +8497,7 @@
8411
8497
  * _.find(users, 'active');
8412
8498
  * // => object for 'barney'
8413
8499
  */
8414
- function find(collection, predicate) {
8415
- predicate = getIteratee(predicate, 3);
8416
- if (isArray(collection)) {
8417
- var index = baseFindIndex(collection, predicate);
8418
- return index > -1 ? collection[index] : undefined;
8419
- }
8420
- return baseFind(collection, predicate, baseEach);
8421
- }
8500
+ var find = createFind(findIndex);
8422
8501
 
8423
8502
  /**
8424
8503
  * This method is like `_.find` except that it iterates over elements of
@@ -8431,6 +8510,7 @@
8431
8510
  * @param {Array|Object} collection The collection to search.
8432
8511
  * @param {Array|Function|Object|string} [predicate=_.identity]
8433
8512
  * The function invoked per iteration.
8513
+ * @param {number} [fromIndex=collection.length-1] The index to search from.
8434
8514
  * @returns {*} Returns the matched element, else `undefined`.
8435
8515
  * @example
8436
8516
  *
@@ -8439,14 +8519,7 @@
8439
8519
  * });
8440
8520
  * // => 3
8441
8521
  */
8442
- function findLast(collection, predicate) {
8443
- predicate = getIteratee(predicate, 3);
8444
- if (isArray(collection)) {
8445
- var index = baseFindIndex(collection, predicate, true);
8446
- return index > -1 ? collection[index] : undefined;
8447
- }
8448
- return baseFind(collection, predicate, baseEachRight);
8449
- }
8522
+ var findLast = createFind(findLastIndex);
8450
8523
 
8451
8524
  /**
8452
8525
  * Creates a flattened array of values by running each element in `collection`
@@ -9203,7 +9276,6 @@
9203
9276
  * @static
9204
9277
  * @memberOf _
9205
9278
  * @since 2.4.0
9206
- * @type {Function}
9207
9279
  * @category Date
9208
9280
  * @returns {number} Returns the timestamp.
9209
9281
  * @example
@@ -9211,9 +9283,11 @@
9211
9283
  * _.defer(function(stamp) {
9212
9284
  * console.log(_.now() - stamp);
9213
9285
  * }, _.now());
9214
- * // => Logs the number of milliseconds it took for the deferred function to be invoked.
9286
+ * // => Logs the number of milliseconds it took for the deferred invocation.
9215
9287
  */
9216
- var now = Date.now;
9288
+ function now() {
9289
+ return Date.now();
9290
+ }
9217
9291
 
9218
9292
  /*------------------------------------------------------------------------*/
9219
9293
 
@@ -9317,7 +9391,7 @@
9317
9391
  * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
9318
9392
  * may be used as a placeholder for partially applied arguments.
9319
9393
  *
9320
- * **Note:** Unlike native `Function#bind` this method doesn't set the "length"
9394
+ * **Note:** Unlike native `Function#bind`, this method doesn't set the "length"
9321
9395
  * property of bound functions.
9322
9396
  *
9323
9397
  * @static
@@ -9557,7 +9631,7 @@
9557
9631
  maxWait,
9558
9632
  result,
9559
9633
  timerId,
9560
- lastCallTime = 0,
9634
+ lastCallTime,
9561
9635
  lastInvokeTime = 0,
9562
9636
  leading = false,
9563
9637
  maxing = false,
@@ -9608,7 +9682,7 @@
9608
9682
  // Either this is the first call, activity has stopped and we're at the
9609
9683
  // trailing edge, the system time has gone backwards and we're treating
9610
9684
  // it as the trailing edge, or we've hit the `maxWait` limit.
9611
- return (!lastCallTime || (timeSinceLastCall >= wait) ||
9685
+ return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
9612
9686
  (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
9613
9687
  }
9614
9688
 
@@ -9622,7 +9696,6 @@
9622
9696
  }
9623
9697
 
9624
9698
  function trailingEdge(time) {
9625
- clearTimeout(timerId);
9626
9699
  timerId = undefined;
9627
9700
 
9628
9701
  // Only invoke if we have `lastArgs` which means `func` has been
@@ -9635,11 +9708,8 @@
9635
9708
  }
9636
9709
 
9637
9710
  function cancel() {
9638
- if (timerId !== undefined) {
9639
- clearTimeout(timerId);
9640
- }
9641
- lastCallTime = lastInvokeTime = 0;
9642
- lastArgs = lastThis = timerId = undefined;
9711
+ lastInvokeTime = 0;
9712
+ lastArgs = lastCallTime = lastThis = timerId = undefined;
9643
9713
  }
9644
9714
 
9645
9715
  function flush() {
@@ -9660,7 +9730,6 @@
9660
9730
  }
9661
9731
  if (maxing) {
9662
9732
  // Handle invocations in a tight loop.
9663
- clearTimeout(timerId);
9664
9733
  timerId = setTimeout(timerExpired, wait);
9665
9734
  return invokeFunc(lastCallTime);
9666
9735
  }
@@ -9884,7 +9953,7 @@
9884
9953
  *
9885
9954
  * var func = _.overArgs(function(x, y) {
9886
9955
  * return [x, y];
9887
- * }, square, doubled);
9956
+ * }, [square, doubled]);
9888
9957
  *
9889
9958
  * func(9, 3);
9890
9959
  * // => [81, 6]
@@ -10001,7 +10070,7 @@
10001
10070
  *
10002
10071
  * var rearged = _.rearg(function(a, b, c) {
10003
10072
  * return [a, b, c];
10004
- * }, 2, 0, 1);
10073
+ * }, [2, 0, 1]);
10005
10074
  *
10006
10075
  * rearged('b', 'c', 'a')
10007
10076
  * // => ['a', 'b', 'c']
@@ -10640,7 +10709,7 @@
10640
10709
  * _.isBuffer(new Uint8Array(2));
10641
10710
  * // => false
10642
10711
  */
10643
- var isBuffer = !Buffer ? constant(false) : function(value) {
10712
+ var isBuffer = !Buffer ? stubFalse : function(value) {
10644
10713
  return value instanceof Buffer;
10645
10714
  };
10646
10715
 
@@ -11140,7 +11209,15 @@
11140
11209
  }
11141
11210
 
11142
11211
  /**
11143
- * Checks if `value` is a native function.
11212
+ * Checks if `value` is a pristine native function.
11213
+ *
11214
+ * **Note:** This method can't reliably detect native functions in the
11215
+ * presence of the `core-js` package because `core-js` circumvents this kind
11216
+ * of detection. Despite multiple requests, the `core-js` maintainer has made
11217
+ * it clear: any attempt to fix the detection will be obstructed. As a result,
11218
+ * we're left with little choice but to throw an error. Unfortunately, this
11219
+ * also affects packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
11220
+ * which rely on `core-js`.
11144
11221
  *
11145
11222
  * @static
11146
11223
  * @memberOf _
@@ -11158,11 +11235,10 @@
11158
11235
  * // => false
11159
11236
  */
11160
11237
  function isNative(value) {
11161
- if (!isObject(value)) {
11162
- return false;
11238
+ if (isMaskable(value)) {
11239
+ throw new Error('This method is not supported with `core-js`. Try https://github.com/es-shims.');
11163
11240
  }
11164
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
11165
- return pattern.test(toSource(value));
11241
+ return baseIsNative(value);
11166
11242
  }
11167
11243
 
11168
11244
  /**
@@ -11624,7 +11700,7 @@
11624
11700
  /**
11625
11701
  * Converts `value` to an integer.
11626
11702
  *
11627
- * **Note:** This function is loosely based on
11703
+ * **Note:** This method is loosely based on
11628
11704
  * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
11629
11705
  *
11630
11706
  * @static
@@ -11978,9 +12054,6 @@
11978
12054
  *
11979
12055
  * _.at(object, ['a[0].b.c', 'a[1]']);
11980
12056
  * // => [3, 4]
11981
- *
11982
- * _.at(['a', 'b', 'c'], 0, 2);
11983
- * // => ['a', 'c']
11984
12057
  */
11985
12058
  var at = rest(function(object, paths) {
11986
12059
  return baseAt(object, baseFlatten(paths, 1));
@@ -12113,7 +12186,7 @@
12113
12186
  * // => 'barney'
12114
12187
  */
12115
12188
  function findKey(object, predicate) {
12116
- return baseFind(object, getIteratee(predicate, 3), baseForOwn, true);
12189
+ return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
12117
12190
  }
12118
12191
 
12119
12192
  /**
@@ -12153,7 +12226,7 @@
12153
12226
  * // => 'pebbles'
12154
12227
  */
12155
12228
  function findLastKey(object, predicate) {
12156
- return baseFind(object, getIteratee(predicate, 3), baseForOwnRight, true);
12229
+ return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
12157
12230
  }
12158
12231
 
12159
12232
  /**
@@ -13012,15 +13085,16 @@
13012
13085
  * An alternative to `_.reduce`; this method transforms `object` to a new
13013
13086
  * `accumulator` object which is the result of running each of its own
13014
13087
  * enumerable string keyed properties thru `iteratee`, with each invocation
13015
- * potentially mutating the `accumulator` object. The iteratee is invoked
13016
- * with four arguments: (accumulator, value, key, object). Iteratee functions
13017
- * may exit iteration early by explicitly returning `false`.
13088
+ * potentially mutating the `accumulator` object. If `accumulator` is not
13089
+ * provided, a new object with the same `[[Prototype]]` will be used. The
13090
+ * iteratee is invoked with four arguments: (accumulator, value, key, object).
13091
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
13018
13092
  *
13019
13093
  * @static
13020
13094
  * @memberOf _
13021
13095
  * @since 1.3.0
13022
13096
  * @category Object
13023
- * @param {Array|Object} object The object to iterate over.
13097
+ * @param {Object} object The object to iterate over.
13024
13098
  * @param {Function} [iteratee=_.identity] The function invoked per iteration.
13025
13099
  * @param {*} [accumulator] The custom accumulator value.
13026
13100
  * @returns {*} Returns the accumulated value.
@@ -13442,7 +13516,7 @@
13442
13516
  * @category String
13443
13517
  * @param {string} [string=''] The string to search.
13444
13518
  * @param {string} [target] The string to search for.
13445
- * @param {number} [position=string.length] The position to search from.
13519
+ * @param {number} [position=string.length] The position to search up to.
13446
13520
  * @returns {boolean} Returns `true` if `string` ends with `target`,
13447
13521
  * else `false`.
13448
13522
  * @example
@@ -14527,7 +14601,7 @@
14527
14601
  * }
14528
14602
  * };
14529
14603
  *
14530
- * _.bindAll(view, 'onClick');
14604
+ * _.bindAll(view, ['onClick']);
14531
14605
  * jQuery(element).on('click', view.onClick);
14532
14606
  * // => Logs 'clicked docs' when clicked.
14533
14607
  */
@@ -14608,7 +14682,7 @@
14608
14682
  * { 'user': 'fred', 'age': 40 }
14609
14683
  * ];
14610
14684
  *
14611
- * _.filter(users, _.conforms({ 'age': _.partial(_.gt, _, 38) }));
14685
+ * _.filter(users, _.conforms({ 'age': function(n) { return n > 38; } }));
14612
14686
  * // => [{ 'user': 'fred', 'age': 40 }]
14613
14687
  */
14614
14688
  function conforms(source) {
@@ -14626,10 +14700,12 @@
14626
14700
  * @returns {Function} Returns the new constant function.
14627
14701
  * @example
14628
14702
  *
14629
- * var object = { 'user': 'fred' };
14630
- * var getter = _.constant(object);
14703
+ * var objects = _.times(2, _.constant({ 'a': 1 }));
14704
+ *
14705
+ * console.log(objects);
14706
+ * // => [{ 'a': 1 }, { 'a': 1 }]
14631
14707
  *
14632
- * getter() === object;
14708
+ * console.log(objects[0] === objects[1]);
14633
14709
  * // => true
14634
14710
  */
14635
14711
  function constant(value) {
@@ -14656,7 +14732,7 @@
14656
14732
  * return n * n;
14657
14733
  * }
14658
14734
  *
14659
- * var addSquare = _.flow(_.add, square);
14735
+ * var addSquare = _.flow([_.add, square]);
14660
14736
  * addSquare(1, 2);
14661
14737
  * // => 9
14662
14738
  */
@@ -14679,7 +14755,7 @@
14679
14755
  * return n * n;
14680
14756
  * }
14681
14757
  *
14682
- * var addSquare = _.flowRight(square, _.add);
14758
+ * var addSquare = _.flowRight([square, _.add]);
14683
14759
  * addSquare(1, 2);
14684
14760
  * // => 9
14685
14761
  */
@@ -14698,7 +14774,7 @@
14698
14774
  *
14699
14775
  * var object = { 'user': 'fred' };
14700
14776
  *
14701
- * _.identity(object) === object;
14777
+ * console.log(_.identity(object) === object);
14702
14778
  * // => true
14703
14779
  */
14704
14780
  function identity(value) {
@@ -14959,8 +15035,7 @@
14959
15035
  }
14960
15036
 
14961
15037
  /**
14962
- * A no-operation function that returns `undefined` regardless of the
14963
- * arguments it receives.
15038
+ * A method that returns `undefined`.
14964
15039
  *
14965
15040
  * @static
14966
15041
  * @memberOf _
@@ -14968,17 +15043,15 @@
14968
15043
  * @category Util
14969
15044
  * @example
14970
15045
  *
14971
- * var object = { 'user': 'fred' };
14972
- *
14973
- * _.noop(object) === undefined;
14974
- * // => true
15046
+ * _.times(2, _.noop);
15047
+ * // => [undefined, undefined]
14975
15048
  */
14976
15049
  function noop() {
14977
15050
  // No operation performed.
14978
15051
  }
14979
15052
 
14980
15053
  /**
14981
- * Creates a function that gets the argument at `n` index. If `n` is negative,
15054
+ * Creates a function that gets the argument at index `n`. If `n` is negative,
14982
15055
  * the nth argument from the end is returned.
14983
15056
  *
14984
15057
  * @static
@@ -15017,7 +15090,7 @@
15017
15090
  * @returns {Function} Returns the new function.
15018
15091
  * @example
15019
15092
  *
15020
- * var func = _.over(Math.max, Math.min);
15093
+ * var func = _.over([Math.max, Math.min]);
15021
15094
  *
15022
15095
  * func(1, 2, 3, 4);
15023
15096
  * // => [4, 1]
@@ -15037,7 +15110,7 @@
15037
15110
  * @returns {Function} Returns the new function.
15038
15111
  * @example
15039
15112
  *
15040
- * var func = _.overEvery(Boolean, isFinite);
15113
+ * var func = _.overEvery([Boolean, isFinite]);
15041
15114
  *
15042
15115
  * func('1');
15043
15116
  * // => true
@@ -15063,7 +15136,7 @@
15063
15136
  * @returns {Function} Returns the new function.
15064
15137
  * @example
15065
15138
  *
15066
- * var func = _.overSome(Boolean, isFinite);
15139
+ * var func = _.overSome([Boolean, isFinite]);
15067
15140
  *
15068
15141
  * func('1');
15069
15142
  * // => true
@@ -15210,6 +15283,101 @@
15210
15283
  */
15211
15284
  var rangeRight = createRange(true);
15212
15285
 
15286
+ /**
15287
+ * A method that returns a new empty array.
15288
+ *
15289
+ * @static
15290
+ * @memberOf _
15291
+ * @since 4.13.0
15292
+ * @category Util
15293
+ * @returns {Array} Returns the new empty array.
15294
+ * @example
15295
+ *
15296
+ * var arrays = _.times(2, _.stubArray);
15297
+ *
15298
+ * console.log(arrays);
15299
+ * // => [[], []]
15300
+ *
15301
+ * console.log(arrays[0] === arrays[1]);
15302
+ * // => false
15303
+ */
15304
+ function stubArray() {
15305
+ return [];
15306
+ }
15307
+
15308
+ /**
15309
+ * A method that returns `false`.
15310
+ *
15311
+ * @static
15312
+ * @memberOf _
15313
+ * @since 4.13.0
15314
+ * @category Util
15315
+ * @returns {boolean} Returns `false`.
15316
+ * @example
15317
+ *
15318
+ * _.times(2, _.stubFalse);
15319
+ * // => [false, false]
15320
+ */
15321
+ function stubFalse() {
15322
+ return false;
15323
+ }
15324
+
15325
+ /**
15326
+ * A method that returns a new empty object.
15327
+ *
15328
+ * @static
15329
+ * @memberOf _
15330
+ * @since 4.13.0
15331
+ * @category Util
15332
+ * @returns {Object} Returns the new empty object.
15333
+ * @example
15334
+ *
15335
+ * var objects = _.times(2, _.stubObject);
15336
+ *
15337
+ * console.log(objects);
15338
+ * // => [{}, {}]
15339
+ *
15340
+ * console.log(objects[0] === objects[1]);
15341
+ * // => false
15342
+ */
15343
+ function stubObject() {
15344
+ return {};
15345
+ }
15346
+
15347
+ /**
15348
+ * A method that returns an empty string.
15349
+ *
15350
+ * @static
15351
+ * @memberOf _
15352
+ * @since 4.13.0
15353
+ * @category Util
15354
+ * @returns {string} Returns the empty string.
15355
+ * @example
15356
+ *
15357
+ * _.times(2, _.stubString);
15358
+ * // => ['', '']
15359
+ */
15360
+ function stubString() {
15361
+ return '';
15362
+ }
15363
+
15364
+ /**
15365
+ * A method that returns `true`.
15366
+ *
15367
+ * @static
15368
+ * @memberOf _
15369
+ * @since 4.13.0
15370
+ * @category Util
15371
+ * @returns {boolean} Returns `true`.
15372
+ * @example
15373
+ *
15374
+ * _.times(2, _.stubTrue);
15375
+ * // => [true, true]
15376
+ */
15377
+ function stubTrue() {
15378
+ return true;
15379
+ }
15380
+
15213
15381
  /**
15214
15382
  * Invokes the iteratee `n` times, returning an array of the results of
15215
15383
  * each invocation. The iteratee is invoked with one argument; (index).
@@ -15226,8 +15394,8 @@
15226
15394
  * _.times(3, String);
15227
15395
  * // => ['0', '1', '2']
15228
15396
  *
15229
- * _.times(4, _.constant(true));
15230
- * // => [true, true, true, true]
15397
+ * _.times(4, _.constant(0));
15398
+ * // => [0, 0, 0, 0]
15231
15399
  */
15232
15400
  function times(n, iteratee) {
15233
15401
  n = toInteger(n);
@@ -15263,15 +15431,6 @@
15263
15431
  *
15264
15432
  * _.toPath('a[0].b.c');
15265
15433
  * // => ['a', '0', 'b', 'c']
15266
- *
15267
- * var path = ['a', 'b', 'c'],
15268
- * newPath = _.toPath(path);
15269
- *
15270
- * console.log(newPath);
15271
- * // => ['a', 'b', 'c']
15272
- *
15273
- * console.log(path === newPath);
15274
- * // => false
15275
15434
  */
15276
15435
  function toPath(value) {
15277
15436
  if (isArray(value)) {
@@ -15910,6 +16069,11 @@
15910
16069
  lodash.meanBy = meanBy;
15911
16070
  lodash.min = min;
15912
16071
  lodash.minBy = minBy;
16072
+ lodash.stubArray = stubArray;
16073
+ lodash.stubFalse = stubFalse;
16074
+ lodash.stubObject = stubObject;
16075
+ lodash.stubString = stubString;
16076
+ lodash.stubTrue = stubTrue;
15913
16077
  lodash.multiply = multiply;
15914
16078
  lodash.nth = nth;
15915
16079
  lodash.noConflict = noConflict;
@@ -16216,7 +16380,7 @@
16216
16380
  // also prevents errors in cases where Lodash is loaded by a script tag in the
16217
16381
  // presence of an AMD loader. See http://requirejs.org/docs/errors.html#mismatch
16218
16382
  // for more details. Use `_.noConflict` to remove Lodash from the global object.
16219
- (freeWindow || freeSelf || {})._ = _;
16383
+ (freeSelf || {})._ = _;
16220
16384
 
16221
16385
  // Some AMD build optimizers like r.js check for condition patterns like the following:
16222
16386
  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
@@ -16227,11 +16391,9 @@
16227
16391
  });
16228
16392
  }
16229
16393
  // Check for `exports` after `define` in case a build optimizer adds an `exports` object.
16230
- else if (freeExports && freeModule) {
16394
+ else if (freeModule) {
16231
16395
  // Export for Node.js.
16232
- if (moduleExports) {
16233
- (freeModule.exports = _)._ = _;
16234
- }
16396
+ (freeModule.exports = _)._ = _;
16235
16397
  // Export for CommonJS support.
16236
16398
  freeExports._ = _;
16237
16399
  }