diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/defer_deps_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/defer_deps_template.js index 6c6c59e0368..20ff8e65ca0 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/defer_deps_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/defer_deps_template.js @@ -1,4 +1,4 @@ -const TestCmp_Defer_1_DepsFn = () => [import("./defer_deps_ext").then(m => m.CmpA), LocalDep]; +const $TestCmp_Defer_1_DepsFn$ = () => [import("./defer_deps_ext").then(m => m.CmpA), LocalDep]; function TestCmp_Defer_0_Template(rf, ctx) { if (rf & 1) { @@ -13,6 +13,6 @@ export class LocalDep { function TestCmp_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, TestCmp_Defer_0_Template, 2, 0); - i0.ɵɵdefer(1, 0, TestCmp_Defer_1_DepsFn); + i0.ɵɵdefer(1, 0, $TestCmp_Defer_1_DepsFn$); i0.ɵɵdeferOnIdle(); } } \ No newline at end of file diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/lazy_with_blocks_template.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/lazy_with_blocks_template.js index 71e8c77157d..719af7c8270 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/lazy_with_blocks_template.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_deferred/lazy_with_blocks_template.js @@ -1,4 +1,4 @@ -const SimpleComponent_Defer_5_DepsFn = () => [MyLazyCmp]; +const $SimpleComponent_Defer_5_DepsFn$ = () => [MyLazyCmp]; function SimpleComponent_Defer_1_Template(rf, ctx) { if (rf & 1) { @@ -42,7 +42,7 @@ template: function SimpleComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtext(0); i0.ɵɵtemplate(1, SimpleComponent_Defer_1_Template, 1, 0)(2, SimpleComponent_DeferLoading_2_Template, 1, 0)(3, SimpleComponent_DeferPlaceholder_3_Template, 1, 0)(4, SimpleComponent_DeferError_4_Template, 1, 0); - i0.ɵɵdefer(5, 1, SimpleComponent_Defer_5_DepsFn, 2, 3, 4); + i0.ɵɵdefer(5, 1, $SimpleComponent_Defer_5_DepsFn$, 2, 3, 4); } if (rf & 2) { i0.ɵɵtextInterpolate1(" Visible: ", ctx.isVisible, ". "); i0.ɵɵadvance(5); diff --git a/packages/compiler/src/template/pipeline/src/emit.ts b/packages/compiler/src/template/pipeline/src/emit.ts index 29c10e85d6f..59a2f251804 100644 --- a/packages/compiler/src/template/pipeline/src/emit.ts +++ b/packages/compiler/src/template/pipeline/src/emit.ts @@ -126,7 +126,6 @@ const phases: Phase[] = [ {kind: Kind.Both, fn: expandSafeReads}, {kind: Kind.Both, fn: generateTemporaryVariables}, {kind: Kind.Tmpl, fn: allocateSlots}, - {kind: Kind.Tmpl, fn: createDeferDepsFns}, {kind: Kind.Tmpl, fn: resolveI18nElementPlaceholders}, {kind: Kind.Tmpl, fn: resolveI18nExpressionPlaceholders}, {kind: Kind.Tmpl, fn: extractI18nMessages}, @@ -139,6 +138,7 @@ const phases: Phase[] = [ {kind: Kind.Tmpl, fn: generateAdvance}, {kind: Kind.Both, fn: optimizeVariables}, {kind: Kind.Both, fn: nameFunctionsAndVariables}, + {kind: Kind.Tmpl, fn: createDeferDepsFns}, {kind: Kind.Tmpl, fn: mergeNextContextExpressions}, {kind: Kind.Tmpl, fn: generateNgContainerOps}, {kind: Kind.Tmpl, fn: collapseEmptyInstructions}, diff --git a/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.ts b/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.ts index 2d998e16fb5..0f7f113f6c2 100644 --- a/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.ts +++ b/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.ts @@ -44,8 +44,9 @@ export function createDeferDepsFns(job: ComponentCompilationJob): void { throw new Error( 'AssertionError: slot must be assigned bfore extracting defer deps functions'); } + const fullPathName = unit.fnName?.replace(`_Template`, ``); op.resolverFn = job.pool.getSharedFunctionReference( - depsFnExpr, `${job.componentName}_Defer_${op.handle.slot}_DepsFn`, + depsFnExpr, `${fullPathName}_Defer_${op.handle.slot}_DepsFn`, /* Don't use unique names for TDB compatibility */ false); } }