Skip to content

Commit 9957c13

Browse files
committed
feat(change_detection): reimplement change detection
1 parent 2265370 commit 9957c13

30 files changed

+1257
-2233
lines changed

modules/benchmarks/src/change_detection/change_detection_benchmark.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
Lexer,
88
Parser,
99
ChangeDetector,
10-
ProtoRecordRange,
10+
ProtoChangeDetector,
1111
ChangeDispatcher,
1212
} from 'change_detection/change_detection';
1313

@@ -102,8 +102,8 @@ function setUpChangeDetection(iterations) {
102102
var dispatcher = new DummyDispatcher();
103103
var parser = new Parser(new Lexer());
104104

105-
var parentProto = new ProtoRecordRange();
106-
var parentRange = parentProto.instantiate(dispatcher, MapWrapper.create());
105+
var parentProto = new ProtoChangeDetector();
106+
var parentCD = parentProto.instantiate(dispatcher, MapWrapper.create());
107107

108108
var astWithSource = [
109109
parser.parseBinding('field0', null),
@@ -119,12 +119,12 @@ function setUpChangeDetection(iterations) {
119119
];
120120

121121
function proto(i) {
122-
var prr = new ProtoRecordRange();
123-
prr.addRecordsFromAST(astWithSource[i % 10].ast, "memo", i, false);
124-
return prr;
122+
var pcd = new ProtoChangeDetector();
123+
pcd.addAst(astWithSource[i % 10].ast, "memo", i, false);
124+
return pcd;
125125
}
126126

127-
var prr = [
127+
var pcd = [
128128
proto(0),
129129
proto(1),
130130
proto(2),
@@ -142,13 +142,13 @@ function setUpChangeDetection(iterations) {
142142
var index = i % 10;
143143
obj.setField(index, i);
144144

145-
var rr = prr[index].instantiate(dispatcher, null);
145+
var rr = pcd[index].instantiate(dispatcher, null);
146146
rr.setContext(obj);
147147

148-
parentRange.addRange(rr);
148+
parentCD.addChild(rr);
149149
}
150150

151-
return new ChangeDetector(parentRange);
151+
return parentCD;
152152
}
153153

154154
export function main () {

modules/benchmarks/src/tree/tree_benchmark.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,15 @@ export function main() {
125125
setupReflector();
126126

127127
var app;
128-
var changeDetector;
128+
var lifeCycle;
129129
var baselineRootTreeComponent;
130130
var count = 0;
131131

132132
function ng2DestroyDom() {
133133
// TODO: We need an initial value as otherwise the getter for data.value will fail
134134
// --> this should be already caught in change detection!
135135
app.initData = new TreeNode('', null, null);
136-
changeDetector.detectChanges();
136+
lifeCycle.tick();
137137
}
138138

139139
function profile(create, destroy, name) {
@@ -171,14 +171,15 @@ export function main() {
171171
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '-'];
172172

173173
app.initData = buildTree(maxDepth, values, 0);
174-
changeDetector.detectChanges();
174+
lifeCycle.tick();
175175
}
176176

177177
function noop() {}
178178

179179
function initNg2() {
180180
bootstrap(AppComponent).then((injector) => {
181-
changeDetector = injector.get(ChangeDetector);
181+
lifeCycle = injector.get(LifeCycle);
182+
182183
app = injector.get(AppComponent);
183184
bindAction('#ng2DestroyDom', ng2DestroyDom);
184185
bindAction('#ng2CreateDom', ng2CreateDom);
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
export {ChangeDetectionError, ChangeDetector} from './change_detector';
2-
export {AST, ASTWithSource} from './parser/ast';
1+
export {AST} from './parser/ast';
32
export {Lexer} from './parser/lexer';
43
export {Parser} from './parser/parser';
5-
export {ProtoRecordRange, RecordRange, ChangeDispatcher} from './record_range';
6-
export {ProtoRecord, Record} from './record';
74
export {ContextWithVariableBindings} from './parser/context_with_variable_bindings';
5+
6+
export {ExpressionChangedAfterItHasBeenChecked, ChangeDetectionError} from './exceptions';
7+
export {ChangeRecord, ChangeDispatcher, ChangeDetector} from './interfaces';
8+
export {ProtoChangeDetector} from './proto_change_detector';
9+
export {DynamicChangeDetector} from './dynamic_change_detector';

modules/change_detection/src/change_detector.js

-87
This file was deleted.

0 commit comments

Comments
 (0)