feat(change_detection): implement a change detector generator
This commit is contained in:
@ -8,6 +8,7 @@ import {
|
||||
Parser,
|
||||
ChangeDetector,
|
||||
ProtoChangeDetector,
|
||||
DynamicProtoChangeDetector,
|
||||
ChangeDispatcher,
|
||||
} from 'change_detection/change_detection';
|
||||
|
||||
@ -102,7 +103,7 @@ function setUpChangeDetection(iterations) {
|
||||
var dispatcher = new DummyDispatcher();
|
||||
var parser = new Parser(new Lexer());
|
||||
|
||||
var parentProto = new ProtoChangeDetector();
|
||||
var parentProto = new DynamicProtoChangeDetector();
|
||||
var parentCD = parentProto.instantiate(dispatcher, MapWrapper.create());
|
||||
|
||||
var astWithSource = [
|
||||
@ -119,7 +120,7 @@ function setUpChangeDetection(iterations) {
|
||||
];
|
||||
|
||||
function proto(i) {
|
||||
var pcd = new ProtoChangeDetector();
|
||||
var pcd = new DynamicProtoChangeDetector();
|
||||
pcd.addAst(astWithSource[i % 10].ast, "memo", i, false);
|
||||
return pcd;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ import {isBlank, Type} from 'facade/lang';
|
||||
import {MapWrapper} from 'facade/collection';
|
||||
import {DirectiveMetadata} from 'core/compiler/directive_metadata';
|
||||
|
||||
import {Parser, Lexer, ProtoRecordRange} from 'change_detection/change_detection';
|
||||
import {Parser, Lexer, ProtoRecordRange, dynamicChangeDetection} from 'change_detection/change_detection';
|
||||
|
||||
import {Compiler, CompilerCache} from 'core/compiler/compiler';
|
||||
import {DirectiveMetadataReader} from 'core/compiler/directive_metadata_reader';
|
||||
@ -79,7 +79,7 @@ export function main() {
|
||||
setupReflector();
|
||||
var reader = new DirectiveMetadataReader();
|
||||
var cache = new CompilerCache();
|
||||
var compiler = new Compiler(null, reader, new Parser(new Lexer()), cache);
|
||||
var compiler = new Compiler(dynamicChangeDetection, null, reader, new Parser(new Lexer()), cache);
|
||||
var annotatedComponent = reader.read(BenchmarkComponent);
|
||||
|
||||
var templateNoBindings = loadTemplate('templateNoBindings', count);
|
||||
|
@ -1,4 +1,5 @@
|
||||
import {Parser, Lexer, ChangeDetector} from 'change_detection/change_detection';
|
||||
import {Parser, Lexer, ChangeDetector, ChangeDetection, jitChangeDetection}
|
||||
from 'change_detection/change_detection';
|
||||
|
||||
import {bootstrap, Component, Template, TemplateConfig, ViewPort, Compiler} from 'angular/angular';
|
||||
|
||||
@ -38,11 +39,7 @@ function setupReflector() {
|
||||
},
|
||||
template: new TemplateConfig({
|
||||
directives: [TreeComponent, NgIf],
|
||||
inline: `
|
||||
<span> {{data.value}}
|
||||
<span template='ng-if data.right != null'><tree [data]='data.right'></tree></span>
|
||||
<span template='ng-if data.left != null'><tree [data]='data.left'></tree></span>
|
||||
</span>`
|
||||
inline: `<span>{{data.value}}<span template='ng-if data.right != null'><tree [data]='data.right'></tree></span><span template='ng-if data.left != null'><tree [data]='data.left'></tree></span></span>`
|
||||
})
|
||||
})]
|
||||
});
|
||||
@ -59,8 +56,8 @@ function setupReflector() {
|
||||
});
|
||||
|
||||
reflector.registerType(Compiler, {
|
||||
'factory': (templateLoader, reader, parser, compilerCache) => new Compiler(templateLoader, reader, parser, compilerCache),
|
||||
'parameters': [[TemplateLoader], [DirectiveMetadataReader], [Parser], [CompilerCache]],
|
||||
'factory': (cd, templateLoader, reader, parser, compilerCache) => new Compiler(cd, templateLoader, reader, parser, compilerCache),
|
||||
'parameters': [[ChangeDetection], [TemplateLoader], [DirectiveMetadataReader], [Parser], [CompilerCache]],
|
||||
'annotations': []
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user