angular-cn/packages
Andrew Kushnir 0a1a989fa9 perf(core): avoid recursive scope recalculation when TestBed.overrideModule is used (#35454)
Currently if TestBed detects that TestBed.overrideModule was used for module X, transitive scopes are recalculated recursively for all modules that X imports and previously calculated data (stored in cache) is ignored. This behavior was introduced in https://github.com/angular/angular/pull/33787 to fix stale transitive scopes issue (cache was not updated if module overrides are present).

The perf issue comes from a "diamond" problem, where module X is overridden which imports modules A and B, which both import module C. Under previous logic, module C gets its transitive deps recomputed multiple times, during the recompute for both A and B. For deep graphs and big common/shared modules this can be super costly.

This commit updates the logic to recalculate ransitive scopes for the overridden module, while keeping previously calculated scopes of other modules untouched.

PR Close #35454
2020-02-25 13:11:42 -08:00
..
animations build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
bazel build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
benchpress build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
common build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
compiler test(compiler): add correct use case of ngFor in r3 ast (#35671) 2020-02-25 13:09:08 -08:00
compiler-cli refactor: update tscplugin api to match google3 (#35455) 2020-02-24 17:29:33 -08:00
core perf(core): avoid recursive scope recalculation when TestBed.overrideModule is used (#35454) 2020-02-25 13:11:42 -08:00
docs refactor(core): remove deprecated Renderer (#33019) 2019-10-08 09:23:00 -07:00
elements test: disable broken saucelabs tests with “fixme-saucelabs-ivy” & “fixme-saucelabs-ve” tags (#35516) 2020-02-24 17:27:21 -08:00
examples docs: changes AoT to AOT for consistency (#35112) 2020-02-04 10:43:33 -08:00
forms test: disable broken saucelabs tests with “fixme-saucelabs-ivy” & “fixme-saucelabs-ve” tags (#35516) 2020-02-24 17:27:21 -08:00
http build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
language-service build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
localize fix(localize): improve placeholder mismatch error message (#35593) 2020-02-24 09:11:21 -08:00
platform-browser test: disable broken saucelabs tests with “fixme-saucelabs-ivy” & “fixme-saucelabs-ve” tags (#35516) 2020-02-24 17:27:21 -08:00
platform-browser-dynamic build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
platform-server build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
platform-webworker build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
platform-webworker-dynamic build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
private/testing build: migrate determining if Ivy is enabled in typescript genrule files to use angular_ivy_enabled (#33983) 2019-11-26 16:38:40 -05:00
router test: disable broken saucelabs tests with “fixme-saucelabs-ivy” & “fixme-saucelabs-ve” tags (#35516) 2020-02-24 17:27:21 -08:00
service-worker fix(service-worker): treat 503 as offline (#35595) 2020-02-25 13:10:10 -08:00
upgrade build: add npm_integration_test && angular_integration_test (#33927) 2020-02-24 08:59:18 -08:00
zone.js feat: add a temp solution to support passive event listeners. (#34503) 2020-02-24 17:30:04 -08:00
BUILD.bazel build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
empty.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
goog.d.ts fix(ivy): use goog.LOCALE for Closure Compiler to define default LOCALE_ID (#31519) 2019-07-16 13:02:10 -04:00
license-banner.txt build: bump year (#34651) 2020-01-13 07:21:43 -08:00
system.d.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json build: consolidate @angular-devkit/build-angular to the root package.json (#34002) 2019-12-02 10:49:12 -08:00
types.d.ts build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT