Commit 0b1c2e64 authored by jrburke's avatar jrburke

Add support for registering jQuery as an AMD module. Only does so if the AMD...

Add support for registering jQuery as an AMD module. Only does so if the AMD loader indicates it has special allowances for multiple versions of jQuery being loaded in a page.
parent 5d70c6d7
......@@ -930,6 +930,20 @@ function doScrollCheck() {
jQuery.ready();
}
// Expose jQuery as an AMD module, but only for AMD loaders that
// understand the issues with loading multiple versions of jQuery
// in a page that all might call define(). The loader will indicate
// they have special allowances for multiple jQuery versions by
// specifying define.amd.jQuery = true. Register as a named module,
// since jQuery can be concatenated with other files that may use define,
// but not use a proper concatenation script that understands anonymous
// AMD modules. A named AMD is safest and most robust way to register.
// Lowercase jquery is used because AMD module names are derived from
// file names, and jQuery is normally delivered in a lowercase file name.
if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
define( "jquery", [], function () { return jQuery; } );
}
// Expose jQuery to the global object
return jQuery;
......
var jQuery = this.jQuery || "jQuery", // For testing .noConflict()
$ = this.$ || "$",
originaljQuery = jQuery,
original$ = $;
original$ = $,
amdDefined;
/**
* Set up a mock AMD define function for testing AMD registration.
*/
function define(name, dependencies, callback) {
amdDefined = callback();
}
define.amd = {
jQuery: true
};
/**
* Returns an array of elements with the given IDs, eg.
......
......@@ -214,6 +214,12 @@ test("browser", function() {
});
}
test("amdModule", function() {
expect(1);
equals( jQuery, amdDefined, "Make sure defined module matches jQuery" );
});
test("noConflict", function() {
expect(7);
......@@ -850,7 +856,7 @@ test("jQuery.each(Object,Function)", function() {
f[i] = "baz";
});
equals( "baz", f.foo, "Loop over a function" );
var stylesheet_count = 0;
jQuery.each(document.styleSheets, function(i){
stylesheet_count++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment