getPositionalUntil = function(getter, d, selector) { var result = [], idx, len = d.length, siblings, iterator; if (selector) { var is = Fizzle.is(selector); iterator = function(sibling) { var isMatch = is.match(sibling); if (isMatch) { result.push(sibling); } return isMatch; }; } for (idx = 0; idx < len; idx++) { siblings = getter(d[idx]); if (selector) { _.each(siblings, iterator); } else { result.push.apply(result, siblings); } } return result; },
getPositional = function(getter, d, selector) { var result = [], idx, len = d.length, sibling; for (idx = 0; idx < len; idx++) { sibling = getter(d[idx]); if (sibling && (!selector || Fizzle.is(selector).match(sibling))) { result.push(sibling); } } return result; },
_crawlUpNode = function(node, context, stopSelector) { var result = [], parent = node; while ((parent = _getNodeParent(parent)) && !nodeType.doc(parent) && (!context || parent !== context) && (!stopSelector || !Fizzle.is(stopSelector).match(parent))) { if (nodeType.elem(parent)) { result.push(parent); } } return result; },
filter = selector ? function(sibling) { return Fizzle.is(selector).match(sibling); } : exists;