Skip to content

Commit 9a28fa8

Browse files
committed
refactor(change_detection): make RecordRange responsible for removing iself
1 parent 2b53a2f commit 9a28fa8

File tree

2 files changed

+40
-38
lines changed

2 files changed

+40
-38
lines changed

modules/change_detection/src/record_range.js

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ export class RecordRange {
116116

117117
addRange(child:RecordRange) {
118118
var lastRecord = this.tailRecord.prev;
119-
var prevEnabledRecord = this._prevEnabled(this.tailRecord);
120-
var nextEnabledRerord = this._nextEnabled(this.tailRecord);
119+
var prevEnabledRecord = RecordRange._prevEnabled(this.tailRecord);
120+
var nextEnabledRerord = RecordRange._nextEnabled(this.tailRecord);
121121

122122
var firstEnabledChildRecord = child.findFirstEnabledRecord();
123123
var lastEnabledChildRecord = child.findLastEnabledRecord();
@@ -134,12 +134,12 @@ export class RecordRange {
134134
}
135135
}
136136

137-
removeRange(child:RecordRange) {
138-
var firstEnabledChildRecord = child.findFirstEnabledRecord();
139-
var lastEnabledChildRecord = child.findLastEnabledRecord();
137+
remove() {
138+
var firstEnabledChildRecord = this.findFirstEnabledRecord();
139+
var lastEnabledChildRecord = this.findLastEnabledRecord();
140140

141-
var next = child.tailRecord.next;
142-
var prev = child.headRecord.prev;
141+
var next = this.tailRecord.next;
142+
var prev = this.headRecord.prev;
143143

144144
_link(prev, next);
145145

@@ -164,8 +164,8 @@ export class RecordRange {
164164
enableRecord(record:Record) {
165165
if (!record.disabled) return;
166166

167-
var prevEnabled = this._prevEnabled(record);
168-
var nextEnabled = this._nextEnabled(record);
167+
var prevEnabled = RecordRange._prevEnabled(record);
168+
var nextEnabled = RecordRange._nextEnabled(record);
169169

170170
record.prevEnabled = prevEnabled;
171171
record.nextEnabled = nextEnabled;
@@ -176,35 +176,35 @@ export class RecordRange {
176176
record.disabled = false;
177177
}
178178

179-
disableRange(child:RecordRange) {
180-
var firstEnabledChildRecord = child.findFirstEnabledRecord();
181-
var lastEnabledChildRecord = child.findLastEnabledRecord();
179+
disable() {
180+
var firstEnabledChildRecord = this.findFirstEnabledRecord();
181+
var lastEnabledChildRecord = this.findLastEnabledRecord();
182182

183183
var nextEnabled = lastEnabledChildRecord.nextEnabled;
184184
var prevEnabled = firstEnabledChildRecord.prevEnabled;
185185

186186
if (isPresent(nextEnabled)) nextEnabled.prevEnabled = prevEnabled;
187187
if (isPresent(prevEnabled)) prevEnabled.nextEnabled = nextEnabled;
188188

189-
child.disabled = true;
189+
this.disabled = true;
190190
}
191191

192-
enableRange(child:RecordRange) {
193-
var prevEnabledRecord = this._prevEnabled(child.headRecord);
194-
var nextEnabledRecord = this._nextEnabled(child.tailRecord);
192+
enable() {
193+
var prevEnabledRecord = RecordRange._prevEnabled(this.headRecord);
194+
var nextEnabledRecord = RecordRange._nextEnabled(this.tailRecord);
195195

196-
var firstEnabledChildRecord = child.findFirstEnabledRecord();
197-
var lastEnabledChildRecord = child.findLastEnabledRecord();
196+
var firstEnabledthisRecord = this.findFirstEnabledRecord();
197+
var lastEnabledthisRecord = this.findLastEnabledRecord();
198198

199-
if (isPresent(firstEnabledChildRecord) && isPresent(prevEnabledRecord)){
200-
_linkEnabled(prevEnabledRecord, firstEnabledChildRecord);
199+
if (isPresent(firstEnabledthisRecord) && isPresent(prevEnabledRecord)){
200+
_linkEnabled(prevEnabledRecord, firstEnabledthisRecord);
201201
}
202202

203-
if (isPresent(lastEnabledChildRecord) && isPresent(nextEnabledRecord)){
204-
_linkEnabled(lastEnabledChildRecord, nextEnabledRecord);
203+
if (isPresent(lastEnabledthisRecord) && isPresent(nextEnabledRecord)){
204+
_linkEnabled(lastEnabledthisRecord, nextEnabledRecord);
205205
}
206206

207-
child.disabled = false;
207+
this.disabled = false;
208208
}
209209

210210
/**
@@ -262,7 +262,7 @@ export class RecordRange {
262262
*
263263
* The function skips disabled sub ranges.
264264
*/
265-
_nextEnabled(record:Record) {
265+
static _nextEnabled(record:Record) {
266266
record = record.next;
267267
while (isPresent(record) && record.disabled) {
268268
if (record.isMarkerRecord && record.recordRange.disabled) {
@@ -281,7 +281,7 @@ export class RecordRange {
281281
*
282282
* The function skips disabled sub ranges.
283283
*/
284-
_prevEnabled(record:Record) {
284+
static _prevEnabled(record:Record) {
285285
record = record.prev;
286286
while (isPresent(record) && record.disabled) {
287287
if (record.isMarkerRecord && record.recordRange.disabled) {

modules/change_detection/test/record_range_spec.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,11 @@ export function main() {
128128
parent.addRange(child1);
129129
parent.addRange(child2);
130130

131-
parent.removeRange(child1);
131+
child1.remove();
132132

133133
expect(enabledRecords(parent, recordNames)).toEqual(['record2']);
134134

135-
parent.removeRange(child2);
135+
child2.remove();
136136

137137
expect(enabledRecords(parent, recordNames)).toEqual([]);
138138
});
@@ -143,7 +143,7 @@ export function main() {
143143
parent.addRange(emptyRange);
144144
parent.addRange(child2);
145145

146-
parent.removeRange(emptyRange);
146+
emptyRange.remove();
147147

148148
expect(enabledRecords(parent, recordNames)).toEqual(['record1', 'record2']);
149149
});
@@ -153,7 +153,7 @@ export function main() {
153153
parent.addRange(child2);
154154
parent.addRange(child3);
155155

156-
parent.removeRange(child2);
156+
child2.remove();
157157

158158
expect(enabledRecords(parent, recordNames)).toEqual(['record1', 'record3']);
159159
});
@@ -283,17 +283,18 @@ export function main() {
283283
var parent = new RecordRange(null, null);
284284
parent.addRange(child1);
285285

286-
parent.disableRange(child1);
286+
child1.disable();
287287

288288
expect(enabledRecords(parent, recordNames)).toEqual([]);
289289
});
290290

291291
it('should enable a single record range', () => {
292292
var parent = new RecordRange(null, null);
293293
parent.addRange(child1);
294-
parent.disableRange(child1);
295294

296-
parent.enableRange(child1);
295+
child1.disable();
296+
297+
child1.enable();
297298

298299
expect(enabledRecords(parent, recordNames)).toEqual(['record1']);
299300
});
@@ -305,8 +306,8 @@ export function main() {
305306
parent.addRange(child3);
306307
parent.addRange(child4);
307308

308-
parent.disableRange(child2);
309-
parent.disableRange(child3);
309+
child2.disable();
310+
child3.disable();
310311

311312
expect(enabledRecords(parent, recordNames)).toEqual(['record1', 'record4']);
312313
});
@@ -317,11 +318,12 @@ export function main() {
317318
parent.addRange(child2);
318319
parent.addRange(child3);
319320
parent.addRange(child4);
320-
parent.disableRange(child2);
321-
parent.disableRange(child3);
322321

323-
parent.enableRange(child2);
324-
parent.enableRange(child3);
322+
child2.disable();
323+
child2.disable();
324+
325+
child2.enable();
326+
child3.enable();
325327

326328
expect(enabledRecords(parent, recordNames)).toEqual([
327329
'record1', 'record2', 'record3', 'record4'

0 commit comments

Comments
 (0)