(selector, context, results, seed)
| 1423 | toString = Object.prototype.toString; |
| 1424 | |
| 1425 | var Sizzle = function(selector, context, results, seed) { |
| 1426 | results = results || []; |
| 1427 | context = context || document; |
| 1428 | |
| 1429 | if ( context.nodeType !== 1 && context.nodeType !== 9 ) |
| 1430 | return []; |
| 1431 | |
| 1432 | if ( !selector || typeof selector !== "string" ) { |
| 1433 | return results; |
| 1434 | } |
| 1435 | |
| 1436 | var parts = [], m, set, checkSet, check, mode, extra, prune = true; |
| 1437 | |
| 1438 | // Reset the position of the chunker regexp (start from head) |
| 1439 | chunker.lastIndex = 0; |
| 1440 | |
| 1441 | while ( (m = chunker.exec(selector)) !== null ) { |
| 1442 | parts.push( m[1] ); |
| 1443 | |
| 1444 | if ( m[2] ) { |
| 1445 | extra = RegExp.rightContext; |
| 1446 | break; |
| 1447 | } |
| 1448 | } |
| 1449 | |
| 1450 | if ( parts.length > 1 && origPOS.exec( selector ) ) { |
| 1451 | if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { |
| 1452 | set = posProcess( parts[0] + parts[1], context ); |
| 1453 | } else { |
| 1454 | set = Expr.relative[ parts[0] ] ? |
| 1455 | [ context ] : |
| 1456 | Sizzle( parts.shift(), context ); |
| 1457 | |
| 1458 | while ( parts.length ) { |
| 1459 | selector = parts.shift(); |
| 1460 | |
| 1461 | if ( Expr.relative[ selector ] ) |
| 1462 | selector += parts.shift(); |
| 1463 | |
| 1464 | set = posProcess( selector, set ); |
| 1465 | } |
| 1466 | } |
| 1467 | } else { |
| 1468 | var ret = seed ? |
| 1469 | { expr: parts.pop(), set: makeArray(seed) } : |
| 1470 | Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) ); |
| 1471 | set = Sizzle.filter( ret.expr, ret.set ); |
| 1472 | |
| 1473 | if ( parts.length > 0 ) { |
| 1474 | checkSet = makeArray(set); |
| 1475 | } else { |
| 1476 | prune = false; |
| 1477 | } |
| 1478 | |
| 1479 | while ( parts.length ) { |
| 1480 | var cur = parts.pop(), pop = cur; |
| 1481 | |
| 1482 | if ( !Expr.relative[ cur ] ) { |
no test coverage detected