Skip to content

Commit 8968dd2

Browse files
committed
Merge branch 'briandipalma-master'
2 parents a5bf8d7 + a51e636 commit 8968dd2

File tree

4 files changed

+38
-18
lines changed

4 files changed

+38
-18
lines changed

__tests__/IndexedSequence.ts

+12
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,16 @@ describe('IndexedSequence', () => {
2424
expect(operated.first()).toEqual('B');
2525
});
2626

27+
it('reverses correctly', () => {
28+
var seq = Immutable.Sequence.from(['A', 'B', 'C', 'D', 'E']);
29+
30+
// This is what we expect for IndexedSequences
31+
var operated = seq.reverse();
32+
expect(operated.get(0)).toEqual('E');
33+
expect(operated.get(1)).toEqual('D');
34+
expect(operated.get(4)).toEqual('A');
35+
36+
expect(operated.first()).toEqual('E');
37+
expect(operated.last()).toEqual('A');
38+
});
2739
});

dist/Immutable.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ var $Sequence = Sequence;
373373
return reversed.reduce.apply(reversed, arguments);
374374
},
375375
reverse: function() {
376-
return reverseFactory(this);
376+
return reverseFactory(this, true);
377377
},
378378
slice: function(begin, end) {
379379
if (wholeSlice(begin, end, this.length)) {
@@ -652,6 +652,9 @@ var $IndexedSequence = IndexedSequence;
652652
lastIndexOf: function(searchValue) {
653653
return this.toKeyedSeq().reverse().indexOf(searchValue);
654654
},
655+
reverse: function() {
656+
return reverseFactory(this, false);
657+
},
655658
splice: function(index, removeNum) {
656659
var numArgs = arguments.length;
657660
removeNum = Math.max(removeNum | 0, 0);
@@ -1028,7 +1031,7 @@ var KeyedIndexedSequence = function KeyedIndexedSequence(indexedSeq) {
10281031
},
10291032
reverse: function() {
10301033
var $__0 = this;
1031-
var reversedSequence = reverseFactory(this);
1034+
var reversedSequence = reverseFactory(this, true);
10321035
reversedSequence.valueSeq = (function() {
10331036
return $__0._seq.reverse();
10341037
});
@@ -1170,7 +1173,7 @@ function mapFactory(sequence, mapper, context) {
11701173
};
11711174
return mappedSequence;
11721175
}
1173-
function reverseFactory(sequence) {
1176+
function reverseFactory(sequence, useKeys) {
11741177
var reversedSequence = sequence.__makeSequence();
11751178
reversedSequence.length = sequence.length;
11761179
reversedSequence.reverse = (function() {
@@ -1184,7 +1187,7 @@ function reverseFactory(sequence) {
11841187
return flipSequence;
11851188
};
11861189
reversedSequence.get = (function(key, notSetValue) {
1187-
return sequence.get(key, notSetValue);
1190+
return sequence.get(useKeys ? key : -1 - key, notSetValue);
11881191
});
11891192
reversedSequence.has = (function(key) {
11901193
return sequence.has(key);

0 commit comments

Comments
 (0)