// nodeset converts to 1.0 (non-empty) or 0.0 (empty)
// but since this is a rare and odd comparison we don't bother now...
if (left instanceof XObject && right instanceof XObject) {
switch (op) {
case OpCodes.OP_NOTEQUALS:
return new XBoolean(((XObject) left).notEquals((XObject) right));
case OpCodes.OP_EQUALS:
return new XBoolean(((XObject) left).equals((XObject) right));
case OpCodes.OP_LTE:
return new XBoolean(((XObject) left).lessThanOrEqual((XObject) right));
case OpCodes.OP_LT:
return new XBoolean(((XObject) left).lessThan((XObject) right));
case OpCodes.OP_GTE:
return new XBoolean(((XObject) left).greaterThanOrEqual((XObject) right));
case OpCodes.OP_GT:
return new XBoolean(((XObject) left).greaterThan((XObject) right));
default :
return null; // Won't happen
}
}