8000 cache-through correctly · spmjs/immutable-js@c83ef05 · GitHub
[go: up one dir, main page]

Skip to content

Commit c83ef05

Browse files
committed
cache-through correctly
1 parent a12678f commit c83ef05

File tree

3 files changed

+61
-81
lines changed

3 files changed

+61
-81
lines changed

dist/immutable.js

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,11 +1170,6 @@ var ToIndexedSequence = function ToIndexedSequence(iter) {
11701170
contains: function(value) {
11711171
return this._iter.contains(value);
11721172
},
1173-
cacheResult: function() {
1174-
this._iter.cacheResult();
1175-
this.size = this._iter.size;
1176-
return this;
1177-
},
11781173
__iterate: function(fn, reverse) {
11791174
var $__0 = this;
11801175
var iterations = 0;
@@ -1226,11 +1221,6 @@ var ToKeyedSequence = function ToKeyedSequence(indexed, useKeys) {
12261221
}
12271222
return mappedSequence;
12281223
},
1229-
cacheResult: function() {
1230-
this._iter.cacheResult();
1231-
this.size = this._iter.size;
1232-
return this;
1233-
},
12341224
__iterate: function(fn, reverse) {
12351225
var $__0 = this;
12361226
var ii;
@@ -1260,11 +1250,6 @@ var ToSetSequence = function ToSetSequence(iter) {
12601250
has: function(key) {
12611251
return this._iter.contains(key);
12621252
},
1263-
cacheResult: function() {
1264-
this._iter.cacheResult();
1265-
this.size = this._iter.size;
1266-
return this;
1267-
},
12681253
__iterate: function(fn, reverse) {
12691254
var $__0 = this;
12701255
return this._iter.__iterate((function(v) {
@@ -1287,11 +1272,6 @@ var FromEntriesSequence = function FromEntriesSequence(entries) {
12871272
entrySeq: function() {
12881273
return this._iter.toSeq();
12891274
},
1290-
cacheResult: function() {
1291-
this._iter.cacheResult();
1292-
this.size = this._iter.size;
1293-
return this;
1294-
},
12951275
__iterate: function(fn, reverse) {
12961276
var $__0 = this;
12971277
return this._iter.__iterate((function(entry) {
@@ -1318,8 +1298,10 @@ var FromEntriesSequence = function FromEntriesSequence(entries) {
13181298
}));
13191299
}
13201300
}, {}, LazyKeyedSequence);
1301+
ToIndexedSequence.prototype.cacheResult = ToKeyedSequence.prototype.cacheResult = ToSetSequence.prototype.cacheResult = FromEntriesSequence.prototype.cacheResult = cacheResultThrough;
13211302
function flipFactory(iterable) {
13221303
var flipSequence = makeSequence(iterable);
1304+
flipSequence._iter = iterable;
13231305
flipSequence.size = iterable.size;
13241306
flipSequence.flip = (function() {
13251307
return iterable;
@@ -1337,6 +1319,7 @@ function flipFactory(iterable) {
13371319
flipSequence.contains = (function(key) {
13381320
return iterable.has(key);
13391321
});
1322+
flipSequence.cacheResult = cacheResultThrough;
13401323
flipSequence.__iterateUncached = function(fn, reverse) {
13411324
var $__0 = this;
13421325
return iterable.__iterate((function(v, k) {
@@ -1392,6 +1375,7 @@ function mapFactory(iterable, mapper, context) {
13921375
}
13931376
function reverseFactory(iterable, useKeys) {
13941377
var reversedSequence = makeSequence(iterable);
1378+
reversedSequence._iter = iterable;
13951379
reversedSequence.size = iterable.size;
13961380
reversedSequence.reverse = (function() {
13971381
return iterable;
@@ -1414,11 +1398,7 @@ function reverseFactory(iterable, useKeys) {
14141398
reversedSequence.contains = (function(value) {
14151399
return iterable.contains(value);
14161400
});
1417-
reversedSequence.cacheResult = function() {
1418-
iterable.cacheResult();
1419-
this.size = iterable.size;
1420-
return this;
1421-
};
1401+
reversedSequence.cacheResult = cacheResultThrough;
14221402
reversedSequence.__iterate = function(fn, reverse) {
14231403
var $__0 = this;
14241404
return iterable.__iterate((function(v, k) {
@@ -1779,6 +1759,15 @@ function resolveSize(iter) {
17791759
function makeSequence(iterable) {
17801760
return Object.create((isKeyed(iterable) ? LazyKeyedSequence : isIndexed(iterable) ? LazyIndexedSequence : LazySetSequence).prototype);
17811761
}
1762+
function cacheResultThrough() {
1763+
if (this._iter.cacheResult) {
1764+
this._iter.cacheResult();
1765+
this.size = this._iter.size;
1766+
return this;
1767+
} else {
1768+
return LazySequence.prototype.cacheResult.call(this);
1769+
}
1770+
}
17821771
var Collection = function Collection() {
17831772
throw TypeError('Abstract');
17841773
};

0 commit comments

Comments
 (0)
0