From: jaubourg <j@ubourg.net>
Date: Wed, 19 Jan 2011 16:06:33 +0000 (+0100)
Subject: Revised how context is determined and removed unnecessary "parameter as variable... 
X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=bd6eb849eeb96298bfbd3de71a27cfcbe32bc772;p=jquery.git

Revised how context is determined and removed unnecessary "parameter as variable" trick.
---

diff --git a/src/ajax.js b/src/ajax.js
index 43bab7c..b903358 100644
--- a/src/ajax.js
+++ b/src/ajax.js
@@ -233,8 +233,7 @@ jQuery.extend({
 	},
 
 	// Main method
-	// (s is used internally)
-	ajax: function( url , options , s ) {
+	ajax: function( url , options ) {
 
 		// Handle varargs
 		if ( arguments.length === 1 ) {
@@ -248,19 +247,14 @@ jQuery.extend({
 		// Get the url if provided separately
 		options.url = url || options.url;
 
-		// Create the final options object
-		s = jQuery.extend( true , {} , jQuery.ajaxSettings , options );
-
-		// We force the original context
-		// (plain objects used as context get extended)
-		s.context = options.context;
-
-		var // jQuery lists
+		var // Create the final options object
+			s = jQuery.extend( true , {} , jQuery.ajaxSettings , options ),
+			// jQuery lists
 			jQuery_lastModified = jQuery.lastModified,
 			jQuery_etag = jQuery.etag,
 			// Callbacks contexts
-			callbackContext = s.context || s,
-			globalEventContext = s.context ? jQuery( s.context ) : jQuery.event,
+			callbackContext = options.context || s.context || s,
+			globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ),
 			// Deferreds
 			deferred = jQuery.Deferred(),
 			completeDeferred = jQuery._Deferred(),
@@ -337,6 +331,10 @@ jQuery.extend({
 				}
 			};
 
+		// We force the original context
+		// (plain objects used as context get extended)
+		s.context = options.context;
+
 		// Callback for when everything is done
 		// It is defined here because jslint complains if it is declared
 		// at the end of the function (which would be more logical and readable)