filtered = applyWhereExpression(context, null);
filtered = applyWhereExpression(null);
	public Sequence eval(Sequence contextSequence, Item contextItem)		throws XPathException {		context.pushLocalContext(false);		Variable var = new Variable(QName.parse(context, varName));		context.declareVariable(var);		Sequence val = inputSequence.eval(null, null);		if(sequenceType != null) {			sequenceType.checkType(val.getItemType());			sequenceType.checkCardinality(val);		}		var.setValue(val);		Sequence filtered = null;		if (whereExpr != null) {			filtered = applyWhereExpression(context, null);			if(whereExpr.returnsType() == Type.BOOLEAN) {				if(!filtered.effectiveBooleanValue())					return Sequence.EMPTY_SEQUENCE;			} else if (filtered.getLength() == 0)				return Sequence.EMPTY_SEQUENCE;		}		Sequence returnSeq = null;		if (orderSpecs == null)			returnSeq = returnExpr.eval(filtered, null);		else {			if (filtered != null)				val = filtered;			OrderedValueSequence ordered =				new OrderedValueSequence(orderSpecs, val.getLength());			ordered.addAll(val);			returnSeq = returnExpr.eval(ordered, null);		}		context.popLocalContext();		return returnSeq;	}