angular-cn/packages
JoostK b07b6f1d40 fix(ivy): avoid infinite recursion when evaluation source files (#33772)
When ngtsc comes across a source file during partial evaluation, it
would determine all exported symbols from that module and evaluate their
values greedily. This greedy evaluation strategy introduces unnecessary
work and can fall into infinite recursion when the evaluation result of
an exported expression would circularly depend on the source file. This
would primarily occur in CommonJS code, where the `exports` variable can
be used to refer to an exported variable. This variable would be
resolved to the source file itself, thereby greedily evaluating all
exported symbols and thus ending up evaluating the `exports` variable
again. This variable would be resolved to the source file itself,
thereby greedily evaluating all exported symbols and thus ending u
evaluating the `exports` variable again. This variable would be
resolved to the source file itself, thereby greedily evaluating all
exported symbols and thus ending up evaluating the `exports` variable
again. This variable would be resolved to the source file itself,
thereby greedily evaluating all exported symbols and thus ending up
evaluating the `exports` variable again. This went on for some time
until all stack frames were exhausted.

This commit introduces a `ResolvedModule` that delays the evaluation of
its exports until they are actually requested. This avoids the circular
dependency when evaluating `exports`, thereby fixing the issue.

Fix #33734

PR Close #33772
2019-11-20 14:51:37 -08:00
..
animations docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
bazel docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
benchpress feat: update rxjs peerDependencies minimum requirment to 6.5.3 (#32812) 2019-10-01 14:56:45 -07:00
common docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
compiler fix(ivy): move setClassMetadata calls into a pure iife (#33337) 2019-11-20 12:55:58 -08:00
compiler-cli fix(ivy): avoid infinite recursion when evaluation source files (#33772) 2019-11-20 14:51:37 -08:00
core fix(ivy): avoid using stale cache in TestBed if module overrides are defined (#33787) 2019-11-20 14:50:27 -08:00
docs refactor(core): remove deprecated Renderer (#33019) 2019-10-08 09:23:00 -07:00
elements build: ts_web_test & ts_web_test_suite deprecated in favor of karma_web_test & karma_web_test_suite (#33802) 2019-11-13 13:33:38 -08:00
examples build: fixes for cross-platform RBE (#33708) 2019-11-15 10:49:55 -08:00
forms fix(ivy): shadow all DOM properties in `DebugElement.properties` (#33781) 2019-11-18 15:49:22 -08:00
http build: ts_web_test & ts_web_test_suite deprecated in favor of karma_web_test & karma_web_test_suite (#33802) 2019-11-13 13:33:38 -08:00
language-service feat(language-service): completions support for indexed types (#33775) 2019-11-15 16:16:06 -08:00
localize build: set up all packages to publish via wombot proxy (#33747) 2019-11-13 11:34:33 -08:00
platform-browser docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-browser-dynamic docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-server docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-webworker docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-webworker-dynamic build: set up all packages to publish via wombot proxy (#33747) 2019-11-13 11:34:33 -08:00
private/testing test: cleanup `document` "after" each test (#33712) 2019-11-11 14:01:04 -08:00
router Revert "fix(router): make routerLinkActive work with query params which contain arrays (#22666)" (#33861) 2019-11-15 13:14:43 -08:00
service-worker build: ts_web_test & ts_web_test_suite deprecated in favor of karma_web_test & karma_web_test_suite (#33802) 2019-11-13 13:33:38 -08:00
upgrade docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
zone.js fix: fixes typo of zone.js patch vrdisplaydisconnected property (#33581) 2019-11-18 15:46:52 -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 (#27880) 2019-01-11 11:15:59 -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: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00: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