angular/packages
Alex Rickabaugh 7b27009e20 fix(ivy): fix proliferation of provider overrides for modules (#29571)
When an @NgModule is imported more than once in the testing module (for
example it appears in the imports of more than one module, or if it's
literally listed multiple times), then TestBed had a bug where the
providers for the module would be overridden many times.

This alone was problematic but would not break tests. However, the original
value of the providers field of the ngInjectorDef was saved each time, and
restored in the same order. Thus, if the provider array was [X], and
overrides were applied twice, then the override array would become
[X, X'] and then [X, X', X, X']. However, on the second override the state
[X, X'] would be stored as original. The array would then be restored to
[X] and then [X, X'].

Each test, therefore, would continue to double the size of the providers
array for the module, eventually exhausting the browser's memory.

This commit adds a Set to track when overrides have been applied to a module
and refrain from applying them more than once.

PR Close #29571
2019-03-28 13:59:25 -07:00
..
animations build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
bazel build: update bazel to 0.24 (#29530) 2019-03-27 13:45:29 -07:00
benchpress docs: cleanup contributors (#28930) 2019-03-06 14:48:30 -08:00
common docs: update description text (#28507) 2019-03-27 09:57:36 -07:00
compiler feat(ivy): select instruction now generated in front of all relevant instructions (#29546) 2019-03-27 12:37:03 -07:00
compiler-cli fix(ivy): ngtsc is unable to detect flat module entry-point on windows (#29453) 2019-03-27 13:46:37 -07:00
core fix(ivy): fix proliferation of provider overrides for modules (#29571) 2019-03-28 13:59:25 -07:00
docs refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
elements build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
examples build: remove unused dependency from common example (#29532) 2019-03-27 13:44:46 -07:00
forms docs(forms): fix small typo in forms documentation (#29370) 2019-03-19 13:11:11 -04:00
http docs: updating url for jsonp reference (#29247) 2019-03-15 12:41:37 -04:00
language-service build: update to nodejs rules 0.27 (#29210) 2019-03-14 19:35:00 -07:00
platform-browser fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
platform-browser-dynamic feat(ivy): avoid unnecessary recompilations in TestBed (#29294) 2019-03-19 01:11:16 -04:00
platform-server feat: remove @angular/http dependency from @angular/platform-server (#29408) 2019-03-27 12:38:29 -07:00
platform-webworker fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
platform-webworker-dynamic build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
private/testing fix(ivy): DebugNode.query should query nodes in the logical tree (#29480) 2019-03-26 12:48:37 -07:00
router docs(router): clarify scrollPositionRestoration options, refactor example (#29260) 2019-03-27 09:55:56 -07:00
service-worker refactor(service-worker): use Adapter#parseUrl() for all URL parsing (#27080) 2019-03-21 12:07:56 -04:00
upgrade build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
BUILD.bazel build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -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 test(ivy): add bundling test todo_i18n (#27420) 2018-12-04 19:59:12 -08:00
license-banner.txt build: bump year (#27880) 2019-01-11 11:15:59 -08:00
README.md Revert "docs: Remove unneeded file (#18106)" 2017-07-20 16:46:47 -05:00
system.d.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
tsconfig-build.json build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
tsconfig-test.json build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
tsconfig.json ci: saucelabs-legacy job should not run schematic core tests (#29124) 2019-03-05 16:10:08 -08:00
types.d.ts build: switch to typescript's es2015 typings (#28570) 2019-02-06 14:17:55 -05:00

Angular

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

License: MIT