Commit 33de9c55 authored by jaubourg's avatar jaubourg

Makes prefilters and transport inspection more robust and uses better variable...

Makes prefilters and transport inspection more robust and uses better variable names for readability.
parent 02ca4557
......@@ -76,38 +76,42 @@ function addToPrefiltersOrTransports( structure ) {
//Base inspection function for prefilters and transports
function inspectPrefiltersOrTransports( structure, options, originalOptions,
dataType /* internal */, tested /* internal */ ) {
dataType /* internal */, inspected /* internal */ ) {
dataType = dataType || options.dataTypes[ 0 ];
tested = tested || {};
inspected = inspected || {};
tested[ dataType ] = true;
inspected[ dataType ] = true;
var list = structure[ dataType ],
i = 0,
length = list ? list.length : 0,
executeOnly = structure === prefilters,
selected;
for(; i < length && !( executeOnly ? typeof selected === "string" && !tested[ selected ] : selected ); i++ ) {
selected = list[ i ]( options, originalOptions );
executeOnly = ( structure === prefilters ),
selection;
for(; i < length && ( executeOnly || !selection ); i++ ) {
selection = list[ i ]( options, originalOptions );
// If we got redirected to another dataType
// we try there if not done already
if ( typeof selection === "string" ) {
if ( inspected[ selection ] ) {
selection = undefined;
} else {
options.dataTypes.unshift( selection );
selection = inspectPrefiltersOrTransports(
structure, options, originalOptions, selection, inspected );
}
}
}
// If we got redirected to another dataType
// we try there
if ( typeof selected === "string" && !tested[ selected ] ) {
options.dataTypes.unshift( selected );
selected = inspectPrefiltersOrTransports(
structure, options, originalOptions, selected, tested );
// If we're only executing or nothing was selected
// we try the catchall dataType if not done already
} else if ( ( executeOnly || !selected ) && !tested[ "*" ] ) {
selected = inspectPrefiltersOrTransports(
structure, options, originalOptions, "*" ,tested );
if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
selection = inspectPrefiltersOrTransports(
structure, options, originalOptions, "*", inspected );
}
// unnecessary when only executing (prefilters)
// but it'll be ignored by the caller in that case
return selected;
return selection;
}
jQuery.fn.extend({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment