refactor(ivy): Move instructions back to ɵɵ (#30546)

There is an encoding issue with using delta `Δ`, where the browser will attempt to detect the file encoding if the character set is not explicitly declared on a `<script/>` tag, and Chrome will find the `Δ` character and decide it is window-1252 encoding, which misinterprets the `Δ` character to be some other character that is not a valid JS identifier character

So back to the frog eyes we go.

```
    __
   /ɵɵ\
  ( -- ) - I am ineffable. I am forever.
 _/    \_
/  \  /  \
==  ==  ==
```

PR Close #30546
This commit is contained in:
Ben Lesh
2019-05-17 18:49:21 -07:00
committed by Jason Aden
parent 1c3ee41902
commit d7eaae6f22
141 changed files with 5361 additions and 5344 deletions

View File

@ -140,7 +140,7 @@ describe('DtsRenderer', () => {
const typingsFile = result.find(f => f.path === '/typings/file.d.ts') !;
expect(typingsFile.contents)
.toContain(
'foo(x: number): number;\n static ngDirectiveDef: ɵngcc0.ΔDirectiveDefWithMeta');
'foo(x: number): number;\n static ngDirectiveDef: ɵngcc0.ɵɵDirectiveDefWithMeta');
});
it('should render imports into typings files', () => {

View File

@ -164,11 +164,11 @@ describe('Renderer', () => {
const addDefinitionsSpy = testFormatter.addDefinitions as jasmine.Spy;
expect(addDefinitionsSpy.calls.first().args[2])
.toEqual(
`A.ngComponentDef = ɵngcc0.ΔdefineComponent({ type: A, selectors: [["a"]], factory: function A_Factory(t) { return new (t || A)(); }, consts: 1, vars: 1, template: function A_Template(rf, ctx) { if (rf & 1) {
ɵngcc0.Δtext(0);
`A.ngComponentDef = ɵngcc0.ɵɵdefineComponent({ type: A, selectors: [["a"]], factory: function A_Factory(t) { return new (t || A)(); }, consts: 1, vars: 1, template: function A_Template(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵtext(0);
} if (rf & 2) {
ɵngcc0.Δselect(0);
ɵngcc0.ΔtextBinding(0, ɵngcc0.Δinterpolation1("", ctx.person.name, ""));
ɵngcc0.ɵɵselect(0);
ɵngcc0.ɵɵtextBinding(0, ɵngcc0.ɵɵinterpolation1("", ctx.person.name, ""));
} }, encapsulation: 2 });
/*@__PURE__*/ ɵngcc0.ɵsetClassMetadata(A, [{
type: Component,
@ -205,7 +205,7 @@ describe('Renderer', () => {
}));
expect(addDefinitionsSpy.calls.first().args[2])
.toEqual(
`A.ngDirectiveDef = ɵngcc0.ΔdefineDirective({ type: A, selectors: [["", "a", ""]], factory: function A_Factory(t) { return new (t || A)(); } });
`A.ngDirectiveDef = ɵngcc0.ɵɵdefineDirective({ type: A, selectors: [["", "a", ""]], factory: function A_Factory(t) { return new (t || A)(); } });
/*@__PURE__*/ ɵngcc0.ɵsetClassMetadata(A, [{
type: Directive,
args: [{ selector: '[a]' }]

View File

@ -423,7 +423,7 @@ export class MetadataBundler {
result[key] = this.convertFunction(moduleName, value);
} else if (isMetadataSymbolicCallExpression(value)) {
// Class members can also contain static members that call a function with module
// references. e.g. "static ngInjectableDef = ΔdefineInjectable(..)". We also need to
// references. e.g. "static ngInjectableDef = ɵɵdefineInjectable(..)". We also need to
// convert these module references because otherwise these resolve to non-existent files.
result[key] = this.convertValue(moduleName, value);
} else {

View File

@ -48,15 +48,15 @@ export class NoopImportRewriter implements ImportRewriter {
* which they're exported from r3_symbols.
*/
const CORE_SUPPORTED_SYMBOLS = new Map<string, string>([
['ΔdefineInjectable', 'ΔdefineInjectable'],
['ΔdefineInjector', 'ΔdefineInjector'],
['ΔdefineNgModule', 'ΔdefineNgModule'],
['ΔsetNgModuleScope', 'ΔsetNgModuleScope'],
['Δinject', 'Δinject'],
['ɵɵdefineInjectable', 'ɵɵdefineInjectable'],
['ɵɵdefineInjector', 'ɵɵdefineInjector'],
['ɵɵdefineNgModule', 'ɵɵdefineNgModule'],
['ɵɵsetNgModuleScope', 'ɵɵsetNgModuleScope'],
['ɵɵinject', 'ɵɵinject'],
['ɵsetClassMetadata', 'setClassMetadata'],
['ΔInjectableDef', 'ΔInjectableDef'],
['ΔInjectorDef', 'ΔInjectorDef'],
['ΔNgModuleDefWithMeta', 'ΔNgModuleDefWithMeta'],
['ɵɵInjectableDef', 'ɵɵInjectableDef'],
['ɵɵInjectorDef', 'ɵɵInjectorDef'],
['ɵɵNgModuleDefWithMeta', 'ɵɵNgModuleDefWithMeta'],
['ɵNgModuleFactory', 'NgModuleFactory'],
]);

View File

@ -14,7 +14,7 @@ import * as ts from 'typescript';
import {NgtscProgram} from '../../src/ngtsc/program';
const IDENTIFIER = /[A-Za-z_$ɵΔ][A-Za-z0-9_$]*/;
const IDENTIFIER = /[A-Za-z_$ɵ][A-Za-z0-9_$]*/;
const OPERATOR =
/!|\?|%|\*|\/|\^|&&?|\|\|?|\(|\)|\{|\}|\[|\]|:|;|<=?|>=?|={1,3}|!==?|=>|\+\+?|--?|@|,|\.|\.\.\./;
const STRING = /'[^']*'|"[^"]*"|`[\s\S]*?`/;

View File

@ -140,7 +140,7 @@ describe('mock_compiler', () => {
expectEmit(
result.source, `
// TODO: this comment should not be taken into account
$r3$.Δtext(0, "Hello!");
$r3$.ɵɵtext(0, "Hello!");
// TODO: this comment should not be taken into account
`,
'todo comments should be ignored');

View File

@ -39,13 +39,13 @@ describe('compiler compliance: bindings', () => {
const template = `
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.Δtext(1);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵtext(1);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(1);
$i0$.ΔtextBinding(1, $i0$.Δinterpolation1("Hello ", $ctx$.name, ""));
$r3$.ɵɵselect(1);
$i0$.ɵɵtextBinding(1, $i0$.ɵɵinterpolation1("Hello ", $ctx$.name, ""));
}
}`;
const result = compile(files, angularFiles);
@ -78,11 +78,11 @@ describe('compiler compliance: bindings', () => {
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.Δelement(0, "a", $e0_attrs$);
$i0$.ɵɵelement(0, "a", $e0_attrs$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("title", $ctx$.title);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("title", $ctx$.title);
}
}`;
const result = compile(files, angularFiles);
@ -113,11 +113,11 @@ describe('compiler compliance: bindings', () => {
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.Δelement(0, "a", $e0_attrs$);
$i0$.ɵɵelement(0, "a", $e0_attrs$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.ΔpropertyInterpolate1("title", "Hello ", $ctx$.name, "");
$i0$.ɵɵselect(0);
$i0$.ɵɵpropertyInterpolate1("title", "Hello ", $ctx$.name, "");
}
}`;
const result = compile(files, angularFiles);
@ -138,7 +138,7 @@ describe('compiler compliance: bindings', () => {
}
};
const result = compile(files, angularFiles);
expect(result.source).not.toContain('i0.ΔelementProperty');
expect(result.source).not.toContain('i0.ɵɵelementProperty');
});
it('should not remap property names whose names do not correspond to their attribute names',
@ -170,11 +170,11 @@ describe('compiler compliance: bindings', () => {
function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δelement(0, "label", _c0);
$i0$.ɵɵelement(0, "label", _c0);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("for", ctx.forValue);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("for", ctx.forValue);
}
}`;
@ -204,16 +204,16 @@ describe('compiler compliance: bindings', () => {
};
const HostBindingDirDeclaration = `
HostBindingDir.ngDirectiveDef = $r3$.ΔdefineDirective({
HostBindingDir.ngDirectiveDef = $r3$.ɵɵdefineDirective({
type: HostBindingDir,
selectors: [["", "hostBindingDir", ""]],
factory: function HostBindingDir_Factory(t) { return new (t || HostBindingDir)(); },
hostBindings: function HostBindingDir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(1);
$r3$.ɵɵallocHostVars(1);
}
if (rf & 2) {
$r3$.Δproperty("id", ctx.dirId, null, true);
$r3$.ɵɵproperty("id", ctx.dirId, null, true);
}
}
});
@ -251,16 +251,16 @@ describe('compiler compliance: bindings', () => {
const HostBindingCompDeclaration = `
const $ff$ = function ($v$) { return ["red", $v$]; };
HostBindingComp.ngComponentDef = $r3$.ΔdefineComponent({
HostBindingComp.ngComponentDef = $r3$.ɵɵdefineComponent({
type: HostBindingComp,
selectors: [["host-binding-comp"]],
factory: function HostBindingComp_Factory(t) { return new (t || HostBindingComp)(); },
hostBindings: function HostBindingComp_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(3);
$r3$.ɵɵallocHostVars(3);
}
if (rf & 2) {
$r3$.Δproperty("id", $r3$.ΔpureFunction1(1, $ff$, ctx.id), null, true);
$r3$.ɵɵproperty("id", $r3$.ɵɵpureFunction1(1, $ff$, ctx.id), null, true);
}
},
consts: 0,
@ -299,16 +299,16 @@ describe('compiler compliance: bindings', () => {
};
const HostAttributeDirDeclaration = `
HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({
HostAttributeDir.ngDirectiveDef = $r3$.ɵɵdefineDirective({
type: HostAttributeDir,
selectors: [["", "hostAttributeDir", ""]],
factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); },
hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(1);
$r3$.ɵɵallocHostVars(1);
}
if (rf & 2) {
$r3$.ΔelementAttribute(elIndex, "required", $r3$.Δbind(ctx.required));
$r3$.ɵɵelementAttribute(elIndex, "required", $r3$.ɵɵbind(ctx.required));
}
}
});
@ -344,13 +344,13 @@ describe('compiler compliance: bindings', () => {
const HostAttributeDirDeclaration = `
const $c0$ = ["aria-label", "label"];
HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({
HostAttributeDir.ngDirectiveDef = $r3$.ɵɵdefineDirective({
type: HostAttributeDir,
selectors: [["", "hostAttributeDir", ""]],
factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); },
hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔelementHostAttrs($c0$);
$r3$.ɵɵelementHostAttrs($c0$);
}
}
});
@ -402,25 +402,25 @@ describe('compiler compliance: bindings', () => {
const $c0$ = ["title", "hello there from component", ${AttributeMarker.Styles}, "opacity", "1"];
const $c1$ = ["title", "hello there from directive", ${AttributeMarker.Classes}, "one", "two", ${AttributeMarker.Styles}, "width", "200px", "height", "500px"];
HostAttributeComp.ngComponentDef = $r3$.ΔdefineComponent({
HostAttributeComp.ngComponentDef = $r3$.ɵɵdefineComponent({
type: HostAttributeComp,
selectors: [["my-host-attribute-component"]],
factory: function HostAttributeComp_Factory(t) { return new (t || HostAttributeComp)(); },
hostBindings: function HostAttributeComp_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔelementHostAttrs($c0$);
$r3$.ɵɵelementHostAttrs($c0$);
}
}
HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({
HostAttributeDir.ngDirectiveDef = $r3$.ɵɵdefineDirective({
type: HostAttributeDir,
selectors: [["", "hostAttributeDir", ""]],
factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); },
hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔelementHostAttrs($c1$);
$r3$.ɵɵelementHostAttrs($c1$);
}
@ -469,26 +469,26 @@ describe('compiler compliance: bindings', () => {
const template = `
if (rf & 2) {
i0.Δselect(0);
i0.ΔpropertyInterpolateV("title", ["a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h", ctx.eight, "i", ctx.nine, "j"]);
i0.Δselect(1);
i0.ΔpropertyInterpolate8("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h", ctx.eight, "i");
i0.Δselect(2);
i0.ΔpropertyInterpolate7("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h");
i0.Δselect(3);
i0.ΔpropertyInterpolate6("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g");
i0.Δselect(4);
i0.ΔpropertyInterpolate5("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f");
i0.Δselect(5);
i0.ΔpropertyInterpolate4("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e");
i0.Δselect(6);
i0.ΔpropertyInterpolate3("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d");
i0.Δselect(7);
i0.ΔpropertyInterpolate2("title", "a", ctx.one, "b", ctx.two, "c");
i0.Δselect(8);
i0.ΔpropertyInterpolate1("title", "a", ctx.one, "b");
i0.Δselect(9);
i0.ΔpropertyInterpolate("title", ctx.one);
i0.ɵɵselect(0);
i0.ɵɵpropertyInterpolateV("title", ["a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h", ctx.eight, "i", ctx.nine, "j"]);
i0.ɵɵselect(1);
i0.ɵɵpropertyInterpolate8("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h", ctx.eight, "i");
i0.ɵɵselect(2);
i0.ɵɵpropertyInterpolate7("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g", ctx.seven, "h");
i0.ɵɵselect(3);
i0.ɵɵpropertyInterpolate6("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g");
i0.ɵɵselect(4);
i0.ɵɵpropertyInterpolate5("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f");
i0.ɵɵselect(5);
i0.ɵɵpropertyInterpolate4("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e");
i0.ɵɵselect(6);
i0.ɵɵpropertyInterpolate3("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d");
i0.ɵɵselect(7);
i0.ɵɵpropertyInterpolate2("title", "a", ctx.one, "b", ctx.two, "c");
i0.ɵɵselect(8);
i0.ɵɵpropertyInterpolate1("title", "a", ctx.one, "b");
i0.ɵɵselect(9);
i0.ɵɵpropertyInterpolate("title", ctx.one);
}
`;
@ -510,19 +510,19 @@ describe('compiler compliance: bindings', () => {
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.ΔelementStart(0, "b", $_c0$, $_c1$);
$i0$.ΔdisableBindings();
$i0$.ΔelementStart(2, "i");
$i0$.Δtext(3, "Hello {{ name }}!");
$i0$.ΔelementEnd();
$i0$.ΔenableBindings();
$i0$.ΔelementEnd();
$i0$.Δtext(4);
$i0$.ɵɵelementStart(0, "b", $_c0$, $_c1$);
$i0$.ɵɵdisableBindings();
$i0$.ɵɵelementStart(2, "i");
$i0$.ɵɵtext(3, "Hello {{ name }}!");
$i0$.ɵɵelementEnd();
$i0$.ɵɵenableBindings();
$i0$.ɵɵelementEnd();
$i0$.ɵɵtext(4);
}
if (rf & 2) {
const $_r0$ = $i0$.Δreference(1);
$r3$.Δselect(4);
$i0$.ΔtextBinding(4, $i0$.Δinterpolation1(" ", $_r0$.id, " "));
const $_r0$ = $i0$.ɵɵreference(1);
$r3$.ɵɵselect(4);
$i0$.ɵɵtextBinding(4, $i0$.ɵɵinterpolation1(" ", $_r0$.id, " "));
}
}
`;
@ -542,12 +542,12 @@ describe('compiler compliance: bindings', () => {
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.ΔdisableBindings();
$i0$.Δelement(1, "input", $_c0$);
$i0$.Δtext(2, " {{ myInput.value }} ");
$i0$.ΔenableBindings();
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵdisableBindings();
$i0$.ɵɵelement(1, "input", $_c0$);
$i0$.ɵɵtext(2, " {{ myInput.value }} ");
$i0$.ɵɵenableBindings();
$i0$.ɵɵelementEnd();
}
`;
const result = compile(files, angularFiles);
@ -566,11 +566,11 @@ describe('compiler compliance: bindings', () => {
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.ΔdisableBindings();
$i0$.Δelement(1, "div", $_c0$);
$i0$.ΔenableBindings();
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵdisableBindings();
$i0$.ɵɵelement(1, "div", $_c0$);
$i0$.ɵɵenableBindings();
$i0$.ɵɵelementEnd();
}
`;
const result = compile(files, angularFiles);
@ -585,7 +585,7 @@ describe('compiler compliance: bindings', () => {
const template = `
template:function MyComponent_Template(rf, $ctx$){
if (rf & 1) {
$i0$.Δelement(0, "div");
$i0$.ɵɵelement(0, "div");
}
}
`;

View File

@ -50,13 +50,13 @@ describe('compiler compliance: dependency injection', () => {
const factory = `
factory: function MyComponent_Factory(t) {
return new (t || MyComponent)(
$r3$.ΔinjectAttribute('name'),
$r3$.ΔdirectiveInject(MyService),
$r3$.ΔdirectiveInject(MyService, 1),
$r3$.ΔdirectiveInject(MyService, 2),
$r3$.ΔdirectiveInject(MyService, 4),
$r3$.ΔdirectiveInject(MyService, 8),
$r3$.ΔdirectiveInject(MyService, 10)
$r3$.ɵɵinjectAttribute('name'),
$r3$.ɵɵdirectiveInject(MyService),
$r3$.ɵɵdirectiveInject(MyService, 1),
$r3$.ɵɵdirectiveInject(MyService, 2),
$r3$.ɵɵdirectiveInject(MyService, 4),
$r3$.ɵɵdirectiveInject(MyService, 8),
$r3$.ɵɵdirectiveInject(MyService, 10)
);
}`;

View File

@ -38,7 +38,7 @@ describe('compiler compliance: directives', () => {
// MyComponent definition should be:
const MyComponentDefinition = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors: [["my-component"]],
factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); },
@ -46,7 +46,7 @@ describe('compiler compliance: directives', () => {
vars: 0,
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δelement(0, "div");
$r3$.ɵɵelement(0, "div");
}
},
encapsulation: 2
@ -84,7 +84,7 @@ describe('compiler compliance: directives', () => {
// MyComponent definition should be:
const MyComponentDefinition = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors: [["my-component"]],
factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); },
@ -92,7 +92,7 @@ describe('compiler compliance: directives', () => {
vars: 0,
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δelement(0, "div");
$r3$.ɵɵelement(0, "div");
}
},
encapsulation: 2
@ -132,15 +132,15 @@ describe('compiler compliance: directives', () => {
const _c0 = [${AttributeMarker.Bindings}, "someDirective"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δelement(0, "div", _c0);
$r3$.ɵɵelement(0, "div", _c0);
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("someDirective", true);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("someDirective", true);
}
},
@ -187,15 +187,15 @@ describe('compiler compliance: directives', () => {
const $_c0$ = ["directiveA", ""];
function MyComponent_ng_template_0_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtext(0, "Some content");
$r3$.ɵɵtext(0, "Some content");
}
}
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $_c0$);
$r3$.ɵɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $_c0$);
}
},
@ -241,21 +241,21 @@ describe('compiler compliance: directives', () => {
const $_c1$ = ["directiveA", ""];
function MyComponent_ng_container_0_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementContainerStart(0, $_c1$);
$r3$.Δtext(1, "Some content");
$r3$.ΔelementContainerEnd();
$r3$.ɵɵelementContainerStart(0, $_c1$);
$r3$.ɵɵtext(1, "Some content");
$r3$.ɵɵelementContainerEnd();
}
}
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_ng_container_0_Template, 2, 0, "ng-container", $_c0$);
$r3$.ɵɵtemplate(0, MyComponent_ng_container_0_Template, 2, 0, "ng-container", $_c0$);
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("ngIf", ctx.showing);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("ngIf", ctx.showing);
}
},
@ -295,15 +295,15 @@ describe('compiler compliance: directives', () => {
const $c0_a0$ = [${AttributeMarker.Bindings}, "someDirective"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $c0_a0$);
$r3$.ɵɵtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $c0_a0$);
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("someDirective", true);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("someDirective", true);
}
},
@ -344,11 +344,11 @@ describe('compiler compliance: directives', () => {
const $c0_a0$ = [${AttributeMarker.Template}, "someDirective"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0_a0$);
$r3$.ɵɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0_a0$);
}
},
@ -393,13 +393,13 @@ describe('compiler compliance: directives', () => {
const $c0_a0$ = [${AttributeMarker.Bindings}, "someDirective"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div", $c0_a0$);
$r3$.Δlistener("someDirective", function MyComponent_Template_div_someDirective_0_listener($event) { return ctx.noop(); });
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div", $c0_a0$);
$r3$.ɵɵlistener("someDirective", function MyComponent_Template_div_someDirective_0_listener($event) { return ctx.noop(); });
$r3$.ɵɵelementEnd();
}
},

View File

@ -52,7 +52,7 @@ describe('compiler compliance: listen()', () => {
};
const componentDef = `
MyComponent.ngComponentDef = IDENT.ΔdefineComponent({
MyComponent.ngComponentDef = IDENT.ɵɵdefineComponent({
inputs:{
componentInput: "componentInput",
@ -66,7 +66,7 @@ describe('compiler compliance: listen()', () => {
});`;
const directiveDef = `
MyDirective.ngDirectiveDef = IDENT.ΔdefineDirective({
MyDirective.ngDirectiveDef = IDENT.ɵɵdefineDirective({
inputs:{
directiveInput: "directiveInput",

View File

@ -45,12 +45,12 @@ describe('compiler compliance: listen()', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div", $e0_attrs$);
$r3$.Δlistener("click", function MyComponent_Template_div_click_0_listener($event) {
$r3$.ɵɵelementStart(0, "div", $e0_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_Template_div_click_0_listener($event) {
ctx.onClick($event);
return 1 == 2;
});
$r3$.ΔelementEnd();
$r3$.ɵɵelementEnd();
}
}
`;
@ -91,11 +91,11 @@ describe('compiler compliance: listen()', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "my-app", $e0_attrs$);
$r3$.Δlistener("click", function MyComponent_Template_my_app_click_0_listener($event) {
$r3$.ɵɵelementStart(0, "my-app", $e0_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_Template_my_app_click_0_listener($event) {
return ctx.onClick($event);
});
$r3$.ΔelementEnd();
$r3$.ɵɵelementEnd();
}
}
`;
@ -138,33 +138,33 @@ describe('compiler compliance: listen()', () => {
function MyComponent_div_0_Template(rf, ctx) {
if (rf & 1) {
const $s$ = $r3$.ΔgetCurrentView();
$r3$.ΔelementStart(0, "div");
$r3$.ΔelementStart(1, "div", $e_attrs$);
$r3$.Δlistener("click", function MyComponent_div_0_Template_div_click_1_listener($event) {
$r3$.ΔrestoreView($s$);
const $comp$ = $r3$.ΔnextContext();
const $s$ = $r3$.ɵɵgetCurrentView();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵelementStart(1, "div", $e_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_div_0_Template_div_click_1_listener($event) {
$r3$.ɵɵrestoreView($s$);
const $comp$ = $r3$.ɵɵnextContext();
return $comp$.onClick($comp$.foo);
});
$r3$.ΔelementEnd();
$r3$.ΔelementStart(2, "button", $e_attrs$);
$r3$.Δlistener("click", function MyComponent_div_0_Template_button_click_2_listener($event) {
$r3$.ΔrestoreView($s$);
const $comp2$ = $r3$.ΔnextContext();
$r3$.ɵɵelementEnd();
$r3$.ɵɵelementStart(2, "button", $e_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_div_0_Template_button_click_2_listener($event) {
$r3$.ɵɵrestoreView($s$);
const $comp2$ = $r3$.ɵɵnextContext();
return $comp2$.onClick2($comp2$.bar);
});
$r3$.ΔelementEnd();
$r3$.ΔelementEnd();
$r3$.ɵɵelementEnd();
$r3$.ɵɵelementEnd();
}
}
// ...
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_div_0_Template, 3, 0, "div", $c0$);
$r3$.ɵɵtemplate(0, MyComponent_div_0_Template, 3, 0, "div", $c0$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngIf", ctx.showing);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngIf", ctx.showing);
}
}
`;
@ -199,7 +199,7 @@ describe('compiler compliance: listen()', () => {
const $e0_attrs$ = [${AttributeMarker.Bindings}, "click"];
const $e2_refs$ = ["user", ""];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors: [["my-component"]],
factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); },
@ -207,16 +207,16 @@ describe('compiler compliance: listen()', () => {
vars: 0,
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
const $s$ = $r3$.ΔgetCurrentView();
$r3$.ΔelementStart(0, "button", $e0_attrs$);
$r3$.Δlistener("click", function MyComponent_Template_button_click_0_listener($event) {
$r3$.ΔrestoreView($s$);
const $user$ = $r3$.Δreference(3);
const $s$ = $r3$.ɵɵgetCurrentView();
$r3$.ɵɵelementStart(0, "button", $e0_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_Template_button_click_0_listener($event) {
$r3$.ɵɵrestoreView($s$);
const $user$ = $r3$.ɵɵreference(3);
return ctx.onClick($user$.value);
});
$r3$.Δtext(1, "Save");
$r3$.ΔelementEnd();
$r3$.Δelement(2, "input", null, $e2_refs$);
$r3$.ɵɵtext(1, "Save");
$r3$.ɵɵelementEnd();
$r3$.ɵɵelement(2, "input", null, $e2_refs$);
}
},
encapsulation: 2

View File

@ -46,7 +46,7 @@ describe('compiler compliance: providers', () => {
const result = compile(files, angularFiles);
expectEmit(
result.source,
'features: [i0.ΔProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}], [GreeterEN])],',
'features: [i0.ɵɵProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}], [GreeterEN])],',
'Incorrect features');
});
@ -79,7 +79,7 @@ describe('compiler compliance: providers', () => {
const result = compile(files, angularFiles);
expectEmit(
result.source,
'features: [i0.ΔProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}])],',
'features: [i0.ɵɵProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}])],',
'Incorrect features');
});
@ -111,7 +111,7 @@ describe('compiler compliance: providers', () => {
const result = compile(files, angularFiles);
expectEmit(
result.source, 'features: [i0.ΔProvidersFeature([], [GreeterEN])],', 'Incorrect features');
result.source, 'features: [i0.ɵɵProvidersFeature([], [GreeterEN])],', 'Incorrect features');
});
it('should not emit the ProvidersFeature feature when no providers', () => {

View File

@ -113,7 +113,7 @@ describe('r3_view_compiler', () => {
};
const bV_call =
`$r3$.ΔinterpolationV([" ",ctx.list[0]," ",ctx.list[1]," ",ctx.list[2]," ",ctx.list[3],
`$r3$.ɵɵinterpolationV([" ",ctx.list[0]," ",ctx.list[1]," ",ctx.list[2]," ",ctx.list[3],
" ",ctx.list[4]," ",ctx.list[5]," ",ctx.list[6]," ",ctx.list[7]," ",ctx.list[8],
" "])`;
const result = compile(files, angularFiles);
@ -143,12 +143,12 @@ describe('r3_view_compiler', () => {
const template = `
template: function MyApp_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δelement(0, "div");
$i0$.ɵɵelement(0, "div");
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("@attr", …);
$i0$.Δproperty("@binding", …);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("@attr", …);
$i0$.ɵɵproperty("@binding", …);
}
}`;
const result = compile(files, angularFiles);
@ -176,10 +176,10 @@ describe('r3_view_compiler', () => {
const template = `
template: function MyApp_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.ɵɵelementStart(0, "div");
$i0$.Δselect(0);
$i0$.Δproperty("@mySelector", …);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("@mySelector", …);
}
}`;
const result = compile(files, angularFiles);

View File

@ -95,7 +95,7 @@ describe('compiler compliance: styling', () => {
};
const template = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
styles: ["div.cool { color: blue; }", ":host.nice p { color: gold; }"],
encapsulation: 1
@ -128,7 +128,7 @@ describe('compiler compliance: styling', () => {
};
const template = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors:[["my-component"]],
factory:function MyComponent_Factory(t){
@ -170,7 +170,7 @@ describe('compiler compliance: styling', () => {
};
const template = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors:[["my-component"]],
factory:function MyComponent_Factory(t){
@ -215,23 +215,23 @@ describe('compiler compliance: styling', () => {
const template = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
consts: 3,
vars: 3,
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.Δelement(0, "div");
$r3$.Δelement(1, "div");
$r3$.Δelement(2, "div");
$r3$.ɵɵelement(0, "div");
$r3$.ɵɵelement(1, "div");
$r3$.ɵɵelement(2, "div");
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("@foo", ctx.exp);
$r3$.Δselect(1);
$r3$.Δproperty("@bar", undefined);
$r3$.Δselect(2);
$r3$.Δproperty("@baz", undefined);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("@foo", ctx.exp);
$r3$.ɵɵselect(1);
$r3$.ɵɵproperty("@bar", undefined);
$r3$.ɵɵselect(2);
$r3$.ɵɵproperty("@baz", undefined);
}
},
encapsulation: 2
@ -277,19 +277,19 @@ describe('compiler compliance: styling', () => {
const template = `
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
consts: 1,
vars: 1,
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δlistener("@myAnimation.start", function MyComponent_Template_div_animation_myAnimation_start_0_listener($event) { return ctx.onStart($event); });
$r3$.Δlistener("@myAnimation.done", function MyComponent_Template_div_animation_myAnimation_done_0_listener($event) { return ctx.onDone($event); });
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵlistener("@myAnimation.start", function MyComponent_Template_div_animation_myAnimation_start_0_listener($event) { return ctx.onStart($event); });
$r3$.ɵɵlistener("@myAnimation.done", function MyComponent_Template_div_animation_myAnimation_done_0_listener($event) { return ctx.onDone($event); });
$r3$.ɵɵelementEnd();
} if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("@myAnimation", ctx.exp);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("@myAnimation", ctx.exp);
}
},
encapsulation: 2,
@ -340,15 +340,15 @@ describe('compiler compliance: styling', () => {
};
const template = `
MyAnimDir.ngDirectiveDef = $r3$.ΔdefineDirective({
MyAnimDir.ngDirectiveDef = $r3$.ɵɵdefineDirective({
hostBindings: function MyAnimDir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(1);
$r3$.ΔcomponentHostSyntheticListener("@myAnim.start", function MyAnimDir_animation_myAnim_start_HostBindingHandler($event) { return ctx.onStart(); });
$r3$.ΔcomponentHostSyntheticListener("@myAnim.done", function MyAnimDir_animation_myAnim_done_HostBindingHandler($event) { return ctx.onDone(); });
$r3$.ɵɵallocHostVars(1);
$r3$.ɵɵcomponentHostSyntheticListener("@myAnim.start", function MyAnimDir_animation_myAnim_start_HostBindingHandler($event) { return ctx.onStart(); });
$r3$.ɵɵcomponentHostSyntheticListener("@myAnim.done", function MyAnimDir_animation_myAnim_done_HostBindingHandler($event) { return ctx.onDone(); });
} if (rf & 2) {
$r3$.ΔcomponentHostSyntheticProperty(elIndex, "@myAnim", $r3$.Δbind(ctx.myAnimState), null, true);
$r3$.ɵɵcomponentHostSyntheticProperty(elIndex, "@myAnim", $r3$.ɵɵbind(ctx.myAnimState), null, true);
}
}
@ -384,14 +384,14 @@ describe('compiler compliance: styling', () => {
const template = `
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(null, null, $r3$.ΔdefaultStyleSanitizer);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(null, null, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap($ctx$.myStyleExp);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap($ctx$.myStyleExp);
$r3$.ɵɵstylingApply();
}
}
`;
@ -450,14 +450,14 @@ describe('compiler compliance: styling', () => {
vars: 1,
template: function MyComponentWithInterpolation_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling();
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling();
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔclassMap($r3$.Δinterpolation1("foo foo-", $ctx$.fooId, ""));
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵclassMap($r3$.ɵɵinterpolation1("foo foo-", $ctx$.fooId, ""));
$r3$.ɵɵstylingApply();
}
}
@ -465,14 +465,14 @@ describe('compiler compliance: styling', () => {
vars: 2,
template: function MyComponentWithMuchosInterpolation_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling();
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling();
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔclassMap($r3$.Δinterpolation2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername, ""));
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵclassMap($r3$.ɵɵinterpolation2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername, ""));
$r3$.ɵɵstylingApply();
}
}
@ -480,14 +480,14 @@ describe('compiler compliance: styling', () => {
vars: 0,
template: function MyComponentWithoutInterpolation_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling();
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling();
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔclassMap($ctx$.exp);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵclassMap($ctx$.exp);
$r3$.ɵɵstylingApply();
}
}
`;
@ -527,7 +527,7 @@ describe('compiler compliance: styling', () => {
const $_c0$ = [${AttributeMarker.Styles}, "opacity", "1", ${AttributeMarker.Bindings}, "style"];
const $_c1$ = ["width", "height"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors:[["my-component"]],
factory:function MyComponent_Factory(t){
@ -537,17 +537,17 @@ describe('compiler compliance: styling', () => {
vars: 1,
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div", $_c0$);
$r3$.Δstyling(null, $_c1$, $r3$.ΔdefaultStyleSanitizer);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div", $_c0$);
$r3$.ɵɵstyling(null, $_c1$, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap($ctx$.myStyleExp);
$r3$.ΔstyleProp(0, $ctx$.myWidth);
$r3$.ΔstyleProp(1, $ctx$.myHeight);
$r3$.ΔstylingApply();
$r3$.ΔelementAttribute(0, "style", $r3$.Δbind("border-width: 10px"), $r3$.ΔsanitizeStyle);
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap($ctx$.myStyleExp);
$r3$.ɵɵstyleProp(0, $ctx$.myWidth);
$r3$.ɵɵstyleProp(1, $ctx$.myHeight);
$r3$.ɵɵstylingApply();
$r3$.ɵɵelementAttribute(0, "style", $r3$.ɵɵbind("border-width: 10px"), $r3$.ɵɵsanitizeStyle);
}
},
encapsulation: 2
@ -587,7 +587,7 @@ describe('compiler compliance: styling', () => {
}
}
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors: [["my-component"]],
factory: function MyComponent_Factory(t) {
@ -597,14 +597,14 @@ describe('compiler compliance: styling', () => {
vars: 0,
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(null, _c0, $r3$.ΔdefaultStyleSanitizer);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(null, _c0, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleProp(0, ctx.myImage);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleProp(0, ctx.myImage);
$r3$.ɵɵstylingApply();
}
},
encapsulation: 2
@ -639,14 +639,14 @@ describe('compiler compliance: styling', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(null, _c0);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(null, _c0);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleProp(0, 12, "px");
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleProp(0, 12, "px");
$r3$.ɵɵstylingApply();
}
}
`;
@ -705,14 +705,14 @@ describe('compiler compliance: styling', () => {
const template = `
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling();
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling();
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔclassMap($ctx$.myClassExp);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵclassMap($ctx$.myClassExp);
$r3$.ɵɵstylingApply();
}
}
`;
@ -752,7 +752,7 @@ describe('compiler compliance: styling', () => {
const $e0_attrs$ = [${AttributeMarker.Classes}, "grape", ${AttributeMarker.Bindings}, "class"];
const $e0_bindings$ = ["apple", "orange"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors:[["my-component"]],
factory:function MyComponent_Factory(t){
@ -762,17 +762,17 @@ describe('compiler compliance: styling', () => {
vars: 1,
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div", $e0_attrs$);
$r3$.Δstyling($e0_bindings$);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div", $e0_attrs$);
$r3$.ɵɵstyling($e0_bindings$);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔclassMap($ctx$.myClassExp);
$r3$.ΔclassProp(0, $ctx$.yesToApple);
$r3$.ΔclassProp(1, $ctx$.yesToOrange);
$r3$.ΔstylingApply();
$r3$.ΔelementAttribute(0, "class", $r3$.Δbind("banana"));
$r3$.ɵɵselect(0);
$r3$.ɵɵclassMap($ctx$.myClassExp);
$r3$.ɵɵclassProp(0, $ctx$.yesToApple);
$r3$.ɵɵclassProp(1, $ctx$.yesToOrange);
$r3$.ɵɵstylingApply();
$r3$.ɵɵelementAttribute(0, "class", $r3$.ɵɵbind("banana"));
}
},
encapsulation: 2
@ -808,7 +808,7 @@ describe('compiler compliance: styling', () => {
const template = `
const $e0_attrs$ = [${AttributeMarker.Classes}, "foo", ${AttributeMarker.Styles}, "width", "100px", ${AttributeMarker.Bindings}, "class", "style"];
MyComponent.ngComponentDef = $r3$.ΔdefineComponent({
MyComponent.ngComponentDef = $r3$.ɵɵdefineComponent({
type: MyComponent,
selectors:[["my-component"]],
factory:function MyComponent_Factory(t){
@ -818,12 +818,12 @@ describe('compiler compliance: styling', () => {
vars: 2,
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.Δelement(0, "div", $e0_attrs$);
$r3$.ɵɵelement(0, "div", $e0_attrs$);
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔelementAttribute(0, "class", $r3$.Δbind("round"));
$r3$.ΔelementAttribute(0, "style", $r3$.Δbind("height:100px"), $r3$.ΔsanitizeStyle);
$r3$.ɵɵselect(0);
$r3$.ɵɵelementAttribute(0, "class", $r3$.ɵɵbind("round"));
$r3$.ɵɵelementAttribute(0, "style", $r3$.ɵɵbind("height:100px"), $r3$.ɵɵsanitizeStyle);
}
},
encapsulation: 2
@ -884,15 +884,15 @@ describe('compiler compliance: styling', () => {
const template = `
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(null, null, $r3$.ΔdefaultStyleSanitizer);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(null, null, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap($ctx$.myStyleExp);
$r3$.ΔclassMap($ctx$.myClassExp);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap($ctx$.myStyleExp);
$r3$.ɵɵclassMap($ctx$.myClassExp);
$r3$.ɵɵstylingApply();
}
}
`;
@ -926,17 +926,17 @@ describe('compiler compliance: styling', () => {
const template = `
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(null, null, $r3$.ΔdefaultStyleSanitizer);
$r3$.Δpipe(1, "stylePipe");
$r3$.Δpipe(2, "classPipe");
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(null, null, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵpipe(1, "stylePipe");
$r3$.ɵɵpipe(2, "classPipe");
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap($r3$.ΔpipeBind1(1, 0, $ctx$.myStyleExp));
$r3$.ΔclassMap($r3$.ΔpipeBind1(2, 2, $ctx$.myClassExp));
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap($r3$.ɵɵpipeBind1(1, 0, $ctx$.myStyleExp));
$r3$.ɵɵclassMap($r3$.ɵɵpipeBind1(2, 2, $ctx$.myClassExp));
$r3$.ɵɵstylingApply();
}
}
`;
@ -981,25 +981,25 @@ describe('compiler compliance: styling', () => {
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling($e0_classBindings$, $e0_styleBindings$, $r3$.ΔdefaultStyleSanitizer);
$r3$.Δpipe(1, "pipe");
$r3$.Δpipe(2, "pipe");
$r3$.Δpipe(3, "pipe");
$r3$.Δpipe(4, "pipe");
$r3$.Δtext(5);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling($e0_classBindings$, $e0_styleBindings$, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵpipe(1, "pipe");
$r3$.ɵɵpipe(2, "pipe");
$r3$.ɵɵpipe(3, "pipe");
$r3$.ɵɵpipe(4, "pipe");
$r3$.ɵɵtext(5);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap($r3$.ΔpipeBind2(1, 1, $ctx$.myStyleExp, 1000));
$r3$.ΔclassMap($e2_styling$);
$r3$.ΔstyleProp(0, $r3$.ΔpipeBind2(2, 4, $ctx$.barExp, 3000));
$r3$.ΔstyleProp(1, $r3$.ΔpipeBind2(3, 7, $ctx$.bazExp, 4000));
$r3$.ΔclassProp(0, $r3$.ΔpipeBind2(4, 10, $ctx$.fooExp, 2000));
$r3$.ΔstylingApply();
$r3$.Δselect(5);
$r3$.ΔtextBinding(5, $r3$.Δinterpolation1(" ", $ctx$.item, ""));
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap($r3$.ɵɵpipeBind2(1, 1, $ctx$.myStyleExp, 1000));
$r3$.ɵɵclassMap($e2_styling$);
$r3$.ɵɵstyleProp(0, $r3$.ɵɵpipeBind2(2, 4, $ctx$.barExp, 3000));
$r3$.ɵɵstyleProp(1, $r3$.ɵɵpipeBind2(3, 7, $ctx$.bazExp, 4000));
$r3$.ɵɵclassProp(0, $r3$.ɵɵpipeBind2(4, 10, $ctx$.fooExp, 2000));
$r3$.ɵɵstylingApply();
$r3$.ɵɵselect(5);
$r3$.ɵɵtextBinding(5, $r3$.ɵɵinterpolation1(" ", $ctx$.item, ""));
}
}
`;
@ -1041,18 +1041,18 @@ describe('compiler compliance: styling', () => {
template: function MyComponent_Template(rf, $ctx$) {
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleProp(0, $ctx$.w1);
$r3$.ΔstylingApply();
$r3$.Δselect(1);
$r3$.ΔstyleProp(0, $ctx$.h1);
$r3$.ΔstylingApply();
$r3$.Δselect(2);
$r3$.ΔclassProp(0, $ctx$.a1);
$r3$.ΔstylingApply();
$r3$.Δselect(3);
$r3$.ΔclassProp(0, $ctx$.r1);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleProp(0, $ctx$.w1);
$r3$.ɵɵstylingApply();
$r3$.ɵɵselect(1);
$r3$.ɵɵstyleProp(0, $ctx$.h1);
$r3$.ɵɵstylingApply();
$r3$.ɵɵselect(2);
$r3$.ɵɵclassProp(0, $ctx$.a1);
$r3$.ɵɵstylingApply();
$r3$.ɵɵselect(3);
$r3$.ɵɵclassProp(0, $ctx$.r1);
$r3$.ɵɵstylingApply();
}
}
`;
@ -1104,15 +1104,15 @@ describe('compiler compliance: styling', () => {
hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔelementHostAttrs($e0_attrs$);
$r3$.Δstyling($e0_classBindings$, $e0_styleBindings$, $r3$.ΔdefaultStyleSanitizer);
$r3$.ɵɵelementHostAttrs($e0_attrs$);
$r3$.ɵɵstyling($e0_classBindings$, $e0_styleBindings$, $r3$.ɵɵdefaultStyleSanitizer);
}
if (rf & 2) {
$r3$.ΔstyleMap(ctx.myStyle);
$r3$.ΔclassMap(ctx.myClass);
$r3$.ΔstyleProp(0, ctx.myColorProp);
$r3$.ΔclassProp(0, ctx.myFooClass);
$r3$.ΔstylingApply();
$r3$.ɵɵstyleMap(ctx.myStyle);
$r3$.ɵɵclassMap(ctx.myClass);
$r3$.ɵɵstyleProp(0, ctx.myColorProp);
$r3$.ɵɵclassProp(0, ctx.myFooClass);
$r3$.ɵɵstylingApply();
}
},
consts: 0,
@ -1166,16 +1166,16 @@ describe('compiler compliance: styling', () => {
hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.Δstyling(_c0, _c1, $r3$.ΔdefaultStyleSanitizer);
$r3$.ɵɵstyling(_c0, _c1, $r3$.ɵɵdefaultStyleSanitizer);
}
if (rf & 2) {
$r3$.ΔstyleMap(ctx.myStyle);
$r3$.ΔclassMap(ctx.myClasses);
$r3$.ΔstyleProp(0, ctx.myHeightProp, "pt");
$r3$.ΔstyleProp(1, ctx.myWidthProp);
$r3$.ΔclassProp(0, ctx.myBarClass);
$r3$.ΔclassProp(1, ctx.myFooClass);
$r3$.ΔstylingApply();
$r3$.ɵɵstyleMap(ctx.myStyle);
$r3$.ɵɵclassMap(ctx.myClasses);
$r3$.ɵɵstyleProp(0, ctx.myHeightProp, "pt");
$r3$.ɵɵstyleProp(1, ctx.myWidthProp);
$r3$.ɵɵclassProp(0, ctx.myBarClass);
$r3$.ɵɵclassProp(1, ctx.myFooClass);
$r3$.ɵɵstylingApply();
}
},
consts: 0,
@ -1229,17 +1229,17 @@ describe('compiler compliance: styling', () => {
function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.ΔelementStart(0, "div");
$r3$.Δstyling(_c2, _c3, $r3$.ΔdefaultStyleSanitizer);
$r3$.ΔelementEnd();
$r3$.ɵɵelementStart(0, "div");
$r3$.ɵɵstyling(_c2, _c3, $r3$.ɵɵdefaultStyleSanitizer);
$r3$.ɵɵelementEnd();
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.ΔstyleMap(ctx.myStyleExp);
$r3$.ΔclassMap(ctx.myClassExp);
$r3$.ΔstyleProp(0, ctx.myHeightExp, null, true);
$r3$.ΔclassProp(0, ctx.myBarClassExp, true);
$r3$.ΔstylingApply();
$r3$.ɵɵselect(0);
$r3$.ɵɵstyleMap(ctx.myStyleExp);
$r3$.ɵɵclassMap(ctx.myClassExp);
$r3$.ɵɵstyleProp(0, ctx.myHeightExp, null, true);
$r3$.ɵɵclassProp(0, ctx.myBarClassExp, true);
$r3$.ɵɵstylingApply();
}
},
`;
@ -1250,14 +1250,14 @@ describe('compiler compliance: styling', () => {
hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.Δstyling(_c0, _c1, $r3$.ΔdefaultStyleSanitizer);
$r3$.ɵɵstyling(_c0, _c1, $r3$.ɵɵdefaultStyleSanitizer);
}
if (rf & 2) {
$r3$.ΔstyleMap(ctx.myStyleExp);
$r3$.ΔclassMap(ctx.myClassExp);
$r3$.ΔstyleProp(0, ctx.myWidthExp, null, true);
$r3$.ΔclassProp(0, ctx.myFooClassExp, true);
$r3$.ΔstylingApply();
$r3$.ɵɵstyleMap(ctx.myStyleExp);
$r3$.ɵɵclassMap(ctx.myClassExp);
$r3$.ɵɵstyleProp(0, ctx.myWidthExp, null, true);
$r3$.ɵɵclassProp(0, ctx.myFooClassExp, true);
$r3$.ɵɵstylingApply();
}
},
`;
@ -1319,33 +1319,33 @@ describe('compiler compliance: styling', () => {
function ClassDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.Δstyling();
$r3$.ɵɵstyling();
}
if (rf & 2) {
$r3$.ΔclassMap(ctx.myClassMap);
$r3$.ΔstylingApply();
$r3$.ɵɵclassMap(ctx.myClassMap);
$r3$.ɵɵstylingApply();
}
}
function WidthDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.Δstyling($widthDir_classes$, $widthDir_styles$);
$r3$.ɵɵstyling($widthDir_classes$, $widthDir_styles$);
}
if (rf & 2) {
$r3$.ΔstyleProp(0, ctx.myWidth);
$r3$.ΔclassProp(0, ctx.myFooClass);
$r3$.ΔstylingApply();
$r3$.ɵɵstyleProp(0, ctx.myWidth);
$r3$.ɵɵclassProp(0, ctx.myFooClass);
$r3$.ɵɵstylingApply();
}
}
function HeightDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.Δstyling($heightDir_classes$, $heightDir_styles$);
$r3$.ɵɵstyling($heightDir_classes$, $heightDir_styles$);
}
if (rf & 2) {
$r3$.ΔstyleProp(0, ctx.myHeight);
$r3$.ΔclassProp(0, ctx.myBarClass);
$r3$.ΔstylingApply();
$r3$.ɵɵstyleProp(0, ctx.myHeight);
$r3$.ɵɵclassProp(0, ctx.myBarClass);
$r3$.ɵɵstylingApply();
}
}
@ -1399,16 +1399,16 @@ describe('compiler compliance: styling', () => {
hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(2);
$r3$.ΔelementHostAttrs($_c0$);
$r3$.Δstyling(null, null, $r3$.ΔdefaultStyleSanitizer);
$r3$.ɵɵallocHostVars(2);
$r3$.ɵɵelementHostAttrs($_c0$);
$r3$.ɵɵstyling(null, null, $r3$.ɵɵdefaultStyleSanitizer);
}
if (rf & 2) {
$r3$.Δproperty("id", ctx.id, null, true);
$r3$.Δproperty("title", ctx.title, null, true);
$r3$.ΔstyleMap(ctx.myStyle);
$r3$.ΔclassMap(ctx.myClass);
$r3$.ΔstylingApply();
$r3$.ɵɵproperty("id", ctx.id, null, true);
$r3$.ɵɵproperty("title", ctx.title, null, true);
$r3$.ɵɵstyleMap(ctx.myStyle);
$r3$.ɵɵclassMap(ctx.myClass);
$r3$.ɵɵstylingApply();
}
}
`;
@ -1447,15 +1447,15 @@ describe('compiler compliance: styling', () => {
hostBindings: function WidthDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
$r3$.ΔallocHostVars(2);
$r3$.Δstyling($_c0$, $_c1$);
$r3$.ɵɵallocHostVars(2);
$r3$.ɵɵstyling($_c0$, $_c1$);
}
if (rf & 2) {
$r3$.Δproperty("id", ctx.id, null, true);
$r3$.Δproperty("title", ctx.title, null, true);
$r3$.ΔstyleProp(0, ctx.myWidth);
$r3$.ΔclassProp(0, ctx.myFooClass);
$r3$.ΔstylingApply();
$r3$.ɵɵproperty("id", ctx.id, null, true);
$r3$.ɵɵproperty("title", ctx.title, null, true);
$r3$.ɵɵstyleProp(0, ctx.myWidth);
$r3$.ɵɵclassProp(0, ctx.myFooClass);
$r3$.ɵɵstylingApply();
}
}
`;

View File

@ -56,65 +56,65 @@ describe('compiler compliance: template', () => {
function MyComponent_ul_0_li_1_div_1_Template(rf, ctx) {
if (rf & 1) {
const $s$ = $i0$.ΔgetCurrentView();
$i0$.ΔelementStart(0, "div", $c2$);
$i0$.Δlistener("click", function MyComponent_ul_0_li_1_div_1_Template_div_click_0_listener($event){
$i0$.ΔrestoreView($s$);
const $s$ = $i0$.ɵɵgetCurrentView();
$i0$.ɵɵelementStart(0, "div", $c2$);
$i0$.ɵɵlistener("click", function MyComponent_ul_0_li_1_div_1_Template_div_click_0_listener($event){
$i0$.ɵɵrestoreView($s$);
const $inner$ = ctx.$implicit;
const $middle$ = $i0$.ΔnextContext().$implicit;
const $outer$ = $i0$.ΔnextContext().$implicit;
const $myComp$ = $i0$.ΔnextContext();
const $middle$ = $i0$.ɵɵnextContext().$implicit;
const $outer$ = $i0$.ɵɵnextContext().$implicit;
const $myComp$ = $i0$.ɵɵnextContext();
return $myComp$.onClick($outer$, $middle$, $inner$);
});
$i0$.Δtext(1);
$i0$.ΔelementEnd();
$i0$.ɵɵtext(1);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $inner1$ = ctx.$implicit;
const $middle1$ = $i0$.ΔnextContext().$implicit;
const $outer1$ = $i0$.ΔnextContext().$implicit;
const $myComp1$ = $i0$.ΔnextContext();
$i0$.Δselect(0);
$i0$.Δproperty("title", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component));
$r3$.Δselect(1);
$i0$.ΔtextBinding(1, $i0$.Δinterpolation1(" ", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component), " "));
const $middle1$ = $i0$.ɵɵnextContext().$implicit;
const $outer1$ = $i0$.ɵɵnextContext().$implicit;
const $myComp1$ = $i0$.ɵɵnextContext();
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("title", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component));
$r3$.ɵɵselect(1);
$i0$.ɵɵtextBinding(1, $i0$.ɵɵinterpolation1(" ", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component), " "));
}
}
function MyComponent_ul_0_li_1_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "li");
$i0$.Δtemplate(1, MyComponent_ul_0_li_1_div_1_Template, 2, 2, "div", $c1$);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "li");
$i0$.ɵɵtemplate(1, MyComponent_ul_0_li_1_div_1_Template, 2, 2, "div", $c1$);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $myComp2$ = $i0$.ΔnextContext(2);
$r3$.Δselect(1);
$i0$.Δproperty("ngForOf", $myComp2$.items);
const $myComp2$ = $i0$.ɵɵnextContext(2);
$r3$.ɵɵselect(1);
$i0$.ɵɵproperty("ngForOf", $myComp2$.items);
}
}
function MyComponent_ul_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "ul");
$i0$.Δtemplate(1, MyComponent_ul_0_li_1_Template, 2, 1, "li", $c0$);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "ul");
$i0$.ɵɵtemplate(1, MyComponent_ul_0_li_1_Template, 2, 1, "li", $c0$);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $outer2$ = ctx.$implicit;
$r3$.Δselect(1);
$i0$.Δproperty("ngForOf", $outer2$.items);
$r3$.ɵɵselect(1);
$i0$.ɵɵproperty("ngForOf", $outer2$.items);
}
}
// ...
template:function MyComponent_Template(rf, ctx){
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_ul_0_Template, 2, 1, "ul", $c0$);
$i0$.ɵɵtemplate(0, MyComponent_ul_0_Template, 2, 1, "ul", $c0$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngForOf", ctx.items);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngForOf", ctx.items);
}
}`;
@ -152,26 +152,26 @@ describe('compiler compliance: template', () => {
function MyComponent_div_0_Template(rf, ctx) {
if (rf & 1) {
const $s$ = $r3$.ΔgetCurrentView();
$r3$.ΔelementStart(0, "div", $e_attrs$);
$r3$.Δlistener("click", function MyComponent_div_0_Template_div_click_0_listener($event) {
$r3$.ΔrestoreView($s$);
const $s$ = $r3$.ɵɵgetCurrentView();
$r3$.ɵɵelementStart(0, "div", $e_attrs$);
$r3$.ɵɵlistener("click", function MyComponent_div_0_Template_div_click_0_listener($event) {
$r3$.ɵɵrestoreView($s$);
const $d$ = ctx.$implicit;
const $i$ = ctx.index;
const $comp$ = $r3$.ΔnextContext();
const $comp$ = $r3$.ɵɵnextContext();
return $comp$._handleClick($d$, $i$);
});
$r3$.ΔelementEnd();
$r3$.ɵɵelementEnd();
}
}
// ...
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$r3$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $t0_attrs$);
$r3$.ɵɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $t0_attrs$);
}
if (rf & 2) {
$r3$.Δselect(0);
$r3$.Δproperty("ngForOf", ctx._data);
$r3$.ɵɵselect(0);
$r3$.ɵɵproperty("ngForOf", ctx._data);
}
}
`;
@ -207,25 +207,25 @@ describe('compiler compliance: template', () => {
function MyComponent_span_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "span");
$i0$.Δtext(1);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "span");
$i0$.ɵɵtext(1);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $item$ = ctx.$implicit;
const $i$ = ctx.index;
$r3$.Δselect(1);
$i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $i$, " - ", $item$, " "));
$r3$.ɵɵselect(1);
$i0$.ɵɵtextBinding(1, $i0$.ɵɵinterpolation2(" ", $i$, " - ", $item$, " "));
}
}
// ...
template:function MyComponent_Template(rf, ctx){
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_span_0_Template, 2, 2, "span", _c0);
$i0$.ɵɵtemplate(0, MyComponent_span_0_Template, 2, 2, "span", _c0);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngForOf", ctx.items);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngForOf", ctx.items);
}
}`;
@ -263,40 +263,40 @@ describe('compiler compliance: template', () => {
function MyComponent_div_0_span_1_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "span");
$i0$.Δtext(1);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "span");
$i0$.ɵɵtext(1);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $div$ = $i0$.ΔnextContext();
const $div$ = $i0$.ɵɵnextContext();
const $i$ = $div$.index;
const $item$ = $div$.$implicit;
$r3$.Δselect(1);
$i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $i$, " - ", $item$, " "));
$r3$.ɵɵselect(1);
$i0$.ɵɵtextBinding(1, $i0$.ɵɵinterpolation2(" ", $i$, " - ", $item$, " "));
}
}
function MyComponent_div_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.Δtemplate(1, MyComponent_div_0_span_1_Template, 2, 2, "span", $c1$);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵtemplate(1, MyComponent_div_0_span_1_Template, 2, 2, "span", $c1$);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $app$ = $i0$.ΔnextContext();
$r3$.Δselect(1);
$i0$.Δproperty("ngIf", $app$.showing);
const $app$ = $i0$.ɵɵnextContext();
$r3$.ɵɵselect(1);
$i0$.ɵɵproperty("ngIf", $app$.showing);
}
}
// ...
template:function MyComponent_Template(rf, ctx){
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$);
$i0$.ɵɵtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngForOf", ctx.items);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngForOf", ctx.items);
}
}`;
@ -335,51 +335,51 @@ describe('compiler compliance: template', () => {
const $c0$ = [${AttributeMarker.Template}, "ngFor", "ngForOf"];
function MyComponent_div_0_div_1_div_1_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.Δtext(1);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵtext(1);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $middle$ = $i0$.ΔnextContext().$implicit;
const $myComp$ = $i0$.ΔnextContext(2);
$r3$.Δselect(1);
$i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $middle$.value, " - ", $myComp$.name, " "));
const $middle$ = $i0$.ɵɵnextContext().$implicit;
const $myComp$ = $i0$.ɵɵnextContext(2);
$r3$.ɵɵselect(1);
$i0$.ɵɵtextBinding(1, $i0$.ɵɵinterpolation2(" ", $middle$.value, " - ", $myComp$.name, " "));
}
}
function MyComponent_div_0_div_1_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.Δtemplate(1, MyComponent_div_0_div_1_div_1_Template, 2, 2, "div", $c0$);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵtemplate(1, MyComponent_div_0_div_1_div_1_Template, 2, 2, "div", $c0$);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $middle$ = ctx.$implicit;
$r3$.Δselect(1);
$i0$.Δproperty("ngForOf", $middle$.items);
$r3$.ɵɵselect(1);
$i0$.ɵɵproperty("ngForOf", $middle$.items);
}
}
function MyComponent_div_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.ΔelementStart(0, "div");
$i0$.Δtemplate(1, MyComponent_div_0_div_1_Template, 2, 1, "div", $c0$);
$i0$.ΔelementEnd();
$i0$.ɵɵelementStart(0, "div");
$i0$.ɵɵtemplate(1, MyComponent_div_0_div_1_Template, 2, 1, "div", $c0$);
$i0$.ɵɵelementEnd();
}
if (rf & 2) {
const $outer$ = ctx.$implicit;
$r3$.Δselect(1);
$i0$.Δproperty("ngForOf", $outer$.items);
$r3$.ɵɵselect(1);
$i0$.ɵɵproperty("ngForOf", $outer$.items);
}
}
// ...
template:function MyComponent_Template(rf, ctx){
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$);
$i0$.ɵɵtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngForOf", ctx.items);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngForOf", ctx.items);
}
}`;
@ -414,7 +414,7 @@ describe('compiler compliance: template', () => {
function MyComponent_ng_template_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtext(0, " some-content ");
$i0$.ɵɵtext(0, " some-content ");
}
}
@ -422,11 +422,11 @@ describe('compiler compliance: template', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $c0$);
$i0$.ɵɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $c0$);
}
if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("boundAttr", ctx.b);
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("boundAttr", ctx.b);
}
}`;
@ -459,7 +459,7 @@ describe('compiler compliance: template', () => {
function MyComponent_ng_template_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtext(0, "some-content");
$i0$.ɵɵtext(0, "some-content");
}
}
@ -467,7 +467,7 @@ describe('compiler compliance: template', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", null, $t0_refs$, $i0$.ΔtemplateRefExtractor);
$i0$.ɵɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", null, $t0_refs$, $i0$.ɵɵtemplateRefExtractor);
}
}`;
@ -504,8 +504,8 @@ describe('compiler compliance: template', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $t0_attrs$);
$i0$.Δlistener("outDirective", function MyComponent_Template_ng_template_outDirective_0_listener($event) { return $event.doSth(); });
$i0$.ɵɵtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $t0_attrs$);
$i0$.ɵɵlistener("outDirective", function MyComponent_Template_ng_template_outDirective_0_listener($event) { return $event.doSth(); });
}
}`;
@ -705,7 +705,7 @@ describe('compiler compliance: template', () => {
function MyComponent_div_0_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δelement(0, "div");
$i0$.ɵɵelement(0, "div");
}
}
@ -713,11 +713,11 @@ describe('compiler compliance: template', () => {
template: function MyComponent_Template(rf, ctx) {
if (rf & 1) {
$i0$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0$);
$i0$.Δpipe(1, "pipe");
$i0$.ɵɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0$);
$i0$.ɵɵpipe(1, "pipe");
} if (rf & 2) {
$i0$.Δselect(0);
$i0$.Δproperty("ngIf", $i0$.ΔpipeBind1(1, 1, ctx.val));
$i0$.ɵɵselect(0);
$i0$.ɵɵproperty("ngIf", $i0$.ɵɵpipeBind1(1, 1, ctx.val));
}
}`;

View File

@ -2113,7 +2113,7 @@ describe('ngc transformer command-line', () => {
})
export class Service {}
`);
expect(source).toMatch(/ngInjectableDef = .+\.ΔdefineInjectable\(/);
expect(source).toMatch(/ngInjectableDef = .+\.ɵɵdefineInjectable\(/);
expect(source).toMatch(/ngInjectableDef.*token: Service/);
expect(source).toMatch(/ngInjectableDef.*providedIn: .+\.Module/);
});
@ -2169,7 +2169,7 @@ describe('ngc transformer command-line', () => {
})
export class Service {}
`);
expect(source).toMatch(/ngInjectableDef.*return ..\.Δinject\(Existing\)/);
expect(source).toMatch(/ngInjectableDef.*return ..\.ɵɵinject\(Existing\)/);
});
it('compiles a useFactory InjectableDef with optional dep', () => {
@ -2189,7 +2189,7 @@ describe('ngc transformer command-line', () => {
constructor(e: Existing|null) {}
}
`);
expect(source).toMatch(/ngInjectableDef.*return ..\(..\.Δinject\(Existing, 8\)/);
expect(source).toMatch(/ngInjectableDef.*return ..\(..\.ɵɵinject\(Existing, 8\)/);
});
it('compiles a useFactory InjectableDef with skip-self dep', () => {
@ -2209,7 +2209,7 @@ describe('ngc transformer command-line', () => {
constructor(e: Existing) {}
}
`);
expect(source).toMatch(/ngInjectableDef.*return ..\(..\.Δinject\(Existing, 4\)/);
expect(source).toMatch(/ngInjectableDef.*return ..\(..\.ɵɵinject\(Existing, 4\)/);
});
it('compiles a service that depends on a token', () => {
@ -2226,7 +2226,7 @@ describe('ngc transformer command-line', () => {
constructor(@Inject(TOKEN) value: boolean) {}
}
`);
expect(source).toMatch(/ngInjectableDef = .+\.ΔdefineInjectable\(/);
expect(source).toMatch(/ngInjectableDef = .+\.ɵɵdefineInjectable\(/);
expect(source).toMatch(/ngInjectableDef.*token: Service/);
expect(source).toMatch(/ngInjectableDef.*providedIn: .+\.Module/);
});
@ -2253,7 +2253,7 @@ describe('ngc transformer command-line', () => {
constructor(@Inject(TOKEN) token: any) {}
}
`);
expect(source).toMatch(/new Service\(i0\.Δinject\(exports\.TOKEN\)\);/);
expect(source).toMatch(/new Service\(i0\.ɵɵinject\(exports\.TOKEN\)\);/);
});
});

View File

@ -62,9 +62,9 @@ export function forwardRef<T>(fn: () => T): T {
export interface SimpleChanges { [propName: string]: any; }
export type ΔNgModuleDefWithMeta<ModuleT, DeclarationsT, ImportsT, ExportsT> = any;
export type ΔDirectiveDefWithMeta<DirT, SelectorT, ExportAsT, InputsT, OutputsT, QueriesT> = any;
export type ΔPipeDefWithMeta<PipeT, NameT> = any;
export type ɵɵNgModuleDefWithMeta<ModuleT, DeclarationsT, ImportsT, ExportsT> = any;
export type ɵɵDirectiveDefWithMeta<DirT, SelectorT, ExportAsT, InputsT, OutputsT, QueriesT> = any;
export type ɵɵPipeDefWithMeta<PipeT, NameT> = any;
export enum ViewEncapsulation {
Emulated = 0,

View File

@ -18,12 +18,12 @@ const varRegExp = (name: string): RegExp => new RegExp(`var \\w+ = \\[\"${name}\
const viewQueryRegExp = (descend: boolean, ref?: string): RegExp => {
const maybeRef = ref ? `${ref}` : `null`;
return new RegExp(`i0\\.ΔviewQuery\\(\\w+, ${descend}, ${maybeRef}\\)`);
return new RegExp(`i0\\.ɵɵviewQuery\\(\\w+, ${descend}, ${maybeRef}\\)`);
};
const contentQueryRegExp = (predicate: string, descend: boolean, ref?: string): RegExp => {
const maybeRef = ref ? `${ref}` : `null`;
return new RegExp(`i0\\.ΔcontentQuery\\(dirIndex, ${predicate}, ${descend}, ${maybeRef}\\)`);
return new RegExp(`i0\\.ɵɵcontentQuery\\(dirIndex, ${predicate}, ${descend}, ${maybeRef}\\)`);
};
const setClassMetadataRegExp = (expectedType: string): RegExp =>
@ -56,8 +56,8 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toContain('Service.ngInjectableDef =');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Dep>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Service>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Dep>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Service>;');
});
it('should compile Injectables with a generic service', () => {
@ -75,7 +75,7 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('Store.ngInjectableDef =');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Store<any>>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Store<any>>;');
});
it('should compile Injectables with providedIn without errors', () => {
@ -99,11 +99,11 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toContain('Dep.ngInjectableDef =');
expect(jsContents).toContain('Service.ngInjectableDef =');
expect(jsContents)
.toContain('return new (t || Service)(i0.Δinject(Dep)); }, providedIn: \'root\' });');
.toContain('return new (t || Service)(i0.ɵɵinject(Dep)); }, providedIn: \'root\' });');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Dep>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Service>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Dep>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Service>;');
});
it('should compile Injectables with providedIn and factory without errors', () => {
@ -128,7 +128,7 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toContain('return r; }, providedIn: \'root\' });');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Service>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Service>;');
});
it('should compile Injectables with providedIn and factory with deps without errors', () => {
@ -151,13 +151,13 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('Service.ngInjectableDef =');
expect(jsContents).toContain('factory: function Service_Factory(t) { var r = null; if (t) {');
expect(jsContents).toContain('(r = new t(i0.Δinject(Dep)));');
expect(jsContents).toContain('(r = new t(i0.ɵɵinject(Dep)));');
expect(jsContents)
.toContain('(r = (function (dep) { return new Service(dep); })(i0.Δinject(Dep)));');
.toContain('(r = (function (dep) { return new Service(dep); })(i0.ɵɵinject(Dep)));');
expect(jsContents).toContain('return r; }, providedIn: \'root\' });');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef<Service>;');
expect(dtsContents).toContain('static ngInjectableDef: i0.ɵɵInjectableDef<Service>;');
});
it('should compile @Injectable with an @Optional dependency', () => {
@ -193,13 +193,13 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵɵdefineComponent');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngComponentDef: i0.ΔComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
'static ngComponentDef: i0.ɵɵComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
});
it('should compile Components (dynamic inline template) without errors', () => {
@ -217,13 +217,13 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵɵdefineComponent');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngComponentDef: i0.ΔComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
'static ngComponentDef: i0.ɵɵComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
});
it('should compile Components (function call inline template) without errors', () => {
@ -244,13 +244,13 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent');
expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵɵdefineComponent');
expect(jsContents).not.toContain('__decorate');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngComponentDef: i0.ΔComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
'static ngComponentDef: i0.ɵɵComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
});
it('should compile Components (external template) without errors', () => {
@ -351,13 +351,13 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('TestBase.ngBaseDef = i0.ΔdefineBase');
expect(jsContents).toContain('TestComponent.ngComponentDef = i0.ΔdefineComponent');
expect(jsContents).toContain('TestDirective.ngDirectiveDef = i0.ΔdefineDirective');
expect(jsContents).toContain('TestPipe.ngPipeDef = i0.ΔdefinePipe');
expect(jsContents).toContain('TestInjectable.ngInjectableDef = i0.ΔdefineInjectable');
expect(jsContents).toContain('MyModule.ngModuleDef = i0.ΔdefineNgModule');
expect(jsContents).toContain('MyModule.ngInjectorDef = i0.ΔdefineInjector');
expect(jsContents).toContain('TestBase.ngBaseDef = i0.ɵɵdefineBase');
expect(jsContents).toContain('TestComponent.ngComponentDef = i0.ɵɵdefineComponent');
expect(jsContents).toContain('TestDirective.ngDirectiveDef = i0.ɵɵdefineDirective');
expect(jsContents).toContain('TestPipe.ngPipeDef = i0.ɵɵdefinePipe');
expect(jsContents).toContain('TestInjectable.ngInjectableDef = i0.ɵɵdefineInjectable');
expect(jsContents).toContain('MyModule.ngModuleDef = i0.ɵɵdefineNgModule');
expect(jsContents).toContain('MyModule.ngInjectorDef = i0.ɵɵdefineInjector');
expect(jsContents).toContain('inputs: { input: "input" }');
expect(jsContents).toContain('outputs: { output: "output" }');
});
@ -442,25 +442,26 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule, bootstrap: [TestCmp] });');
expect(jsContents)
.toContain('/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { declarations: [TestCmp] });');
.toContain('i0.ɵɵdefineNgModule({ type: TestModule, bootstrap: [TestCmp] });');
expect(jsContents)
.toContain('/*@__PURE__*/ i0.ɵɵsetNgModuleScope(TestModule, { declarations: [TestCmp] });');
expect(jsContents)
.toContain(
'i0.ΔdefineInjector({ factory: ' +
'i0.ɵɵdefineInjector({ factory: ' +
'function TestModule_Factory(t) { return new (t || TestModule)(); } });');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngComponentDef: i0.ΔComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
'static ngComponentDef: i0.ɵɵComponentDefWithMeta<TestCmp, "test-cmp", never, {}, {}, never>');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, [typeof TestCmp], never, never>');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, [typeof TestCmp], never, never>');
expect(dtsContents).not.toContain('__decorate');
});
it('should not emit a ΔsetNgModuleScope call when no scope metadata is present', () => {
it('should not emit a ɵɵsetNgModuleScope call when no scope metadata is present', () => {
env.tsconfig();
env.write('test.ts', `
import {NgModule} from '@angular/core';
@ -472,8 +473,8 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).not.toContain('ΔsetNgModuleScope(TestModule,');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents).not.toContain('ɵɵsetNgModuleScope(TestModule,');
});
it('should emit the id when the module\'s id is a string', () => {
@ -488,7 +489,7 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain(`i0.ΔdefineNgModule({ type: TestModule, id: 'test' })`);
expect(jsContents).toContain(`i0.ɵɵdefineNgModule({ type: TestModule, id: 'test' })`);
});
it('should emit the id when the module\'s id is defined as `module.id`', () => {
@ -506,7 +507,7 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule, id: module.id })');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule, id: module.id })');
});
it('should filter out directives and pipes from module exports in the injector def', () => {
@ -547,15 +548,15 @@ describe('ngtsc behavioral tests', () => {
export class Comp {}
`);
env.write('node_modules/@angular/router/index.d.ts', `
import {ΔComponentDefWithMeta, ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵComponentDefWithMeta, ModuleWithProviders, ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class RouterComp {
static ngComponentDef: ΔComponentDefWithMeta<RouterComp, "lib-cmp", never, {}, {}, never>
static ngComponentDef: ɵɵComponentDefWithMeta<RouterComp, "lib-cmp", never, {}, {}, never>
}
declare class RouterModule {
static forRoot(): ModuleWithProviders<RouterModule>;
static ngModuleDef: ΔNgModuleDefWithMeta<RouterModule, [typeof RouterComp], never, [typeof RouterComp]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<RouterModule, [typeof RouterComp], never, [typeof RouterComp]>;
}
`);
@ -564,7 +565,7 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents)
.toContain(
'i0.ΔdefineInjector({ factory: function TestModule_Factory(t) ' +
'i0.ɵɵdefineInjector({ factory: function TestModule_Factory(t) ' +
'{ return new (t || TestModule)(); }, imports: [[OtherModule, RouterModule.forRoot()],' +
'\n OtherModule,\n RouterModule] });');
});
@ -596,18 +597,18 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents)
.toContain(
`TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` +
`TestModule.ngInjectorDef = i0.ɵɵdefineInjector({ factory: ` +
`function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` +
`Token, useValue: 'test' }], imports: [[OtherModule]] });`);
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ɵɵInjectorDef');
});
it('should compile NgModules with factory providers without errors', () => {
@ -637,18 +638,18 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents)
.toContain(
`TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` +
`TestModule.ngInjectorDef = i0.ɵɵdefineInjector({ factory: ` +
`function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` +
`Token, useFactory: function () { return new Token(); } }], imports: [[OtherModule]] });`);
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ɵɵInjectorDef');
});
it('should compile NgModules with factory providers and deps without errors', () => {
@ -682,18 +683,18 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents)
.toContain(
`TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` +
`TestModule.ngInjectorDef = i0.ɵɵdefineInjector({ factory: ` +
`function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` +
`Token, useFactory: function (dep) { return new Token(dep); }, deps: [Dep] }], imports: [[OtherModule]] });`);
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, [typeof TestCmp], [typeof OtherModule], never>');
expect(dtsContents).toContain('static ngInjectorDef: i0.ɵɵInjectorDef');
});
it('should compile NgModules with references to local components', () => {
@ -854,9 +855,9 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents)
.toContain(
'TestPipe.ngPipeDef = i0.ΔdefinePipe({ name: "test-pipe", type: TestPipe, ' +
'TestPipe.ngPipeDef = i0.ɵɵdefinePipe({ name: "test-pipe", type: TestPipe, ' +
'factory: function TestPipe_Factory(t) { return new (t || TestPipe)(); }, pure: false })');
expect(dtsContents).toContain('static ngPipeDef: i0.ΔPipeDefWithMeta<TestPipe, "test-pipe">;');
expect(dtsContents).toContain('static ngPipeDef: i0.ɵɵPipeDefWithMeta<TestPipe, "test-pipe">;');
});
it('should compile pure Pipes without errors', () => {
@ -877,9 +878,9 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents)
.toContain(
'TestPipe.ngPipeDef = i0.ΔdefinePipe({ name: "test-pipe", type: TestPipe, ' +
'TestPipe.ngPipeDef = i0.ɵɵdefinePipe({ name: "test-pipe", type: TestPipe, ' +
'factory: function TestPipe_Factory(t) { return new (t || TestPipe)(); }, pure: true })');
expect(dtsContents).toContain('static ngPipeDef: i0.ΔPipeDefWithMeta<TestPipe, "test-pipe">;');
expect(dtsContents).toContain('static ngPipeDef: i0.ɵɵPipeDefWithMeta<TestPipe, "test-pipe">;');
});
it('should compile Pipes with dependencies', () => {
@ -901,7 +902,7 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('return new (t || TestPipe)(i0.ΔdirectiveInject(Dep));');
expect(jsContents).toContain('return new (t || TestPipe)(i0.ɵɵdirectiveInject(Dep));');
});
it('should compile Pipes with generic types', () => {
@ -921,7 +922,7 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toContain('TestPipe.ngPipeDef =');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain('static ngPipeDef: i0.ΔPipeDefWithMeta<TestPipe<any>, "test-pipe">;');
.toContain('static ngPipeDef: i0.ɵɵPipeDefWithMeta<TestPipe<any>, "test-pipe">;');
});
it('should include @Pipes in @NgModule scopes', () => {
@ -947,7 +948,7 @@ describe('ngtsc behavioral tests', () => {
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'i0.ΔNgModuleDefWithMeta<TestModule, [typeof TestPipe, typeof TestCmp], never, never>');
'i0.ɵɵNgModuleDefWithMeta<TestModule, [typeof TestPipe, typeof TestCmp], never, never>');
});
describe('empty and missing selectors', () => {
@ -1062,7 +1063,7 @@ describe('ngtsc behavioral tests', () => {
expect(dtsContents).toContain('ComponentDefWithMeta<TestCmp');
expect(dtsContents).toContain('DirectiveDefWithMeta<TestDir');
expect(dtsContents).toContain('PipeDefWithMeta<TestPipe');
expect(dtsContents).toContain('ΔNgModuleDefWithMeta<TestNgModule');
expect(dtsContents).toContain('ɵɵNgModuleDefWithMeta<TestNgModule');
// Validate that each class's .d.ts declaration also has an injectable definition.
expect(dtsContents).toContain('InjectableDef<TestCmp');
@ -1287,7 +1288,7 @@ describe('ngtsc behavioral tests', () => {
`);
env.driveMain();
expect(env.getContents('test.js')).toContain('i0.ΔpureFunction1');
expect(env.getContents('test.js')).toContain('i0.ɵɵpureFunction1');
});
it('should compile array literals inside function arguments', () => {
@ -1309,7 +1310,7 @@ describe('ngtsc behavioral tests', () => {
`);
env.driveMain();
expect(env.getContents('test.js')).toContain('i0.ΔpureFunction1');
expect(env.getContents('test.js')).toContain('i0.ɵɵpureFunction1');
});
});
@ -1325,11 +1326,11 @@ describe('ngtsc behavioral tests', () => {
`);
env.write('node_modules/router/index.d.ts', `
import {ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core';
import {ModuleWithProviders, ɵɵNgModuleDefWithMeta} from '@angular/core';
declare class RouterModule {
static forRoot(): ModuleWithProviders<RouterModule>;
static ngModuleDef: ΔNgModuleDefWithMeta<RouterModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<RouterModule, never, never, never>;
}
`);
@ -1341,7 +1342,8 @@ describe('ngtsc behavioral tests', () => {
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents).toContain(`import * as i1 from "router";`);
expect(dtsContents)
.toContain('i0.ΔNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
.toContain(
'i0.ɵɵNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
});
it('should extract the generic type if it is provided as qualified type name', () => {
@ -1366,9 +1368,9 @@ describe('ngtsc behavioral tests', () => {
`);
env.write('node_modules/router/internal.d.ts', `
import {ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class InternalRouterModule {
static ngModuleDef: ΔNgModuleDefWithMeta<InternalRouterModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<InternalRouterModule, never, never, never>;
}
`);
@ -1381,18 +1383,18 @@ describe('ngtsc behavioral tests', () => {
expect(dtsContents).toContain(`import * as i1 from "router";`);
expect(dtsContents)
.toContain(
'i0.ΔNgModuleDefWithMeta<TestModule, never, [typeof i1.InternalRouterModule], never>');
'i0.ɵɵNgModuleDefWithMeta<TestModule, never, [typeof i1.InternalRouterModule], never>');
});
it('should not reference a constant with a ModuleWithProviders value in ngModuleDef imports',
() => {
env.tsconfig();
env.write('dep.d.ts', `
import {ModuleWithProviders, ΔNgModuleDefWithMeta as ΔNgModuleDefWithMeta} from '@angular/core';
import {ModuleWithProviders, ɵɵNgModuleDefWithMeta as ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class DepModule {
static forRoot(arg1: any, arg2: any): ModuleWithProviders<DepModule>;
static ngModuleDef: ΔNgModuleDefWithMeta<DepModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<DepModule, never, never, never>;
}
`);
env.write('test.ts', `
@ -1427,13 +1429,13 @@ describe('ngtsc behavioral tests', () => {
`);
env.write('node_modules/router/index.d.ts', `
import {ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core';
import {ModuleWithProviders, ɵɵNgModuleDefWithMeta} from '@angular/core';
export interface MyType extends ModuleWithProviders {}
declare class RouterModule {
static forRoot(): (MyType)&{ngModule:RouterModule};
static ngModuleDef: ΔNgModuleDefWithMeta<RouterModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<RouterModule, never, never, never>;
}
`);
@ -1446,7 +1448,7 @@ describe('ngtsc behavioral tests', () => {
expect(dtsContents).toContain(`import * as i1 from "router";`);
expect(dtsContents)
.toContain(
'i0.ΔNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
'i0.ɵɵNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
});
it('should unwrap a namespace imported ModuleWithProviders function if a generic type is provided for it',
@ -1466,7 +1468,7 @@ describe('ngtsc behavioral tests', () => {
declare class RouterModule {
static forRoot(): core.ModuleWithProviders<RouterModule>;
static ngModuleDef: ΔNgModuleDefWithMeta<RouterModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<RouterModule, never, never, never>;
}
`);
@ -1479,7 +1481,7 @@ describe('ngtsc behavioral tests', () => {
expect(dtsContents).toContain(`import * as i1 from "router";`);
expect(dtsContents)
.toContain(
'i0.ΔNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
'i0.ɵɵNgModuleDefWithMeta<TestModule, never, [typeof i1.RouterModule], never>');
});
it('should inject special types according to the metadata', () => {
@ -1517,7 +1519,7 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents)
.toContain(
`factory: function FooCmp_Factory(t) { return new (t || FooCmp)(i0.ΔinjectAttribute("test"), i0.ΔdirectiveInject(i0.ChangeDetectorRef), i0.ΔdirectiveInject(i0.ElementRef), i0.ΔdirectiveInject(i0.Injector), i0.ΔdirectiveInject(i0.Renderer2), i0.ΔdirectiveInject(i0.TemplateRef), i0.ΔdirectiveInject(i0.ViewContainerRef)); }`);
`factory: function FooCmp_Factory(t) { return new (t || FooCmp)(i0.ɵɵinjectAttribute("test"), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }`);
});
it('should generate queries for components', () => {
@ -1547,9 +1549,9 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toMatch(varRegExp('test1'));
expect(jsContents).toMatch(varRegExp('test2'));
expect(jsContents).toMatch(varRegExp('accessor'));
// match `i0.ΔcontentQuery(dirIndex, _c1, true, TemplateRef)`
// match `i0.ɵɵcontentQuery(dirIndex, _c1, true, TemplateRef)`
expect(jsContents).toMatch(contentQueryRegExp('\\w+', true, 'TemplateRef'));
// match `i0.ΔviewQuery(_c2, true, null)`
// match `i0.ɵɵviewQuery(_c2, true, null)`
expect(jsContents).toMatch(viewQueryRegExp(true));
});
@ -1579,10 +1581,10 @@ describe('ngtsc behavioral tests', () => {
expect(jsContents).toMatch(varRegExp('test1'));
expect(jsContents).toMatch(varRegExp('test2'));
expect(jsContents).toMatch(varRegExp('accessor'));
// match `i0.ΔcontentQuery(dirIndex, _c1, true, TemplateRef)`
// match `i0.ɵɵcontentQuery(dirIndex, _c1, true, TemplateRef)`
expect(jsContents).toMatch(contentQueryRegExp('\\w+', true, 'TemplateRef'));
// match `i0.ΔviewQuery(_c2, true, null)`
// match `i0.ɵɵviewQuery(_c2, true, null)`
// Note that while ViewQuery doesn't necessarily make sense on a directive, because it doesn't
// have a view, we still need to handle it because a component could extend the directive.
expect(jsContents).toMatch(viewQueryRegExp(true));
@ -1608,11 +1610,11 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
// match `i0.ΔcontentQuery(dirIndex, TemplateRef, true, null)`
// match `i0.ɵɵcontentQuery(dirIndex, TemplateRef, true, null)`
expect(jsContents).toMatch(contentQueryRegExp('TemplateRef', true));
// match `i0.ΔcontentQuery(dirIndex, ViewContainerRef, true, null)`
// match `i0.ɵɵcontentQuery(dirIndex, ViewContainerRef, true, null)`
expect(jsContents).toMatch(contentQueryRegExp('ViewContainerRef', true));
// match `i0.ΔcontentQuery(dirIndex, _c0, true, null)`
// match `i0.ɵɵcontentQuery(dirIndex, _c0, true, null)`
expect(jsContents).toContain('_c0 = ["parens"];');
expect(jsContents).toMatch(contentQueryRegExp('_c0', true));
});
@ -1662,9 +1664,9 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick(); });
i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onDocumentClick($event.target); }, false, i0.ΔresolveDocument);
i0.Δlistener("scroll", function FooCmp_scroll_HostBindingHandler($event) { return ctx.onWindowScroll(); }, false, i0.ΔresolveWindow);
i0.ɵɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick(); });
i0.ɵɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onDocumentClick($event.target); }, false, i0.ɵɵresolveDocument);
i0.ɵɵlistener("scroll", function FooCmp_scroll_HostBindingHandler($event) { return ctx.onWindowScroll(); }, false, i0.ɵɵresolveWindow);
}
}
`;
@ -1760,17 +1762,17 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.ΔallocHostVars(2);
i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick($event); });
i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onBodyClick($event); }, false, i0.ΔresolveBody);
i0.Δlistener("change", function FooCmp_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg1, ctx.arg2, ctx.arg3); });
i0.Δstyling(_c0);
i0.ɵɵallocHostVars(2);
i0.ɵɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick($event); });
i0.ɵɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onBodyClick($event); }, false, i0.ɵɵresolveBody);
i0.ɵɵlistener("change", function FooCmp_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg1, ctx.arg2, ctx.arg3); });
i0.ɵɵstyling(_c0);
}
if (rf & 2) {
i0.ΔelementAttribute(elIndex, "hello", i0.Δbind(ctx.foo));
i0.Δproperty("prop", ctx.bar, null, true);
i0.ΔclassProp(0, ctx.someClass);
i0.ΔstylingApply();
i0.ɵɵelementAttribute(elIndex, "hello", i0.ɵɵbind(ctx.foo));
i0.ɵɵproperty("prop", ctx.bar, null, true);
i0.ɵɵclassProp(0, ctx.someClass);
i0.ɵɵstylingApply();
}
}
`;
@ -1799,7 +1801,7 @@ describe('ngtsc behavioral tests', () => {
`);
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔelementHostAttrs(["test", test])');
expect(jsContents).toContain('i0.ɵɵelementHostAttrs(["test", test])');
});
it('should accept enum values as host bindings', () => {
@ -1824,7 +1826,7 @@ describe('ngtsc behavioral tests', () => {
`);
env.driveMain();
expect(env.getContents('test.js')).toContain('"hello", i0.Δbind(ctx.foo)');
expect(env.getContents('test.js')).toContain('"hello", i0.ɵɵbind(ctx.foo)');
});
it('should generate host listeners for directives within hostBindings section', () => {
@ -1846,7 +1848,7 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function Dir_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.Δlistener("change", function Dir_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg); });
i0.ɵɵlistener("change", function Dir_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg); });
}
}
`;
@ -2041,7 +2043,7 @@ describe('ngtsc behavioral tests', () => {
`);
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).not.toContain('i0.ΔelementProperty');
expect(jsContents).not.toContain('i0.ɵɵelementProperty');
});
it('should correctly recognize local symbols', () => {
@ -2296,8 +2298,8 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents)
.toContain('function Base_Factory(t) { return new (t || Base)(i0.Δinject(Dep)); }');
expect(jsContents).toContain('var \u0275Child_BaseFactory = i0.ΔgetInheritedFactory(Child)');
.toContain('function Base_Factory(t) { return new (t || Base)(i0.ɵɵinject(Dep)); }');
expect(jsContents).toContain('var \u0275Child_BaseFactory = i0.ɵɵgetInheritedFactory(Child)');
expect(jsContents)
.toContain('function Child_Factory(t) { return \u0275Child_BaseFactory(t || Child); }');
expect(jsContents)
@ -2322,7 +2324,7 @@ describe('ngtsc behavioral tests', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('var \u0275Dir_BaseFactory = i0.ΔgetInheritedFactory(Dir)');
expect(jsContents).toContain('var \u0275Dir_BaseFactory = i0.ɵɵgetInheritedFactory(Dir)');
});
it('should wrap "directives" in component metadata in a closure when forward references are present',
@ -2463,8 +2465,8 @@ describe('ngtsc behavioral tests', () => {
const jsContents = trim(env.getContents('test.js'));
expect(jsContents).toContain(`import Default from './types';`);
expect(jsContents).toContain(`import * as i1 from "./types";`);
expect(jsContents).toContain('i0.ΔdirectiveInject(Default)');
expect(jsContents).toContain('i0.ΔdirectiveInject(i1.Other)');
expect(jsContents).toContain('i0.ɵɵdirectiveInject(Default)');
expect(jsContents).toContain('i0.ɵɵdirectiveInject(i1.Other)');
expect(jsContents).toMatch(setClassMetadataRegExp('type: Default'));
expect(jsContents).toMatch(setClassMetadataRegExp('type: i1.Other'));
});
@ -2575,8 +2577,8 @@ describe('ngtsc behavioral tests', () => {
const jsContents = env.getContents('test.js');
expect(jsContents)
.toMatch(
/i\d\.ΔsetComponentScope\(NormalComponent,\s+\[NormalComponent,\s+CyclicComponent\],\s+\[\]\)/);
expect(jsContents).not.toContain('/*__PURE__*/ i0.ΔsetComponentScope');
/i\d\.ɵɵsetComponentScope\(NormalComponent,\s+\[NormalComponent,\s+CyclicComponent\],\s+\[\]\)/);
expect(jsContents).not.toContain('/*__PURE__*/ i0.ɵɵsetComponentScope');
});
it('should detect a cycle added entirely during compilation', () => {
@ -2767,14 +2769,14 @@ describe('ngtsc behavioral tests', () => {
it('should not emit multiple references to the same directive', () => {
env.tsconfig();
env.write('node_modules/external/index.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class ExternalDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
}
export declare class ExternalModule {
static ngModuleDef: ΔNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
}
`);
env.write('test.ts', `
@ -2803,19 +2805,19 @@ describe('ngtsc behavioral tests', () => {
it('should import directives by their external name', () => {
env.tsconfig();
env.write('node_modules/external/index.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
import {InternalDir} from './internal';
export {InternalDir as ExternalDir} from './internal';
export declare class ExternalModule {
static ngModuleDef: ΔNgModuleDefWithMeta<ExternalModule, [typeof InternalDir], never, [typeof InternalDir]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<ExternalModule, [typeof InternalDir], never, [typeof InternalDir]>;
}
`);
env.write('node_modules/external/internal.d.ts', `
export declare class InternalDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<InternalDir, '[test]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<InternalDir, '[test]', never, never, never, never>;
}
`);
env.write('test.ts', `
@ -3024,14 +3026,14 @@ describe('ngtsc behavioral tests', () => {
export class Module {}
`);
env.write('node_modules/external/index.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class ExternalDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
}
export declare class ExternalModule {
static ngModuleDef: ΔNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
}
`);
@ -3211,15 +3213,15 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function UnsafeAttrsDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.ΔallocHostVars(6);
i0.ɵɵallocHostVars(6);
}
if (rf & 2) {
i0.ΔelementAttribute(elIndex, "href", i0.Δbind(ctx.attrHref), i0.ΔsanitizeUrlOrResourceUrl);
i0.ΔelementAttribute(elIndex, "src", i0.Δbind(ctx.attrSrc), i0.ΔsanitizeUrlOrResourceUrl);
i0.ΔelementAttribute(elIndex, "action", i0.Δbind(ctx.attrAction), i0.ΔsanitizeUrl);
i0.ΔelementAttribute(elIndex, "profile", i0.Δbind(ctx.attrProfile), i0.ΔsanitizeResourceUrl);
i0.ΔelementAttribute(elIndex, "innerHTML", i0.Δbind(ctx.attrInnerHTML), i0.ΔsanitizeHtml);
i0.ΔelementAttribute(elIndex, "title", i0.Δbind(ctx.attrSafeTitle));
i0.ɵɵelementAttribute(elIndex, "href", i0.ɵɵbind(ctx.attrHref), i0.ɵɵsanitizeUrlOrResourceUrl);
i0.ɵɵelementAttribute(elIndex, "src", i0.ɵɵbind(ctx.attrSrc), i0.ɵɵsanitizeUrlOrResourceUrl);
i0.ɵɵelementAttribute(elIndex, "action", i0.ɵɵbind(ctx.attrAction), i0.ɵɵsanitizeUrl);
i0.ɵɵelementAttribute(elIndex, "profile", i0.ɵɵbind(ctx.attrProfile), i0.ɵɵsanitizeResourceUrl);
i0.ɵɵelementAttribute(elIndex, "innerHTML", i0.ɵɵbind(ctx.attrInnerHTML), i0.ɵɵsanitizeHtml);
i0.ɵɵelementAttribute(elIndex, "title", i0.ɵɵbind(ctx.attrSafeTitle));
}
}
`;
@ -3266,15 +3268,15 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function UnsafePropsDirective_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.ΔallocHostVars(6);
i0.ɵɵallocHostVars(6);
}
if (rf & 2) {
i0.Δproperty("href", ctx.propHref, i0.ΔsanitizeUrlOrResourceUrl, true);
i0.Δproperty("src", ctx.propSrc, i0.ΔsanitizeUrlOrResourceUrl, true);
i0.Δproperty("action", ctx.propAction, i0.ΔsanitizeUrl, true);
i0.Δproperty("profile", ctx.propProfile, i0.ΔsanitizeResourceUrl, true);
i0.Δproperty("innerHTML", ctx.propInnerHTML, i0.ΔsanitizeHtml, true);
i0.Δproperty("title", ctx.propSafeTitle, null, true);
i0.ɵɵproperty("href", ctx.propHref, i0.ɵɵsanitizeUrlOrResourceUrl, true);
i0.ɵɵproperty("src", ctx.propSrc, i0.ɵɵsanitizeUrlOrResourceUrl, true);
i0.ɵɵproperty("action", ctx.propAction, i0.ɵɵsanitizeUrl, true);
i0.ɵɵproperty("profile", ctx.propProfile, i0.ɵɵsanitizeResourceUrl, true);
i0.ɵɵproperty("innerHTML", ctx.propInnerHTML, i0.ɵɵsanitizeHtml, true);
i0.ɵɵproperty("title", ctx.propSafeTitle, null, true);
}
}
`;
@ -3306,15 +3308,15 @@ describe('ngtsc behavioral tests', () => {
const hostBindingsFn = `
hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) {
if (rf & 1) {
i0.ΔallocHostVars(6);
i0.ɵɵallocHostVars(6);
}
if (rf & 2) {
i0.Δproperty("src", ctx.srcProp, null, true);
i0.Δproperty("href", ctx.hrefProp, null, true);
i0.Δproperty("title", ctx.titleProp, null, true);
i0.ΔelementAttribute(elIndex, "src", i0.Δbind(ctx.srcAttr));
i0.ΔelementAttribute(elIndex, "href", i0.Δbind(ctx.hrefAttr));
i0.ΔelementAttribute(elIndex, "title", i0.Δbind(ctx.titleAttr));
i0.ɵɵproperty("src", ctx.srcProp, null, true);
i0.ɵɵproperty("href", ctx.hrefProp, null, true);
i0.ɵɵproperty("title", ctx.titleProp, null, true);
i0.ɵɵelementAttribute(elIndex, "src", i0.ɵɵbind(ctx.srcAttr));
i0.ɵɵelementAttribute(elIndex, "href", i0.ɵɵbind(ctx.hrefAttr));
i0.ɵɵelementAttribute(elIndex, "title", i0.ɵɵbind(ctx.titleAttr));
}
}
`;
@ -3344,13 +3346,13 @@ describe('ngtsc behavioral tests', () => {
beforeEach(() => {
env.tsconfig();
env.write('node_modules/@angular/router/index.d.ts', `
import {ModuleWithProviders, ΔNgModuleDefWithMeta as ΔNgModuleDefWithMeta} from '@angular/core';
import {ModuleWithProviders, ɵɵNgModuleDefWithMeta as ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare var ROUTES;
export declare class RouterModule {
static forRoot(arg1: any, arg2: any): ModuleWithProviders<RouterModule>;
static forChild(arg1: any): ModuleWithProviders<RouterModule>;
static ngModuleDef: ΔNgModuleDefWithMeta<RouterModule, never, never, never>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<RouterModule, never, never, never>;
}
`);
});
@ -3980,24 +3982,24 @@ export const Foo = Foo__PRE_R3__;
// 'alpha' declares the directive which will ultimately be imported.
env.write('alpha.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class ExternalDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
}
export declare class AlphaModule {
static ngModuleDef: ΔNgModuleDefWithMeta<AlphaModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<AlphaModule, [typeof ExternalDir], never, [typeof ExternalDir]>;
}
`);
// 'beta' re-exports AlphaModule from alpha.
env.write('beta.d.ts', `
import {ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵNgModuleDefWithMeta} from '@angular/core';
import {AlphaModule} from './alpha';
export declare class BetaModule {
static ngModuleDef: ΔNgModuleDefWithMeta<AlphaModule, never, never, [typeof AlphaModule]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<AlphaModule, never, never, [typeof AlphaModule]>;
}
`);
@ -4029,26 +4031,26 @@ export const Foo = Foo__PRE_R3__;
it('should write alias ES2015 exports for NgModule exported directives', () => {
env.tsconfig({'_useHostForImportGeneration': true});
env.write('external.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
import {LibModule} from './lib';
export declare class ExternalDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<ExternalDir, '[test]', never, never, never, never>;
}
export declare class ExternalModule {
static ngModuleDef: ΔNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir, typeof LibModule]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<ExternalModule, [typeof ExternalDir], never, [typeof ExternalDir, typeof LibModule]>;
}
`);
env.write('lib.d.ts', `
import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core';
import {ɵɵDirectiveDefWithMeta, ɵɵNgModuleDefWithMeta} from '@angular/core';
export declare class LibDir {
static ngDirectiveDef: ΔDirectiveDefWithMeta<LibDir, '[lib]', never, never, never, never>;
static ngDirectiveDef: ɵɵDirectiveDefWithMeta<LibDir, '[lib]', never, never, never, never>;
}
export declare class LibModule {
static ngModuleDef: ΔNgModuleDefWithMeta<LibModule, [typeof LibDir], never, [typeof LibDir]>;
static ngModuleDef: ɵɵNgModuleDefWithMeta<LibModule, [typeof LibDir], never, [typeof LibDir]>;
}
`);
env.write('foo.ts', `

View File

@ -36,15 +36,15 @@ describe('ngtsc module scopes', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents)
.toContain(
'/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { imports: [OtherModule] });');
'/*@__PURE__*/ i0.ɵɵsetNgModuleScope(TestModule, { imports: [OtherModule] });');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, never, [typeof OtherModule], never>');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, never, [typeof OtherModule], never>');
});
it('should produce an error when an invalid class is imported', () => {
@ -98,15 +98,15 @@ describe('ngtsc module scopes', () => {
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });');
expect(jsContents).toContain('i0.ɵɵdefineNgModule({ type: TestModule });');
expect(jsContents)
.toContain(
'/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { exports: [OtherModule] });');
'/*@__PURE__*/ i0.ɵɵsetNgModuleScope(TestModule, { exports: [OtherModule] });');
const dtsContents = env.getContents('test.d.ts');
expect(dtsContents)
.toContain(
'static ngModuleDef: i0.ΔNgModuleDefWithMeta<TestModule, never, never, [typeof OtherModule]>');
'static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<TestModule, never, never, [typeof OtherModule]>');
});
it('should produce an error when a non-NgModule class is exported', () => {

View File

@ -23,17 +23,17 @@ describe('template source-mapping', () => {
it('should map simple element with content', () => {
const mappings = compileAndMap('<h1>Heading 1</h1>');
expect(mappings).toContain(
{source: '<h1>', generated: 'i0.ΔelementStart(0, "h1")', sourceUrl: '../test.ts'});
{source: '<h1>', generated: 'i0.ɵɵelementStart(0, "h1")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: 'Heading 1', generated: 'i0.Δtext(1, "Heading 1")', sourceUrl: '../test.ts'});
{source: 'Heading 1', generated: 'i0.ɵɵtext(1, "Heading 1")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '</h1>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</h1>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map void element', () => {
const mappings = compileAndMap('<hr>');
expect(mappings).toContain(
{source: '<hr>', generated: 'i0.Δelement(0, "hr")', sourceUrl: '../test.ts'});
{source: '<hr>', generated: 'i0.ɵɵelement(0, "hr")', sourceUrl: '../test.ts'});
});
});
@ -41,40 +41,40 @@ describe('template source-mapping', () => {
it('should map a mix of interpolated and static content', () => {
const mappings = compileAndMap('<h3>Hello {{ name }}</h3>');
expect(mappings).toContain(
{source: '<h3>', generated: 'i0.ΔelementStart(0, "h3")', sourceUrl: '../test.ts'});
{source: '<h3>', generated: 'i0.ɵɵelementStart(0, "h3")', sourceUrl: '../test.ts'});
expect(mappings).toContain({
source: 'Hello {{ name }}',
generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("Hello ", ctx.name, ""))',
generated: 'i0.ɵɵtextBinding(1, i0.ɵɵinterpolation1("Hello ", ctx.name, ""))',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: '</h3>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</h3>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map a complex interpolated expression', () => {
const mappings = compileAndMap('<h2>{{ greeting + " " + name }}</h2>');
expect(mappings).toContain(
{source: '<h2>', generated: 'i0.ΔelementStart(0, "h2")', sourceUrl: '../test.ts'});
{source: '<h2>', generated: 'i0.ɵɵelementStart(0, "h2")', sourceUrl: '../test.ts'});
expect(mappings).toContain({
source: '{{ greeting + " " + name }}',
generated:
'i0.ΔtextBinding(1, i0.Δinterpolation1("", ctx.greeting + " " + ctx.name, ""))',
'i0.ɵɵtextBinding(1, i0.ɵɵinterpolation1("", ctx.greeting + " " + ctx.name, ""))',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: '</h2>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</h2>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map interpolated properties', () => {
const mappings = compileAndMap('<div id="{{name}}"></div>');
expect(mappings).toContain({
source: '<div id="{{name}}"></div>',
generated: 'i0.Δelement(0, "div", _c0)',
generated: 'i0.ɵɵelement(0, "div", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: 'id="{{name}}"',
generated: 'i0.ΔpropertyInterpolate("id", ctx.name)',
generated: 'i0.ɵɵpropertyInterpolate("id", ctx.name)',
sourceUrl: '../test.ts'
});
});
@ -82,15 +82,15 @@ describe('template source-mapping', () => {
it('should map interpolation with pipe', () => {
const mappings = compileAndMap('<div>{{200.3 | percent : 2 }}</div>');
expect(mappings).toContain(
{source: '<div>', generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts'});
{source: '<div>', generated: 'i0.ɵɵelementStart(0, "div")', sourceUrl: '../test.ts'});
expect(mappings).toContain({
source: '{{200.3 | percent : 2 }}',
generated:
'i0.ΔtextBinding(1, i0.Δinterpolation1("", i0.ΔpipeBind2(2, 1, 200.3, 2), ""))',
'i0.ɵɵtextBinding(1, i0.ɵɵinterpolation1("", i0.ɵɵpipeBind2(2, 1, 200.3, 2), ""))',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
});
@ -99,12 +99,12 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('<div [attr]="name"></div>');
expect(mappings).toContain({
source: '<div [attr]="name"></div>',
generated: 'i0.Δelement(0, "div", _c0)',
generated: 'i0.ɵɵelement(0, "div", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: '[attr]="name"',
generated: 'i0.Δproperty("attr", ctx.name)',
generated: 'i0.ɵɵproperty("attr", ctx.name)',
sourceUrl: '../test.ts'
});
});
@ -114,12 +114,12 @@ describe('template source-mapping', () => {
expect(mappings).toContain({
source: '<div [attr]="greeting + name"></div>',
generated: 'i0.Δelement(0, "div", _c0)',
generated: 'i0.ɵɵelement(0, "div", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: '[attr]="greeting + name"',
generated: 'i0.Δproperty("attr", ctx.greeting + ctx.name)',
generated: 'i0.ɵɵproperty("attr", ctx.greeting + ctx.name)',
sourceUrl: '../test.ts'
});
});
@ -128,12 +128,12 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('<div bind-attr="name"></div>');
expect(mappings).toContain({
source: '<div bind-attr="name"></div>',
generated: 'i0.Δelement(0, "div", _c0)',
generated: 'i0.ɵɵelement(0, "div", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: 'bind-attr="name"',
generated: 'i0.Δproperty("attr", ctx.name)',
generated: 'i0.ɵɵproperty("attr", ctx.name)',
sourceUrl: '../test.ts'
});
});
@ -142,15 +142,15 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('<button (click)="doSomething()">Do it</button>');
expect(mappings).toContain({
source: '<button (click)="doSomething()">',
generated: 'i0.ΔelementStart(0, "button", _c0)',
generated: 'i0.ɵɵelementStart(0, "button", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: 'Do it', generated: 'i0.Δtext(1, "Do it")', sourceUrl: '../test.ts'});
{source: 'Do it', generated: 'i0.ɵɵtext(1, "Do it")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: 'doSomething()', generated: 'ctx.doSomething()', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '</button>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</button>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map a complex output binding expression', () => {
@ -158,11 +158,11 @@ describe('template source-mapping', () => {
compileAndMap(`<button (click)="items.push('item' + items.length)">Add Item</button>`);
expect(mappings).toContain({
source: `<button (click)="items.push('item' + items.length)">`,
generated: 'i0.ΔelementStart(0, "button", _c0)',
generated: 'i0.ɵɵelementStart(0, "button", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: 'Add Item', generated: 'i0.Δtext(1, "Add Item")', sourceUrl: '../test.ts'});
{source: 'Add Item', generated: 'i0.ɵɵtext(1, "Add Item")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: 'items.push(', generated: 'ctx.items.push(', sourceUrl: '../test.ts'});
expect(mappings).toContain(
@ -173,41 +173,41 @@ describe('template source-mapping', () => {
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: '</button>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</button>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map a longhand output binding expression', () => {
const mappings = compileAndMap('<button on-click="doSomething()">Do it</button>');
expect(mappings).toContain({
source: '<button on-click="doSomething()">',
generated: 'i0.ΔelementStart(0, "button", _c0)',
generated: 'i0.ɵɵelementStart(0, "button", _c0)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: 'Do it', generated: 'i0.Δtext(1, "Do it")', sourceUrl: '../test.ts'});
{source: 'Do it', generated: 'i0.ɵɵtext(1, "Do it")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: 'doSomething()', generated: 'ctx.doSomething()', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '</button>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</button>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
it('should map a two-way binding expression', () => {
const mappings = compileAndMap('Name: <input [(ngModel)]="name">');
expect(mappings).toContain({
source: '<input [(ngModel)]="name">',
generated: 'i0.ΔelementStart(1, "input", _c0)',
generated: 'i0.ɵɵelementStart(1, "input", _c0)',
sourceUrl: '../test.ts'
});
// TODO: improve mappings here
expect(mappings).toContain({
source: '[(ngModel)]="name"',
generated:
'i0.Δlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })',
'i0.ɵɵlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: '<input [(ngModel)]="name">',
generated: 'i0.ΔelementEnd()',
generated: 'i0.ɵɵelementEnd()',
sourceUrl: '../test.ts'
});
});
@ -216,19 +216,19 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('Name: <input bindon-ngModel="name">');
expect(mappings).toContain({
source: '<input bindon-ngModel="name">',
generated: 'i0.ΔelementStart(1, "input", _c0)',
generated: 'i0.ɵɵelementStart(1, "input", _c0)',
sourceUrl: '../test.ts'
});
// TODO: improve mappings here
expect(mappings).toContain({
source: 'bindon-ngModel="name"',
generated:
'i0.Δlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })',
'i0.ɵɵlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })',
sourceUrl: '../test.ts'
});
expect(mappings).toContain({
source: '<input bindon-ngModel="name">',
generated: 'i0.ΔelementEnd()',
generated: 'i0.ɵɵelementEnd()',
sourceUrl: '../test.ts'
});
});
@ -237,17 +237,17 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('<div [class.initial]="isInitial">Message</div>');
expect(mappings).toContain({
source: '<div [class.initial]="isInitial">',
generated: 'i0.ΔelementStart(0, "div")',
generated: 'i0.ɵɵelementStart(0, "div")',
sourceUrl: '../test.ts'
});
// TODO: Add better mappings for binding
expect(mappings).toContain(
{source: 'Message', generated: 'i0.Δtext(1, "Message")', sourceUrl: '../test.ts'});
{source: 'Message', generated: 'i0.ɵɵtext(1, "Message")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
});
@ -257,20 +257,20 @@ describe('template source-mapping', () => {
expect(mappings).toContain({
source: '<div *ngIf="showMessage()">',
generated: 'i0.ΔelementStart(0, "div")',
generated: 'i0.ɵɵelementStart(0, "div")',
sourceUrl: '../test.ts'
});
// TODO - map the bindings better
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
// TODO: the `ctx_r...` appears to be dependent upon previous tests!!!
// expect(mappings).toContain({
// source: '{{ name }}',
// generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("", ctx_r0.name, ""))',
// generated: 'i0.ɵɵtextBinding(1, i0.ɵɵinterpolation1("", ctx_r0.name, ""))',
// sourceUrl: '../test.ts'
// });
});
@ -283,18 +283,18 @@ describe('template source-mapping', () => {
`</ng-template>`);
expect(mappings).toContain(
{source: '<div>', generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts'});
{source: '<div>', generated: 'i0.ɵɵelementStart(0, "div")', sourceUrl: '../test.ts'});
// TODO - map the bindings better
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
// TODO: the `ctx_r...` appears to be dependent upon previous tests!!!
// expect(mappings).toContain({
// source: '{{ name }}',
// generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("", ctx_r0.name, ""))',
// generated: 'i0.ɵɵtextBinding(1, i0.ɵɵinterpolation1("", ctx_r0.name, ""))',
// sourceUrl: '../test.ts'
// });
});
@ -305,14 +305,14 @@ describe('template source-mapping', () => {
expect(mappings).toContain({
source: '<div *ngFor="let item of items; index as i; trackBy: trackByFn">',
generated: 'i0.ΔelementStart(0, "div")',
generated: 'i0.ɵɵelementStart(0, "div")',
sourceUrl: '../test.ts'
});
// TODO - map the bindings better
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
@ -331,20 +331,20 @@ describe('template source-mapping', () => {
`<div><ng-content></ng-content></div>`);
expect(mappings).toContain(
{source: '<h3>', generated: 'i0.ΔelementStart(0, "h3")', sourceUrl: '../test.ts'});
{source: '<h3>', generated: 'i0.ɵɵelementStart(0, "h3")', sourceUrl: '../test.ts'});
expect(mappings).toContain({
source: '<ng-content select="title">',
generated: 'i0.Δprojection(1, 1)',
generated: 'i0.ɵɵprojection(1, 1)',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{source: '</h3>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</h3>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '<div>', generated: 'i0.ΔelementStart(2, "div")', sourceUrl: '../test.ts'});
{source: '<div>', generated: 'i0.ɵɵelementStart(2, "div")', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '<ng-content>', generated: 'i0.Δprojection(3)', sourceUrl: '../test.ts'});
{source: '<ng-content>', generated: 'i0.ɵɵprojection(3)', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{source: '</div>', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'});
{source: '</div>', generated: 'i0.ɵɵelementEnd()', sourceUrl: '../test.ts'});
});
});
@ -353,24 +353,24 @@ describe('template source-mapping', () => {
// Creation mode
expect(mappings).toContain(
{generated: 'i0.ΔelementStart(0, "div")', source: '<div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementStart(0, "div")', source: '<div>', sourceUrl: '../test.ts'});
expect(mappings).toContain({
generated: 'i0.Δtext(1, "this is a test")',
generated: 'i0.ɵɵtext(1, "this is a test")',
source: 'this is a test',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.ΔelementStart(2, "div")', source: '<div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementStart(2, "div")', source: '<div>', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
// Update mode
expect(mappings).toContain({
generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", 1 + 2, ""))',
generated: 'i0.ɵɵtextBinding(3, i0.ɵɵinterpolation1("", 1 + 2, ""))',
source: '{{ 1 + 2 }}',
sourceUrl: '../test.ts'
});
@ -381,24 +381,24 @@ describe('template source-mapping', () => {
// Creation mode
expect(mappings).toContain(
{generated: 'i0.ΔelementStart(0, "div")', source: '<div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementStart(0, "div")', source: '<div>', sourceUrl: '../test.ts'});
expect(mappings).toContain({
generated: 'i0.Δtext(1, "this is a test")',
generated: 'i0.ɵɵtext(1, "this is a test")',
source: 'this is a test',
sourceUrl: '../test.ts'
});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.ΔelementStart(2, "div")', source: '<div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementStart(2, "div")', source: '<div>', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../test.ts'});
// Update mode
expect(mappings).toContain({
generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", 1 + 2, ""))',
generated: 'i0.ɵɵtextBinding(3, i0.ɵɵinterpolation1("", 1 + 2, ""))',
source: '{{ 1 + 2 }}',
sourceUrl: '../test.ts'
});
@ -410,7 +410,7 @@ describe('template source-mapping', () => {
const mappings = compileAndMap('<div class=\\"some-class\\">this is a test</div>');
expect(mappings).toContain({
generated: 'i0.ΔelementStart(0, "div", _c0)',
generated: 'i0.ɵɵelementStart(0, "div", _c0)',
source: '<div class=\\"some-class\\">',
sourceUrl: '../test.ts'
});
@ -429,30 +429,30 @@ describe('template source-mapping', () => {
// Creation mode
expect(mappings).toContain({
generated: 'i0.ΔelementStart(0, "div")',
generated: 'i0.ɵɵelementStart(0, "div")',
source: '<div>',
sourceUrl: '../dir/test.html'
});
expect(mappings).toContain({
generated: 'i0.Δtext(1, "this is a test")',
generated: 'i0.ɵɵtext(1, "this is a test")',
source: 'this is a test',
sourceUrl: '../dir/test.html'
});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../dir/test.html'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../dir/test.html'});
expect(mappings).toContain({
generated: 'i0.ΔelementStart(2, "div")',
generated: 'i0.ɵɵelementStart(2, "div")',
source: '<div>',
sourceUrl: '../dir/test.html'
});
expect(mappings).toContain(
{generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../dir/test.html'});
{generated: 'i0.ɵɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../dir/test.html'});
expect(mappings).toContain(
{generated: 'i0.ΔelementEnd()', source: '</div>', sourceUrl: '../dir/test.html'});
{generated: 'i0.ɵɵelementEnd()', source: '</div>', sourceUrl: '../dir/test.html'});
// Update mode
expect(mappings).toContain({
generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", 1 + 2, ""))',
generated: 'i0.ɵɵtextBinding(3, i0.ɵɵinterpolation1("", 1 + 2, ""))',
source: '{{ 1 + 2 }}',
sourceUrl: '../dir/test.html'
});
@ -464,39 +464,39 @@ describe('template source-mapping', () => {
// Creation mode
expect(mappings).toContain({
generated: 'i0.ΔelementStart(0, "div")',
generated: 'i0.ɵɵelementStart(0, "div")',
source: '<div>',
sourceUrl: '../extraRootDir/test.html'
});
expect(mappings).toContain({
generated: 'i0.Δtext(1, "this is a test")',
generated: 'i0.ɵɵtext(1, "this is a test")',
source: 'this is a test',
sourceUrl: '../extraRootDir/test.html'
});
expect(mappings).toContain({
generated: 'i0.ΔelementEnd()',
generated: 'i0.ɵɵelementEnd()',
source: '</div>',
sourceUrl: '../extraRootDir/test.html'
});
expect(mappings).toContain({
generated: 'i0.ΔelementStart(2, "div")',
generated: 'i0.ɵɵelementStart(2, "div")',
source: '<div>',
sourceUrl: '../extraRootDir/test.html'
});
expect(mappings).toContain({
generated: 'i0.Δtext(3)',
generated: 'i0.ɵɵtext(3)',
source: '{{ 1 + 2 }}',
sourceUrl: '../extraRootDir/test.html'
});
expect(mappings).toContain({
generated: 'i0.ΔelementEnd()',
generated: 'i0.ɵɵelementEnd()',
source: '</div>',
sourceUrl: '../extraRootDir/test.html'
});
// Update mode
expect(mappings).toContain({
generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", 1 + 2, ""))',
generated: 'i0.ɵɵtextBinding(3, i0.ɵɵinterpolation1("", 1 + 2, ""))',
source: '{{ 1 + 2 }}',
sourceUrl: '../extraRootDir/test.html'
});

View File

@ -34,17 +34,17 @@ export declare class IndexPipe {
export declare class NgForOf<T> {
ngForOf: T[];
static ngTemplateContextGuard<T>(dir: NgForOf<T>, ctx: any): ctx is NgForOfContext<T>;
static ngDirectiveDef: i0.ΔDirectiveDefWithMeta<NgForOf<any>, '[ngFor][ngForOf]', never, {'ngForOf': 'ngForOf'}, {}, never>;
static ngDirectiveDef: i0.ɵɵDirectiveDefWithMeta<NgForOf<any>, '[ngFor][ngForOf]', never, {'ngForOf': 'ngForOf'}, {}, never>;
}
export declare class NgIf {
ngIf: any;
static ngTemplateGuard_ngIf: 'binding';
static ngDirectiveDef: i0.ΔDirectiveDefWithMeta<NgForOf<any>, '[ngIf]', never, {'ngIf': 'ngIf'}, {}, never>;
static ngDirectiveDef: i0.ɵɵDirectiveDefWithMeta<NgForOf<any>, '[ngIf]', never, {'ngIf': 'ngIf'}, {}, never>;
}
export declare class CommonModule {
static ngModuleDef: i0.ΔNgModuleDefWithMeta<CommonModule, [typeof NgIf, typeof NgForOf, typeof IndexPipe], never, [typeof NgIf, typeof NgForOf, typeof IndexPipe]>;
static ngModuleDef: i0.ɵɵNgModuleDefWithMeta<CommonModule, [typeof NgIf, typeof NgForOf, typeof IndexPipe], never, [typeof NgIf, typeof NgForOf, typeof IndexPipe]>;
}
`);
}