Merge branch 'master' of github.com:jquery/jquery
authorBrandon Aaron <brandon.aaron@gmail.com>
Wed, 24 Mar 2010 03:40:38 +0000 (22:40 -0500)
committerBrandon Aaron <brandon.aaron@gmail.com>
Wed, 24 Mar 2010 03:40:38 +0000 (22:40 -0500)
24 files changed:
src/ajax.js
src/attributes.js
src/core.js
src/css.js
src/data.js
src/effects.js
src/event.js
src/manipulation.js
src/outro.js
src/sizzle-jquery.js
src/support.js
src/traversing.js
test/data/offset/absolute.html
test/data/offset/body.html
test/data/offset/fixed.html
test/data/offset/relative.html
test/data/offset/scroll.html
test/data/offset/static.html
test/data/offset/table.html
test/data/testrunner.js
test/index.html
test/unit/ajax.js
test/unit/attributes.js
test/unit/dimensions.js

index f797e1a..7cf280a 100644 (file)
@@ -1,4 +1,4 @@
-var jsc = now(),
+var jsc = jQuery.now(),
        rscript = /<script(.|\s)*?\/script>/gi,
        rselectTextarea = /select|textarea/i,
        rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,
@@ -259,7 +259,7 @@ jQuery.extend({
                }
 
                if ( s.cache === false && type === "GET" ) {
-                       var ts = now();
+                       var ts = jQuery.now();
 
                        // try replacing _= if it is there
                        var ret = s.url.replace(rts, "$1_=" + ts + "$2");
index 4f7055a..aca9e05 100644 (file)
@@ -9,7 +9,7 @@ var rclass = /[\n\t]/g,
 
 jQuery.fn.extend({
        attr: function( name, value ) {
-               return access( this, name, value, true, jQuery.attr );
+               return jQuery.access( this, name, value, true, jQuery.attr );
        },
 
        removeAttr: function( name, fn ) {
index 699b87a..e1a3a6d 100644 (file)
@@ -1,3 +1,5 @@
+(function() {
+
 // Define a local copy of jQuery
 var jQuery = function( selector, context ) {
                // The jQuery object is actually just the init constructor 'enhanced'
@@ -11,7 +13,7 @@ var jQuery = function( selector, context ) {
        _$ = window.$,
 
        // Use the correct document accordingly with window argument (sandbox)
-       document = window.document,
+       //document = window.document,
 
        // A central reference to the root jQuery(document)
        rootjQuery,
@@ -699,6 +701,39 @@ jQuery.extend({
                return proxy;
        },
 
+       // Mutifunctional method to get and set values to a collection
+       // The value/s can be optionally by executed if its a function
+       access: function( elems, key, value, exec, fn, pass ) {
+               var length = elems.length;
+       
+               // Setting many attributes
+               if ( typeof key === "object" ) {
+                       for ( var k in key ) {
+                               jQuery.access( elems, k, key[k], exec, fn, value );
+                       }
+                       return elems;
+               }
+       
+               // Setting one attribute
+               if ( value !== undefined ) {
+                       // Optionally, function values get executed if exec is true
+                       exec = !pass && exec && jQuery.isFunction(value);
+               
+                       for ( var i = 0; i < length; i++ ) {
+                               fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+                       }
+               
+                       return elems;
+               }
+       
+               // Getting an attribute
+               return length ? fn( elems[0], key ) : undefined;
+       },
+
+       now: function() {
+               return (new Date()).getTime();
+       },
+
        // Use of jQuery.browser is frowned upon.
        // More details: http://docs.jquery.com/Utilities/jQuery.browser
        uaMatch: function( ua ) {
@@ -779,51 +814,7 @@ function doScrollCheck() {
        jQuery.ready();
 }
 
-function evalScript( i, elem ) {
-       if ( elem.src ) {
-               jQuery.ajax({
-                       url: elem.src,
-                       async: false,
-                       dataType: "script"
-               });
-       } else {
-               jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-       }
-
-       if ( elem.parentNode ) {
-               elem.parentNode.removeChild( elem );
-       }
-}
-
-// Mutifunctional method to get and set values to a collection
-// The value/s can be optionally by executed if its a function
-function access( elems, key, value, exec, fn, pass ) {
-       var length = elems.length;
-       
-       // Setting many attributes
-       if ( typeof key === "object" ) {
-               for ( var k in key ) {
-                       access( elems, k, key[k], exec, fn, value );
-               }
-               return elems;
-       }
-       
-       // Setting one attribute
-       if ( value !== undefined ) {
-               // Optionally, function values get executed if exec is true
-               exec = !pass && exec && jQuery.isFunction(value);
-               
-               for ( var i = 0; i < length; i++ ) {
-                       fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-               }
-               
-               return elems;
-       }
-       
-       // Getting an attribute
-       return length ? fn( elems[0], key ) : undefined;
-}
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
 
-function now() {
-       return (new Date()).getTime();
-}
+})();
index f675e13..ad0da64 100644 (file)
@@ -21,7 +21,7 @@ var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
        };
 
 jQuery.fn.css = function( name, value ) {
-       return access( this, name, value, true, function( elem, name, value ) {
+       return jQuery.access( this, name, value, true, function( elem, name, value ) {
                if ( value === undefined ) {
                        return jQuery.curCSS( elem, name );
                }
index 109d556..cddd8bd 100644 (file)
@@ -1,4 +1,4 @@
-var expando = "jQuery" + now(), uuid = 0, windowData = {};
+var expando = "jQuery" + jQuery.now(), uuid = 0, windowData = {};
 
 jQuery.extend({
        cache: {},
index 97456cc..40326e2 100644 (file)
@@ -320,7 +320,7 @@ jQuery.fx.prototype = {
 
        // Start an animation from one number to another
        custom: function( from, to, unit ) {
-               this.startTime = now();
+               this.startTime = jQuery.now();
                this.start = from;
                this.end = to;
                this.unit = unit || this.unit || "px";
@@ -366,7 +366,7 @@ jQuery.fx.prototype = {
 
        // Each step of an animation
        step: function( gotoEnd ) {
-               var t = now(), done = true;
+               var t = jQuery.now(), done = true;
 
                if ( gotoEnd || t >= this.options.duration + this.startTime ) {
                        this.now = this.end;
index 173bab1..588a797 100644 (file)
@@ -554,7 +554,7 @@ jQuery.Event = function( src ) {
 
        // timeStamp is buggy for some events on Firefox(#3843)
        // So we won't rely on the native value
-       this.timeStamp = now();
+       this.timeStamp = jQuery.now();
 
        // Mark it as fixed
        this[ expando ] = true;
index be12aa1..cb898cc 100644 (file)
@@ -584,3 +584,19 @@ jQuery.extend({
                }
        }
 });
+
+function evalScript( i, elem ) {
+       if ( elem.src ) {
+               jQuery.ajax({
+                       url: elem.src,
+                       async: false,
+                       dataType: "script"
+               });
+       } else {
+               jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+       }
+
+       if ( elem.parentNode ) {
+               elem.parentNode.removeChild( elem );
+       }
+}
\ No newline at end of file
index 5d87b7e..7773a74 100644 (file)
@@ -1,4 +1 @@
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-
 })(window);
index 99f4d29..f15b082 100644 (file)
@@ -2,6 +2,6 @@ jQuery.find = Sizzle;
 jQuery.expr = Sizzle.selectors;
 jQuery.expr[":"] = jQuery.expr.filters;
 jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = getText;
-jQuery.isXMLDoc = isXML;
-jQuery.contains = contains;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
index befc532..cddd3dc 100644 (file)
@@ -5,7 +5,7 @@
        var root = document.documentElement,
                script = document.createElement("script"),
                div = document.createElement("div"),
-               id = "script" + now();
+               id = "script" + jQuery.now();
 
        div.style.display = "none";
        div.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
index 6776045..d485d69 100644 (file)
@@ -1,37 +1,9 @@
 var runtil = /Until$/,
        rparentsprev = /^(?:parents|prevUntil|prevAll)/,
        // Note: This RegExp should be improved, or likely pulled from Sizzle
-       rmultiselector = /,/;
-
-// Implement the identical functionality for filter and not
-var winnow = function( elements, qualifier, keep ) {
-       if ( jQuery.isFunction( qualifier ) ) {
-               return jQuery.grep(elements, function( elem, i ) {
-                       var retVal = !!qualifier.call( elem, i, elem );
-                       return retVal === keep;
-               });
-
-       } else if ( qualifier.nodeType ) {
-               return jQuery.grep(elements, function( elem, i ) {
-                       return (elem === qualifier) === keep;
-               });
-
-       } else if ( typeof qualifier === "string" ) {
-               var filtered = jQuery.grep(elements, function( elem ) {
-                       return elem.nodeType === 1;
-               });
-
-               if ( isSimple.test( qualifier ) ) {
-                       return jQuery.filter(qualifier, filtered, !keep);
-               } else {
-                       qualifier = jQuery.filter( qualifier, filtered );
-               }
-       }
-
-       return jQuery.grep(elements, function( elem, i ) {
-               return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
-       });
-};
+       rmultiselector = /,/,
+       isSimple = /^.[^:#\[\.,]*$/,
+       slice = Array.prototype.slice;
 
 jQuery.fn.extend({
        find: function( selector ) {
@@ -269,3 +241,33 @@ jQuery.extend({
                return r;
        }
 });
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+       if ( jQuery.isFunction( qualifier ) ) {
+               return jQuery.grep(elements, function( elem, i ) {
+                       var retVal = !!qualifier.call( elem, i, elem );
+                       return retVal === keep;
+               });
+
+       } else if ( qualifier.nodeType ) {
+               return jQuery.grep(elements, function( elem, i ) {
+                       return (elem === qualifier) === keep;
+               });
+
+       } else if ( typeof qualifier === "string" ) {
+               var filtered = jQuery.grep(elements, function( elem ) {
+                       return elem.nodeType === 1;
+               });
+
+               if ( isSimple.test( qualifier ) ) {
+                       return jQuery.filter(qualifier, filtered, !keep);
+               } else {
+                       qualifier = jQuery.filter( qualifier, filtered );
+               }
+       }
+
+       return jQuery.grep(elements, function( elem, i ) {
+               return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+       });
+};
\ No newline at end of file
index 2a7eb73..dc0ba22 100644 (file)
                        p.instructions { position: absolute; bottom: 0; }
                        #positionTest { position: absolute; }
                </style>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" src="../../../dist/jquery.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
@@ -38,4 +47,4 @@
                <div id="marker"></div>
                <p class="instructions">Click the white box to move the marker to it. Clicking the box also changes the position to absolute (if not already) and sets the position according to the position method.</p>
        </body>
-</html>
\ No newline at end of file
+</html>
index 1f13dd5..9a692e8 100644 (file)
@@ -8,7 +8,15 @@
                        body { margin: 1px; padding: 5px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                $('body').click(function() {
index 8d69aae..f795e5c 100644 (file)
                        #forceScroll { width: 5000px; height: 5000px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                window.scrollTo(1000,1000);
index 55f0da8..bfcd147 100644 (file)
                        #relative-2 { top: 20px; left: 20px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                $('.relative').click(function() {
index 494f640..e6980b4 100644 (file)
                        #forceScroll { width: 5000px; height: 5000px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                window.scrollTo(1000,1000);
index 6a49929..f47a79b 100644 (file)
                        #static-2 { top: 20px; left: 20px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                $('.static').click(function() {
index 5d15b90..83fb559 100644 (file)
                        th, td { border: 1px solid #000; width: 100px; height: 100px; }
                        #marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
                </style>
-               <script type="text/javascript" src="../../../dist/jquery.js"></script>
+               <script src="../../../src/core.js"></script>
+               <script src="../../../src/support.js"></script>
+               <script src="../../../src/sizzle/sizzle.js"></script>
+               <script src="../../../src/sizzle-jquery.js"></script>
+               <script src="../../../src/traversing.js"></script>
+               <script src="../../../src/data.js"></script>
+               <script src="../../../src/event.js"></script>
+               <script src="../../../src/css.js"></script>
+               <script src="../../../src/offset.js"></script>
                <script type="text/javascript" charset="utf-8">
                        $(function() {
                                $('table, th, td').click(function() {
index 95a1b6e..a0eb362 100644 (file)
@@ -1 +1,11 @@
 jQuery.noConflict(); // Allow the test to run with other libs or jQuery's.
+
+// load testswarm agent
+(function() {
+       var url = window.location.search;
+       url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + 9 ) );
+       if ( !url || url.indexOf("http") !== 0 ) {
+               return;
+       }
+       document.write("<scr" + "ipt src='http://swarm.jquery.org/js/inject.js?" + (new Date).getTime() + "'></scr" + "ipt>");
+})();
index d6d02f4..be1f363 100644 (file)
@@ -6,23 +6,40 @@
        <link rel="Stylesheet" media="screen" href="qunit/qunit/qunit.css" />
        <link rel="Stylesheet" media="screen" href="data/testsuite.css" />
        <!-- Includes -->
-       <script type="text/javascript" src="data/testinit.js"></script>
-       <script type="text/javascript" src="../dist/jquery.js"></script>
-       <script type="text/javascript" src="qunit/qunit/qunit.js"></script>
-       <script type="text/javascript" src="data/testrunner.js"></script>
-       <script type="text/javascript" src="unit/core.js"></script>
-       <script type="text/javascript" src="unit/data.js"></script>
-       <script type="text/javascript" src="unit/queue.js"></script>
-       <script type="text/javascript" src="unit/attributes.js"></script>
-       <script type="text/javascript" src="unit/css.js"></script>
-       <script type="text/javascript" src="unit/traversing.js"></script>
-       <script type="text/javascript" src="unit/manipulation.js"></script>
-       <script type="text/javascript" src="unit/dimensions.js"></script>
-       <script type="text/javascript" src="unit/selector.js"></script>
-       <script type="text/javascript" src="unit/event.js"></script>
-       <script type="text/javascript" src="unit/ajax.js"></script>
-       <script type="text/javascript" src="unit/effects.js"></script>
-       <script type="text/javascript" src="unit/offset.js"></script>
+       <script src="data/testinit.js"></script>
+
+       <script src="../src/core.js"></script>
+       <script src="../src/support.js"></script>
+       <script src="../src/data.js"></script>
+       <script src="../src/queue.js"></script>
+       <script src="../src/attributes.js"></script>
+       <script src="../src/event.js"></script>
+       <script src="../src/sizzle/sizzle.js"></script>
+       <script src="../src/sizzle-jquery.js"></script>
+       <script src="../src/traversing.js"></script>
+       <script src="../src/manipulation.js"></script>
+       <script src="../src/css.js"></script>
+       <script src="../src/ajax.js"></script>
+       <script src="../src/effects.js"></script>
+       <script src="../src/offset.js"></script>
+       <script src="../src/dimensions.js"></script>
+
+       <script src="qunit/qunit/qunit.js"></script>
+       <script src="data/testrunner.js"></script>
+
+       <script src="unit/core.js"></script>
+       <script src="unit/data.js"></script>
+       <script src="unit/queue.js"></script>
+       <script src="unit/attributes.js"></script>
+       <script src="unit/event.js"></script>
+       <script src="unit/selector.js"></script>
+       <script src="unit/traversing.js"></script>
+       <script src="unit/manipulation.js"></script>
+       <script src="unit/css.js"></script>
+       <script src="unit/ajax.js"></script>
+       <script src="unit/effects.js"></script>
+       <script src="unit/offset.js"></script>
+       <script src="unit/dimensions.js"></script>
 </head>
 
 <body id="body">
index ce257f8..be4b3f0 100644 (file)
@@ -774,7 +774,7 @@ test("jQuery.ajax() - JSONP, Remote", function() {
        var count = 0;
        function plus(){ if ( ++count == 4 ) start(); }
 
-       var base = window.location.href.replace(/\?.*$/, "");
+       var base = window.location.href.replace(/[^\/]*$/, "");
 
        stop();
 
@@ -836,7 +836,7 @@ test("jQuery.ajax() - JSONP, Remote", function() {
 test("jQuery.ajax() - script, Remote", function() {
        expect(2);
 
-       var base = window.location.href.replace(/\?.*$/, "");
+       var base = window.location.href.replace(/[^\/]*$/, "");
 
        stop();
 
@@ -853,7 +853,7 @@ test("jQuery.ajax() - script, Remote", function() {
 test("jQuery.ajax() - script, Remote with POST", function() {
        expect(3);
 
-       var base = window.location.href.replace(/\?.*$/, "");
+       var base = window.location.href.replace(/[^\/]*$/, "");
 
        stop();
 
@@ -876,7 +876,7 @@ test("jQuery.ajax() - script, Remote with POST", function() {
 test("jQuery.ajax() - script, Remote with scheme-less URL", function() {
        expect(2);
 
-       var base = window.location.href.replace(/\?.*$/, "");
+       var base = window.location.href.replace(/[^\/]*$/, "");
        base = base.replace(/^.*?\/\//, "//");
 
        stop();
@@ -991,7 +991,7 @@ test("jQuery.getJSON - Using Native JSON", function() {
 test("jQuery.getJSON(String, Function) - JSON object with absolute url to local content", function() {
        expect(2);
 
-       var base = window.location.href.replace(/\?.*$/, "");
+       var base = window.location.href.replace(/[^\/]*$/, "");
 
        stop();
        jQuery.getJSON(url(base + "data/json.php"), function(json) {
index d7abbad..21d3d94 100644 (file)
@@ -482,8 +482,10 @@ test("addClass(Function) with incoming value", function() {
        });
 
        div.addClass(function(i, val) {
-               equals( val, old[i], "Make sure the incoming value is correct." );
-               return "test";
+               if ( this.id !== "_firebugConsole" ) {
+                       equals( val, old[i], "Make sure the incoming value is correct." );
+                       return "test";
+               }
        });
 
        var pass = true;
@@ -553,8 +555,10 @@ test("removeClass(Function) with incoming value", function() {
        });
 
        $divs.removeClass(function(i, val) {
-               equals( val, old[i], "Make sure the incoming value is correct." );
-               return "test";
+               if ( this.id !== "_firebugConsole" ) {
+                       equals( val, old[i], "Make sure the incoming value is correct." );
+                       return "test";
+               }
        });
 
        ok( !$divs.is('.test'), "Remove Class" );
index 74405ce..5397790 100644 (file)
@@ -26,7 +26,7 @@ function testWidth( val ) {
 
        $div.css({ display: "", border: "", padding: "" });
 
-       jQuery("#nothiddendivchild").css({ padding: "3px", border: "2px solid #fff" });
+       jQuery("#nothiddendivchild").css({ width: 20, padding: "3px", border: "2px solid #fff" });
        equals(jQuery("#nothiddendivchild").width(), 20, "Test child width with border and padding");
        jQuery("#nothiddendiv, #nothiddendivchild").css({ border: "", padding: "", width: "" });