aboutsummaryrefslogtreecommitdiffstats
path: root/src/intro.js
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2013-07-04 14:00:26 -0400
committerTimmy Willison <timmywillisn@gmail.com>2013-07-04 14:05:30 -0400
commitacdcc6b6a25a2ccddea6b27b2a2fc2b7ef0e2116 (patch)
tree34b0ea2124fae782dff93b78786a5dd8f6ec9025 /src/intro.js
parent894a6c1a6f0d051158ba208c5eb0e5b5385dec00 (diff)
downloadjquery-acdcc6b6a25a2ccddea6b27b2a2fc2b7ef0e2116.tar.gz
jquery-acdcc6b6a25a2ccddea6b27b2a2fc2b7ef0e2116.zip
Support CommonJS environments by accentuating the need for a window with a document. Fixes #13768.
Diffstat (limited to 'src/intro.js')
-rw-r--r--src/intro.js36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/intro.js b/src/intro.js
index c9b1dcdad..64032d4ca 100644
--- a/src/intro.js
+++ b/src/intro.js
@@ -11,7 +11,41 @@
*
* Date: @DATE
*/
-(function( window, undefined ) {
+
+(function ( window, factory ) {
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+ // Expose a jQuery-making factory as module.exports in loaders that implement the Node
+ // module pattern (including browserify).
+ // This accentuates the need for a real window in the environment
+ // e.g. var jQuery = require("jquery")(window);
+ module.exports = function( w ) {
+ w = w || window;
+ if ( !w.document ) {
+ throw new Error("jQuery requires a window with a document");
+ }
+ return factory( w );
+ };
+ } else {
+ // Execute the factory to produce jQuery
+ var jQuery = factory( window );
+
+ // Register as a named AMD module, since jQuery can be concatenated with other
+ // files that may use define, but not via 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. Do this after creating the global so that if an AMD module wants
+ // to call noConflict to hide this version of jQuery, it will work.
+ if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ });
+ }
+ }
+
+// Pass this, window may not be defined yet
+}(this, function ( window, undefined ) {
// Can't do this because several apps including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if