diff --git a/node_modules/@angular/compiler/fesm2022/compiler.mjs b/node_modules/@angular/compiler/fesm2022/compiler.mjs index 0863f56..8d321fe 100755 --- a/node_modules/@angular/compiler/fesm2022/compiler.mjs +++ b/node_modules/@angular/compiler/fesm2022/compiler.mjs @@ -6070,13 +6070,41 @@ var R3NgModuleMetadataKind; R3NgModuleMetadataKind[R3NgModuleMetadataKind["Global"] = 0] = "Global"; R3NgModuleMetadataKind[R3NgModuleMetadataKind["Local"] = 1] = "Local"; })(R3NgModuleMetadataKind || (R3NgModuleMetadataKind = {})); + +/** + * These are the only modules we're using to compile dynamic templates, we don't need to force JIT anywhere else. + * + * In particular, they are imported like this: + * - CommonModule + * - FormsModule -> ɵInternalFormsSharedModule -> RadioControlRegistryModule + * - IonicModule -> CommonModule + * - ReactiveFormsModule -> ɵInternalFormsSharedModule -> RadioControlRegistryModule + * - TranslateModule + */ +const jitModules = [ + 'CommonModule', + 'FormsModule', + 'IonicModule', + 'ɵInternalFormsSharedModule', + 'RadioControlRegistryModule', + 'ReactiveFormsModule', + 'TranslateModule', +]; + /** * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`. */ function compileNgModule(meta) { const statements = []; const definitionMap = new DefinitionMap(); + const moduleName = meta.type.value?.node.loc?.identifierName; definitionMap.set('type', meta.type.value); + + if (moduleName && jitModules.includes(moduleName)) { + // Force JIT compilation. + meta.selectorScopeMode = R3SelectorScopeMode.Inline; + } + // Assign bootstrap definition. In local compilation mode (i.e., for // `R3NgModuleMetadataKind.LOCAL`) we assign the bootstrap field using the runtime // `ɵɵsetNgModuleScope`.