var A = key(a), B = key(b);
return (A < B ? -1 : (A > B ? 1 : 0)) * [1,-1][+!!reverse];
//return ((A < B) ? -1 :
// (A > B) ? +1 : 0)) * [-1,1][+!!reverse];
var A = key(a), B = key(b);
return (A < B ? -1 : (A > B ? 1 : 0)) * [1,-1][+!!reverse];
//return ((A < B) ? -1 :
// (A > B) ? +1 : 0)) * [-1,1][+!!reverse];