|
|
@ -86,7 +86,7 @@ function replacer(key, value) { |
|
|
|
if (util.isUndefined(value)) { |
|
|
|
return '' + value; |
|
|
|
} |
|
|
|
if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) { |
|
|
|
if (util.isNumber(value) && !isFinite(value)) { |
|
|
|
return value.toString(); |
|
|
|
} |
|
|
|
if (util.isFunction(value) || util.isRegExp(value)) { |
|
|
@ -227,10 +227,11 @@ function objEquiv(a, b) { |
|
|
|
if (a.prototype !== b.prototype) return false; |
|
|
|
//~~~I've managed to break Object.keys through screwy arguments passing.
|
|
|
|
// Converting to array solves the problem.
|
|
|
|
if (isArguments(a)) { |
|
|
|
if (!isArguments(b)) { |
|
|
|
var aIsArgs = isArguments(a), |
|
|
|
bIsArgs = isArguments(b); |
|
|
|
if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (aIsArgs) { |
|
|
|
a = pSlice.call(a); |
|
|
|
b = pSlice.call(b); |
|
|
|
return _deepEqual(a, b); |
|
|
|