refactor(ivy): generate new ɵɵattribute instruction in host bindings (#30503)
PR Close #30503
This commit is contained in:
parent
1537aec1f9
commit
988afad2af
|
@ -3253,7 +3253,7 @@ describe('compiler compliance', () => {
|
|||
$r3$.ɵɵallocHostVars(1);
|
||||
}
|
||||
if (rf & 2) {
|
||||
$r3$.ɵɵelementAttribute(elIndex, "tabindex", $r3$.ɵɵbind(ctx.tabindex));
|
||||
$r3$.ɵɵattribute("tabindex", ctx.tabindex);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -308,7 +308,7 @@ describe('compiler compliance: bindings', () => {
|
|||
$r3$.ɵɵallocHostVars(1);
|
||||
}
|
||||
if (rf & 2) {
|
||||
$r3$.ɵɵelementAttribute(elIndex, "required", $r3$.ɵɵbind(ctx.required));
|
||||
$r3$.ɵɵattribute("required", ctx.required);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -514,26 +514,26 @@ describe('compiler compliance: bindings', () => {
|
|||
const template = `
|
||||
…
|
||||
if (rf & 2) {
|
||||
i0.Δselect(0);
|
||||
i0.ΔattributeInterpolateV("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.ΔattributeInterpolate8("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.ΔattributeInterpolate7("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.ΔattributeInterpolate6("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g");
|
||||
i0.Δselect(4);
|
||||
i0.ΔattributeInterpolate5("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f");
|
||||
i0.Δselect(5);
|
||||
i0.ΔattributeInterpolate4("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e");
|
||||
i0.Δselect(6);
|
||||
i0.ΔattributeInterpolate3("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d");
|
||||
i0.Δselect(7);
|
||||
i0.ΔattributeInterpolate2("title", "a", ctx.one, "b", ctx.two, "c");
|
||||
i0.Δselect(8);
|
||||
i0.ΔattributeInterpolate1("title", "a", ctx.one, "b");
|
||||
i0.Δselect(9);
|
||||
i0.ΔattributeInterpolate("title", ctx.one);
|
||||
i0.ɵɵselect(0);
|
||||
i0.ɵɵattributeInterpolateV("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.ɵɵattributeInterpolate8("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.ɵɵattributeInterpolate7("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.ɵɵattributeInterpolate6("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f", ctx.six, "g");
|
||||
i0.ɵɵselect(4);
|
||||
i0.ɵɵattributeInterpolate5("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e", ctx.five, "f");
|
||||
i0.ɵɵselect(5);
|
||||
i0.ɵɵattributeInterpolate4("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d", ctx.four, "e");
|
||||
i0.ɵɵselect(6);
|
||||
i0.ɵɵattributeInterpolate3("title", "a", ctx.one, "b", ctx.two, "c", ctx.three, "d");
|
||||
i0.ɵɵselect(7);
|
||||
i0.ɵɵattributeInterpolate2("title", "a", ctx.one, "b", ctx.two, "c");
|
||||
i0.ɵɵselect(8);
|
||||
i0.ɵɵattributeInterpolate1("title", "a", ctx.one, "b");
|
||||
i0.ɵɵselect(9);
|
||||
i0.ɵɵattributeInterpolate("title", ctx.one);
|
||||
}
|
||||
…
|
||||
`;
|
||||
|
|
|
@ -1769,7 +1769,7 @@ describe('ngtsc behavioral tests', () => {
|
|||
i0.ɵɵstyling(_c0);
|
||||
}
|
||||
if (rf & 2) {
|
||||
i0.ɵɵelementAttribute(elIndex, "hello", i0.ɵɵbind(ctx.foo));
|
||||
i0.ɵɵattribute("hello", ctx.foo);
|
||||
i0.ɵɵproperty("prop", ctx.bar, null, true);
|
||||
i0.ɵɵclassProp(0, ctx.someClass);
|
||||
i0.ɵɵstylingApply();
|
||||
|
@ -1826,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('i0.ɵɵattribute("hello", ctx.foo)');
|
||||
});
|
||||
|
||||
it('should generate host listeners for directives within hostBindings section', () => {
|
||||
|
@ -3216,12 +3216,12 @@ describe('ngtsc behavioral tests', () => {
|
|||
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.ɵɵattribute("href", ctx.attrHref, i0.ɵɵsanitizeUrlOrResourceUrl);
|
||||
i0.ɵɵattribute("src", ctx.attrSrc, i0.ɵɵsanitizeUrlOrResourceUrl);
|
||||
i0.ɵɵattribute("action", ctx.attrAction, i0.ɵɵsanitizeUrl);
|
||||
i0.ɵɵattribute("profile", ctx.attrProfile, i0.ɵɵsanitizeResourceUrl);
|
||||
i0.ɵɵattribute("innerHTML", ctx.attrInnerHTML, i0.ɵɵsanitizeHtml);
|
||||
i0.ɵɵattribute("title", ctx.attrSafeTitle);
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
@ -3314,9 +3314,9 @@ describe('ngtsc behavioral tests', () => {
|
|||
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.ɵɵattribute("src", ctx.srcAttr);
|
||||
i0.ɵɵattribute("href", ctx.hrefAttr);
|
||||
i0.ɵɵattribute("title", ctx.titleAttr);
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
|
|
@ -667,9 +667,9 @@ function createHostBindingsFunction(
|
|||
sanitizerFn = resolveSanitizationFn(securityContexts[0], isAttribute);
|
||||
}
|
||||
}
|
||||
|
||||
const isPropertyInstruction = instruction === R3.property;
|
||||
const instructionParams: o.Expression[] = isPropertyInstruction ?
|
||||
const isInstructionWithoutElementIndex =
|
||||
instruction === R3.property || instruction === R3.attribute;
|
||||
const instructionParams: o.Expression[] = isInstructionWithoutElementIndex ?
|
||||
[
|
||||
o.literal(bindingName),
|
||||
bindingExpr.currValExpr,
|
||||
|
@ -776,7 +776,7 @@ function getBindingNameAndInstruction(binding: ParsedProperty):
|
|||
const attrMatches = bindingName.match(ATTR_REGEX);
|
||||
if (attrMatches) {
|
||||
bindingName = attrMatches[1];
|
||||
instruction = R3.elementAttribute;
|
||||
instruction = R3.attribute;
|
||||
} else {
|
||||
if (binding.isAnimation) {
|
||||
bindingName = prepareSyntheticPropertyName(bindingName);
|
||||
|
|
Loading…
Reference in New Issue