Permalink
Browse files

Landing pull request 331. Add support for registering jQuery as an AM…

…D module. Fixes #7102.

More Details:
 - #331
 - http://bugs.jquery.com/ticket/7102
  • Loading branch information...
2 parents 2831cfd + 0b1c2e6 commit bba3d610c7e3b611fe1eb89178c91106a156a5dc @jrburke jrburke committed with timmywil Sep 19, 2011
Showing with 33 additions and 1 deletion.
  1. +14 −0 src/core.js
  2. +13 −1 test/data/testinit.js
  3. +6 −0 test/unit/core.js
View
@@ -935,6 +935,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; } );
+}
+
return jQuery;
})();
View
@@ -1,7 +1,19 @@
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.
View
@@ -225,6 +225,12 @@ test("browser", function() {
});
}
+test("amdModule", function() {
+ expect(1);
+
+ equals( jQuery, amdDefined, "Make sure defined module matches jQuery" );
+});
+
test("noConflict", function() {
expect(7);

0 comments on commit bba3d61

Please sign in to comment.