Permalink
Browse files
fix(orderBy): do not try to call valueOf/toString on `null`
8bfeddb added changes to make relational operator work as it normally would in JS --- unfortunately, this broke due to my failure to account for typeof null being "object". This refactoring attempts to convert object values to primitives still, in a fashion similar to the SortCompare (and subsequently the ToString() algorithm) from ES, in order to account for `null` and also simplify code to some degree. BREAKING CHANGE: Previously, if either value being compared in the orderBy comparator was null or undefined, the order would not change. Now, this order behaves more like Array.prototype.sort, which by default pushes `null` behind objects, due to `n` occurring after `[` (the first characters of their stringified forms) in ASCII / Unicode. If `toString` is customized, or does not exist, the behaviour is undefined. Closes #10385 Closes #10386
- Loading branch information
Showing
with
59 additions
and 19 deletions.
- +27 −19 src/ng/filter/orderBy.js
- +32 −0 test/ng/filter/orderBySpec.js