Skip to content

Commit

Permalink
fix(compiler): minor cleanups and fixes
Browse files Browse the repository at this point in the history
Part of #3605
  • Loading branch information
tbosch committed Sep 25, 2015
1 parent 9c97690 commit 0ed6fc4
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 8 deletions.
4 changes: 1 addition & 3 deletions modules/angular2/src/compiler/change_detector_compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
Expand Down
4 changes: 4 additions & 0 deletions modules/angular2/src/compiler/template_compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
6 changes: 4 additions & 2 deletions modules/angular2/src/core/compiler/template_commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 {
Expand Down
19 changes: 16 additions & 3 deletions modules/angular2/test/compiler/template_compiler_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,15 @@ export function main() {
});

describe('normalizeDirectiveMetadata', () => {
it('should return the given DirectiveMetadata for non components',
inject([AsyncTestCompleter], (async) => {
var meta = runtimeMetadataResolver.getMetadata(NonComponent);
compiler.normalizeDirectiveMetadata(meta).then(normMeta => {
expect(normMeta).toBe(meta);
async.done();
});
}));

it('should normalize the template',
inject([AsyncTestCompleter, XHR], (async, xhr: MockXHR) => {
xhr.expect('angular2/test/compiler/compUrl.html', 'loadedTemplate');
Expand Down Expand Up @@ -323,10 +332,14 @@ export function humanizeTemplate(template: CompiledTemplate,
}
var commands = [];
var templateData = template.dataGetter();
result =
{'styles': templateData[2], 'commands': commands, 'cd': testChangeDetector(templateData[0])};
result = {
'styles': CompiledTemplate.getSylesFromData(templateData),
'commands': commands,
'cd': testChangeDetector(CompiledTemplate.getChangeDetectorFromData(templateData))
};
humanizedTemplates.set(template.id, result);
visitAllCommands(new CommandHumanizer(commands, humanizedTemplates), templateData[1]);
visitAllCommands(new CommandHumanizer(commands, humanizedTemplates),
CompiledTemplate.getCommandsFromData(templateData));
return result;
}

Expand Down

0 comments on commit 0ed6fc4

Please sign in to comment.