I'm not sure what should be the correct behavior... the native `Array#sort` uses string comparison by default:

```js
[1, 2, 3, 25, 10].sort();
// > [1, 10, 2, 25, 3]
[1, 2, 3, 25, 10].sort(function(a, b){
  return a - b;
});
// > [1, 2, 3, 10, 25]
```

but I think the current implementation is actually the correct (since `1 < 3 && "a" < "c"`)