feat(change_detection): reimplement change detection
This commit is contained in:
@ -7,7 +7,7 @@ import {
|
||||
Lexer,
|
||||
Parser,
|
||||
ChangeDetector,
|
||||
ProtoRecordRange,
|
||||
ProtoChangeDetector,
|
||||
ChangeDispatcher,
|
||||
} from 'change_detection/change_detection';
|
||||
|
||||
@ -102,8 +102,8 @@ function setUpChangeDetection(iterations) {
|
||||
var dispatcher = new DummyDispatcher();
|
||||
var parser = new Parser(new Lexer());
|
||||
|
||||
var parentProto = new ProtoRecordRange();
|
||||
var parentRange = parentProto.instantiate(dispatcher, MapWrapper.create());
|
||||
var parentProto = new ProtoChangeDetector();
|
||||
var parentCD = parentProto.instantiate(dispatcher, MapWrapper.create());
|
||||
|
||||
var astWithSource = [
|
||||
parser.parseBinding('field0', null),
|
||||
@ -119,12 +119,12 @@ function setUpChangeDetection(iterations) {
|
||||
];
|
||||
|
||||
function proto(i) {
|
||||
var prr = new ProtoRecordRange();
|
||||
prr.addRecordsFromAST(astWithSource[i % 10].ast, "memo", i, false);
|
||||
return prr;
|
||||
var pcd = new ProtoChangeDetector();
|
||||
pcd.addAst(astWithSource[i % 10].ast, "memo", i, false);
|
||||
return pcd;
|
||||
}
|
||||
|
||||
var prr = [
|
||||
var pcd = [
|
||||
proto(0),
|
||||
proto(1),
|
||||
proto(2),
|
||||
@ -142,13 +142,13 @@ function setUpChangeDetection(iterations) {
|
||||
var index = i % 10;
|
||||
obj.setField(index, i);
|
||||
|
||||
var rr = prr[index].instantiate(dispatcher, null);
|
||||
var rr = pcd[index].instantiate(dispatcher, null);
|
||||
rr.setContext(obj);
|
||||
|
||||
parentRange.addRange(rr);
|
||||
parentCD.addChild(rr);
|
||||
}
|
||||
|
||||
return new ChangeDetector(parentRange);
|
||||
return parentCD;
|
||||
}
|
||||
|
||||
export function main () {
|
||||
|
@ -125,7 +125,7 @@ export function main() {
|
||||
setupReflector();
|
||||
|
||||
var app;
|
||||
var changeDetector;
|
||||
var lifeCycle;
|
||||
var baselineRootTreeComponent;
|
||||
var count = 0;
|
||||
|
||||
@ -133,7 +133,7 @@ export function main() {
|
||||
// TODO: We need an initial value as otherwise the getter for data.value will fail
|
||||
// --> this should be already caught in change detection!
|
||||
app.initData = new TreeNode('', null, null);
|
||||
changeDetector.detectChanges();
|
||||
lifeCycle.tick();
|
||||
}
|
||||
|
||||
function profile(create, destroy, name) {
|
||||
@ -171,14 +171,15 @@ export function main() {
|
||||
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '-'];
|
||||
|
||||
app.initData = buildTree(maxDepth, values, 0);
|
||||
changeDetector.detectChanges();
|
||||
lifeCycle.tick();
|
||||
}
|
||||
|
||||
function noop() {}
|
||||
|
||||
function initNg2() {
|
||||
bootstrap(AppComponent).then((injector) => {
|
||||
changeDetector = injector.get(ChangeDetector);
|
||||
lifeCycle = injector.get(LifeCycle);
|
||||
|
||||
app = injector.get(AppComponent);
|
||||
bindAction('#ng2DestroyDom', ng2DestroyDom);
|
||||
bindAction('#ng2CreateDom', ng2CreateDom);
|
||||
|
Reference in New Issue
Block a user