Ensure _.isEqual works with objects created by Object.create(null).

This commit is contained in:
John-David Dalton
2013-10-17 22:53:40 -07:00
parent 0b4fe85b33
commit 31e86a36f8
8 changed files with 124 additions and 94 deletions

View File

@@ -5,9 +5,9 @@
*/
;(function(){function n(n,r,t){t=(t||0)-1;for(var e=n?n.length:0;++t<e;)if(n[t]===r)return t;return-1}function r(n,r){var t=n.m,e=r.m;if(t!==e){if(t>e||typeof t=="undefined")return 1;if(t<e||typeof e=="undefined")return-1}return n.n-r.n}function t(n){return"\\"+hr[n]}function e(){}function u(n){return n instanceof u?n:new o(n)}function o(n,r){this.__chain__=!!r,this.__wrapped__=n}function i(n,r,t){if(typeof n!="function")return Q;if(typeof r=="undefined"||!("prototype"in n))return n;switch(t){case 1:return function(t){return n.call(r,t)
};case 2:return function(t,e){return n.call(r,t,e)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return J(n,r)}function f(n,r,t,e){e=(e||0)-1;for(var u=n?n.length:0,o=[];++e<u;){var i=n[e];if(i&&typeof i=="object"&&typeof i.length=="number"&&(Ur(i)||y(i))){r||(i=f(i,r,t));var a=-1,l=i.length,c=o.length;for(o.length+=l;++a<l;)o[c++]=i[a]}else t||o.push(i)}return o}function a(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(n===n&&!(n&&sr[typeof n]||r&&sr[typeof r]))return!1;
if(null==n||null==r)return n===r;var o=Sr.call(n),i=Sr.call(r);if(o!=i)return!1;switch(o){case ir:case fr:return+n==+r;case ar:return n!=+n?r!=+r:0==n?1/n==1/r:n==+r;case cr:case pr:return n==r+""}if(i=o==or,!i){if(Tr.call(n,"__wrapped__")||r instanceof u)return a(n.__wrapped__||n,r.__wrapped__||r,t,e);if(o!=lr)return!1;var o=n.constructor,f=r.constructor;if(o!=f&&!(j(o)&&o instanceof o&&j(f)&&f instanceof f))return!1}for(t||(t=[]),e||(e=[]),o=t.length;o--;)if(t[o]==n)return e[o]==r;var l=!0,c=0;
if(t.push(n),e.push(r),i){if(c=r.length,l=c==n.length)for(;c--&&(l=a(n[c],r[c],t,e)););return l}return Qr(r,function(r,u,o){return Tr.call(o,u)?(c++,!(l=Tr.call(n,u)&&a(n[u],r,t,e))&&nr):void 0}),l&&Qr(n,function(n,r,t){return Tr.call(t,r)?!(l=-1<--c)&&nr:void 0}),l}function l(n,r,t){for(var e=-1,u=g(),o=n?n.length:0,i=[],f=t?[]:i;++e<o;){var a=n[e],l=t?t(a,e,n):a;(r?!e||f[f.length-1]!==l:0>u(f,l))&&(t&&f.push(l),i.push(a))}return i}function c(n){return function(r,t,e){var u={};t=K(t,e,3),e=-1;var o=r?r.length:0;
if(typeof o=="number")for(;++e<o;){var i=r[e];n(u,i,t(i,e,r),r)}else Xr(r,function(r,e,o){n(u,r,t(r,e,o),o)});return u}}function p(n,r,t,e,u,o){var i=1&r,f=2&r,a=4&r,l=8&r,c=16&r,h=32&r,g=n;if(!f&&!j(n))throw new TypeError;if(c&&!t.length&&(r&=-17,c=t=!1),h&&!e.length&&(r&=-33,h=e=!1),!i||f||a||h||!(Pr.fastBind||Nr&&c))y=function(){var v=arguments,m=i?u:this;return(a||c||h)&&(v=Wr.call(v),c&&Br.apply(v,t),h&&Or.apply(v,e),a&&v.length<o)?(r|=16,p(n,l?r:-4&r,v,null,u,o)):(f&&(n=m[g]),this instanceof y?(m=s(n.prototype),v=n.apply(m,v),x(v)?v:m):n.apply(m,v))
if(null==n||null==r)return n===r;var o=Sr.call(n),i=Sr.call(r);if(o!=i)return!1;switch(o){case ir:case fr:return+n==+r;case ar:return n!=+n?r!=+r:0==n?1/n==1/r:n==+r;case cr:case pr:return n==r+""}if(i=o==or,!i){if(Tr.call(n,"__wrapped__")||r instanceof u)return a(n.__wrapped__||n,r.__wrapped__||r,t,e);if(o!=lr)return!1;var o=n.constructor,f=r.constructor;if(o!=f&&!(j(o)&&o instanceof o&&j(f)&&f instanceof f)&&(!Rr||"constructor"in n&&"constructor"in r))return!1}for(t||(t=[]),e||(e=[]),o=t.length;o--;)if(t[o]==n)return e[o]==r;
var l=!0,c=0;if(t.push(n),e.push(r),i){if(c=r.length,l=c==n.length)for(;c--&&(l=a(n[c],r[c],t,e)););return l}return Qr(r,function(r,u,o){return Tr.call(o,u)?(c++,!(l=Tr.call(n,u)&&a(n[u],r,t,e))&&nr):void 0}),l&&Qr(n,function(n,r,t){return Tr.call(t,r)?!(l=-1<--c)&&nr:void 0}),l}function l(n,r,t){for(var e=-1,u=g(),o=n?n.length:0,i=[],f=t?[]:i;++e<o;){var a=n[e],l=t?t(a,e,n):a;(r?!e||f[f.length-1]!==l:0>u(f,l))&&(t&&f.push(l),i.push(a))}return i}function c(n){return function(r,t,e){var u={};t=K(t,e,3),e=-1;
var o=r?r.length:0;if(typeof o=="number")for(;++e<o;){var i=r[e];n(u,i,t(i,e,r),r)}else Xr(r,function(r,e,o){n(u,r,t(r,e,o),o)});return u}}function p(n,r,t,e,u,o){var i=1&r,f=2&r,a=4&r,l=8&r,c=16&r,h=32&r,g=n;if(!f&&!j(n))throw new TypeError;if(c&&!t.length&&(r&=-17,c=t=!1),h&&!e.length&&(r&=-33,h=e=!1),!i||f||a||h||!(Pr.fastBind||Nr&&c))y=function(){var v=arguments,m=i?u:this;return(a||c||h)&&(v=Wr.call(v),c&&Br.apply(v,t),h&&Or.apply(v,e),a&&v.length<o)?(r|=16,p(n,l?r:-4&r,v,null,u,o)):(f&&(n=m[g]),this instanceof y?(m=s(n.prototype),v=n.apply(m,v),x(v)?v:m):n.apply(m,v))
};else{if(c){var v=[u];Or.apply(v,t)}var y=c?Nr.apply(n,v):Nr.call(n,u)}return y}function s(n){return x(n)?Rr(n):{}}function h(n){return Hr[n]}function g(){var r=(r=u.indexOf)===U?n:r;return r}function v(n){return Jr[n]}function y(n){return n&&typeof n=="object"&&typeof n.length=="number"&&Sr.call(n)==ur||!1}function m(n){if(!n)return n;for(var r=1,t=arguments.length;r<t;r++){var e=arguments[r];if(e)for(var u in e)n[u]=e[u]}return n}function _(n){if(!n)return n;for(var r=1,t=arguments.length;r<t;r++){var e=arguments[r];
if(e)for(var u in e)"undefined"==typeof n[u]&&(n[u]=e[u])}return n}function d(n){var r=[];return Qr(n,function(n,t){j(n)&&r.push(t)}),r.sort()}function b(n){for(var r=-1,t=Gr(n),e=t.length,u={};++r<e;){var o=t[r];u[n[o]]=o}return u}function w(n){if(!n)return!0;if(Ur(n)||T(n))return!n.length;for(var r in n)if(Tr.call(n,r))return!1;return!0}function j(n){return typeof n=="function"}function x(n){return!(!n||!sr[typeof n])}function E(n){return typeof n=="number"||Sr.call(n)==ar}function T(n){return typeof n=="string"||Sr.call(n)==pr
}function A(n){for(var r=-1,t=Gr(n),e=t.length,u=Array(e);++r<e;)u[r]=n[t[r]];return u}function O(n,r){var t=g(),e=n?n.length:0,u=!1;return e&&typeof e=="number"?u=-1<t(n,r):Xr(n,function(n){return(u=n===r)&&nr}),u}function S(n,r,t){var e=!0;r=K(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u&&(e=!!r(n[t],t,n)););else Xr(n,function(n,t,u){return!(e=!!r(n,t,u))&&nr});return e}function B(n,r,t){var e=[];r=K(r,t,3),t=-1;var u=n?n.length:0;if(typeof u=="number")for(;++t<u;){var o=n[t];