Fix InDesign bug with _.sortBy.

Former-commit-id: 3ed2c5fcb02885a9b3563cf9081f6e2af8826c6d
This commit is contained in:
John-David Dalton
2013-08-08 22:23:17 -07:00
parent 8a524dd98f
commit 25c91b398a
2 changed files with 19 additions and 1 deletions

View File

@@ -256,7 +256,11 @@
return -1;
}
}
return ai < bi ? -1 : 1;
// The JS engine embedded in Adobe applications like InDesign has a buggy
// `Array#sort` implementation that causes it, under certain circumstances,
// to return the same value for `a` and `b`.
// See https://github.com/jashkenas/underscore/pull/1247
return ai < bi ? -1 : (ai > bi ? 1 : 0);
}
/**

View File

@@ -3151,6 +3151,20 @@
QUnit.module('lodash.sortBy');
(function() {
test('should sort in ascending order', function() {
var actual = _.pluck(_.sortBy([
{ 'num': 991 },
{ 'num': 212 },
{ 'num': 11 },
{ 'num': 16 },
{ 'num': 74 },
{ 'num': 0 },
{ 'num': 1515 }
], 'num'), 'num');
deepEqual(actual, [0, 11, 16, 74, 212, 991, 1515]);
});
test('should perform a stable sort (test in IE > 8, Opera, and V8)', function() {
function Pair(x, y) {
this.x = x;