From: jeresig Date: Thu, 9 Dec 2010 17:32:15 +0000 (-0500) Subject: Merge branch 'bug_7413' of https://github.com/rwldrn/jquery into rwldrn-bug_7413 X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=fb6c038bf00296480234c971a1664ac01ca1479e;hp=8943b427f67766fd8d9e8a95b471ff4077213be2;p=jquery.git Merge branch 'bug_7413' of https://github.com/rwldrn/jquery into rwldrn-bug_7413 --- diff --git a/src/core.js b/src/core.js index 18cd3a3..07d5caf 100644 --- a/src/core.js +++ b/src/core.js @@ -532,6 +532,12 @@ jQuery.extend({ }, isEmptyObject: function( obj ) { + + // Fixes #7413 Check to see if obj passes isPlainObject + if ( !jQuery.isPlainObject( obj ) ) { + return false; + } + for ( var name in obj ) { return false; } diff --git a/test/unit/core.js b/test/unit/core.js index 7057783..3cbf3f6 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -848,13 +848,20 @@ test("jQuery.makeArray", function(){ }); test("jQuery.isEmptyObject", function(){ - expect(2); + expect(11); equals(true, jQuery.isEmptyObject({}), "isEmptyObject on empty object literal" ); equals(false, jQuery.isEmptyObject({a:1}), "isEmptyObject on non-empty object literal" ); - - // What about this ? - // equals(true, jQuery.isEmptyObject(null), "isEmptyObject on null" ); + equals(false, jQuery.isEmptyObject(1), "isEmptyObject on number (wrong argument type)"); + equals(false, jQuery.isEmptyObject(0), "isEmptyObject on falsy number (wrong argument type)"); + equals(false, jQuery.isEmptyObject("test"), "isEmptyObject on string (wrong argument type)"); + equals(false, jQuery.isEmptyObject(""), "isEmptyObject on falsy string (wrong argument type)"); + equals(false, jQuery.isEmptyObject([1,2,3]), "isEmptyObject on array (wrong argument type)"); + equals(false, jQuery.isEmptyObject([]), "isEmptyObject on an empty array (wrong argument type)"); + equals(false, jQuery.isEmptyObject(undefined), "isEmptyObject on undefined (wrong argument type)"); + equals(false, jQuery.isEmptyObject(false), "isEmptyObject on undefined (wrong argument type)"); + equals(false, jQuery.isEmptyObject(null), "isEmptyObject on null (wrong argument type)" ); + }); test("jQuery.proxy", function(){