Remove noArgsClass check from isPlainObject.

Former-commit-id: bab7a68e8eaa21679b33b2ab70a9f8e47758ebc1
This commit is contained in:
John-David Dalton
2012-08-17 00:10:03 -07:00
parent fab2d69fce
commit fd80e096ea
2 changed files with 19 additions and 4 deletions

View File

@@ -749,9 +749,9 @@
* @returns {Boolean} Returns `true` if the `value` is a plain `Object` object, else `false`.
*/
function isPlainObject(value) {
// avoid non-objects and false positives for `arguments` objects in IE < 9
// avoid non-objects and false positives for `arguments` objects
var result = false;
if (!(value && typeof value == 'object') || (noArgsClass && isArguments(value))) {
if (!(value && typeof value == 'object') || isArguments(value)) {
return result;
}
// IE < 9 presents DOM nodes as `Object` objects except they have `toString`

View File

@@ -859,6 +859,8 @@
QUnit.module('lodash.merge');
(function() {
var args = arguments;
test('should merge `source` into the destination object', function() {
var stooges = [
{ 'name': 'moe' },
@@ -918,7 +920,20 @@
deepEqual(_.merge(object, source), [shadowed]);
});
}());
test('should not treat `arguments` objects as plain objects', function() {
var object = {
'args': args
};
var source = {
'args': { '3': 4 }
};
var actual = _.merge(object, source);
equal(_.isArguments(actual.args), false);
});
}(1, 2, 3));
/*--------------------------------------------------------------------------*/
@@ -1112,7 +1127,7 @@
QUnit.module('lodash.sortBy');
(function() {
test('should perform a stable sort', function() {
test('should perform a stable sort (test in IE > 8, Opera, and V8)', function() {
function Pair(x, y) {
this.x = x;
this.y = y;