angular-cn/packages
Miško Hevery 2961bf06c6 refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683)
This change moves information from instructions to declarative position:
- `ɵɵallocHostVars(vars)` => `DirectiveDef.hostVars`
- `ɵɵelementHostAttrs(attrs)` => `DirectiveDef.hostAttrs`

When merging directives it is necessary to know about `hostVars` and `hostAttrs`. Before this change the information was stored in the `hostBindings` function. This was problematic, because in order to get to the information the `hostBindings` would have to be executed. In order for `hostBindings` to be executed the directives would have to be instantiated. This means that the directive instantiation would happen before we had knowledge about the `hostAttrs` and as a result the directive could observe in the constructor that not all of the `hostAttrs` have been applied. This further complicates the runtime as we have to apply `hostAttrs` in parts over many invocations.

`ɵɵallocHostVars` was unnecessarily complicated because it would have to update the `LView` (and Blueprint) while existing directives are already executing. By moving it out of `hostBindings` function we can access it statically and we can create correct `LView` (and Blueprint) in a single pass.

This change only changes how the instructions are generated, but does not change the runtime much. (We cheat by emulating the old behavior by calling `ɵɵallocHostVars` and `ɵɵelementHostAttrs`) Subsequent change will refactor the runtime to take advantage of the static information.

PR Close #34683
2020-01-24 12:22:10 -08:00
..
animations test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
bazel build: upgrade to bazel 2.0.0 (#34877) 2020-01-23 10:05:05 -08:00
benchpress build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05:00
common refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683) 2020-01-24 12:22:10 -08:00
compiler refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683) 2020-01-24 12:22:10 -08:00
compiler-cli refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683) 2020-01-24 12:22:10 -08:00
core refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683) 2020-01-24 12:22:10 -08:00
docs refactor(core): remove deprecated Renderer (#33019) 2019-10-08 09:23:00 -07:00
elements test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
examples build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05:00
forms docs: value changes emits on additional events documented (#34497) 2020-01-23 13:57:46 -08:00
http refactor(http): fix a strictBindCallApply issue. (#34817) 2020-01-21 16:44:40 -05:00
language-service fix(language-service): Diagnostic span should point to class name (#34932) 2020-01-23 15:55:44 -08:00
localize test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
platform-browser test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
platform-browser-dynamic test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
platform-server test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
platform-webworker build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05: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 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: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
service-worker test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
upgrade test: setup circular dependency tests for all entry points (#34774) 2020-01-23 11:36:40 -08:00
zone.js build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05: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
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
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