angular-docs-cn/aio/scripts
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
..
contributors docs(aio): add missing mentors for collaborators (#29142) 2019-04-11 08:06:18 -07:00
_payload-limits.json refactor(ivy): move `hostVars`/`hostAttrs` from instruction to `DirectiveDef` (#34683) 2020-01-24 12:22:10 -08:00
audit-web-app.js feat(docs-infra): support checking the scores on all audit categories (#31414) 2019-07-11 17:13:47 -04:00
build-404-page.js refactor: remove unused parameter in _main method invocation (#28203) 2019-01-23 10:58:38 -08:00
build-artifacts.sh ci(docs-infra): reduce verbosity of `yarn build` on CI (#26746) 2018-10-25 21:17:52 -04:00
check-environment.js build(aio): do not fail if `check-env` for the main angular project fails 2017-06-16 07:51:18 +01:00
create-preview.js ci(docs-infra): manually trigger the preview server webhook (#27458) 2018-12-04 13:59:54 -08:00
deploy-to-firebase.sh build(docs-infra): remove unnecessary script to workaround cli issue (#28012) 2019-01-09 10:29:43 -08:00
deploy-to-firebase.test.sh ci(docs-infra): move deployment to CircleCI (#26377) 2018-10-23 14:35:38 -07:00
payload.sh ci: remove change type from uploaded payload size data (#33987) 2019-11-25 16:36:07 -05:00
switch-to-viewengine.js build(docs-infra): align config with what cli generates for new apps (#32923) 2019-10-04 08:27:21 -07:00
test-aio-a11y.js fix(docs-infra): fix API list search color and styles (#31272) 2019-07-12 17:55:02 -04:00
test-preview.js test(docs-infra): run basic smoke tests against PR previews (#26649) 2018-10-29 13:00:20 -04:00
test-production.sh ci(docs-infra): run a11y audits on certain pages on CI (#31414) 2019-07-11 17:13:47 -04:00