From d79bf3517eda9b74883c68c255e82067449d3274 Mon Sep 17 00:00:00 2001 From: Oleg Date: Tue, 29 Jan 2013 04:04:58 +0400 Subject: [PATCH] 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 --- Gruntfile.js | 6 ++++++ src/ajax.js | 28 ++++++++++++++-------------- src/ajax/xhr.js | 6 +----- src/attributes.js | 2 +- src/callbacks.js | 8 ++++---- src/core.js | 10 +++++----- src/css.js | 6 +++--- src/data.js | 7 +++---- src/effects.js | 6 ++++-- src/event.js | 25 ++++++++++++------------- src/manipulation.js | 12 +++++++----- src/support.js | 4 +++- 12 files changed, 63 insertions(+), 57 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 5d72c24ad..4058871d5 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -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 } diff --git a/src/ajax.js b/src/ajax.js index a7508e972..04c7e0208 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -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, + var // Cross-domain detection vars + parts, + // Loop variable + i, // URL without anti-cache param cacheURL, - // Response headers + // Response headers as string responseHeadersString, - responseHeaders, // timeout handle timeoutTimer, - // Cross-domain detection vars - parts, + // To know if global events are to be dispatched fireGlobals, - // Loop variable - i, + + 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 diff --git a/src/ajax/xhr.js b/src/ajax/xhr.js index 2353392f6..3133dd439 100644 --- a/src/ajax/xhr.js +++ b/src/ajax/xhr.js @@ -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 diff --git a/src/attributes.js b/src/attributes.js index 7d4fd9492..6902244ed 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -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 diff --git a/src/callbacks.js b/src/callbacks.js index 32c22ce59..d94f0b329 100644 --- a/src/callbacks.js +++ b/src/callbacks.js @@ -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 diff --git a/src/core.js b/src/core.js index 4098f8fef..d37056d8d 100644 --- a/src/core.js +++ b/src/core.js @@ -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, diff --git a/src/css.js b/src/css.js index 57d61925e..72a9962d3 100644 --- a/src/css.js +++ b/src/css.js @@ -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 diff --git a/src/data.js b/src/data.js index 95aa0dc30..e471df4ea 100644 --- a/src/data.js +++ b/src/data.js @@ -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 ); }, diff --git a/src/effects.js b/src/effects.js index ce7017ef1..5cac7d2d8 100644 --- a/src/effects.js +++ b/src/effects.js @@ -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 = {}, diff --git a/src/event.js b/src/event.js index c10c684df..3d085d2ef 100644 --- a/src/event.js +++ b/src/event.js @@ -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; diff --git a/src/manipulation.js b/src/manipulation.js index b947df8e9..3e14c2b56 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -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, diff --git a/src/support.js b/src/support.js index 09f894c70..6e755b55d 100644 --- a/src/support.js +++ b/src/support.js @@ -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 -- 2.39.5