angular-cn/packages
JoostK 2e9fdbde9e fix(core): prevent NgModule scope being overwritten in JIT compiler (#37795)
In JIT compiled apps, component definitions are compiled upon first
access. For a component class `A` that extends component class `B`, the
`B` component is also compiled when the `InheritDefinitionFeature` runs
during the compilation of `A` before it has finalized. A problem arises
when the compilation of `B` would flush the NgModule scoping queue,
where the NgModule declaring `A` is still pending. The scope information
would be applied to the definition of `A`, but its compilation is still
in progress so requesting the component definition would compile `A`
again from scratch. This "inner compilation" is correctly assigned the
NgModule scope, but once the "outer compilation" of `A` finishes it
would overwrite the inner compilation's definition, losing the NgModule
scope information.

In summary, flushing the NgModule scope queue could trigger a reentrant
compilation, where JIT compilation is non-reentrant. To avoid the
reentrant compilation, a compilation depth counter is introduced to
avoid flushing the NgModule scope during nested compilations.

Fixes #37105

PR Close #37795
2020-08-11 09:50:27 -07:00
..
animations Revert "build: remove wombot proxy registry from package.jsons for release (#37378)" (#37495) 2020-06-10 08:21:45 -07:00
bazel Revert "build: remove obsolete Bazel function ctx.new_file (#38080)" (#38101) 2020-07-16 11:06:23 -07:00
benchpress build: add wombot proxy for publish config for @angular/benchpress (#37752) 2020-06-25 17:08:18 -07:00
common refactor(common): use getElementById in ViewportScroller.scrollToAnchor (#30143) 2020-08-07 11:14:31 -07:00
compiler feat(core): update reference and doc to change `async` to `waitAsync`. (#37583) 2020-08-03 12:54:13 -07:00
compiler-cli fix(compiler-cli): preserve quotes in class member names (#38387) 2020-08-10 15:26:45 -07:00
core fix(core): prevent NgModule scope being overwritten in JIT compiler (#37795) 2020-08-11 09:50:27 -07:00
docs docs(di): fix typo in advanced di doc (#36634) 2020-05-01 09:50:28 -07:00
elements docs(elements): update api doc for custom elements (#38252) 2020-07-28 11:19:03 -07:00
examples docs(common): fix selector field in NgIfAs example component (#35854) 2020-07-20 13:35:04 -07:00
forms refactor(forms): get rid of duplicate functions (#38371) 2020-08-07 11:40:04 -07:00
language-service fix(language-service): [ivy] do not retrieve ts.Program at startup (#38120) 2020-07-30 16:54:19 -07:00
localize feat(localize): allow duplicate messages to be handled during extraction (#38082) 2020-07-16 13:53:38 -07:00
misc/angular-in-memory-web-api feat(core): update reference and doc to change `async` to `waitAsync`. (#37583) 2020-08-03 12:54:13 -07:00
platform-browser refactor(platform-browser): specify return type of parseEventName (#38089) 2020-08-05 17:06:28 -07:00
platform-browser-dynamic feat(core): update reference and doc to change `async` to `waitAsync`. (#37583) 2020-08-03 12:54:13 -07:00
platform-server fix(platform-server): remove styles added by ServerStylesHost on destruction (#38367) 2020-08-10 13:12:23 -07:00
platform-webworker Revert "build: remove wombot proxy registry from package.jsons for release (#37378)" (#37495) 2020-06-10 08:21:45 -07:00
platform-webworker-dynamic Revert "build: remove wombot proxy registry from package.jsons for release (#37378)" (#37495) 2020-06-10 08:21:45 -07:00
private/testing build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
router fix(router): restore 'history.state' object for navigations coming from Angular router (#28108) (#28176) 2020-08-11 08:36:13 -07:00
service-worker fix(service-worker): fix the chrome debugger syntax highlighter (#38332) 2020-08-06 15:22:57 -07:00
upgrade feat(core): update reference and doc to change `async` to `waitAsync`. (#37583) 2020-08-03 12:54:13 -07:00
zone.js fix(core): unify the signature between ngZone and noopZone (#37581) 2020-07-28 09:59:49 -07: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
circular-deps-test.conf.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt build: bump year (#34651) 2020-01-13 07:21:43 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04: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: import in-memory-web-api project (#37182) 2020-06-15 14:28:37 -07:00
types.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04: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