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=-c;p=jquery.git Merge branch 'bug_7413' of https://github.com/rwldrn/jquery into rwldrn-bug_7413 --- fb6c038bf00296480234c971a1664ac01ca1479e diff --combined src/core.js index 18cd3a3,c11133f..07d5caf --- a/src/core.js +++ b/src/core.js @@@ -215,7 -215,7 +215,7 @@@ jQuery.fn = jQuery.prototype = this.toArray() : // Return just the object - ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] ); + ( num < 0 ? this[ this.length + num ] : this[ num ] ); }, // Take an array of elements and push it onto the stack @@@ -532,6 -532,12 +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 --combined test/unit/core.js index 7057783,b634ade..3cbf3f6 --- a/test/unit/core.js +++ b/test/unit/core.js @@@ -547,15 -547,15 +547,15 @@@ test("toArray()", function() }) test("get(Number)", function() { - expect(1); + expect(2); equals( jQuery("p").get(0), document.getElementById("firstp"), "Get A Single Element" ); + strictEqual( jQuery("#firstp").get(1), undefined, "Try get with index larger elements count" ); }); test("get(-Number)",function() { - expect(1); - equals( jQuery("p").get(-1), - document.getElementById("first"), - "Get a single element with negative index" ) + expect(2); + equals( jQuery("p").get(-1), document.getElementById("first"), "Get a single element with negative index" ); + strictEqual( jQuery("#firstp").get(-2), undefined, "Try get with index negative index larger then elements count" ); }) test("each(Function)", function() { @@@ -848,13 -848,20 +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(){