Add test for jQuery(jQueryObj) cloning and simplify new get() code
authorYehuda Katz <wycats@gmail.com>
Fri, 17 Jul 2009 17:33:44 +0000 (17:33 +0000)
committerYehuda Katz <wycats@gmail.com>
Fri, 17 Jul 2009 17:33:44 +0000 (17:33 +0000)
src/core.js
test/unit/core.js

index 267bc10..a74f0fe 100644 (file)
@@ -43,9 +43,8 @@ jQuery.fn = jQuery.prototype = {
 
                // Handle $(DOMElement)
                if ( selector.nodeType ) {
-                       this[0] = selector;
+                       this.context = this[0] = selector;
                        this.length++;
-                       this.context = selector;
                        return this;
                }
 
@@ -132,7 +131,7 @@ jQuery.fn = jQuery.prototype = {
                        this.toArray() :
 
                        // Return just the object
-                       ( num < 0 ? this.toArray.call(this, num)[0] : this[ num ] );
+                       ( num < 0 ? this.toArray(num)[ 0 ] : this[ num ] );
        },
 
        // Take an array of elements and push it onto the stack
index 8aa883a..28be653 100644 (file)
@@ -12,7 +12,7 @@ test("Basic requirements", function() {
 });
 
 test("jQuery()", function() {
-       expect(11);
+       expect(12);
 
        // Basic constructor's behavior
 
@@ -21,6 +21,9 @@ test("jQuery()", function() {
        equals( jQuery(null).length, 0, "jQuery(null) === jQuery([])" );
        equals( jQuery("").length, 0, "jQuery('') === jQuery([])" );
 
+       var obj = jQuery("div")
+       equals( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
+
                // can actually yield more than one, when iframes are included, the window is an array as well
        equals( 1, jQuery(window).length, "Correct number of elements generated for jQuery(window)" );