Fix #13355. Tweak Uglify options and var order for gzip. Close gh-1151.

Change uglify-js options for compressor
Change variables initialization sequence for some declarations
This commit is contained in:
Oleg 2013-01-29 04:04:58 +04:00 committed by Dave Methvin
parent e392e5579b
commit d79bf3517e
12 changed files with 67 additions and 61 deletions

View File

@ -101,6 +101,12 @@ module.exports = function( grunt ) {
options: {
banner: "/*! jQuery v<%= pkg.version %> | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */",
sourceMap: "dist/jquery.min.map",
compress: {
hoist_funs: false,
join_vars: false,
loops: false,
unused: false
},
beautify: {
ascii_only: true
}

View File

@ -2,7 +2,6 @@ var
// Document location
ajaxLocParts,
ajaxLocation,
ajax_nonce = jQuery.now(),
ajax_rquery = /\?/,
@ -115,7 +114,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
// that takes "flat" options (not to be deep extended)
// Fixes #9887
function ajaxExtend( target, src ) {
var key, deep,
var deep, key,
flatOptions = jQuery.ajaxSettings.flatOptions || {};
for ( key in src ) {
@ -135,7 +134,7 @@ jQuery.fn.load = function( url, params, callback ) {
return _load.apply( this, arguments );
}
var selector, type, response,
var selector, response, type,
self = this,
off = url.indexOf(" ");
@ -316,20 +315,23 @@ jQuery.extend({
// Force options to be an object
options = options || {};
var transport,
// URL without anti-cache param
cacheURL,
// Response headers
responseHeadersString,
responseHeaders,
// timeout handle
timeoutTimer,
// Cross-domain detection vars
var // Cross-domain detection vars
parts,
// To know if global events are to be dispatched
fireGlobals,
// Loop variable
i,
// URL without anti-cache param
cacheURL,
// Response headers as string
responseHeadersString,
// timeout handle
timeoutTimer,
// To know if global events are to be dispatched
fireGlobals,
transport,
// Response headers
responseHeaders,
// Create the final options object
s = jQuery.ajaxSetup( {}, options ),
// Callbacks context
@ -704,8 +706,7 @@ jQuery.extend({
* - returns the corresponding response
*/
function ajaxHandleResponses( s, jqXHR, responses ) {
var ct, type, finalDataType, firstDataType,
var firstDataType, ct, finalDataType, type,
contents = s.contents,
dataTypes = s.dataTypes,
responseFields = s.responseFields;
@ -766,8 +767,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
// Chain conversions given the request and the original response
function ajaxConvert( s, response ) {
var conv, conv2, current, tmp,
var conv2, current, conv, tmp,
converters = {},
i = 0,
// Work with a copy of dataTypes in case we need to modify it for conversion

View File

@ -101,11 +101,7 @@ if ( xhrSupported ) {
// Listener
callback = function( _, isAbort ) {
var status,
statusText,
responseHeaders,
responses;
var status, responseHeaders, statusText, responses;
// Firefox throws exceptions when accessing properties
// of an xhr when a network error occurred

View File

@ -290,7 +290,7 @@ jQuery.extend({
},
attr: function( elem, name, value ) {
var ret, hooks, notxml,
var hooks, notxml, ret,
nType = elem.nodeType;
// don't get/set attributes on text, comment and attribute nodes

View File

@ -46,12 +46,12 @@ jQuery.Callbacks = function( options ) {
memory,
// Flag to know if list was already fired
fired,
// First callback to fire (used internally by add and fireWith)
firingStart,
// Index of currently firing callback (modified by remove if needed)
firingIndex,
// End of the loop when firing
firingLength,
// Index of currently firing callback (modified by remove if needed)
firingIndex,
// First callback to fire (used internally by add and fireWith)
firingStart,
// Actual callback list
list = [],
// Stack of fire calls for repeatable lists

View File

@ -1,10 +1,10 @@
var
// A central reference to the root jQuery(document)
rootjQuery,
// The deferred used on DOM ready
readyList,
// A central reference to the root jQuery(document)
rootjQuery,
// Support: IE<9
// For `typeof node.method` instead of `node.method !== undefined`
core_strundefined = typeof undefined,
@ -93,7 +93,7 @@ jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
var elem, match;
var match, elem;
// HANDLE: $(""), $(null), $(undefined), $(false)
if ( !selector ) {
@ -288,7 +288,7 @@ jQuery.fn = jQuery.prototype = {
jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() {
var copy, options, src, copyIsArray, name, clone,
var src, copyIsArray, copy, name, options, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,

View File

@ -1,4 +1,4 @@
var curCSS, getStyles, iframe,
var iframe, getStyles, curCSS,
ralpha = /alpha\([^)]*\)/i,
ropacity = /opacity\s*=\s*([^)]*)/,
rposition = /^(top|right|bottom|left)$/,
@ -98,7 +98,7 @@ function showHide( elements, show ) {
jQuery.fn.extend({
css: function( name, value ) {
return jQuery.access( this, function( elem, name, value ) {
var styles, len,
var len, styles,
map = {},
i = 0;
@ -239,7 +239,7 @@ jQuery.extend({
},
css: function( elem, name, extra, styles ) {
var val, num, hooks,
var num, val, hooks,
origName = jQuery.camelCase( name );
// Make sure that we're working with the right name

View File

@ -1,7 +1,7 @@
var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
rmultiDash = /([A-Z])/g;
function internalData( elem, name, data, pvt ) {
function internalData( elem, name, data, pvt /* Internal Use Only */ ){
if ( !jQuery.acceptData( elem ) ) {
return;
}
@ -100,8 +100,7 @@ function internalRemoveData( elem, name, pvt ) {
return;
}
var thisCache, i, l,
var i, l, thisCache,
isNode = elem.nodeType,
// See jQuery.data for more information
@ -216,7 +215,7 @@ jQuery.extend({
_data: function( elem, name, data ) {
return internalData( elem, name, data, true );
},
_removeData: function( elem, name ) {
return internalRemoveData( elem, name, true );
},

6
src/effects.js vendored
View File

@ -175,7 +175,7 @@ function Animation( elem, properties, options ) {
}
function propFilter( props, specialEasing ) {
var index, name, easing, value, hooks;
var value, name, index, easing, hooks;
// camelCase, specialEasing and expand cssHook pass
for ( index in props ) {
@ -243,7 +243,9 @@ jQuery.Animation = jQuery.extend( Animation, {
function defaultPrefilter( elem, props, opts ) {
/*jshint validthis:true */
var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire,
var prop, index, length,
value, dataShow, toggle,
tween, hooks, oldfire,
anim = this,
style = elem.style,
orig = {},

View File

@ -21,10 +21,9 @@ jQuery.event = {
global: {},
add: function( elem, types, handler, data, selector ) {
var handleObjIn, tmp, eventHandle,
t, handleObj, special,
events, handlers, type, namespaces, origType,
var tmp, events, t, handleObjIn,
special, eventHandle, handleObj,
handlers, type, namespaces, origType,
elemData = jQuery._data( elem );
// Don't attach events to noData or text/comment nodes (but allow plain objects)
@ -132,10 +131,10 @@ jQuery.event = {
// Detach an event or set of events from an element
remove: function( elem, types, handler, selector, mappedTypes ) {
var events, handleObj, tmp,
j, t, origCount,
special, handlers, type, namespaces, origType,
var j, handleObj, tmp,
origCount, t, events,
special, handlers, type,
namespaces, origType,
elemData = jQuery.hasData( elem ) && jQuery._data( elem );
if ( !elemData || !(events = elemData.events) ) {
@ -205,8 +204,8 @@ jQuery.event = {
},
trigger: function( event, data, elem, onlyHandlers ) {
var i, handle, ontype, bubbleType, tmp, special, cur,
var handle, ontype, cur,
bubbleType, special, tmp, i,
eventPath = [ elem || document ],
type = event.type || event,
namespaces = event.namespace ? event.namespace.split(".") : [];
@ -343,7 +342,7 @@ jQuery.event = {
// Make a writable jQuery.Event from the native event object
event = jQuery.event.fix( event );
var ret, j, handleObj, matched, i,
var i, ret, handleObj, matched, j,
handlerQueue = [],
args = core_slice.call( arguments ),
handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
@ -398,7 +397,7 @@ jQuery.event = {
},
handlers: function( event, handlers ) {
var i, matches, sel, handleObj,
var sel, handleObj, matches, i,
handlerQueue = [],
delegateCount = handlers.delegateCount,
cur = event.target;
@ -511,7 +510,7 @@ jQuery.event = {
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function( event, original ) {
var eventDoc, doc, body,
var body, eventDoc, doc,
button = original.button,
fromElement = original.fromElement;

View File

@ -285,7 +285,8 @@ jQuery.fn.extend({
// Flatten any nested arrays
args = core_concat.apply( [], args );
var scripts, node, doc, fragment, hasScripts, first,
var first, node, hasScripts,
scripts, doc, fragment,
i = 0,
l = this.length,
set = this,
@ -436,7 +437,7 @@ function cloneCopyEvent( src, dest ) {
}
function fixCloneNodeIssues( src, dest ) {
var nodeName, data, e;
var nodeName, e, data;
// We do not need to do anything for non-Elements
if ( dest.nodeType !== 1 ) {
@ -559,7 +560,7 @@ function fixDefaultChecked( elem ) {
jQuery.extend({
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var clone, node, srcElements, i, destElements,
var destElements, node, clone, i, srcElements,
inPage = jQuery.contains( elem.ownerDocument, elem );
if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
@ -614,7 +615,8 @@ jQuery.extend({
},
buildFragment: function( elems, context, scripts, selection ) {
var contains, elem, j, tmp, tag, wrap, tbody,
var j, elem, contains,
tmp, tag, tbody, wrap,
l = elems.length,
// Ensure a safe fragment
@ -740,7 +742,7 @@ jQuery.extend({
},
cleanData: function( elems, /* internal */ acceptData ) {
var elem, id, type, data,
var elem, type, id, data,
i = 0,
internalKey = jQuery.expando,
cache = jQuery.cache,

View File

@ -1,6 +1,8 @@
jQuery.support = (function() {
var support, all, a, select, opt, input, fragment, eventName, isSupported, i,
var support, all, a,
input, select, fragment,
opt, eventName, isSupported, i,
div = document.createElement("div");
// Setup