a";
// IE strips leading whitespace when .innerHTML is used
support.leadingWhitespace = div.firstChild.nodeType === 3;
@@ -4203,9 +4247,6 @@
support.deleteExpando = false;
}
}
-
- // Null elements to avoid leaks in IE.
- fragment = div = input = null;
})();
@@ -4231,7 +4272,7 @@
var rformElems = /^(?:input|select|textarea)$/i,
rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|contextmenu)|click/,
+ rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
@@ -4834,8 +4875,9 @@
beforeunload: {
postDispatch: function( event ) {
- // Even when returnValue equals to undefined Firefox will still show alert
- if ( event.result !== undefined ) {
+ // Support: Firefox 20+
+ // Firefox doesn't alert if the returnValue field is not set.
+ if ( event.result !== undefined && event.originalEvent ) {
event.originalEvent.returnValue = event.result;
}
}
@@ -4901,11 +4943,9 @@
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
this.isDefaultPrevented = src.defaultPrevented ||
- src.defaultPrevented === undefined && (
- // Support: IE < 9
- src.returnValue === false ||
- // Support: Android < 4.0
- src.getPreventDefault && src.getPreventDefault() ) ?
+ src.defaultPrevented === undefined &&
+ // Support: IE < 9, Android < 4.0
+ src.returnValue === false ?
returnTrue :
returnFalse;
@@ -4968,15 +5008,24 @@
e.cancelBubble = true;
},
stopImmediatePropagation: function() {
+ var e = this.originalEvent;
+
this.isImmediatePropagationStopped = returnTrue;
+
+ if ( e && e.stopImmediatePropagation ) {
+ e.stopImmediatePropagation();
+ }
+
this.stopPropagation();
}
};
// Create mouseenter/leave events using mouseover/out and event-time checks
jQuery.each({
mouseenter: "mouseover",
- mouseleave: "mouseout"
+ mouseleave: "mouseout",
+ pointerenter: "pointerover",
+ pointerleave: "pointerout"
}, function( orig, fix ) {
jQuery.event.special[ orig ] = {
delegateType: fix,
@@ -5980,14 +6029,15 @@
*/
// Called only from within defaultDisplay
function actualDisplay( name, doc ) {
- var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+ var style,
+ elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
// getDefaultComputedStyle might be reliably used only on attached element
- display = window.getDefaultComputedStyle ?
+ display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
// Use of this method is a temporary fix (more like optmization) until something better comes along,
// since it was removed from specification and supported only in FF
- window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" );
+ style.display : jQuery.css( elem[ 0 ], "display" );
// We don't have any data stored on the element,
// so use "detach" method as fast way to get rid of the element
@@ -6033,68 +6083,47 @@
(function() {
- var a, shrinkWrapBlocksVal,
- div = document.createElement( "div" ),
- divReset =
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
- "display:block;padding:0;margin:0;border:0";
+ var shrinkWrapBlocksVal;
- // Setup
- div.innerHTML = "
a";
- a = div.getElementsByTagName( "a" )[ 0 ];
-
- a.style.cssText = "float:left;opacity:.5";
-
- // Make sure that element opacity exists
- // (IE uses filter instead)
- // Use a regex to work around a WebKit issue. See #5145
- support.opacity = /^0.5/.test( a.style.opacity );
-
- // Verify style float existence
- // (IE uses styleFloat instead of cssFloat)
- support.cssFloat = !!a.style.cssFloat;
-
- div.style.backgroundClip = "content-box";
- div.cloneNode( true ).style.backgroundClip = "";
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
- // Null elements to avoid leaks in IE.
- a = div = null;
-
support.shrinkWrapBlocks = function() {
- var body, container, div, containerStyles;
+ if ( shrinkWrapBlocksVal != null ) {
+ return shrinkWrapBlocksVal;
+ }
- if ( shrinkWrapBlocksVal == null ) {
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body ) {
- // Test fired too early or in an unsupported environment, exit.
- return;
- }
+ // Will be changed later if needed.
+ shrinkWrapBlocksVal = false;
- containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px";
- container = document.createElement( "div" );
- div = document.createElement( "div" );
+ // Minified: var b,c,d
+ var div, body, container;
- body.appendChild( container ).appendChild( div );
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
+ // Test fired too early or in an unsupported environment, exit.
+ return;
+ }
- // Will be changed later if needed.
- shrinkWrapBlocksVal = false;
+ // Setup
+ div = document.createElement( "div" );
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
+ body.appendChild( container ).appendChild( div );
- if ( typeof div.style.zoom !== strundefined ) {
- // Support: IE6
- // Check if elements with layout shrink-wrap their children
- div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1";
- div.innerHTML = "";
- div.firstChild.style.width = "5px";
- shrinkWrapBlocksVal = div.offsetWidth !== 3;
- }
-
- body.removeChild( container );
-
- // Null elements to avoid leaks in IE.
- body = container = div = null;
+ // Support: IE6
+ // Check if elements with layout shrink-wrap their children
+ if ( typeof div.style.zoom !== strundefined ) {
+ // Reset CSS: box-sizing; display; margin; border
+ div.style.cssText =
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;" +
+ "padding:1px;width:1px;zoom:1";
+ div.appendChild( document.createElement( "div" ) ).style.width = "5px";
+ shrinkWrapBlocksVal = div.offsetWidth !== 3;
}
+ body.removeChild( container );
+
return shrinkWrapBlocksVal;
};
@@ -6110,7 +6139,14 @@
if ( window.getComputedStyle ) {
getStyles = function( elem ) {
- return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
+ // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
+ // IE throws on elements created in popups
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+ if ( elem.ownerDocument.defaultView.opener ) {
+ return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
+ }
+
+ return window.getComputedStyle( elem, null );
};
curCSS = function( elem, name, computed ) {
@@ -6242,94 +6278,48 @@
(function() {
- var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal,
- pixelPositionVal, reliableMarginRightVal,
- div = document.createElement( "div" ),
- containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
- divReset =
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
- "display:block;padding:0;margin:0;border:0";
+ // Minified: var b,c,d,e,f,g, h,i
+ var div, style, a, pixelPositionVal, boxSizingReliableVal,
+ reliableHiddenOffsetsVal, reliableMarginRightVal;
// Setup
+ div = document.createElement( "div" );
div.innerHTML = "
a";
a = div.getElementsByTagName( "a" )[ 0 ];
+ style = a && a.style;
- a.style.cssText = "float:left;opacity:.5";
+ // Finish early in limited (non-browser) environments
+ if ( !style ) {
+ return;
+ }
- // Make sure that element opacity exists
- // (IE uses filter instead)
- // Use a regex to work around a WebKit issue. See #5145
- support.opacity = /^0.5/.test( a.style.opacity );
+ style.cssText = "float:left;opacity:.5";
+ // Support: IE<9
+ // Make sure that element opacity exists (as opposed to filter)
+ support.opacity = style.opacity === "0.5";
+
// Verify style float existence
// (IE uses styleFloat instead of cssFloat)
- support.cssFloat = !!a.style.cssFloat;
+ support.cssFloat = !!style.cssFloat;
div.style.backgroundClip = "content-box";
div.cloneNode( true ).style.backgroundClip = "";
support.clearCloneStyle = div.style.backgroundClip === "content-box";
- // Null elements to avoid leaks in IE.
- a = div = null;
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ support.boxSizing = style.boxSizing === "" || style.MozBoxSizing === "" ||
+ style.WebkitBoxSizing === "";
jQuery.extend(support, {
reliableHiddenOffsets: function() {
- if ( reliableHiddenOffsetsVal != null ) {
- return reliableHiddenOffsetsVal;
+ if ( reliableHiddenOffsetsVal == null ) {
+ computeStyleTests();
}
-
- var container, tds, isSupported,
- div = document.createElement( "div" ),
- body = document.getElementsByTagName( "body" )[ 0 ];
-
- if ( !body ) {
- // Return for frameset docs that don't have a body
- return;
- }
-
- // Setup
- div.setAttribute( "className", "t" );
- div.innerHTML = "
a";
-
- container = document.createElement( "div" );
- container.style.cssText = containerStyles;
-
- body.appendChild( container ).appendChild( div );
-
- // Support: IE8
- // Check if table cells still have offsetWidth/Height when they are set
- // to display:none and there are still other visible table cells in a
- // table row; if so, offsetWidth/Height are not reliable for use when
- // determining if an element has been hidden directly using
- // display:none (it is still safe to use offsets if a parent element is
- // hidden; don safety goggles and see bug #4512 for more information).
- div.innerHTML = "
t
";
- tds = div.getElementsByTagName( "td" );
- tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
- isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
- tds[ 0 ].style.display = "";
- tds[ 1 ].style.display = "none";
-
- // Support: IE8
- // Check if empty table cells still have offsetWidth/Height
- reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
- body.removeChild( container );
-
- // Null elements to avoid leaks in IE.
- div = body = null;
-
return reliableHiddenOffsetsVal;
},
- boxSizing: function() {
- if ( boxSizingVal == null ) {
- computeStyleTests();
- }
- return boxSizingVal;
- },
-
boxSizingReliable: function() {
if ( boxSizingReliableVal == null ) {
computeStyleTests();
@@ -6344,84 +6334,88 @@
return pixelPositionVal;
},
+ // Support: Android 2.3
reliableMarginRight: function() {
- var body, container, div, marginDiv;
-
- // Use window.getComputedStyle because jsdom on node.js will break without it.
- if ( reliableMarginRightVal == null && window.getComputedStyle ) {
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body ) {
- // Test fired too early or in an unsupported environment, exit.
- return;
- }
-
- container = document.createElement( "div" );
- div = document.createElement( "div" );
- container.style.cssText = containerStyles;
-
- body.appendChild( container ).appendChild( div );
-
- // Check if div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container. (#3333)
- // Fails in WebKit before Feb 2011 nightlies
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- marginDiv = div.appendChild( document.createElement( "div" ) );
- marginDiv.style.cssText = div.style.cssText = divReset;
- marginDiv.style.marginRight = marginDiv.style.width = "0";
- div.style.width = "1px";
-
- reliableMarginRightVal =
- !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
-
- body.removeChild( container );
+ if ( reliableMarginRightVal == null ) {
+ computeStyleTests();
}
-
return reliableMarginRightVal;
}
});
function computeStyleTests() {
- var container, div,
- body = document.getElementsByTagName( "body" )[ 0 ];
+ // Minified: var b,c,d,j
+ var div, body, container, contents;
- if ( !body ) {
+ body = document.getElementsByTagName( "body" )[ 0 ];
+ if ( !body || !body.style ) {
// Test fired too early or in an unsupported environment, exit.
return;
}
- container = document.createElement( "div" );
+ // Setup
div = document.createElement( "div" );
- container.style.cssText = containerStyles;
-
+ container = document.createElement( "div" );
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
body.appendChild( container ).appendChild( div );
div.style.cssText =
- "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
- "position:absolute;display:block;padding:1px;border:1px;width:4px;" +
- "margin-top:1%;top:1%";
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
+ "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
+ "border:1px;padding:1px;width:4px;position:absolute";
- // Workaround failing boxSizing test due to offsetWidth returning wrong value
- // with some non-1 values of body zoom, ticket #13543
- jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
- boxSizingVal = div.offsetWidth === 4;
- });
-
- // Will be changed later if needed.
- boxSizingReliableVal = true;
- pixelPositionVal = false;
+ // Support: IE<9
+ // Assume reasonable values in the absence of getComputedStyle
+ pixelPositionVal = boxSizingReliableVal = false;
reliableMarginRightVal = true;
- // Use window.getComputedStyle because jsdom on node.js will break without it.
+ // Check for getComputedStyle so that this code is not run in IE<9.
if ( window.getComputedStyle ) {
pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
boxSizingReliableVal =
( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
+
+ // Support: Android 2.3
+ // Div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container (#3333)
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ contents = div.appendChild( document.createElement( "div" ) );
+
+ // Reset CSS: box-sizing; display; margin; border; padding
+ contents.style.cssText = div.style.cssText =
+ // Support: Firefox<29, Android 2.3
+ // Vendor-prefix box-sizing
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
+ contents.style.marginRight = contents.style.width = "0";
+ div.style.width = "1px";
+
+ reliableMarginRightVal =
+ !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );
+
+ div.removeChild( contents );
}
- body.removeChild( container );
+ // Support: IE8
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ div.innerHTML = "
t
";
+ contents = div.getElementsByTagName( "td" );
+ contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ if ( reliableHiddenOffsetsVal ) {
+ contents[ 0 ].style.display = "";
+ contents[ 1 ].style.display = "none";
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
+ }
- // Null elements to avoid leaks in IE.
- div = body = null;
+ body.removeChild( container );
}
})();
@@ -6461,8 +6455,8 @@
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
- letterSpacing: 0,
- fontWeight: 400
+ letterSpacing: "0",
+ fontWeight: "400"
},
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
@@ -6519,13 +6513,10 @@
values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
}
} else {
+ hidden = isHidden( elem );
- if ( !values[ index ] ) {
- hidden = isHidden( elem );
-
- if ( display && display !== "none" || !hidden ) {
- jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
- }
+ if ( display && display !== "none" || !hidden ) {
+ jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
}
}
}
@@ -6598,7 +6589,7 @@
var valueIsBorderBox = true,
val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
styles = getStyles( elem ),
- isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+ isBorderBox = support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// some non-html elements return undefined for offsetWidth, so check for null/undefined
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
@@ -6654,6 +6645,8 @@
cssNumber: {
"columnCount": true,
"fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
"fontWeight": true,
"lineHeight": true,
"opacity": true,
@@ -6722,9 +6715,6 @@
// Support: IE
// Swallow errors from 'invalid' CSS values (#5509)
try {
- // Support: Chrome, Safari
- // Setting style to blank string required to delete "style: x !important;"
- style[ name ] = "";
style[ name ] = value;
} catch(e) {}
}
@@ -6781,7 +6771,7 @@
if ( computed ) {
// certain elements can have dimension info if we invisibly show them
// however, it must have a current display style that would benefit from this
- return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
jQuery.swap( elem, cssShow, function() {
return getWidthOrHeight( elem, name, extra );
}) :
@@ -6796,7 +6786,7 @@
elem,
name,
extra,
- support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
styles
) : 0
);
@@ -7145,7 +7135,7 @@
function defaultPrefilter( elem, props, opts ) {
/* jshint validthis: true */
- var prop, value, toggle, tween, hooks, oldfire, display, dDisplay,
+ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
anim = this,
orig = {},
style = elem.style,
@@ -7189,16 +7179,16 @@
// Set display property to inline-block for height/width
// animations on inline elements that are having width/height animated
display = jQuery.css( elem, "display" );
- dDisplay = defaultDisplay( elem.nodeName );
- if ( display === "none" ) {
- display = dDisplay;
- }
- if ( display === "inline" &&
- jQuery.css( elem, "float" ) === "none" ) {
+ // Test default display if display is currently "none"
+ checkDisplay = display === "none" ?
+ jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
+
+ if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
+
// inline-level elements accept inline-block;
// block-level elements need to be inline with layout
- if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) {
+ if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
style.display = "inline-block";
} else {
style.zoom = 1;
@@ -7233,6 +7223,10 @@
}
}
orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+
+ // Any non-fx value stops us from restoring the original display value
+ } else {
+ display = undefined;
}
}
@@ -7274,6 +7268,10 @@
}
}
}
+
+ // If this is a noop like .hide().hide(), restore an overwritten display value
+ } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
+ style.display = display;
}
}
@@ -7690,10 +7688,11 @@
(function() {
- var a, input, select, opt,
- div = document.createElement("div" );
+ // Minified: var a,b,c,d,e
+ var input, div, select, a, opt;
// Setup
+ div = document.createElement( "div" );
div.setAttribute( "className", "t" );
div.innerHTML = "
a";
a = div.getElementsByTagName("a")[ 0 ];
@@ -7741,9 +7740,6 @@
input.value = "t";
input.setAttribute( "type", "radio" );
support.radioValue = input.value === "t";
-
- // Null elements to avoid leaks in IE.
- a = input = select = opt = div = null;
})();
@@ -7817,7 +7813,9 @@
var val = jQuery.find.attr( elem, "value" );
return val != null ?
val :
- jQuery.text( elem );
+ // Support: IE10-11+
+ // option.text throws exceptions (#14686, #14858)
+ jQuery.trim( jQuery.text( elem ) );
}
},
select: {
@@ -9105,7 +9103,8 @@
}
// We can fire global events as of now if asked to
- fireGlobals = s.global;
+ // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+ fireGlobals = jQuery.event && s.global;
// Watch for a new set of requests
if ( fireGlobals && jQuery.active++ === 0 ) {
@@ -9364,14 +9363,7 @@
};
});
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
- jQuery.fn[ type ] = function( fn ) {
- return this.on( type, fn );
- };
-});
-
jQuery._evalUrl = function( url ) {
return jQuery.ajax({
url: url,
@@ -9596,8 +9588,9 @@
// Support: IE<10
// Open requests must be manually aborted on unload (#5280)
-if ( window.ActiveXObject ) {
- jQuery( window ).on( "unload", function() {
+// See https://support.microsoft.com/kb/2856746 for more info
+if ( window.attachEvent ) {
+ window.attachEvent( "onunload", function() {
for ( var key in xhrCallbacks ) {
xhrCallbacks[ key ]( undefined, true );
}
@@ -9981,7 +9974,7 @@
off = url.indexOf(" ");
if ( off >= 0 ) {
- selector = url.slice( off, url.length );
+ selector = jQuery.trim( url.slice( off, url.length ) );
url = url.slice( 0, off );
}
@@ -10031,6 +10024,16 @@
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
+ jQuery.fn[ type ] = function( fn ) {
+ return this.on( type, fn );
+ };
+});
+
+
+
+
jQuery.expr.filters.animated = function( elem ) {
return jQuery.grep(jQuery.timers, function( fn ) {
return elem === fn.elem;
@@ -10294,6 +10297,12 @@
// 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.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
if ( typeof define === "function" && define.amd ) {
define( "jquery", [], function() {
return jQuery;