Improve performance of get() for negative indices. Fixes #5476.
authorAnton M <haskell_noob-github@yahoo.de>
Fri, 19 Nov 2010 11:28:13 +0000 (12:28 +0100)
committerAnton M <haskell_noob-github@yahoo.de>
Fri, 19 Nov 2010 11:28:13 +0000 (12:28 +0100)
src/core.js
test/unit/core.js

index 9e1bfc6..18cd3a3 100644 (file)
@@ -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
index 7ef2ad7..7057783 100644 (file)
@@ -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() {