diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/lifecycle_hooks/local_reference_nested.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/lifecycle_hooks/local_reference_nested.js index ea08f5a1b088..92c52707aac3 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/lifecycle_hooks/local_reference_nested.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/lifecycle_hooks/local_reference_nested.js @@ -11,7 +11,7 @@ function MyComponent_div_3_span_2_Template(rf, ctx) { const $foo$ = $r3$.ɵɵreference(1); const $baz$ = $r3$.ɵɵreference(5); $r3$.ɵɵadvance(); - $r3$.ɵɵtextInterpolate3("", $foo$, "-", $bar$, "-", $baz$, ""); + $r3$.ɵɵtextInterpolate3("", $foo$, "-", $bar$, "-", $baz$); } } function MyComponent_div_3_Template(rf, ctx) { diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipe_invocation.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipe_invocation.js index 5920cdebd275..5c4ce3fcbd83 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipe_invocation.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipe_invocation.js @@ -20,8 +20,7 @@ MyApp.ɵcmp = /*@__PURE__*/ $r3$.ɵɵdefineComponent({ "1:", i0.ɵɵpipeBind2(2, 7, ctx.name, 1), "2:", i0.ɵɵpipeBind3(3, 10, ctx.name, 1, 2), "3:", i0.ɵɵpipeBind4(4, 14, ctx.name, 1, 2, 3), - "4:", i0.ɵɵpipeBindV(5, 19, $r3$.ɵɵpureFunction1(25, $c0$, ctx.name)), - "" + "4:", i0.ɵɵpipeBindV(5, 19, $r3$.ɵɵpureFunction1(25, $c0$, ctx.name)) ); } }, diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipes_my_app_def.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipes_my_app_def.js index e639c6e3b496..8e3c43c595e9 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipes_my_app_def.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/pipes/pipes_my_app_def.js @@ -20,7 +20,7 @@ MyApp.ɵcmp = /*@__PURE__*/ $r3$.ɵɵdefineComponent({ if (rf & 2) { $r3$.ɵɵtextInterpolate($r3$.ɵɵpipeBind2(2, 6, $r3$.ɵɵpipeBind2(1, 3, ctx.name, ctx.size), ctx.size)); $r3$.ɵɵadvance(4); - $r3$.ɵɵtextInterpolate2("", $r3$.ɵɵpipeBindV(5, 9, $r3$.ɵɵpureFunction1(18, $c0$, ctx.name)), " ", ctx.name ? 1 : $r3$.ɵɵpipeBind1(6, 16, 2), ""); + $r3$.ɵɵtextInterpolate2("", $r3$.ɵɵpipeBindV(5, 9, $r3$.ɵɵpureFunction1(18, $c0$, ctx.name)), " ", ctx.name ? 1 : $r3$.ɵɵpipeBind1(6, 16, 2)); } }, dependencies: [MyPipe, MyPurePipe], diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/number_separator.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/number_separator.js index fa1194c71d5e..999f400bd7f2 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/number_separator.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/number_separator.js @@ -2,8 +2,8 @@ template: function MyApp_Template(rf, ctx) { // ... if (rf & 2) { $r3$.ɵɵadvance(); - $r3$.ɵɵtextInterpolate1("Total: $", 1000000 * ctx.multiplier, ""); + $r3$.ɵɵtextInterpolate1("Total: $", 1000000 * ctx.multiplier); $r3$.ɵɵadvance(2); - $r3$.ɵɵtextInterpolate1("Remaining: $", 123456.789 / 2, ""); + $r3$.ɵɵtextInterpolate1("Remaining: $", 123456.789 / 2); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/structural_directives_my_component_def.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/structural_directives_my_component_def.js index 85831689ed5c..24ce30cc0ce4 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/structural_directives_my_component_def.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/structural_directives_my_component_def.js @@ -8,7 +8,7 @@ function MyComponent_li_2_Template(rf, ctx) { const $myComp$ = $r3$.ɵɵnextContext(); const $foo$ = $r3$.ɵɵreference(1); $r3$.ɵɵadvance(); - $r3$.ɵɵtextInterpolate2("", $myComp$.salutation, " ", $foo$, ""); + $r3$.ɵɵtextInterpolate2("", $myComp$.salutation, " ", $foo$); } } // ... diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/tagged_template_literals.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/tagged_template_literals.js index 5b2766de7414..24b0b327e1eb 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/tagged_template_literals.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/tagged_template_literals.js @@ -1,8 +1,8 @@ if (rf & 2) { $r3$.ɵɵadvance(); - $r3$.ɵɵtextInterpolate1("No interpolations: ", ctx.tag `hello world `, ""); + $r3$.ɵɵtextInterpolate1("No interpolations: ", ctx.tag `hello world `); $r3$.ɵɵadvance(2); - $r3$.ɵɵtextInterpolate1("With interpolations: ", ctx.tag `hello ${ctx.name}, it is currently ${ctx.timeOfDay}!`, ""); + $r3$.ɵɵtextInterpolate1("With interpolations: ", ctx.tag `hello ${ctx.name}, it is currently ${ctx.timeOfDay}!`); $r3$.ɵɵadvance(2); - $r3$.ɵɵtextInterpolate1("With pipe: ", $r3$.ɵɵpipeBind1(6, 3, ctx.tag `hello ${ctx.name}`), ""); + $r3$.ɵɵtextInterpolate1("With pipe: ", $r3$.ɵɵpipeBind1(6, 3, ctx.tag `hello ${ctx.name}`)); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/template_literals.js b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/template_literals.js index 5e4c1454552f..3e0e315e44d0 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/template_literals.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/template_literals.js @@ -1,8 +1,8 @@ if (rf & 2) { $r3$.ɵɵadvance(); - $r3$.ɵɵtextInterpolate1("No interpolations: ", `hello world `, ""); + $r3$.ɵɵtextInterpolate1("No interpolations: ", `hello world `); $r3$.ɵɵadvance(2); - $r3$.ɵɵtextInterpolate1("With interpolations: ", `hello ${ctx.name}, it is currently ${ctx.timeOfDay}!`, ""); + $r3$.ɵɵtextInterpolate1("With interpolations: ", `hello ${ctx.name}, it is currently ${ctx.timeOfDay}!`); $r3$.ɵɵadvance(2); - $r3$.ɵɵtextInterpolate1("With pipe: ", $r3$.ɵɵpipeBind1(6, 3, `hello ${ctx.name}`), ""); + $r3$.ɵɵtextInterpolate1("With pipe: ", $r3$.ɵɵpipeBind1(6, 3, `hello ${ctx.name}`)); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/nullish_coalescing/nullish_coalescing_interpolation_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/nullish_coalescing/nullish_coalescing_interpolation_template.js index e306bc33f552..a98fcd2c2889 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/nullish_coalescing/nullish_coalescing_interpolation_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/nullish_coalescing/nullish_coalescing_interpolation_template.js @@ -11,6 +11,6 @@ template: function MyApp_Template(rf, ctx) { i0.ɵɵadvance(); i0.ɵɵtextInterpolate1("Hello, ", ctx.firstName ?? "Frodo", "!"); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Your last name is ", ctx.lastName ?? ctx.lastNameFallback ?? "unknown", ""); + i0.ɵɵtextInterpolate1("Your last name is ", ctx.lastName ?? ctx.lastNameFallback ?? "unknown"); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_deep_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_deep_template.js index 039f154f87d2..1f61f0729543 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_deep_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_deep_template.js @@ -1,10 +1,10 @@ } if (rf & 2) { i0.ɵɵadvance(); - i0.ɵɵtextInterpolate1("Safe Property: ", ctx.p == null ? null : ctx.p.a == null ? null : ctx.p.a.b == null ? null : ctx.p.a.b.c == null ? null : ctx.p.a.b.c.d, ""); + i0.ɵɵtextInterpolate1("Safe Property: ", ctx.p == null ? null : ctx.p.a == null ? null : ctx.p.a.b == null ? null : ctx.p.a.b.c == null ? null : ctx.p.a.b.c.d); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Safe Keyed: ", ctx.p == null ? null : ctx.p["a"] == null ? null : ctx.p["a"]["b"] == null ? null : ctx.p["a"]["b"]["c"] == null ? null : ctx.p["a"]["b"]["c"]["d"], ""); + i0.ɵɵtextInterpolate1("Safe Keyed: ", ctx.p == null ? null : ctx.p["a"] == null ? null : ctx.p["a"]["b"] == null ? null : ctx.p["a"]["b"]["c"] == null ? null : ctx.p["a"]["b"]["c"]["d"]); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Mixed Property: ", ctx.p == null ? null : ctx.p.a == null ? null : ctx.p.a.b.c.d == null ? null : ctx.p.a.b.c.d.e == null ? null : ctx.p.a.b.c.d.e.f == null ? null : ctx.p.a.b.c.d.e.f.g.h, ""); + i0.ɵɵtextInterpolate1("Mixed Property: ", ctx.p == null ? null : ctx.p.a == null ? null : ctx.p.a.b.c.d == null ? null : ctx.p.a.b.c.d.e == null ? null : ctx.p.a.b.c.d.e.f == null ? null : ctx.p.a.b.c.d.e.f.g.h); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Mixed Property and Keyed: ", ctx.p.a["b"].c.d == null ? null : ctx.p.a["b"].c.d["e"] == null ? null : ctx.p.a["b"].c.d["e"]["f"] == null ? null : ctx.p.a["b"].c.d["e"]["f"].g["h"]["i"] == null ? null : ctx.p.a["b"].c.d["e"]["f"].g["h"]["i"].j.k, ""); + i0.ɵɵtextInterpolate1("Mixed Property and Keyed: ", ctx.p.a["b"].c.d == null ? null : ctx.p.a["b"].c.d["e"] == null ? null : ctx.p.a["b"].c.d["e"]["f"] == null ? null : ctx.p.a["b"].c.d["e"]["f"].g["h"]["i"] == null ? null : ctx.p.a["b"].c.d["e"]["f"].g["h"]["i"].j.k); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_temporaries_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_temporaries_template.js index 34adcd3e7c92..4160d1639f07 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_temporaries_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler/safe_access/safe_access_temporaries_template.js @@ -8,11 +8,11 @@ let $tmp_3_2$; let $tmp_3_3$; i0.ɵɵadvance(); - i0.ɵɵtextInterpolate1("Safe Property with Calls: ", ($tmp_0_0$ = ctx.p()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.a()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.b()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.c()) == null ? null : $tmp_0_0$.d(), ""); + i0.ɵɵtextInterpolate1("Safe Property with Calls: ", ($tmp_0_0$ = ctx.p()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.a()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.b()) == null ? null : ($tmp_0_0$ = $tmp_0_0$.c()) == null ? null : $tmp_0_0$.d()); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Safe and Unsafe Property with Calls: ", ctx.p == null ? null : ($tmp_1_0$ = ctx.p.a()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.b().c().d()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.e()) == null ? null : $tmp_1_0$.f == null ? null : $tmp_1_0$.f.g.h == null ? null : ($tmp_1_0$ = $tmp_1_0$.f.g.h.i()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.j()) == null ? null : $tmp_1_0$.k().l, ""); + i0.ɵɵtextInterpolate1("Safe and Unsafe Property with Calls: ", ctx.p == null ? null : ($tmp_1_0$ = ctx.p.a()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.b().c().d()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.e()) == null ? null : $tmp_1_0$.f == null ? null : $tmp_1_0$.f.g.h == null ? null : ($tmp_1_0$ = $tmp_1_0$.f.g.h.i()) == null ? null : ($tmp_1_0$ = $tmp_1_0$.j()) == null ? null : $tmp_1_0$.k().l); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Nested Safe with Calls: ", ($tmp_2_0$ = ctx.f1()) == null ? null : $tmp_2_0$[($tmp_2_1$ = ctx.f2()) == null ? null : $tmp_2_1$.a] == null ? null : $tmp_2_0$[($tmp_2_1$ = $tmp_2_1$) == null ? null : $tmp_2_1$.a].b, ""); + i0.ɵɵtextInterpolate1("Nested Safe with Calls: ", ($tmp_2_0$ = ctx.f1()) == null ? null : $tmp_2_0$[($tmp_2_1$ = ctx.f2()) == null ? null : $tmp_2_1$.a] == null ? null : $tmp_2_0$[($tmp_2_1$ = $tmp_2_1$) == null ? null : $tmp_2_1$.a].b); i0.ɵɵadvance(2); - i0.ɵɵtextInterpolate1("Deep Nested Safe with Calls: ", ($tmp_3_0$ = ctx.f1()) == null ? null : $tmp_3_0$[($tmp_3_1$ = ctx.f2()) == null ? null : ($tmp_3_2$ = $tmp_3_1$.f3()) == null ? null : $tmp_3_2$[($tmp_3_3$ = ctx.f4()) == null ? null : $tmp_3_3$.f5()]] == null ? null : $tmp_3_0$[($tmp_3_1$ = $tmp_3_1$) == null ? null : ($tmp_3_2$ = $tmp_3_2$) == null ? null : $tmp_3_2$[($tmp_3_3$ = $tmp_3_3$) == null ? null : $tmp_3_3$.f5()]].f6(), ""); + i0.ɵɵtextInterpolate1("Deep Nested Safe with Calls: ", ($tmp_3_0$ = ctx.f1()) == null ? null : $tmp_3_0$[($tmp_3_1$ = ctx.f2()) == null ? null : ($tmp_3_2$ = $tmp_3_1$.f3()) == null ? null : $tmp_3_2$[($tmp_3_3$ = ctx.f4()) == null ? null : $tmp_3_3$.f5()]] == null ? null : $tmp_3_0$[($tmp_3_1$ = $tmp_3_1$) == null ? null : ($tmp_3_2$ = $tmp_3_2$) == null ? null : $tmp_3_2$[($tmp_3_3$ = $tmp_3_3$) == null ? null : $tmp_3_3$.f5()]].f6()); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_bindings_with_interpolations.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_bindings_with_interpolations.js index dea91e1b3b37..953d8dd6ed2d 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_bindings_with_interpolations.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_bindings_with_interpolations.js @@ -1,8 +1,8 @@ template: function MyComponent_Template(rf, ctx) { … if (rf & 2) { - $r3$.ɵɵattributeInterpolate1("tabindex", "prefix-", 0 + 3, ""); - $r3$.ɵɵattributeInterpolate2("aria-label", "hello-", 1 + 3, "-", 2 + 3, ""); + $r3$.ɵɵattributeInterpolate1("tabindex", "prefix-", 0 + 3); + $r3$.ɵɵattributeInterpolate2("aria-label", "hello-", 1 + 3, "-", 2 + 3); $r3$.ɵɵattribute("title", 1)("id", 2); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_multiple_bindings_mixed.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_multiple_bindings_mixed.js index f0e37820319e..2af6130afe18 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_multiple_bindings_mixed.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/attribute_bindings/chain_multiple_bindings_mixed.js @@ -1,7 +1,7 @@ template: function MyComponent_Template(rf, ctx) { … if (rf & 2) { - $r3$.ɵɵattributeInterpolate1("aria-label", "prefix-", 1 + 3, ""); + $r3$.ɵɵattributeInterpolate1("aria-label", "prefix-", 1 + 3); $r3$.ɵɵproperty("id", 2); $r3$.ɵɵattribute("title", 1)("tabindex", 3); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/order_bindings.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/order_bindings.js index 25b0a537c218..8a977bdcb5d1 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/order_bindings.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/order_bindings.js @@ -26,8 +26,8 @@ function MyCmp_Template(rf, ctx) { } if (rf & 2) { i0.ɵɵstyleProp("style1", ctx.foo); i0.ɵɵclassProp("class1", ctx.foo); - i0.ɵɵattributeInterpolate1("attrInterp1", "interp ", ctx.foo, ""); - i0.ɵɵpropertyInterpolate1("propInterp1", "interp ", ctx.foo, ""); + i0.ɵɵattributeInterpolate1("attrInterp1", "interp ", ctx.foo); + i0.ɵɵpropertyInterpolate1("propInterp1", "interp ", ctx.foo); i0.ɵɵproperty("prop1", ctx.foo); i0.ɵɵattribute("attr1", ctx.foo); } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/chain_bindings_with_interpolations.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/chain_bindings_with_interpolations.js index 4fd71f7dbfaf..46191b5f5b21 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/chain_bindings_with_interpolations.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/chain_bindings_with_interpolations.js @@ -2,7 +2,7 @@ template: function MyComponent_Template(rf, ctx) { … if (rf & 2) { $r3$.ɵɵpropertyInterpolate("tabindex", 0 + 3); - $r3$.ɵɵpropertyInterpolate2("aria-label", "hello-", 1 + 3, "-", 2 + 3, ""); + $r3$.ɵɵpropertyInterpolate2("aria-label", "hello-", 1 + 3, "-", 2 + 3); $r3$.ɵɵproperty("title", 1)("id", 2); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/interpolation.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/interpolation.js index 72cc83ed7dd4..758ced2a8182 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/interpolation.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/interpolation.js @@ -6,6 +6,6 @@ template:function MyComponent_Template(rf, $ctx$){ $i0$.ɵɵelement(0, "a", 0); } if (rf & 2) { - $i0$.ɵɵpropertyInterpolate1("title", "Hello ", $ctx$.name, ""); + $i0$.ɵɵpropertyInterpolate1("title", "Hello ", $ctx$.name); } } \ No newline at end of file diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/text_bindings/interpolation.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/text_bindings/interpolation.js index 6c9525869458..15a5a1028cae 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/text_bindings/interpolation.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/text_bindings/interpolation.js @@ -7,6 +7,6 @@ template:function MyComponent_Template(rf, $ctx$){ } if (rf & 2) { $r3$.ɵɵadvance(); - $i0$.ɵɵtextInterpolate1("Hello ", $ctx$.name, ""); + $i0$.ɵɵtextInterpolate1("Hello ", $ctx$.name); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_i18n/icu_logic/attribute_interpolation.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_i18n/icu_logic/attribute_interpolation.js index 276853f3398c..0798be982aec 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_i18n/icu_logic/attribute_interpolation.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_i18n/icu_logic/attribute_interpolation.js @@ -67,7 +67,7 @@ template: function MyComponent_Template(rf, ctx) { } if (rf & 2) { i0.ɵɵadvance(2); - i0.ɵɵpropertyInterpolate2("title", "", ctx.foo, "-", ctx.foo, ""); + i0.ɵɵpropertyInterpolate2("title", "", ctx.foo, "-", ctx.foo); i0.ɵɵadvance(2); i0.ɵɵi18nExp(ctx.foo)(ctx.foo)(ctx.foo)(ctx.foo)(ctx.foo); i0.ɵɵi18nApply(1); diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/mixed_style_and_class/pipe_bindings_slots.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/mixed_style_and_class/pipe_bindings_slots.js index 43a9aba18a3f..90f543e3ed24 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/mixed_style_and_class/pipe_bindings_slots.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/mixed_style_and_class/pipe_bindings_slots.js @@ -14,6 +14,6 @@ template: function MyComponent_Template(rf, $ctx$) { $r3$.ɵɵstyleProp("bar", $r3$.ɵɵpipeBind2(2, 14, $ctx$.barExp, 3000))("baz", $r3$.ɵɵpipeBind2(3, 17, $ctx$.bazExp, 4000)); $r3$.ɵɵclassProp("foo", $r3$.ɵɵpipeBind2(4, 20, $ctx$.fooExp, 2000)); $r3$.ɵɵadvance(5); - $r3$.ɵɵtextInterpolate1(" ", $ctx$.item, ""); + $r3$.ɵɵtextInterpolate1(" ", $ctx$.item); } } diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/style_bindings/binding_slots.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/style_bindings/binding_slots.js index 60ae1681cf9a..92dae5b498df 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/style_bindings/binding_slots.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_styling/style_bindings/binding_slots.js @@ -6,7 +6,7 @@ $r3$.ɵɵelement(0, "div"); } if (rf & 2) { - $r3$.ɵɵclassMapInterpolate1("foo foo-", $ctx$.fooId, ""); + $r3$.ɵɵclassMapInterpolate1("foo foo-", $ctx$.fooId); } } // ... @@ -17,7 +17,7 @@ $r3$.ɵɵelement(0, "div"); } if (rf & 2) { - $r3$.ɵɵclassMapInterpolate2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername, ""); + $r3$.ɵɵclassMapInterpolate2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername); } } // ... diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_template/nested_ternary_operation_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_template/nested_ternary_operation_template.js index 4d0c6da4ae4c..c8f40370207a 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_template/nested_ternary_operation_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_template/nested_ternary_operation_template.js @@ -1,2 +1,2 @@ … -i0.ɵɵtextInterpolate1(" ", (ctx.a == null ? null : ctx.a.b) ? 1 : 2, "") +i0.ɵɵtextInterpolate1(" ", (ctx.a == null ? null : ctx.a.b) ? 1 : 2) diff --git a/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic.js b/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic.js index ec6dbaf6f8db..cb2e87d74189 100644 --- a/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic.js +++ b/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic.js @@ -2,4 +2,4 @@ i0.ɵɵelementStart(0, "h3") // SOURCE: "/interpolation_basic.ts" "

" … i0.ɵɵelementEnd() // SOURCE: "/interpolation_basic.ts" "

" … -i0.ɵɵtextInterpolate1("Hello ", ctx.name, "") // SOURCE: "/interpolation_basic.ts" "Hello {{ name }}" +i0.ɵɵtextInterpolate1("Hello ", ctx.name) // SOURCE: "/interpolation_basic.ts" "Hello {{ name }}" diff --git a/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic_partial.js b/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic_partial.js index 1e531cf4b5cd..2ac06ceff5cd 100644 --- a/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic_partial.js +++ b/packages/compiler-cli/test/compliance/test_cases/source_mapping/inline_templates/interpolation_basic_partial.js @@ -3,4 +3,4 @@ // TODO: Work out how to fix the broken segment for the last item in a template .ɵɵele // SOURCE: "/interpolation_basic.ts" "'" … -.ɵɵtextInterpolate1("Hello ", ctx.name, "") // SOURCE: "/interpolation_basic.ts" "Hello {{ name }}" +.ɵɵtextInterpolate1("Hello ", ctx.name) // SOURCE: "/interpolation_basic.ts" "Hello {{ name }}" diff --git a/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts b/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts index 09ad5bb2a83b..d9965d20d05a 100644 --- a/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts +++ b/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts @@ -72,7 +72,7 @@ runInEachFileSystem((os) => { }); expectMapping(mappings, { source: 'Hello {{ name }}', - generated: 'i0.ɵɵtextInterpolate1("Hello ", ctx.name, "")', + generated: 'i0.ɵɵtextInterpolate1("Hello ", ctx.name)', sourceUrl: '../test.ts', }); expectMapping(mappings, { diff --git a/packages/compiler/src/template/pipeline/src/instruction.ts b/packages/compiler/src/template/pipeline/src/instruction.ts index 3282cebcd690..9c30db2b6e6d 100644 --- a/packages/compiler/src/template/pipeline/src/instruction.ts +++ b/packages/compiler/src/template/pipeline/src/instruction.ts @@ -579,6 +579,7 @@ export function textInterpolate( sourceSpan: ParseSourceSpan, ): ir.UpdateOp { const interpolationArgs = collateInterpolationArgs(strings, expressions); + return callVariadicInstruction(TEXT_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan); } @@ -598,6 +599,7 @@ export function propertyInterpolate( sourceSpan: ParseSourceSpan, ): ir.UpdateOp { const interpolationArgs = collateInterpolationArgs(strings, expressions); + const extraArgs = []; if (sanitizer !== null) { extraArgs.push(sanitizer); @@ -620,6 +622,7 @@ export function attributeInterpolate( sourceSpan: ParseSourceSpan, ): ir.UpdateOp { const interpolationArgs = collateInterpolationArgs(strings, expressions); + const extraArgs = []; if (sanitizer !== null) { extraArgs.push(sanitizer); @@ -642,6 +645,7 @@ export function stylePropInterpolate( sourceSpan: ParseSourceSpan, ): ir.UpdateOp { const interpolationArgs = collateInterpolationArgs(strings, expressions); + const extraArgs: o.Expression[] = []; if (unit !== null) { extraArgs.push(o.literal(unit)); @@ -748,6 +752,7 @@ function collateInterpolationArgs(strings: string[], expressions: o.Expression[] for (idx = 0; idx < expressions.length; idx++) { interpolationArgs.push(o.literal(strings[idx]), expressions[idx]); } + // idx points at the last string. interpolationArgs.push(o.literal(strings[idx])); } @@ -953,7 +958,21 @@ function callVariadicInstructionExpr( extraArgs: o.Expression[], sourceSpan: ParseSourceSpan | null, ): o.Expression { + // mapping need to be done before potentially dropping the last interpolation argument const n = config.mapping(interpolationArgs.length); + + // In the case the interpolation instruction ends with a empty string we drop it + // And the runtime will take care of it. + const lastInterpolationArg = interpolationArgs.at(-1); + if ( + extraArgs.length === 0 && + interpolationArgs.length > 1 && + lastInterpolationArg instanceof o.LiteralExpr && + lastInterpolationArg.value === '' + ) { + interpolationArgs.pop(); + } + if (n < config.constant.length) { // Constant calling pattern. return o diff --git a/packages/core/src/render3/instructions/attribute_interpolation.ts b/packages/core/src/render3/instructions/attribute_interpolation.ts index 3604456fde85..6b463d26ed75 100644 --- a/packages/core/src/render3/instructions/attribute_interpolation.ts +++ b/packages/core/src/render3/instructions/attribute_interpolation.ts @@ -49,7 +49,7 @@ export function ɵɵattributeInterpolate1( attrName: string, prefix: string, v0: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate1 { @@ -65,7 +65,7 @@ export function ɵɵattributeInterpolate1( 'attr.' + attrName, getBindingIndex() - 1, prefix, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate1; @@ -103,7 +103,7 @@ export function ɵɵattributeInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate2 { @@ -120,7 +120,7 @@ export function ɵɵattributeInterpolate2( getBindingIndex() - 2, prefix, i0, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate2; @@ -163,7 +163,7 @@ export function ɵɵattributeInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate3 { @@ -181,7 +181,7 @@ export function ɵɵattributeInterpolate3( prefix, i0, i1, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate3; @@ -228,7 +228,7 @@ export function ɵɵattributeInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate4 { @@ -247,7 +247,7 @@ export function ɵɵattributeInterpolate4( i0, i1, i2, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate4; @@ -298,7 +298,7 @@ export function ɵɵattributeInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate5 { @@ -331,7 +331,7 @@ export function ɵɵattributeInterpolate5( i1, i2, i3, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate5; @@ -386,7 +386,7 @@ export function ɵɵattributeInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate6 { @@ -422,7 +422,7 @@ export function ɵɵattributeInterpolate6( i2, i3, i4, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate6; @@ -481,7 +481,7 @@ export function ɵɵattributeInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate7 { @@ -520,7 +520,7 @@ export function ɵɵattributeInterpolate7( i3, i4, i5, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate7; @@ -583,7 +583,7 @@ export function ɵɵattributeInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, namespace?: string, ): typeof ɵɵattributeInterpolate8 { @@ -625,7 +625,7 @@ export function ɵɵattributeInterpolate8( i4, i5, i6, - suffix, + suffix ?? '', ); } return ɵɵattributeInterpolate8; @@ -669,7 +669,7 @@ export function ɵɵattributeInterpolateV( const tNode = getSelectedTNode(); elementAttributeInternal(tNode, lView, attrName, interpolated, sanitizer, namespace); if (ngDevMode) { - const interpolationInBetween = [values[0]]; // prefix + const interpolationInBetween = [values[0] as string]; // prefix for (let i = 2; i < values.length; i += 2) { interpolationInBetween.push(values[i]); } diff --git a/packages/core/src/render3/instructions/class_map_interpolation.ts b/packages/core/src/render3/instructions/class_map_interpolation.ts index 1f3c755b2a3e..f5b8cfc19923 100644 --- a/packages/core/src/render3/instructions/class_map_interpolation.ts +++ b/packages/core/src/render3/instructions/class_map_interpolation.ts @@ -42,7 +42,7 @@ import {checkStylingMap, classStringParser} from './styling'; * @param suffix Static value used for concatenation only. * @codeGenApi */ -export function ɵɵclassMapInterpolate1(prefix: string, v0: any, suffix: string): void { +export function ɵɵclassMapInterpolate1(prefix: string, v0: any, suffix?: string): void { const lView = getLView(); const interpolatedValue = interpolation1(lView, prefix, v0, suffix); checkStylingMap(keyValueArraySet, classStringParser, interpolatedValue, true); @@ -76,7 +76,7 @@ export function ɵɵclassMapInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix); @@ -116,7 +116,7 @@ export function ɵɵclassMapInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix); @@ -160,7 +160,7 @@ export function ɵɵclassMapInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix); @@ -208,7 +208,7 @@ export function ɵɵclassMapInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation5( @@ -273,7 +273,7 @@ export function ɵɵclassMapInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation6( @@ -344,7 +344,7 @@ export function ɵɵclassMapInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation7( @@ -421,7 +421,7 @@ export function ɵɵclassMapInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation8( diff --git a/packages/core/src/render3/instructions/interpolation.ts b/packages/core/src/render3/instructions/interpolation.ts index acc0234afe53..48d32ecef01c 100644 --- a/packages/core/src/render3/instructions/interpolation.ts +++ b/packages/core/src/render3/instructions/interpolation.ts @@ -27,7 +27,6 @@ import {renderStringify} from '../util/stringify_utils'; */ export function interpolationV(lView: LView, values: any[]): string | NO_CHANGE { ngDevMode && assertLessThan(2, values.length, 'should have at least 3 values'); - ngDevMode && assertEqual(values.length % 2, 1, 'should have an odd number of values'); let isBindingUpdated = false; let bindingIndex = getBindingIndex(); @@ -44,7 +43,8 @@ export function interpolationV(lView: LView, values: any[]): string | NO_CHANGE // Build the updated content let content = values[0]; for (let i = 1; i < values.length; i += 2) { - content += renderStringify(values[i]) + values[i + 1]; + // The condition is to prevent an out-of-bound read + content += renderStringify(values[i]) + (i + 1 !== values.length ? values[i + 1] : ''); } return content; @@ -61,7 +61,7 @@ export function interpolation1( lView: LView, prefix: string, v0: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const different = bindingUpdated(lView, nextBindingIndex(), v0); return different ? prefix + renderStringify(v0) + suffix : NO_CHANGE; @@ -76,7 +76,7 @@ export function interpolation2( v0: any, i0: string, v1: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); const different = bindingUpdated2(lView, bindingIndex, v0, v1); @@ -96,7 +96,7 @@ export function interpolation3( v1: any, i1: string, v2: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); const different = bindingUpdated3(lView, bindingIndex, v0, v1, v2); @@ -120,7 +120,7 @@ export function interpolation4( v2: any, i2: string, v3: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); const different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3); @@ -154,7 +154,7 @@ export function interpolation5( v3: any, i3: string, v4: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3); @@ -193,7 +193,7 @@ export function interpolation6( v4: any, i4: string, v5: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3); @@ -236,7 +236,7 @@ export function interpolation7( v5: any, i5: string, v6: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3); @@ -283,7 +283,7 @@ export function interpolation8( v6: any, i6: string, v7: any, - suffix: string, + suffix = '', ): string | NO_CHANGE { const bindingIndex = getBindingIndex(); let different = bindingUpdated4(lView, bindingIndex, v0, v1, v2, v3); diff --git a/packages/core/src/render3/instructions/property_interpolation.ts b/packages/core/src/render3/instructions/property_interpolation.ts index 701f34b17768..364e5843acd0 100644 --- a/packages/core/src/render3/instructions/property_interpolation.ts +++ b/packages/core/src/render3/instructions/property_interpolation.ts @@ -93,7 +93,7 @@ export function ɵɵpropertyInterpolate1( propName: string, prefix: string, v0: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate1 { const lView = getLView(); @@ -118,7 +118,7 @@ export function ɵɵpropertyInterpolate1( propName, getBindingIndex() - 1, prefix, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate1; @@ -160,7 +160,7 @@ export function ɵɵpropertyInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate2 { const lView = getLView(); @@ -186,7 +186,7 @@ export function ɵɵpropertyInterpolate2( getBindingIndex() - 2, prefix, i0, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate2; @@ -233,7 +233,7 @@ export function ɵɵpropertyInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate3 { const lView = getLView(); @@ -260,7 +260,7 @@ export function ɵɵpropertyInterpolate3( prefix, i0, i1, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate3; @@ -311,7 +311,7 @@ export function ɵɵpropertyInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate4 { const lView = getLView(); @@ -339,7 +339,7 @@ export function ɵɵpropertyInterpolate4( i0, i1, i2, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate4; @@ -394,7 +394,7 @@ export function ɵɵpropertyInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate5 { const lView = getLView(); @@ -436,7 +436,7 @@ export function ɵɵpropertyInterpolate5( i1, i2, i3, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate5; @@ -495,7 +495,7 @@ export function ɵɵpropertyInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate6 { const lView = getLView(); @@ -540,7 +540,7 @@ export function ɵɵpropertyInterpolate6( i2, i3, i4, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate6; @@ -603,7 +603,7 @@ export function ɵɵpropertyInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate7 { const lView = getLView(); @@ -651,7 +651,7 @@ export function ɵɵpropertyInterpolate7( i3, i4, i5, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate7; @@ -718,7 +718,7 @@ export function ɵɵpropertyInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, sanitizer?: SanitizerFn, ): typeof ɵɵpropertyInterpolate8 { const lView = getLView(); @@ -769,7 +769,7 @@ export function ɵɵpropertyInterpolate8( i4, i5, i6, - suffix, + suffix ?? '', ); } return ɵɵpropertyInterpolate8; diff --git a/packages/core/src/render3/instructions/style_map_interpolation.ts b/packages/core/src/render3/instructions/style_map_interpolation.ts index 350ab7e5385b..1914cbff6a94 100644 --- a/packages/core/src/render3/instructions/style_map_interpolation.ts +++ b/packages/core/src/render3/instructions/style_map_interpolation.ts @@ -41,7 +41,7 @@ import {ɵɵstyleMap} from './styling'; * @param suffix Static value used for concatenation only. * @codeGenApi */ -export function ɵɵstyleMapInterpolate1(prefix: string, v0: any, suffix: string): void { +export function ɵɵstyleMapInterpolate1(prefix: string, v0: any, suffix?: string): void { const lView = getLView(); const interpolatedValue = interpolation1(lView, prefix, v0, suffix); ɵɵstyleMap(interpolatedValue); @@ -75,7 +75,7 @@ export function ɵɵstyleMapInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix); @@ -115,7 +115,7 @@ export function ɵɵstyleMapInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix); @@ -159,7 +159,7 @@ export function ɵɵstyleMapInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix); @@ -207,7 +207,7 @@ export function ɵɵstyleMapInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation5( @@ -274,7 +274,7 @@ export function ɵɵstyleMapInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation6( @@ -347,7 +347,7 @@ export function ɵɵstyleMapInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation7( @@ -426,7 +426,7 @@ export function ɵɵstyleMapInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, ): void { const lView = getLView(); const interpolatedValue = interpolation8( diff --git a/packages/core/src/render3/instructions/style_prop_interpolation.ts b/packages/core/src/render3/instructions/style_prop_interpolation.ts index 44fcada58f93..8da8560e2298 100644 --- a/packages/core/src/render3/instructions/style_prop_interpolation.ts +++ b/packages/core/src/render3/instructions/style_prop_interpolation.ts @@ -50,7 +50,7 @@ export function ɵɵstylePropInterpolate1( prop: string, prefix: string, v0: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate1 { const lView = getLView(); @@ -93,7 +93,7 @@ export function ɵɵstylePropInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate2 { const lView = getLView(); @@ -140,7 +140,7 @@ export function ɵɵstylePropInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate3 { const lView = getLView(); @@ -191,7 +191,7 @@ export function ɵɵstylePropInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate4 { const lView = getLView(); @@ -246,7 +246,7 @@ export function ɵɵstylePropInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate5 { const lView = getLView(); @@ -318,7 +318,7 @@ export function ɵɵstylePropInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate6 { const lView = getLView(); @@ -397,7 +397,7 @@ export function ɵɵstylePropInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate7 { const lView = getLView(); @@ -482,7 +482,7 @@ export function ɵɵstylePropInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, valueSuffix?: string | null, ): typeof ɵɵstylePropInterpolate8 { const lView = getLView(); diff --git a/packages/core/src/render3/instructions/text_interpolation.ts b/packages/core/src/render3/instructions/text_interpolation.ts index c8afff83d992..c2f18135f24c 100644 --- a/packages/core/src/render3/instructions/text_interpolation.ts +++ b/packages/core/src/render3/instructions/text_interpolation.ts @@ -46,7 +46,7 @@ import { * @codeGenApi */ export function ɵɵtextInterpolate(v0: any): typeof ɵɵtextInterpolate { - ɵɵtextInterpolate1('', v0, ''); + ɵɵtextInterpolate1('', v0); return ɵɵtextInterpolate; } @@ -72,7 +72,7 @@ export function ɵɵtextInterpolate(v0: any): typeof ɵɵtextInterpolate { export function ɵɵtextInterpolate1( prefix: string, v0: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate1 { const lView = getLView(); const interpolated = interpolation1(lView, prefix, v0, suffix); @@ -106,7 +106,7 @@ export function ɵɵtextInterpolate2( v0: any, i0: string, v1: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate2 { const lView = getLView(); const interpolated = interpolation2(lView, prefix, v0, i0, v1, suffix); @@ -143,7 +143,7 @@ export function ɵɵtextInterpolate3( v1: any, i1: string, v2: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate3 { const lView = getLView(); const interpolated = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix); @@ -182,7 +182,7 @@ export function ɵɵtextInterpolate4( v2: any, i2: string, v3: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate4 { const lView = getLView(); const interpolated = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix); @@ -223,7 +223,7 @@ export function ɵɵtextInterpolate5( v3: any, i3: string, v4: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate5 { const lView = getLView(); const interpolated = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix); @@ -268,7 +268,7 @@ export function ɵɵtextInterpolate6( v4: any, i4: string, v5: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate6 { const lView = getLView(); const interpolated = interpolation6( @@ -328,7 +328,7 @@ export function ɵɵtextInterpolate7( v5: any, i5: string, v6: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate7 { const lView = getLView(); const interpolated = interpolation7( @@ -392,7 +392,7 @@ export function ɵɵtextInterpolate8( v6: any, i6: string, v7: any, - suffix: string, + suffix?: string, ): typeof ɵɵtextInterpolate8 { const lView = getLView(); const interpolated = interpolation8( diff --git a/packages/tsconfig-build.json b/packages/tsconfig-build.json index 8fd4cf015bf5..3ce102aa4e57 100644 --- a/packages/tsconfig-build.json +++ b/packages/tsconfig-build.json @@ -19,7 +19,7 @@ "moduleResolution": "node", "module": "esnext", "target": "es2022", - "lib": ["es2020", "dom", "dom.iterable"], + "lib": ["es2020", "es2022", "dom", "dom.iterable"], "skipLibCheck": true, // don't auto-discover @types/node, it results in a ///