diff --git a/packages/core/src/render3/component_ref.ts b/packages/core/src/render3/component_ref.ts index e4d93d17685..75a473ee87e 100644 --- a/packages/core/src/render3/component_ref.ts +++ b/packages/core/src/render3/component_ref.ts @@ -51,7 +51,7 @@ import {computeStaticStyling} from './styling/static_styling'; import {mergeHostAttrs, setUpAttributes} from './util/attrs_utils'; import {debugStringifyTypeForError, stringifyForError} from './util/stringify_utils'; import {getComponentLViewByIndex, getNativeByTNode, getTNode} from './util/view_utils'; -import {InternalViewRef, RootViewRef} from './view_ref'; +import {InternalViewRef} from './view_ref'; export class ComponentFactoryResolver extends AbstractComponentFactoryResolver { /** @@ -319,7 +319,11 @@ export class ComponentRef extends AbstractComponentRef { private _tNode: TElementNode|TContainerNode|TElementContainerNode) { super(); this.instance = instance; - this.hostView = this.changeDetectorRef = new RootViewRef(_rootLView); + this.hostView = this.changeDetectorRef = new InternalViewRef( + _rootLView, + undefined, /* _cdRefInjectingView */ + false, /* notifyErrorHandler */ + ); this.componentType = componentType; } diff --git a/packages/core/src/render3/view_ref.ts b/packages/core/src/render3/view_ref.ts index b1ed66afcb0..3bc67809329 100644 --- a/packages/core/src/render3/view_ref.ts +++ b/packages/core/src/render3/view_ref.ts @@ -55,7 +55,7 @@ export class InternalViewRef implements EmbeddedViewRef, ChangeDetectorRef * * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view. */ - private _cdRefInjectingView?: LView) {} + private _cdRefInjectingView?: LView, private readonly notifyErrorHandler = true) {} get context(): T { return this._lView[CONTEXT] as unknown as T; @@ -282,7 +282,8 @@ export class InternalViewRef implements EmbeddedViewRef, ChangeDetectorRef * See {@link ChangeDetectorRef#detach} for more information. */ detectChanges(): void { - detectChangesInternal(this._lView[TVIEW], this._lView, this.context as unknown as {}); + detectChangesInternal( + this._lView[TVIEW], this._lView, this.context as unknown as {}, this.notifyErrorHandler); } /** @@ -293,7 +294,8 @@ export class InternalViewRef implements EmbeddedViewRef, ChangeDetectorRef */ checkNoChanges(): void { if (ngDevMode) { - checkNoChangesInternal(this._lView[TVIEW], this._lView, this.context as unknown as {}); + checkNoChangesInternal( + this._lView[TVIEW], this._lView, this.context as unknown as {}, this.notifyErrorHandler); } } @@ -320,29 +322,3 @@ export class InternalViewRef implements EmbeddedViewRef, ChangeDetectorRef this._appRef = appRef; } } - -export class RootViewRef extends InternalViewRef { - constructor(public _view: LView) { - super(_view); - } - - override detectChanges(): void { - const lView = this._view; - const tView = lView[TVIEW]; - const context = lView[CONTEXT]; - detectChangesInternal(tView, lView, context, false); - } - - override checkNoChanges(): void { - if (ngDevMode) { - const lView = this._view; - const tView = lView[TVIEW]; - const context = lView[CONTEXT]; - checkNoChangesInternal(tView, lView, context, false); - } - } - - override get context(): T { - return null!; - } -} diff --git a/packages/core/test/bundling/animations-standalone/bundle.golden_symbols.json b/packages/core/test/bundling/animations-standalone/bundle.golden_symbols.json index 71d52dce30d..1491a51caec 100644 --- a/packages/core/test/bundling/animations-standalone/bundle.golden_symbols.json +++ b/packages/core/test/bundling/animations-standalone/bundle.golden_symbols.json @@ -266,6 +266,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "LEAVE_TOKEN_REGEX" }, @@ -440,9 +443,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -545,9 +545,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "WebAnimationsDriver" }, @@ -821,9 +818,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/animations/bundle.golden_symbols.json b/packages/core/test/bundling/animations/bundle.golden_symbols.json index 2d1693fbc77..266a9cff907 100644 --- a/packages/core/test/bundling/animations/bundle.golden_symbols.json +++ b/packages/core/test/bundling/animations/bundle.golden_symbols.json @@ -287,6 +287,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "KeyEventsPlugin" }, @@ -482,9 +485,6 @@ { "name": "RootComponent" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -599,9 +599,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "WebAnimationsDriver" }, @@ -884,9 +881,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json b/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json index 40a252cfb8d..e6d577ba89e 100644 --- a/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json +++ b/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json @@ -194,6 +194,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "KeyEventsPlugin" }, @@ -368,9 +371,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -458,9 +458,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -668,9 +665,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/defer/bundle.golden_symbols.json b/packages/core/test/bundling/defer/bundle.golden_symbols.json index 686a3be5804..4d62af2c684 100644 --- a/packages/core/test/bundling/defer/bundle.golden_symbols.json +++ b/packages/core/test/bundling/defer/bundle.golden_symbols.json @@ -227,6 +227,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "KeyEventsPlugin" }, @@ -419,9 +422,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -509,9 +509,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -758,9 +755,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json index 7ede144dc40..c7f78e002cb 100644 --- a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json @@ -272,6 +272,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "IterableChangeRecord_" }, @@ -506,9 +509,6 @@ { "name": "RootComponent" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -614,9 +614,6 @@ { "name": "ViewEngineTemplateRef" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -911,9 +908,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json index 52c2528d3d1..c9bbbf99c70 100644 --- a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json @@ -257,6 +257,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "IterableChangeRecord_" }, @@ -494,9 +497,6 @@ { "name": "RootComponent" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -605,9 +605,6 @@ { "name": "ViewEngineTemplateRef" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -881,9 +878,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/hello_world/bundle.golden_symbols.json b/packages/core/test/bundling/hello_world/bundle.golden_symbols.json index 1581f1b704a..9d33864b68e 100644 --- a/packages/core/test/bundling/hello_world/bundle.golden_symbols.json +++ b/packages/core/test/bundling/hello_world/bundle.golden_symbols.json @@ -137,6 +137,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "LOCALE_ID2" }, @@ -281,9 +284,6 @@ { "name": "RendererFactory2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -350,9 +350,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -527,9 +524,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/hydration/bundle.golden_symbols.json b/packages/core/test/bundling/hydration/bundle.golden_symbols.json index 674365e37dc..07d13f07d04 100644 --- a/packages/core/test/bundling/hydration/bundle.golden_symbols.json +++ b/packages/core/test/bundling/hydration/bundle.golden_symbols.json @@ -239,6 +239,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "LOCALE_ID2" }, @@ -422,9 +425,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -533,9 +533,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -746,9 +743,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/router/bundle.golden_symbols.json b/packages/core/test/bundling/router/bundle.golden_symbols.json index f338394d349..34cb5fe09cb 100644 --- a/packages/core/test/bundling/router/bundle.golden_symbols.json +++ b/packages/core/test/bundling/router/bundle.golden_symbols.json @@ -320,6 +320,9 @@ { "name": "InnerSubscriber" }, + { + "name": "InternalViewRef" + }, { "name": "ItemComponent" }, @@ -620,9 +623,6 @@ { "name": "ResolveStart" }, - { - "name": "RootViewRef" - }, { "name": "RouteConfigLoadEnd" }, @@ -836,9 +836,6 @@ { "name": "ViewEngineTemplateRef" }, - { - "name": "ViewRef" - }, { "name": "XSS_SECURITY_URL" }, @@ -1172,9 +1169,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/standalone_bootstrap/bundle.golden_symbols.json b/packages/core/test/bundling/standalone_bootstrap/bundle.golden_symbols.json index 53f4a0f630e..ae12373e502 100644 --- a/packages/core/test/bundling/standalone_bootstrap/bundle.golden_symbols.json +++ b/packages/core/test/bundling/standalone_bootstrap/bundle.golden_symbols.json @@ -179,6 +179,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "LOCALE_ID2" }, @@ -332,9 +335,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -410,9 +410,6 @@ { "name": "ViewEncapsulation" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -599,9 +596,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" }, diff --git a/packages/core/test/bundling/todo/bundle.golden_symbols.json b/packages/core/test/bundling/todo/bundle.golden_symbols.json index 6e88fdcd420..adc3abfd13d 100644 --- a/packages/core/test/bundling/todo/bundle.golden_symbols.json +++ b/packages/core/test/bundling/todo/bundle.golden_symbols.json @@ -197,6 +197,9 @@ { "name": "Injector" }, + { + "name": "InternalViewRef" + }, { "name": "IterableChangeRecord_" }, @@ -395,9 +398,6 @@ { "name": "RendererStyleFlags2" }, - { - "name": "RootViewRef" - }, { "name": "RuntimeError" }, @@ -530,9 +530,6 @@ { "name": "ViewEngineTemplateRef" }, - { - "name": "ViewRef" - }, { "name": "ZONE_IS_STABLE_OBSERVABLE" }, @@ -797,9 +794,6 @@ { "name": "detectChangesInViewIfAttached" }, - { - "name": "detectChangesInternal" - }, { "name": "diPublicInInjector" },