When upgrading to 3.0.0 I had trouble with a code block very similar to ``` javascript _([{a: 1}, {a: 2}, {a: 3}, null]) .map(function(v) { return v && v.a }) .compact() .reverse() .value() ``` resulting in `[1, 2, 3, null]`, where I had expected `[3, 2, 1]`. Comparing this example with the following you'll see that while the values can change the order and index will remain the same. ``` javascript // returns [1, 2, 3, null], expected [null, 3, 2, 1] _([1, 2, 3, null]).map(_.identity).reverse().value() // returns [1, 2, 3, null], expected [3, 2, 1] _([1, 2, 3, null]).map(_.identity).compact().reverse().value() ```