From d3b4cdec5e93bc7a9616002cdbce40ea7b6ff53c Mon Sep 17 00:00:00 2001 From: Payam Valadkhan Date: Mon, 7 Aug 2023 18:15:58 -0400 Subject: [PATCH] refactor(core): enabled using deps tracker in JIT compilation This change simply flip the flag which enables using the deps tracker in JIT compilation (the logic is already implemented in a previous PR). Some tests which depend on the old JIT implementation (e.g., patching the scope info into the type) are modified accordingly. --- .../src/render3/deps_tracker/deps_tracker.ts | 2 +- packages/core/test/test_bed_spec.ts | 23 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/core/src/render3/deps_tracker/deps_tracker.ts b/packages/core/src/render3/deps_tracker/deps_tracker.ts index 7d40743f52e61d..756836b4b7cb6a 100644 --- a/packages/core/src/render3/deps_tracker/deps_tracker.ts +++ b/packages/core/src/render3/deps_tracker/deps_tracker.ts @@ -24,7 +24,7 @@ import {ComponentDependencies, DepsTrackerApi, NgModuleScope, StandaloneComponen * * @deprecated For migration purposes only, to be removed soon. */ -export const USE_RUNTIME_DEPS_TRACKER_FOR_JIT = false; +export const USE_RUNTIME_DEPS_TRACKER_FOR_JIT = true; /** * An implementation of DepsTrackerApi which will be used for JIT and local compilation. diff --git a/packages/core/test/test_bed_spec.ts b/packages/core/test/test_bed_spec.ts index 43dbd8b7d90f48..5e8a5994adb58a 100644 --- a/packages/core/test/test_bed_spec.ts +++ b/packages/core/test/test_bed_spec.ts @@ -11,6 +11,8 @@ import {TestBed, TestBedImpl} from '@angular/core/testing/src/test_bed'; import {By} from '@angular/platform-browser'; import {expect} from '@angular/platform-browser/testing/src/matchers'; +import {NgModuleType} from '../src/render3'; +import {depsTracker} from '../src/render3/deps_tracker/deps_tracker'; import {setClassMetadataAsync} from '../src/render3/metadata'; import {TEARDOWN_TESTING_MODULE_ON_DESTROY_DEFAULT, THROW_ON_UNKNOWN_ELEMENTS_DEFAULT, THROW_ON_UNKNOWN_PROPERTIES_DEFAULT} from '../testing/src/test_bed_common'; @@ -1750,10 +1752,9 @@ describe('TestBed', () => { expect(cmpDefBeforeReset.pipeDefs().length).toEqual(1); expect(cmpDefBeforeReset.directiveDefs().length).toEqual(2); // directive + component - const modDefBeforeReset = (SomeModule as any).ɵmod; - const transitiveScope = modDefBeforeReset.transitiveCompileScopes.compilation; - expect(transitiveScope.pipes.size).toEqual(1); - expect(transitiveScope.directives.size).toEqual(2); + const scopeBeforeReset = depsTracker.getNgModuleScope(SomeModule as NgModuleType); + expect(scopeBeforeReset.compilation.pipes.size).toEqual(1); + expect(scopeBeforeReset.compilation.directives.size).toEqual(2); TestBed.resetTestingModule(); @@ -1761,8 +1762,18 @@ describe('TestBed', () => { expect(cmpDefAfterReset.pipeDefs).toBe(null); expect(cmpDefAfterReset.directiveDefs).toBe(null); - const modDefAfterReset = (SomeModule as any).ɵmod; - expect(modDefAfterReset.transitiveCompileScopes).toBe(null); + const scopeAfterReset = depsTracker.getNgModuleScope(SomeModule as NgModuleType); + + expect(scopeAfterReset).toEqual({ + compilation: { + pipes: new Set(), + directives: new Set([SomeComponent]), + }, + exported: { + pipes: new Set(), + directives: new Set(), + } + }); }); it('should cleanup ng defs for classes with no ng annotations (in case of inheritance)', () => {