@ -41,12 +41,10 @@ export class ChangeDetectionCompiler {
|
||||
}
|
||||
|
||||
private _createChangeDetectorFactory(definition: ChangeDetectorDefinition): Function {
|
||||
if (IS_DART) {
|
||||
if (IS_DART || !this._genConfig.useJit) {
|
||||
var proto = new DynamicProtoChangeDetector(definition);
|
||||
return (dispatcher) => proto.instantiate(dispatcher);
|
||||
} else {
|
||||
// TODO(tbosch): provide a flag in _genConfig whether to allow eval or fall back to dynamic
|
||||
// change detection as well!
|
||||
return new ChangeDetectorJITGenerator(definition, UTIL, ABSTRACT_CHANGE_DETECTOR).generate();
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,10 @@ export class TemplateCompiler {
|
||||
|
||||
normalizeDirectiveMetadata(directive:
|
||||
CompileDirectiveMetadata): Promise<CompileDirectiveMetadata> {
|
||||
if (!directive.isComponent) {
|
||||
// For non components there is nothing to be normalized yet.
|
||||
return PromiseWrapper.resolve(directive);
|
||||
}
|
||||
var normalizedTemplatePromise;
|
||||
if (directive.isComponent) {
|
||||
normalizedTemplatePromise =
|
||||
|
@ -15,6 +15,10 @@ import {
|
||||
*/
|
||||
@CONST()
|
||||
export class CompiledTemplate {
|
||||
static getChangeDetectorFromData(data: any[]): Function { return data[0]; }
|
||||
static getCommandsFromData(data: any[]): TemplateCmd[] { return data[1]; }
|
||||
static getSylesFromData(data: any[]): string[] { return data[2]; }
|
||||
|
||||
// Note: paramGetter is a function so that we can have cycles between templates!
|
||||
// paramGetter returns a tuple with:
|
||||
// - ChangeDetector factory function
|
||||
@ -91,13 +95,11 @@ export function endElement(): TemplateCmd {
|
||||
export class BeginComponentCmd implements TemplateCmd, IBeginElementCmd, RenderBeginComponentCmd {
|
||||
isBound: boolean = true;
|
||||
templateId: number;
|
||||
component: Type;
|
||||
constructor(public name: string, public attrNameAndValues: string[],
|
||||
public eventTargetAndNames: string[],
|
||||
public variableNameAndValues: Array<string | number>, public directives: Type[],
|
||||
public nativeShadow: boolean, public ngContentIndex: number,
|
||||
public template: CompiledTemplate) {
|
||||
this.component = directives[0];
|
||||
this.templateId = template.id;
|
||||
}
|
||||
visit(visitor: RenderCommandVisitor, context: any): any {
|
||||
|
Reference in New Issue
Block a user