mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Sizzle: update to 2.1.1
This commit is contained in:
parent
31b63fc236
commit
7602dc708d
@ -57,7 +57,7 @@ module.exports = function( grunt ) {
|
||||
|
||||
"qunit/qunit.js": "qunitjs/qunit/qunit.js",
|
||||
"qunit/qunit.css": "qunitjs/qunit/qunit.css",
|
||||
"qunit/MIT-LICENSE.txt": "qunitjs/MIT-LICENSE.txt",
|
||||
"qunit/LICENSE.txt": "qunitjs/LICENSE.txt",
|
||||
|
||||
"requirejs/require.js": "requirejs/require.js",
|
||||
|
||||
|
@ -1,5 +1,14 @@
|
||||
Copyright 2013 jQuery Foundation and other contributors
|
||||
http://jquery.com/
|
||||
Copyright 2006, 2014 jQuery Foundation and other contributors,
|
||||
https://jquery.org/
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
available at https://github.com/jquery/qunit
|
||||
|
||||
The following license applies to all parts of this software except as
|
||||
documented below:
|
||||
|
||||
====
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -19,3 +28,10 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
====
|
||||
|
||||
All files located in the node_modules and external directories are
|
||||
externally maintained libraries used by this software which have their
|
||||
own licenses; we recommend you read them, as their terms may differ from
|
||||
the terms above.
|
37
external/sizzle/LICENSE.txt
vendored
Normal file
37
external/sizzle/LICENSE.txt
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
Copyright 2008, 2014 jQuery Foundation and other contributors,
|
||||
https://jquery.org/
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
available at https://github.com/jquery/sizzle
|
||||
|
||||
The following license applies to all parts of this software except as
|
||||
documented below:
|
||||
|
||||
====
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
====
|
||||
|
||||
All files located in the node_modules and external directories are
|
||||
externally maintained libraries used by this software which have their
|
||||
own licenses; we recommend you read them, as their terms may differ from
|
||||
the terms above.
|
110
external/sizzle/dist/sizzle.js
vendored
110
external/sizzle/dist/sizzle.js
vendored
@ -1,12 +1,12 @@
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.0.0
|
||||
* Sizzle CSS Selector Engine v2.1.1
|
||||
* http://sizzlejs.com/
|
||||
*
|
||||
* Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
|
||||
* Released under the MIT license
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Date: 2014-07-01
|
||||
* Date: 2014-12-15
|
||||
*/
|
||||
(function( window ) {
|
||||
|
||||
@ -33,7 +33,7 @@ var i,
|
||||
contains,
|
||||
|
||||
// Instance-specific data
|
||||
expando = "sizzle" + -(new Date()),
|
||||
expando = "sizzle" + 1 * new Date(),
|
||||
preferredDoc = window.document,
|
||||
dirruns = 0,
|
||||
done = 0,
|
||||
@ -48,7 +48,6 @@ var i,
|
||||
},
|
||||
|
||||
// General-purpose constants
|
||||
strundefined = typeof undefined,
|
||||
MAX_NEGATIVE = 1 << 31,
|
||||
|
||||
// Instance methods
|
||||
@ -58,12 +57,13 @@ var i,
|
||||
push_native = arr.push,
|
||||
push = arr.push,
|
||||
slice = arr.slice,
|
||||
// Use a stripped-down indexOf if we can't use a native one
|
||||
indexOf = arr.indexOf || function( elem ) {
|
||||
// Use a stripped-down indexOf as it's faster than native
|
||||
// http://jsperf.com/thor-indexof-vs-for/5
|
||||
indexOf = function( list, elem ) {
|
||||
var i = 0,
|
||||
len = this.length;
|
||||
len = list.length;
|
||||
for ( ; i < len; i++ ) {
|
||||
if ( this[i] === elem ) {
|
||||
if ( list[i] === elem ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@ -99,6 +99,7 @@ var i,
|
||||
")\\)|)",
|
||||
|
||||
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
|
||||
rwhitespace = new RegExp( whitespace + "+", "g" ),
|
||||
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
|
||||
|
||||
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
||||
@ -150,6 +151,14 @@ var i,
|
||||
String.fromCharCode( high + 0x10000 ) :
|
||||
// Supplemental Plane codepoint (surrogate pair)
|
||||
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
|
||||
},
|
||||
|
||||
// Used for iframes
|
||||
// See setDocument()
|
||||
// Removing the function wrapper causes a "Permission Denied"
|
||||
// error in IE
|
||||
unloadHandler = function() {
|
||||
setDocument();
|
||||
};
|
||||
|
||||
// Optimize for push.apply( _, NodeList )
|
||||
@ -197,14 +206,14 @@ function Sizzle( selector, context, results, seed ) {
|
||||
return results;
|
||||
}
|
||||
|
||||
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
|
||||
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 && nodeType !== 11 ) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if ( documentIsHTML && !seed ) {
|
||||
|
||||
// Shortcuts
|
||||
if ( (match = rquickExpr.exec( selector )) ) {
|
||||
// Try to shortcut find operations when possible (e.g., not under DocumentFragment)
|
||||
if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
|
||||
// Speed-up: Sizzle("#ID")
|
||||
if ( (m = match[1]) ) {
|
||||
if ( nodeType === 9 ) {
|
||||
@ -246,7 +255,7 @@ function Sizzle( selector, context, results, seed ) {
|
||||
if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
|
||||
nid = old = expando;
|
||||
newContext = context;
|
||||
newSelector = nodeType === 9 && selector;
|
||||
newSelector = nodeType !== 1 && selector;
|
||||
|
||||
// qSA works strangely on Element-rooted queries
|
||||
// We can work around this by specifying an extra ID on the root
|
||||
@ -433,7 +442,7 @@ function createPositionalPseudo( fn ) {
|
||||
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
|
||||
*/
|
||||
function testContext( context ) {
|
||||
return context && typeof context.getElementsByTagName !== strundefined && context;
|
||||
return context && typeof context.getElementsByTagName !== "undefined" && context;
|
||||
}
|
||||
|
||||
// Expose support vars for convenience
|
||||
@ -457,9 +466,8 @@ isXML = Sizzle.isXML = function( elem ) {
|
||||
* @returns {Object} Returns the current document
|
||||
*/
|
||||
setDocument = Sizzle.setDocument = function( node ) {
|
||||
var hasCompare,
|
||||
doc = node ? node.ownerDocument || node : preferredDoc,
|
||||
parent = doc.defaultView;
|
||||
var hasCompare, parent,
|
||||
doc = node ? node.ownerDocument || node : preferredDoc;
|
||||
|
||||
// If no document and documentElement is available, return
|
||||
if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
|
||||
@ -469,9 +477,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
// Set our document
|
||||
document = doc;
|
||||
docElem = doc.documentElement;
|
||||
|
||||
// Support tests
|
||||
documentIsHTML = !isXML( doc );
|
||||
parent = doc.defaultView;
|
||||
|
||||
// Support: IE>8
|
||||
// If iframe document is assigned to "document" variable and if iframe has been reloaded,
|
||||
@ -480,21 +486,22 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
if ( parent && parent !== parent.top ) {
|
||||
// IE11 does not have attachEvent, so all must suffer
|
||||
if ( parent.addEventListener ) {
|
||||
parent.addEventListener( "unload", function() {
|
||||
setDocument();
|
||||
}, false );
|
||||
parent.addEventListener( "unload", unloadHandler, false );
|
||||
} else if ( parent.attachEvent ) {
|
||||
parent.attachEvent( "onunload", function() {
|
||||
setDocument();
|
||||
});
|
||||
parent.attachEvent( "onunload", unloadHandler );
|
||||
}
|
||||
}
|
||||
|
||||
/* Support tests
|
||||
---------------------------------------------------------------------- */
|
||||
documentIsHTML = !isXML( doc );
|
||||
|
||||
/* Attributes
|
||||
---------------------------------------------------------------------- */
|
||||
|
||||
// Support: IE<8
|
||||
// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
|
||||
// Verify that getAttribute really returns attributes and not properties
|
||||
// (excepting IE8 booleans)
|
||||
support.attributes = assert(function( div ) {
|
||||
div.className = "i";
|
||||
return !div.getAttribute("className");
|
||||
@ -524,7 +531,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
// ID find and filter
|
||||
if ( support.getById ) {
|
||||
Expr.find["ID"] = function( id, context ) {
|
||||
if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
|
||||
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
|
||||
var m = context.getElementById( id );
|
||||
// Check parentNode to catch when Blackberry 4.6 returns
|
||||
// nodes that are no longer in the document #6963
|
||||
@ -545,7 +552,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
Expr.filter["ID"] = function( id ) {
|
||||
var attrId = id.replace( runescape, funescape );
|
||||
return function( elem ) {
|
||||
var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
|
||||
var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
|
||||
return node && node.value === attrId;
|
||||
};
|
||||
};
|
||||
@ -554,14 +561,20 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
// Tag
|
||||
Expr.find["TAG"] = support.getElementsByTagName ?
|
||||
function( tag, context ) {
|
||||
if ( typeof context.getElementsByTagName !== strundefined ) {
|
||||
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
||||
return context.getElementsByTagName( tag );
|
||||
|
||||
// DocumentFragment nodes don't have gEBTN
|
||||
} else if ( support.qsa ) {
|
||||
return context.querySelectorAll( tag );
|
||||
}
|
||||
} :
|
||||
|
||||
function( tag, context ) {
|
||||
var elem,
|
||||
tmp = [],
|
||||
i = 0,
|
||||
// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
|
||||
results = context.getElementsByTagName( tag );
|
||||
|
||||
// Filter out possible comments
|
||||
@ -608,7 +621,9 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
// setting a boolean content attribute,
|
||||
// since its presence should be enough
|
||||
// http://bugs.jquery.com/ticket/12359
|
||||
div.innerHTML = "<select msallowcapture=''><option selected=''></option></select>";
|
||||
docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
|
||||
"<select id='" + expando + "-\f]' msallowcapture=''>" +
|
||||
"<option selected=''></option></select>";
|
||||
|
||||
// Support: IE8, Opera 11-12.16
|
||||
// Nothing should be selected when empty strings follow ^= or $= or *=
|
||||
@ -624,12 +639,24 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
|
||||
}
|
||||
|
||||
// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
|
||||
if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
|
||||
rbuggyQSA.push("~=");
|
||||
}
|
||||
|
||||
// Webkit/Opera - :checked should return selected option elements
|
||||
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
|
||||
// IE8 throws error here and will not see later tests
|
||||
if ( !div.querySelectorAll(":checked").length ) {
|
||||
rbuggyQSA.push(":checked");
|
||||
}
|
||||
|
||||
// Support: Safari 8+, iOS 8+
|
||||
// https://bugs.webkit.org/show_bug.cgi?id=136851
|
||||
// In-page `selector#id sibing-combinator selector` fails
|
||||
if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
|
||||
rbuggyQSA.push(".#.+[+~]");
|
||||
}
|
||||
});
|
||||
|
||||
assert(function( div ) {
|
||||
@ -746,7 +773,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
|
||||
// Maintain original order
|
||||
return sortInput ?
|
||||
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
|
||||
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
||||
0;
|
||||
}
|
||||
|
||||
@ -773,7 +800,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
||||
aup ? -1 :
|
||||
bup ? 1 :
|
||||
sortInput ?
|
||||
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
|
||||
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
||||
0;
|
||||
|
||||
// If the nodes are siblings, we can do a quick check
|
||||
@ -836,7 +863,7 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
||||
elem.document && elem.document.nodeType !== 11 ) {
|
||||
return ret;
|
||||
}
|
||||
} catch(e) {}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return Sizzle( expr, document, null, [ elem ] ).length > 0;
|
||||
@ -1055,7 +1082,7 @@ Expr = Sizzle.selectors = {
|
||||
return pattern ||
|
||||
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
|
||||
classCache( className, function( elem ) {
|
||||
return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
|
||||
return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
|
||||
});
|
||||
},
|
||||
|
||||
@ -1077,7 +1104,7 @@ Expr = Sizzle.selectors = {
|
||||
operator === "^=" ? check && result.indexOf( check ) === 0 :
|
||||
operator === "*=" ? check && result.indexOf( check ) > -1 :
|
||||
operator === "$=" ? check && result.slice( -check.length ) === check :
|
||||
operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
|
||||
operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
|
||||
operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
|
||||
false;
|
||||
};
|
||||
@ -1197,7 +1224,7 @@ Expr = Sizzle.selectors = {
|
||||
matched = fn( seed, argument ),
|
||||
i = matched.length;
|
||||
while ( i-- ) {
|
||||
idx = indexOf.call( seed, matched[i] );
|
||||
idx = indexOf( seed, matched[i] );
|
||||
seed[ idx ] = !( matches[ idx ] = matched[i] );
|
||||
}
|
||||
}) :
|
||||
@ -1236,6 +1263,8 @@ Expr = Sizzle.selectors = {
|
||||
function( elem, context, xml ) {
|
||||
input[0] = elem;
|
||||
matcher( input, null, xml, results );
|
||||
// Don't keep the element (issue #299)
|
||||
input[0] = null;
|
||||
return !results.pop();
|
||||
};
|
||||
}),
|
||||
@ -1669,7 +1698,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
|
||||
i = matcherOut.length;
|
||||
while ( i-- ) {
|
||||
if ( (elem = matcherOut[i]) &&
|
||||
(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
|
||||
(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
|
||||
|
||||
seed[temp] = !(results[temp] = elem);
|
||||
}
|
||||
@ -1704,13 +1733,16 @@ function matcherFromTokens( tokens ) {
|
||||
return elem === checkContext;
|
||||
}, implicitRelative, true ),
|
||||
matchAnyContext = addCombinator( function( elem ) {
|
||||
return indexOf.call( checkContext, elem ) > -1;
|
||||
return indexOf( checkContext, elem ) > -1;
|
||||
}, implicitRelative, true ),
|
||||
matchers = [ function( elem, context, xml ) {
|
||||
return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
|
||||
var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
|
||||
(checkContext = context).nodeType ?
|
||||
matchContext( elem, context, xml ) :
|
||||
matchAnyContext( elem, context, xml ) );
|
||||
// Avoid hanging onto element (issue #299)
|
||||
checkContext = null;
|
||||
return ret;
|
||||
} ];
|
||||
|
||||
for ( ; i < len; i++ ) {
|
||||
|
4
external/sizzle/dist/sizzle.min.js
vendored
4
external/sizzle/dist/sizzle.min.js
vendored
File diff suppressed because one or more lines are too long
2
external/sizzle/dist/sizzle.min.map
vendored
2
external/sizzle/dist/sizzle.min.map
vendored
File diff suppressed because one or more lines are too long
@ -48,7 +48,7 @@
|
||||
"qunitjs": "1.16.0",
|
||||
"requirejs": "2.1.14",
|
||||
"sinon": "1.10.3",
|
||||
"sizzle": "2.0.0",
|
||||
"sizzle": "2.1.1",
|
||||
"testswarm": "1.1.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
Loading…
Reference in New Issue
Block a user