Testcase for jQuery Ticket 5476

Faster get() for negative indices and more consistent return values

by jitter

HTML

<div id="foo" style="display:none"><p id="first">foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p>foo</p><p id="last">foo</p></div>



<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js">{ startOpened: true }</script>

JavaScript

(function($) {
    $.fn.newGet = function(num) {
        return num == null ?
        // Return a 'clean' array
        this.toArray() :
        // Return just the object
        ( num < 0 ? this[ this.length + num ] : this[ num ] );
    }
})(jQuery);

var $ps = $("#foo p");

$.each([0, 49, 50, 51, -1, -50, -51], function( i, val ) {
    console.log("orig: ", $ps.get( val ), " - new: ", $ps.newGet( val ));
});