mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 14:37:49 +00:00
Cleanup _.isEqual.
Former-commit-id: 83dd17b62fc86b870ca44aa4a54387343fd14cb2
This commit is contained in:
20
dist/lodash.compat.js
vendored
20
dist/lodash.compat.js
vendored
@@ -627,7 +627,7 @@
|
||||
var length = props.length,
|
||||
result = false;
|
||||
while (length--) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], undefined, undefined, indicatorObject))) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], indicatorObject))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1411,8 +1411,6 @@
|
||||
* @param {Mixed} b The other value to compare.
|
||||
* @param {Function} [callback] The function to customize comparing values.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @param- {Object} [whereIndicator] Internally used to indicate that when
|
||||
* comparing objects, `a` has at least the properties of `b`.
|
||||
* @param- {Object} [stackA=[]] Internally used track traversed `a` objects.
|
||||
* @param- {Object} [stackB=[]] Internally used track traversed `b` objects.
|
||||
* @returns {Boolean} Returns `true`, if the values are equvalent, else `false`.
|
||||
@@ -1439,8 +1437,10 @@
|
||||
* });
|
||||
* // => true
|
||||
*/
|
||||
function isEqual(a, b, callback, thisArg, whereIndicator, stackA, stackB) {
|
||||
if (callback) {
|
||||
function isEqual(a, b, callback, thisArg, stackA, stackB) {
|
||||
// used to indicate that when comparing objects, `a` has at least the properties of `b`
|
||||
var whereIndicator = callback == indicatorObject;
|
||||
if (callback && !whereIndicator) {
|
||||
callback = typeof thisArg == 'undefined' ? callback : createCallback(callback, thisArg, 2);
|
||||
var result = callback(a, b);
|
||||
if (typeof result != 'undefined') {
|
||||
@@ -1503,7 +1503,7 @@
|
||||
if (!isArr) {
|
||||
// unwrap any `lodash` wrapped values
|
||||
if (a.__wrapped__ || b.__wrapped__) {
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, undefined, whereIndicator, stackA, stackB);
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, thisArg, stackA, stackB);
|
||||
}
|
||||
// exit for functions and DOM nodes
|
||||
if (className != objectClass || (noNodeClass && (isNode(a) || isNode(b)))) {
|
||||
@@ -1544,12 +1544,12 @@
|
||||
if (isArr) {
|
||||
// compare lengths to determine if a deep comparison is necessary
|
||||
size = b.length;
|
||||
result = whereIndicator == indicatorObject || size == a.length;
|
||||
result = whereIndicator || size == a.length;
|
||||
|
||||
if (result) {
|
||||
// deep compare the contents, ignoring non-numeric properties
|
||||
while (size--) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, undefined, whereIndicator, stackA, stackB))) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, thisArg, stackA, stackB))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1563,11 +1563,11 @@
|
||||
// count the number of properties.
|
||||
size++;
|
||||
// deep compare each property value.
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, undefined, whereIndicator, stackA, stackB));
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, thisArg, stackA, stackB));
|
||||
}
|
||||
});
|
||||
|
||||
if (result && whereIndicator != indicatorObject) {
|
||||
if (result && !whereIndicator) {
|
||||
// ensure both objects have the same number of properties
|
||||
forIn(a, function(value, key, a) {
|
||||
if (hasOwnProperty.call(a, key)) {
|
||||
|
||||
14
dist/lodash.compat.min.js
vendored
14
dist/lodash.compat.min.js
vendored
@@ -5,16 +5,16 @@
|
||||
* Underscore.js 1.4.4 underscorejs.org/LICENSE
|
||||
*/
|
||||
;(function(n,t){function r(n){return n&&typeof n=="object"&&n.__wrapped__?n:this instanceof r?(this.__wrapped__=n,void 0):new r(n)}function e(n,t,r){t||(t=0);var e=n.length,u=e-t>=(r||it);if(u){var o={};for(r=t-1;++r<e;){var i=n[r]+"";(Ot.call(o,i)?o[i]:o[i]=[]).push(n[r])}}return function(r){if(u){var e=r+"";return Ot.call(o,e)&&-1<z(o[e],r)}return-1<z(n,r,t)}}function u(n){return n.charCodeAt(0)}function o(n,t){var r=n.b,e=t.b;if(n=n.a,t=t.a,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1
|
||||
}return r<e?-1:1}function i(n,t,r,e){function u(){var a=arguments,c=i?this:t;return o||(n=t[f]),r.length&&(a=a.length?(a=v(a),e?a.concat(r):r.concat(a)):r),this instanceof u?(s.prototype=n.prototype,c=new s,s.prototype=Q,a=n.apply(c,a),x(a)?a:c):n.apply(c,a)}var o=j(n),i=!r,f=t;return i&&(r=t),o||(t=n),u}function f(n,r,e){if(n==Q)return V;var u=typeof n;if("function"!=u){if("object"!=u)return function(t){return t[n]};var o=pr(n);return function(r){for(var e=o.length,u=W;e--&&(u=w(r[o[e]],n[o[e]],t,t,ot)););return u
|
||||
}}return typeof r!="undefined"?1===e?function(t){return n.call(r,t)}:2===e?function(t,e){return n.call(r,t,e)}:4===e?function(t,e,u,o){return n.call(r,t,e,u,o)}:function(t,e,u){return n.call(r,t,e,u)}:n}function a(){for(var n,t={e:Z,f:nt,g:Gt,i:Jt,j:Xt,k:dt,b:"k(m)",c:"",h:"",l:"",m:J},r=0;n=arguments[r];r++)for(var e in n)t[e]=n[e];if(n=t.a,t.d=/^[^,]+/.exec(n)[0],r="var i,m="+t.d+",t=m;if(!m)return t;"+t.l+";",t.b?(r+="var n=m.length;i=-1;if("+t.b+"){",t.j&&(r+="if(l(m)){m=m.split('')}"),r+="while(++i<n){"+t.h+"}}else{"):t.i&&(r+="var n=m.length;i=-1;if(n&&j(m)){while(++i<n){i+='';"+t.h+"}}else{"),t.f&&(r+="var u=typeof m=='function';"),t.g&&t.m?(r+="var r=-1,s=q[typeof m]?o(m):[],n=s.length;while(++r<n){i=s[r];",t.f&&(r+="if(!(u&&i=='prototype')){"),r+=t.h+"",t.f&&(r+="}")):(r+="for(i in m){",(t.f||t.m)&&(r+="if(",t.f&&(r+="!(u&&i=='prototype')"),t.f&&t.m&&(r+="&&"),t.m&&(r+="h.call(m,i)"),r+="){"),r+=t.h+";",(t.f||t.m)&&(r+="}")),r+="}",t.e)for(r+="var f=m.constructor;",e=0;7>e;e++)r+="i='"+t.k[e]+"';if(","constructor"==t.k[e]&&(r+="!(f&&f.prototype===m)&&"),r+="h.call(m,i)){"+t.h+"}";
|
||||
}return r<e?-1:1}function i(n,t,r,e){function u(){var a=arguments,c=i?this:t;return o||(n=t[f]),r.length&&(a=a.length?(a=v(a),e?a.concat(r):r.concat(a)):r),this instanceof u?(s.prototype=n.prototype,c=new s,s.prototype=Q,a=n.apply(c,a),x(a)?a:c):n.apply(c,a)}var o=j(n),i=!r,f=t;return i&&(r=t),o||(t=n),u}function f(n,t,r){if(n==Q)return V;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=pr(n);return function(t){for(var r=u.length,e=W;r--&&(e=w(t[u[r]],n[u[r]],ot)););return e
|
||||
}}return typeof t!="undefined"?1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,o){return n.call(t,r,e,u,o)}:function(r,e,u){return n.call(t,r,e,u)}:n}function a(){for(var n,t={e:Z,f:nt,g:Gt,i:Jt,j:Xt,k:dt,b:"k(m)",c:"",h:"",l:"",m:J},r=0;n=arguments[r];r++)for(var e in n)t[e]=n[e];if(n=t.a,t.d=/^[^,]+/.exec(n)[0],r="var i,m="+t.d+",t=m;if(!m)return t;"+t.l+";",t.b?(r+="var n=m.length;i=-1;if("+t.b+"){",t.j&&(r+="if(l(m)){m=m.split('')}"),r+="while(++i<n){"+t.h+"}}else{"):t.i&&(r+="var n=m.length;i=-1;if(n&&j(m)){while(++i<n){i+='';"+t.h+"}}else{"),t.f&&(r+="var u=typeof m=='function';"),t.g&&t.m?(r+="var r=-1,s=q[typeof m]?o(m):[],n=s.length;while(++r<n){i=s[r];",t.f&&(r+="if(!(u&&i=='prototype')){"),r+=t.h+"",t.f&&(r+="}")):(r+="for(i in m){",(t.f||t.m)&&(r+="if(",t.f&&(r+="!(u&&i=='prototype')"),t.f&&t.m&&(r+="&&"),t.m&&(r+="h.call(m,i)"),r+="){"),r+=t.h+";",(t.f||t.m)&&(r+="}")),r+="}",t.e)for(r+="var f=m.constructor;",e=0;7>e;e++)r+="i='"+t.k[e]+"';if(","constructor"==t.k[e]&&(r+="!(f&&f.prototype===m)&&"),r+="h.call(m,i)){"+t.h+"}";
|
||||
return(t.b||t.i)&&(r+="}"),r+=t.c+";return t",Function("e,h,j,k,l,q,o","return function("+n+"){"+r+"}")(f,Ot,h,lr,A,rr,Rt)}function c(n){return"\\"+er[n]}function l(n){return sr[n]}function p(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function s(){}function v(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=Array(0>r?0:r);++e<r;)u[e]=n[t+e];return u}function g(n){return vr[n]}function h(n){return St.call(n)==It}function y(n){var t=W;if(!n||typeof n!="object"||h(n))return t;
|
||||
var r=n.constructor;return!j(r)&&(!Yt||!p(n))||r instanceof r?tt?(ar(n,function(n,r,e){return t=!Ot.call(e,r),W}),t===W):(ar(n,function(n,r){t=r}),t===W||Ot.call(n,t)):t}function m(n){var t=[];return cr(n,function(n,r){t.push(r)}),t}function _(n,r,e,u,o,i){var a=n;if(typeof r=="function"&&(u=e,e=r,r=W),typeof e=="function"){e=typeof u=="undefined"?e:f(e,u,1);var a=e(a),c=typeof a!="undefined";c||(a=n)}if(u=x(a)){var l=St.call(a);if(!nr[l]||Yt&&p(a))return a;var s=lr(a)}if(!u||!r)return u&&!c?s?v(a):gr({},a):a;
|
||||
switch(u=tr[l],l){case Bt:case Mt:return c?a:new u(+a);case Pt:case Kt:return c?a:new u(a);case Ct:return c?a:u(a.source,st.exec(a))}for(o||(o=[]),i||(i=[]),l=o.length;l--;)if(o[l]==n)return i[l];return c||(a=s?u(a.length):{},s&&(Ot.call(n,"index")&&(a.index=n.index),Ot.call(n,"input")&&(a.input=n.input))),o.push(n),i.push(a),(s?$:cr)(c?a:n,function(n,u){a[u]=_(n,r,e,t,o,i)}),a}function d(n){var t=[];return ar(n,function(n,r){j(n)&&t.push(r)}),t.sort()}function b(n){for(var t=-1,r=pr(n),e=r.length,u={};++t<e;){var o=r[t];
|
||||
u[n[o]]=o}return u}function w(n,r,e,u,o,i,a){if(e){e=typeof u=="undefined"?e:f(e,u,2);var c=e(n,r);if(typeof c!="undefined")return!!c}if(n===r)return 0!==n||1/n==1/r;u=typeof n;var l=typeof r;if(n===n&&(!n||"function"!=u&&"object"!=u)&&(!r||"function"!=l&&"object"!=l))return W;if(n==Q||r==Q)return n===r;if(l=St.call(n),u=St.call(r),l==It&&(l=zt),u==It&&(u=zt),l!=u)return W;switch(l){case Bt:case Mt:return+n==+r;case Pt:return n!=+n?r!=+r:0==n?1/n==1/r:n==+r;case Ct:case Kt:return n==r+""}if(u=l==Tt,!u){if(n.__wrapped__||r.__wrapped__)return w(n.__wrapped__||n,r.__wrapped__||r,e,t,o,i,a);
|
||||
if(l!=zt||Yt&&(p(n)||p(r)))return W;var l=!Qt&&h(n)?Object:n.constructor,s=!Qt&&h(r)?Object:r.constructor;if(l!=s&&(!j(l)||!(l instanceof l&&j(s)&&s instanceof s)))return W}for(i||(i=[]),a||(a=[]),l=i.length;l--;)if(i[l]==n)return a[l]==r;var v=0,c=J;if(i.push(n),a.push(r),u){if(v=r.length,c=o==ot||v==n.length)for(;v--&&(c=w(n[v],r[v],e,t,o,i,a)););return c}return ar(r,function(r,u,f){return Ot.call(f,u)?(v++,c=Ot.call(n,u)&&w(n[u],r,e,t,o,i,a)):void 0}),c&&o!=ot&&ar(n,function(n,t,r){return Ot.call(r,t)?c=-1<--v:void 0
|
||||
}),c}function j(n){return typeof n=="function"}function x(n){return n?rr[typeof n]:W}function O(n){return typeof n=="number"||St.call(n)==Pt}function A(n){return typeof n=="string"||St.call(n)==Kt}function S(n,t,r){var e=arguments,u=0,o=2;if(!x(n))return n;if(r===ot)var i=e[3],a=e[4],c=e[5];else a=[],c=[],typeof r!="number"&&(o=e.length,"function"==typeof e[o-2]?i=f(e[--o-1],e[o--],2):"function"==typeof e[o-1]&&(i=e[--o]));for(;++u<o;)(lr(e[u])?$:cr)(e[u],function(t,r){var e,u,o=t,f=n[r];if(t&&((u=lr(t))||yr(t))){for(o=a.length;o--;)if(e=a[o]==t){f=c[o];
|
||||
break}e||(f=u?lr(f)?f:[]:yr(f)?f:{},i&&(o=i(f,t),typeof o!="undefined"&&(f=o)),a.push(t),c.push(f),i||(f=S(f,t,ot,i,a,c)))}else i&&(o=i(f,t),typeof o=="undefined"&&(o=t)),typeof o!="undefined"&&(f=o);n[r]=f});return n}function E(n){for(var t=-1,r=pr(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function k(n,t,r){var e=-1,u=n?n.length:0,o=W;return r=(0>r?$t(0,u+r):r)||0,typeof u=="number"?o=-1<(A(n)?n.indexOf(t,r):z(n,t,r)):fr(n,function(n){return++e<r?void 0:!(o=n===t)}),o}function q(n,t,r){var e=J;
|
||||
if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++r<u&&(e=!!t(n[r],r,n)););}else fr(n,function(n,r,u){return e=!!t(n,r,u)});return e}function N(n,t,r){var e=[];if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}}else fr(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function R(n,t,r){var e;return t=f(t,r),$(n,function(n,r,u){return t(n,r,u)?(e=n,W):void 0}),e}function $(n,t,r){if(t&&typeof r=="undefined"&&lr(n)){r=-1;for(var e=n.length;++r<e&&t(n[r],r,n)!==W;);}else fr(n,t,r);
|
||||
u[n[o]]=o}return u}function w(n,t,r,e,u,o){var i=r==ot;if(r&&!i){r=typeof e=="undefined"?r:f(r,e,2);var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var c=typeof n,l=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=l&&"object"!=l))return W;if(n==Q||t==Q)return n===t;if(l=St.call(n),c=St.call(t),l==It&&(l=zt),c==It&&(c=zt),l!=c)return W;switch(l){case Bt:case Mt:return+n==+t;case Pt:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case Ct:case Kt:return n==t+""
|
||||
}if(c=l==Tt,!c){if(n.__wrapped__||t.__wrapped__)return w(n.__wrapped__||n,t.__wrapped__||t,r,e,u,o);if(l!=zt||Yt&&(p(n)||p(t)))return W;var l=!Qt&&h(n)?Object:n.constructor,s=!Qt&&h(t)?Object:t.constructor;if(l!=s&&(!j(l)||!(l instanceof l&&j(s)&&s instanceof s)))return W}for(u||(u=[]),o||(o=[]),l=u.length;l--;)if(u[l]==n)return o[l]==t;var v=0,a=J;if(u.push(n),o.push(t),c){if(v=t.length,a=i||v==n.length)for(;v--&&(a=w(n[v],t[v],r,e,u,o)););return a}return ar(t,function(t,i,f){return Ot.call(f,i)?(v++,a=Ot.call(n,i)&&w(n[i],t,r,e,u,o)):void 0
|
||||
}),a&&!i&&ar(n,function(n,t,r){return Ot.call(r,t)?a=-1<--v:void 0}),a}function j(n){return typeof n=="function"}function x(n){return n?rr[typeof n]:W}function O(n){return typeof n=="number"||St.call(n)==Pt}function A(n){return typeof n=="string"||St.call(n)==Kt}function S(n,t,r){var e=arguments,u=0,o=2;if(!x(n))return n;if(r===ot)var i=e[3],a=e[4],c=e[5];else a=[],c=[],typeof r!="number"&&(o=e.length,"function"==typeof e[o-2]?i=f(e[--o-1],e[o--],2):"function"==typeof e[o-1]&&(i=e[--o]));for(;++u<o;)(lr(e[u])?$:cr)(e[u],function(t,r){var e,u,o=t,f=n[r];
|
||||
if(t&&((u=lr(t))||yr(t))){for(o=a.length;o--;)if(e=a[o]==t){f=c[o];break}e||(f=u?lr(f)?f:[]:yr(f)?f:{},i&&(o=i(f,t),typeof o!="undefined"&&(f=o)),a.push(t),c.push(f),i||(f=S(f,t,ot,i,a,c)))}else i&&(o=i(f,t),typeof o=="undefined"&&(o=t)),typeof o!="undefined"&&(f=o);n[r]=f});return n}function E(n){for(var t=-1,r=pr(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function k(n,t,r){var e=-1,u=n?n.length:0,o=W;return r=(0>r?$t(0,u+r):r)||0,typeof u=="number"?o=-1<(A(n)?n.indexOf(t,r):z(n,t,r)):fr(n,function(n){return++e<r?void 0:!(o=n===t)
|
||||
}),o}function q(n,t,r){var e=J;if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++r<u&&(e=!!t(n[r],r,n)););}else fr(n,function(n,r,u){return e=!!t(n,r,u)});return e}function N(n,t,r){var e=[];if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}}else fr(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function R(n,t,r){var e;return t=f(t,r),$(n,function(n,r,u){return t(n,r,u)?(e=n,W):void 0}),e}function $(n,t,r){if(t&&typeof r=="undefined"&&lr(n)){r=-1;for(var e=n.length;++r<e&&t(n[r],r,n)!==W;);}else fr(n,t,r);
|
||||
return n}function F(n,t,r){var e=-1,u=n?n.length:0,o=Array(typeof u=="number"?u:0);if(t=f(t,r),lr(n))for(;++e<u;)o[e]=t(n[e],e,n);else fr(n,function(n,r,u){o[++e]=t(n,r,u)});return o}function D(n,t,r){var e=-1/0,o=e;if(!t&&lr(n)){r=-1;for(var i=n.length;++r<i;){var a=n[r];a>o&&(o=a)}}else t=!t&&A(n)?u:f(t,r),fr(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function I(n,t,r,e){var u=3>arguments.length;if(t=f(t,e,4),lr(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++o<i;)r=t(r,n[o],o,n)}else fr(n,function(n,e,o){r=u?(u=W,n):t(r,n,e,o)
|
||||
});return r}function T(n,t,r,e){var u=n,o=n?n.length:0,i=3>arguments.length;if(typeof o!="number")var a=pr(n),o=a.length;else Xt&&A(n)&&(u=n.split(""));return t=f(t,e,4),$(n,function(n,e,f){e=a?a[--o]:--o,r=i?(i=W,u[e]):t(r,u[e],e,f)}),r}function B(n,t,r){var e;if(t=f(t,r),lr(n)){r=-1;for(var u=n.length;++r<u&&!(e=t(n[r],r,n)););}else fr(n,function(n,r,u){return!(e=t(n,r,u))});return!!e}function M(n,t,r){if(n){var e=0,u=n.length;if(typeof t=="function"){var o=-1;for(t=f(t,r);++o<u&&t(n[o],o,n);)e++
|
||||
}else if(e=t,e==Q||r)return n[0];return v(n,0,Ft($t(0,e),u))}}function P(n,t){for(var r=-1,e=n?n.length:0,u=[];++r<e;){var o=n[r];lr(o)?At.apply(u,t?o:P(o)):u.push(o)}return u}function z(n,t,r){var e=-1,u=n?n.length:0;if(typeof r=="number")e=(0>r?$t(0,u+r):r||0)-1;else if(r)return e=K(n,t),n[e]===t?e:-1;for(;++e<u;)if(n[e]===t)return e;return-1}function C(n,t,r){if(typeof t=="function"){var e=0,u=-1,o=n?n.length:0;for(t=f(t,r);++u<o&&t(n[u],u,n);)e++}else e=t==Q||r?1:$t(0,t);return v(n,e)}function K(n,t,r,e){var u=0,o=n?n.length:u;
|
||||
|
||||
20
dist/lodash.js
vendored
20
dist/lodash.js
vendored
@@ -509,7 +509,7 @@
|
||||
var length = props.length,
|
||||
result = false;
|
||||
while (length--) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], undefined, undefined, indicatorObject))) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], indicatorObject))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1268,8 +1268,6 @@
|
||||
* @param {Mixed} b The other value to compare.
|
||||
* @param {Function} [callback] The function to customize comparing values.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @param- {Object} [whereIndicator] Internally used to indicate that when
|
||||
* comparing objects, `a` has at least the properties of `b`.
|
||||
* @param- {Object} [stackA=[]] Internally used track traversed `a` objects.
|
||||
* @param- {Object} [stackB=[]] Internally used track traversed `b` objects.
|
||||
* @returns {Boolean} Returns `true`, if the values are equvalent, else `false`.
|
||||
@@ -1296,8 +1294,10 @@
|
||||
* });
|
||||
* // => true
|
||||
*/
|
||||
function isEqual(a, b, callback, thisArg, whereIndicator, stackA, stackB) {
|
||||
if (callback) {
|
||||
function isEqual(a, b, callback, thisArg, stackA, stackB) {
|
||||
// used to indicate that when comparing objects, `a` has at least the properties of `b`
|
||||
var whereIndicator = callback == indicatorObject;
|
||||
if (callback && !whereIndicator) {
|
||||
callback = typeof thisArg == 'undefined' ? callback : createCallback(callback, thisArg, 2);
|
||||
var result = callback(a, b);
|
||||
if (typeof result != 'undefined') {
|
||||
@@ -1360,7 +1360,7 @@
|
||||
if (!isArr) {
|
||||
// unwrap any `lodash` wrapped values
|
||||
if (a.__wrapped__ || b.__wrapped__) {
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, undefined, whereIndicator, stackA, stackB);
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, thisArg, stackA, stackB);
|
||||
}
|
||||
// exit for functions and DOM nodes
|
||||
if (className != objectClass) {
|
||||
@@ -1401,12 +1401,12 @@
|
||||
if (isArr) {
|
||||
// compare lengths to determine if a deep comparison is necessary
|
||||
size = b.length;
|
||||
result = whereIndicator == indicatorObject || size == a.length;
|
||||
result = whereIndicator || size == a.length;
|
||||
|
||||
if (result) {
|
||||
// deep compare the contents, ignoring non-numeric properties
|
||||
while (size--) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, undefined, whereIndicator, stackA, stackB))) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, thisArg, stackA, stackB))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1420,11 +1420,11 @@
|
||||
// count the number of properties.
|
||||
size++;
|
||||
// deep compare each property value.
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, undefined, whereIndicator, stackA, stackB));
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, thisArg, stackA, stackB));
|
||||
}
|
||||
});
|
||||
|
||||
if (result && whereIndicator != indicatorObject) {
|
||||
if (result && !whereIndicator) {
|
||||
// ensure both objects have the same number of properties
|
||||
forIn(a, function(value, key, a) {
|
||||
if (hasOwnProperty.call(a, key)) {
|
||||
|
||||
10
dist/lodash.min.js
vendored
10
dist/lodash.min.js
vendored
@@ -5,13 +5,13 @@
|
||||
* Underscore.js 1.4.4 underscorejs.org/LICENSE
|
||||
*/
|
||||
;(function(n,t){function r(n){return n&&typeof n=="object"&&n.__wrapped__?n:this instanceof r?(this.__wrapped__=n,void 0):new r(n)}function e(n,t,r){t||(t=0);var e=n.length,u=e-t>=(r||Y);if(u){var o={};for(r=t-1;++r<e;){var i=n[r]+"";(ht.call(o,i)?o[i]:o[i]=[]).push(n[r])}}return function(r){if(u){var e=r+"";return ht.call(o,e)&&-1<M(o[e],r)}return-1<M(n,r,t)}}function u(n){return n.charCodeAt(0)}function o(n,t){var r=n.b,e=t.b;if(n=n.a,t=t.a,n!==t){if(n>t||typeof n=="undefined")return 1;if(n<t||typeof t=="undefined")return-1
|
||||
}return r<e?-1:1}function i(n,t,r,e){function u(){var a=arguments,c=i?this:t;return o||(n=t[f]),r.length&&(a=a.length?(a=s(a),e?a.concat(r):r.concat(a)):r),this instanceof u?(p.prototype=n.prototype,c=new p,p.prototype=null,a=n.apply(c,a),w(a)?a:c):n.apply(c,a)}var o=b(n),i=!r,f=t;return i&&(r=t),o||(t=n),u}function f(n,r,e){if(null==n)return U;var u=typeof n;if("function"!=u){if("object"!=u)return function(t){return t[n]};var o=Qt(n);return function(r){for(var e=o.length,u=!1;e--&&(u=d(r[o[e]],n[o[e]],t,t,X)););return u
|
||||
}}return typeof r!="undefined"?1===e?function(t){return n.call(r,t)}:2===e?function(t,e){return n.call(r,t,e)}:4===e?function(t,e,u,o){return n.call(r,t,e,u,o)}:function(t,e,u){return n.call(r,t,e,u)}:n}function a(){for(var n,t={g:It,b:"k(m)",c:"",h:"",l:"",m:!0},r=0;n=arguments[r];r++)for(var e in n)t[e]=n[e];return n=t.a,t.d=/^[^,]+/.exec(n)[0],r=Function,e="var i,m="+t.d+",t=m;if(!m)return t;"+t.l+";",t.b&&(e+="var n=m.length;i=-1;if("+t.b+"){while(++i<n){"+t.h+"}}else{"),t.g&&t.m?e+="var r=-1,s=q[typeof m]?o(m):[],n=s.length;while(++r<n){i=s[r];"+t.h+"}":(e+="for(i in m){",t.m&&(e+="if(",t.m&&(e+="h.call(m,i)"),e+="){"),e+=t.h+";",t.m&&(e+="}"),e+="}"),t.b&&(e+="}"),e+=t.c+";return t",r("e,h,j,k,l,q,o","return function("+n+"){"+e+"}")(f,ht,g,Lt,x,Pt,jt)
|
||||
}return r<e?-1:1}function i(n,t,r,e){function u(){var a=arguments,c=i?this:t;return o||(n=t[f]),r.length&&(a=a.length?(a=s(a),e?a.concat(r):r.concat(a)):r),this instanceof u?(p.prototype=n.prototype,c=new p,p.prototype=null,a=n.apply(c,a),w(a)?a:c):n.apply(c,a)}var o=b(n),i=!r,f=t;return i&&(r=t),o||(t=n),u}function f(n,t,r){if(null==n)return U;var e=typeof n;if("function"!=e){if("object"!=e)return function(t){return t[n]};var u=Qt(n);return function(t){for(var r=u.length,e=!1;r--&&(e=d(t[u[r]],n[u[r]],X)););return e
|
||||
}}return typeof t!="undefined"?1===r?function(r){return n.call(t,r)}:2===r?function(r,e){return n.call(t,r,e)}:4===r?function(r,e,u,o){return n.call(t,r,e,u,o)}:function(r,e,u){return n.call(t,r,e,u)}:n}function a(){for(var n,t={g:It,b:"k(m)",c:"",h:"",l:"",m:!0},r=0;n=arguments[r];r++)for(var e in n)t[e]=n[e];return n=t.a,t.d=/^[^,]+/.exec(n)[0],r=Function,e="var i,m="+t.d+",t=m;if(!m)return t;"+t.l+";",t.b&&(e+="var n=m.length;i=-1;if("+t.b+"){while(++i<n){"+t.h+"}}else{"),t.g&&t.m?e+="var r=-1,s=q[typeof m]?o(m):[],n=s.length;while(++r<n){i=s[r];"+t.h+"}":(e+="for(i in m){",t.m&&(e+="if(",t.m&&(e+="h.call(m,i)"),e+="){"),e+=t.h+";",t.m&&(e+="}"),e+="}"),t.b&&(e+="}"),e+=t.c+";return t",r("e,h,j,k,l,q,o","return function("+n+"){"+e+"}")(f,ht,g,Lt,x,Pt,jt)
|
||||
}function c(n){return"\\"+Ct[n]}function l(n){return Wt[n]}function p(){}function s(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=Array(0>r?0:r);++e<r;)u[e]=n[t+e];return u}function v(n){return Xt[n]}function g(n){return mt.call(n)==Et}function h(n){var t=[];return Jt(n,function(n,r){t.push(r)}),t}function y(n,r,e,u,o,i){var a=n;if(typeof r=="function"&&(u=e,e=r,r=!1),typeof e=="function"){e=typeof u=="undefined"?e:f(e,u,1);var a=e(a),c=typeof a!="undefined";
|
||||
c||(a=n)}if(u=w(a)){var l=mt.call(a);if(!Mt[l])return a;var p=Lt(a)}if(!u||!r)return u&&!c?p?s(a):Yt({},a):a;switch(u=zt[l],l){case qt:case kt:return c?a:new u(+a);case Nt:case Ft:return c?a:new u(a);case $t:return c?a:u(a.source,ut.exec(a))}for(o||(o=[]),i||(i=[]),l=o.length;l--;)if(o[l]==n)return i[l];return c||(a=p?u(a.length):{},p&&(ht.call(n,"index")&&(a.index=n.index),ht.call(n,"input")&&(a.input=n.input))),o.push(n),i.push(a),(p?N:Jt)(c?a:n,function(n,u){a[u]=y(n,r,e,t,o,i)}),a}function m(n){var t=[];
|
||||
return Ht(n,function(n,r){b(n)&&t.push(r)}),t.sort()}function _(n){for(var t=-1,r=Qt(n),e=r.length,u={};++t<e;){var o=r[t];u[n[o]]=o}return u}function d(n,r,e,u,o,i,a){if(e){e=typeof u=="undefined"?e:f(e,u,2);var c=e(n,r);if(typeof c!="undefined")return!!c}if(n===r)return 0!==n||1/n==1/r;u=typeof n;var l=typeof r;if(n===n&&(!n||"function"!=u&&"object"!=u)&&(!r||"function"!=l&&"object"!=l))return!1;if(null==n||null==r)return n===r;if(l=mt.call(n),u=mt.call(r),l==Et&&(l=Rt),u==Et&&(u=Rt),l!=u)return!1;
|
||||
switch(l){case qt:case kt:return+n==+r;case Nt:return n!=+n?r!=+r:0==n?1/n==1/r:n==+r;case $t:case Ft:return n==r+""}if(u=l==St,!u){if(n.__wrapped__||r.__wrapped__)return d(n.__wrapped__||n,r.__wrapped__||r,e,t,o,i,a);if(l!=Rt)return!1;var l=n.constructor,p=r.constructor;if(l!=p&&(!b(l)||!(l instanceof l&&b(p)&&p instanceof p)))return!1}for(i||(i=[]),a||(a=[]),l=i.length;l--;)if(i[l]==n)return a[l]==r;var s=0,c=!0;if(i.push(n),a.push(r),u){if(s=r.length,c=o==X||s==n.length)for(;s--&&(c=d(n[s],r[s],e,t,o,i,a)););return c
|
||||
}return Ht(r,function(r,u,f){return ht.call(f,u)?(s++,c=ht.call(n,u)&&d(n[u],r,e,t,o,i,a)):void 0}),c&&o!=X&&Ht(n,function(n,t,r){return ht.call(r,t)?c=-1<--s:void 0}),c}function b(n){return typeof n=="function"}function w(n){return n?Pt[typeof n]:!1}function j(n){return typeof n=="number"||mt.call(n)==Nt}function x(n){return typeof n=="string"||mt.call(n)==Ft}function A(n,t,r){var e=arguments,u=0,o=2;if(!w(n))return n;if(r===X)var i=e[3],a=e[4],c=e[5];else a=[],c=[],typeof r!="number"&&(o=e.length,"function"==typeof e[o-2]?i=f(e[--o-1],e[o--],2):"function"==typeof e[o-1]&&(i=e[--o]));
|
||||
return Ht(n,function(n,r){b(n)&&t.push(r)}),t.sort()}function _(n){for(var t=-1,r=Qt(n),e=r.length,u={};++t<e;){var o=r[t];u[n[o]]=o}return u}function d(n,t,r,e,u,o){var i=r==X;if(r&&!i){r=typeof e=="undefined"?r:f(r,e,2);var a=r(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;var c=typeof n,l=typeof t;if(n===n&&(!n||"function"!=c&&"object"!=c)&&(!t||"function"!=l&&"object"!=l))return!1;if(null==n||null==t)return n===t;if(l=mt.call(n),c=mt.call(t),l==Et&&(l=Rt),c==Et&&(c=Rt),l!=c)return!1;
|
||||
switch(l){case qt:case kt:return+n==+t;case Nt:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case $t:case Ft:return n==t+""}if(c=l==St,!c){if(n.__wrapped__||t.__wrapped__)return d(n.__wrapped__||n,t.__wrapped__||t,r,e,u,o);if(l!=Rt)return!1;var l=n.constructor,p=t.constructor;if(l!=p&&(!b(l)||!(l instanceof l&&b(p)&&p instanceof p)))return!1}for(u||(u=[]),o||(o=[]),l=u.length;l--;)if(u[l]==n)return o[l]==t;var s=0,a=!0;if(u.push(n),o.push(t),c){if(s=t.length,a=i||s==n.length)for(;s--&&(a=d(n[s],t[s],r,e,u,o)););return a
|
||||
}return Ht(t,function(t,i,f){return ht.call(f,i)?(s++,a=ht.call(n,i)&&d(n[i],t,r,e,u,o)):void 0}),a&&!i&&Ht(n,function(n,t,r){return ht.call(r,t)?a=-1<--s:void 0}),a}function b(n){return typeof n=="function"}function w(n){return n?Pt[typeof n]:!1}function j(n){return typeof n=="number"||mt.call(n)==Nt}function x(n){return typeof n=="string"||mt.call(n)==Ft}function A(n,t,r){var e=arguments,u=0,o=2;if(!w(n))return n;if(r===X)var i=e[3],a=e[4],c=e[5];else a=[],c=[],typeof r!="number"&&(o=e.length,"function"==typeof e[o-2]?i=f(e[--o-1],e[o--],2):"function"==typeof e[o-1]&&(i=e[--o]));
|
||||
for(;++u<o;)(Lt(e[u])?N:Jt)(e[u],function(t,r){var e,u,o=t,f=n[r];if(t&&((u=Lt(t))||nr(t))){for(o=a.length;o--;)if(e=a[o]==t){f=c[o];break}e||(f=u?Lt(f)?f:[]:nr(f)?f:{},i&&(o=i(f,t),typeof o!="undefined"&&(f=o)),a.push(t),c.push(f),i||(f=A(f,t,X,i,a,c)))}else i&&(o=i(f,t),typeof o=="undefined"&&(o=t)),typeof o!="undefined"&&(f=o);n[r]=f});return n}function O(n){for(var t=-1,r=Qt(n),e=r.length,u=Array(e);++t<e;)u[t]=n[r[t]];return u}function E(n,t,r){var e=-1,u=n?n.length:0,o=!1;return r=(0>r?xt(0,u+r):r)||0,typeof u=="number"?o=-1<(x(n)?n.indexOf(t,r):M(n,t,r)):Gt(n,function(n){return++e<r?void 0:!(o=n===t)
|
||||
}),o}function S(n,t,r){var e=!0;if(t=f(t,r),Lt(n)){r=-1;for(var u=n.length;++r<u&&(e=!!t(n[r],r,n)););}else Gt(n,function(n,r,u){return e=!!t(n,r,u)});return e}function q(n,t,r){var e=[];if(t=f(t,r),Lt(n)){r=-1;for(var u=n.length;++r<u;){var o=n[r];t(o,r,n)&&e.push(o)}}else Gt(n,function(n,r,u){t(n,r,u)&&e.push(n)});return e}function k(n,t,r){var e;return t=f(t,r),N(n,function(n,r,u){return t(n,r,u)?(e=n,!1):void 0}),e}function N(n,t,r){if(t&&typeof r=="undefined"&&Lt(n)){r=-1;for(var e=n.length;++r<e&&!1!==t(n[r],r,n););}else Gt(n,t,r);
|
||||
return n}function R(n,t,r){var e=-1,u=n?n.length:0,o=Array(typeof u=="number"?u:0);if(t=f(t,r),Lt(n))for(;++e<u;)o[e]=t(n[e],e,n);else Gt(n,function(n,r,u){o[++e]=t(n,r,u)});return o}function $(n,t,r){var e=-1/0,o=e;if(!t&&Lt(n)){r=-1;for(var i=n.length;++r<i;){var a=n[r];a>o&&(o=a)}}else t=!t&&x(n)?u:f(t,r),Gt(n,function(n,r,u){r=t(n,r,u),r>e&&(e=r,o=n)});return o}function F(n,t,r,e){var u=3>arguments.length;if(t=f(t,e,4),Lt(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++o<i;)r=t(r,n[o],o,n)}else Gt(n,function(n,e,o){r=u?(u=!1,n):t(r,n,e,o)
|
||||
|
||||
2
dist/lodash.underscore.js
vendored
2
dist/lodash.underscore.js
vendored
@@ -1043,8 +1043,6 @@
|
||||
* @param {Mixed} b The other value to compare.
|
||||
* @param {Function} [callback] The function to customize comparing values.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @param- {Object} [whereIndicator] Internally used to indicate that when
|
||||
* comparing objects, `a` has at least the properties of `b`.
|
||||
* @param- {Object} [stackA=[]] Internally used track traversed `a` objects.
|
||||
* @param- {Object} [stackB=[]] Internally used track traversed `b` objects.
|
||||
* @returns {Boolean} Returns `true`, if the values are equvalent, else `false`.
|
||||
|
||||
@@ -2610,7 +2610,7 @@ _.isEmpty('');
|
||||
<!-- div -->
|
||||
|
||||
### <a id="_isequala-b--callback-thisarg"></a>`_.isEqual(a, b [, callback, thisArg])`
|
||||
<a href="#_isequala-b--callback-thisarg">#</a> [Ⓢ](https://github.com/bestiejs/lodash/blob/master/lodash.js#L1449 "View in source") [Ⓣ][1]
|
||||
<a href="#_isequala-b--callback-thisarg">#</a> [Ⓢ](https://github.com/bestiejs/lodash/blob/master/lodash.js#L1447 "View in source") [Ⓣ][1]
|
||||
|
||||
Performs a deep comparison between two values to determine if they are equivalent to each other. If `callback` is passed, it will be executed to compare values. If `callback` returns `undefined`, comparisons will be handled by the method instead. The `callback` is bound to `thisArg` and invoked with two arguments; *(a, b)*.
|
||||
|
||||
@@ -3417,7 +3417,7 @@ _.times(3, function(n) { this.cast(n); }, mage);
|
||||
### <a id="_unescapestring"></a>`_.unescape(string)`
|
||||
<a href="#_unescapestring">#</a> [Ⓢ](https://github.com/bestiejs/lodash/blob/master/lodash.js#L4788 "View in source") [Ⓣ][1]
|
||||
|
||||
The opposite of `_.escape`, this method converts the HTML entities `&`, `<`, `>`, `"`, and `'` in `string` to their corresponding characters.
|
||||
The opposite of `_.escape`, this method converts the HTML entities `&`, `<`, `>`, `"`, and `'` in `string` to their corresponding characters.
|
||||
|
||||
#### Arguments
|
||||
1. `string` *(String)*: The string to unescape.
|
||||
|
||||
20
lodash.js
20
lodash.js
@@ -634,7 +634,7 @@
|
||||
var length = props.length,
|
||||
result = false;
|
||||
while (length--) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], undefined, undefined, indicatorObject))) {
|
||||
if (!(result = isEqual(object[props[length]], func[props[length]], indicatorObject))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1418,8 +1418,6 @@
|
||||
* @param {Mixed} b The other value to compare.
|
||||
* @param {Function} [callback] The function to customize comparing values.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @param- {Object} [whereIndicator] Internally used to indicate that when
|
||||
* comparing objects, `a` has at least the properties of `b`.
|
||||
* @param- {Object} [stackA=[]] Internally used track traversed `a` objects.
|
||||
* @param- {Object} [stackB=[]] Internally used track traversed `b` objects.
|
||||
* @returns {Boolean} Returns `true`, if the values are equvalent, else `false`.
|
||||
@@ -1446,8 +1444,10 @@
|
||||
* });
|
||||
* // => true
|
||||
*/
|
||||
function isEqual(a, b, callback, thisArg, whereIndicator, stackA, stackB) {
|
||||
if (callback) {
|
||||
function isEqual(a, b, callback, thisArg, stackA, stackB) {
|
||||
// used to indicate that when comparing objects, `a` has at least the properties of `b`
|
||||
var whereIndicator = callback == indicatorObject;
|
||||
if (callback && !whereIndicator) {
|
||||
callback = typeof thisArg == 'undefined' ? callback : createCallback(callback, thisArg, 2);
|
||||
var result = callback(a, b);
|
||||
if (typeof result != 'undefined') {
|
||||
@@ -1510,7 +1510,7 @@
|
||||
if (!isArr) {
|
||||
// unwrap any `lodash` wrapped values
|
||||
if (a.__wrapped__ || b.__wrapped__) {
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, undefined, whereIndicator, stackA, stackB);
|
||||
return isEqual(a.__wrapped__ || a, b.__wrapped__ || b, callback, thisArg, stackA, stackB);
|
||||
}
|
||||
// exit for functions and DOM nodes
|
||||
if (className != objectClass || (noNodeClass && (isNode(a) || isNode(b)))) {
|
||||
@@ -1551,12 +1551,12 @@
|
||||
if (isArr) {
|
||||
// compare lengths to determine if a deep comparison is necessary
|
||||
size = b.length;
|
||||
result = whereIndicator == indicatorObject || size == a.length;
|
||||
result = whereIndicator || size == a.length;
|
||||
|
||||
if (result) {
|
||||
// deep compare the contents, ignoring non-numeric properties
|
||||
while (size--) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, undefined, whereIndicator, stackA, stackB))) {
|
||||
if (!(result = isEqual(a[size], b[size], callback, thisArg, stackA, stackB))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1570,11 +1570,11 @@
|
||||
// count the number of properties.
|
||||
size++;
|
||||
// deep compare each property value.
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, undefined, whereIndicator, stackA, stackB));
|
||||
return (result = hasOwnProperty.call(a, key) && isEqual(a[key], value, callback, thisArg, stackA, stackB));
|
||||
}
|
||||
});
|
||||
|
||||
if (result && whereIndicator != indicatorObject) {
|
||||
if (result && !whereIndicator) {
|
||||
// ensure both objects have the same number of properties
|
||||
forIn(a, function(value, key, a) {
|
||||
if (hasOwnProperty.call(a, key)) {
|
||||
|
||||
Reference in New Issue
Block a user