8000 Merge branch 'master' of github.com:briandipalma/immutable-js into br… · robertknight/immutable-js@302b69a · GitHub
[go: up one dir, main page]

Skip to content

Commit 302b69a

Browse files
committed
Merge branch 'master' of github.com:briandipalma/immutable-js into briandipalma-master
2 parents a5bf8d7 + f25dcf5 commit 302b69a

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

__tests__/IndexedSequence.ts

Lines changed: 12 additions & 0 deletions
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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,6 +1171,7 @@ function mapFactory(sequence, mapper, context) {
11711171
return mappedSequence;
11721172
}
11731173
function reverseFactory(sequence) {
1174+
var isIndexedSequence = (sequence instanceof IndexedSequence);
11741175
var reversedSequence = sequence.__makeSequence();
11751176
reversedSequence.length = sequence.length;
11761177
reversedSequence.reverse = (function() {
@@ -1183,9 +1184,16 @@ function reverseFactory(sequence) {
11831184
});
11841185
return flipSequence;
11851186
};
1186-
reversedSequence.get = (function(key, notSetValue) {
1187-
return sequence.get(key, notSetValue);
1188-
});
1187+
if (isIndexedSequence) {
1188+
var reverseIndexOffset = sequence.length - 1;
1189+
reversedSequence.get = (function(key, notSetValue) {
1190+
return sequence.get(reverseIndexOffset - key, notSetValue);
1191+
});
1192+
} else {
1193+
reversedSequence.get = (function(key, notSetValue) {
1194+
return sequence.get(key, notSetValue);
1195+
});
1196+
}
11891197
reversedSequence.has = (function(key) {
11901198
return sequence.has(key);
11911199
});

0 commit comments

Comments
 (0)
0