diff --git a/goldens/size-tracking/integration-payloads.json b/goldens/size-tracking/integration-payloads.json index 2d5ce83c09fbc..aa47793f7ff73 100644 --- a/goldens/size-tracking/integration-payloads.json +++ b/goldens/size-tracking/integration-payloads.json @@ -21,7 +21,7 @@ "master": { "uncompressed": { "runtime-es2015": 1485, - "main-es2015": 147573, + "main-es2015": 146989, "polyfills-es2015": 36571 } } diff --git a/packages/core/src/di/r3_injector.ts b/packages/core/src/di/r3_injector.ts index ad9dd00b1cd41..449f88f15daa7 100644 --- a/packages/core/src/di/r3_injector.ts +++ b/packages/core/src/di/r3_injector.ts @@ -384,7 +384,7 @@ export class R3Injector { let multiRecord = this.records.get(token); if (multiRecord) { // It has. Throw a nice error if - if (multiRecord.multi === undefined) { + if (ngDevMode && multiRecord.multi === undefined) { throwMixedMultiProviderError(); } } else { @@ -396,7 +396,7 @@ export class R3Injector { multiRecord.multi!.push(provider); } else { const existing = this.records.get(token); - if (existing && existing.multi !== undefined) { + if (ngDevMode && existing && existing.multi !== undefined) { throwMixedMultiProviderError(); } } @@ -404,7 +404,7 @@ export class R3Injector { } private hydrate(token: Type|InjectionToken, record: Record): T { - if (record.value === CIRCULAR) { + if (ngDevMode && record.value === CIRCULAR) { throwCyclicDependencyError(stringify(token)); } else if (record.value === NOT_YET) { record.value = CIRCULAR; @@ -511,7 +511,7 @@ export function providerToFactory( const classRef = resolveForwardRef( provider && ((provider as StaticClassProvider | ClassProvider).useClass || provider.provide)); - if (!classRef) { + if (ngDevMode && !classRef) { throwInvalidProviderError(ngModuleType, providers, provider); } if (hasDeps(provider)) { diff --git a/packages/core/src/render3/instructions/shared.ts b/packages/core/src/render3/instructions/shared.ts index 4addb1e83bb42..5f1e6be5e0806 100644 --- a/packages/core/src/render3/instructions/shared.ts +++ b/packages/core/src/render3/instructions/shared.ts @@ -1375,6 +1375,7 @@ function findDirectiveDefMatches( ngDevMode && assertNodeOfPossibleTypes( tNode, [TNodeType.Element, TNodeType.ElementContainer, TNodeType.Container]); + const registry = tView.directiveRegistry; let matches: any[]|null = null; if (registry) { @@ -1385,13 +1386,14 @@ function findDirectiveDefMatches( diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, viewData), tView, def.type); if (isComponentDef(def)) { - ngDevMode && - assertNodeOfPossibleTypes( - tNode, [TNodeType.Element], - `"${tNode.tagName}" tags cannot be used as component hosts. ` + - `Please use a different tag to activate the ${ - stringify(def.type)} component.`); - if (tNode.flags & TNodeFlags.isComponentHost) throwMultipleComponentError(tNode); + if (ngDevMode) { + assertNodeOfPossibleTypes( + tNode, [TNodeType.Element], + `"${tNode.tagName}" tags cannot be used as component hosts. ` + + `Please use a different tag to activate the ${stringify(def.type)} component.`); + + if (tNode.flags & TNodeFlags.isComponentHost) throwMultipleComponentError(tNode); + } markAsComponentHost(tView, tNode); // The component is always stored first with directives after. matches.unshift(def); 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 c2ba0e34b1824..8e89517914e92 100644 --- a/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json +++ b/packages/core/test/bundling/cyclic_import/bundle.golden_symbols.json @@ -350,9 +350,6 @@ { "name": "setUpAttributes" }, - { - "name": "throwMultipleComponentError" - }, { "name": "unwrapRNode" }, diff --git a/packages/core/test/bundling/forms/bundle.golden_symbols.json b/packages/core/test/bundling/forms/bundle.golden_symbols.json index 037046f00d5cd..116250dea7fbe 100644 --- a/packages/core/test/bundling/forms/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms/bundle.golden_symbols.json @@ -1586,12 +1586,6 @@ { "name": "syncPendingControls" }, - { - "name": "throwMixedMultiProviderError" - }, - { - "name": "throwMultipleComponentError" - }, { "name": "toObservable" }, diff --git a/packages/core/test/bundling/injection/bundle.golden_symbols.json b/packages/core/test/bundling/injection/bundle.golden_symbols.json index 4dd6420bd205f..4e26d5b4c991d 100644 --- a/packages/core/test/bundling/injection/bundle.golden_symbols.json +++ b/packages/core/test/bundling/injection/bundle.golden_symbols.json @@ -128,9 +128,6 @@ { "name": "stringify" }, - { - "name": "throwMixedMultiProviderError" - }, { "name": "ɵɵdefineInjectable" }, diff --git a/packages/core/test/bundling/todo/bundle.golden_symbols.json b/packages/core/test/bundling/todo/bundle.golden_symbols.json index 621068548e7cf..bac2ef604c5b1 100644 --- a/packages/core/test/bundling/todo/bundle.golden_symbols.json +++ b/packages/core/test/bundling/todo/bundle.golden_symbols.json @@ -713,9 +713,6 @@ { "name": "stringifyForError" }, - { - "name": "throwMultipleComponentError" - }, { "name": "toTStylingRange" },