Value LogicalOp::evaluate() const { // This is not only an optimization, http://www.w3.org/TR/xpath // dictates that we must do short-circuit evaluation bool lhsBool = subexpression(0).evaluate().toBoolean(); if (lhsBool == shortCircuitOn()) return lhsBool; return subexpression(1).evaluate().toBoolean(); }
Value LogicalOp::evaluate() const { Value lhs(subExpr(0)->evaluate()); // This is not only an optimization, http://www.w3.org/TR/xpath // dictates that we must do short-circuit evaluation bool lhsBool = lhs.toBoolean(); if (lhsBool == shortCircuitOn()) return lhsBool; return subExpr(1)->evaluate().toBoolean(); }