Deliver web apps with confidence 🚀
Find a file
Alex Rickabaugh 631e70b6ae refactor(ivy): formalize the compilation process for matched handlers (#34288)
Prior to this commit, the `IvyCompilation` tracked the state of each matched
`DecoratorHandler` on each class in the `ts.Program`, and how they
progressed through the compilation process. This tracking was originally
simple, but had grown more complicated as the compiler evolved. The state of
each specific "target" of compilation was determined by the nullability of
a number of fields on the object which tracked it.

This commit formalizes the process of compilation of each matched handler
into a new "trait" concept. A trait is some aspect of a class which gets
created when a `DecoratorHandler` matches the class. It represents an Ivy
aspect that needs to go through the compilation process.

Traits begin in a "pending" state and undergo transitions as various steps
of compilation take place. The `IvyCompilation` class is renamed to the
`TraitCompiler`, which manages the state of all of the traits in the active
program.

Making the trait concept explicit will support future work to incrementalize
the expensive analysis process of compilation.

PR Close #34288
2019-12-12 13:11:46 -08:00
.circleci ci: update sha of components repo for components unit test integrations (#34280) 2019-12-06 11:04:21 -08:00
.devcontainer docs: add info on setting up VSCode remote development using docker containers (#33790) 2019-11-13 13:33:22 -08:00
.github ci: fix code ownership for size tracking (#34044) 2019-11-26 16:35:27 -05:00
.vscode build: migrate references and scripts that set to build with ivy via compile=aot to use config=ivy (#33983) 2019-11-26 16:38:41 -05:00
aio docs: ng-conf 2020 the musical (#34342) 2019-12-12 09:06:12 -08:00
docs build: migrate references and scripts that set to build with ivy via compile=aot to use config=ivy (#33983) 2019-11-26 16:38:41 -05:00
integration Revert "build: update integration/bazel to rules_nodejs 0.42.1" (#34360) 2019-12-11 15:58:47 -08:00
modules perf: rename index to index_aot (#34258) 2019-12-05 13:10:49 -08:00
packages refactor(ivy): formalize the compilation process for matched handlers (#34288) 2019-12-12 13:11:46 -08:00
scripts ci: update sha of components repo for components unit test integrations (#34280) 2019-12-06 11:04:21 -08:00
third_party build: update to @bazel/bazel 1.0.0 (#33476) 2019-10-29 16:22:41 -07:00
tools fix(ivy): throw a better error when DI can't inject a ctor param (#33739) (#34340) 2019-12-11 08:48:10 -08:00
.bazelignore build: add integration/platform-server/node_modules to .bazelignore (#33765) 2019-11-22 16:52:09 -05:00
.bazelrc build: remove remaining internal references to define=compile flag (#33983) 2019-11-26 16:38:41 -05:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes test: fix ts api guardian and public guard tests on windows (#30105) 2019-04-26 16:32:22 -07:00
.gitignore docs: add info on setting up VSCode remote development using docker containers (#33790) 2019-11-13 13:33:22 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc to correct node version (#33636) 2019-11-06 21:23:07 +00:00
browser-providers.conf.js ci: re-enable chrome mobile tests on android (#32447) 2019-09-03 11:58:30 -07:00
BUILD.bazel build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
CHANGELOG.md release: cut the v9.0.0-rc.6 release 2019-12-11 10:52:32 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: add missing parenthesis (#31041) 2019-10-07 11:02:33 -07:00
gulpfile.js build: remove obsolete build related tools and helper scripts (#34058) 2019-12-02 10:57:12 -08:00
karma-js.conf.js build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
package.json release: cut the v9.0.0-rc.6 release 2019-12-11 10:52:32 -08:00
protractor-perf.conf.js fixup! test(ivy): make the test run with benchpress (#30449) 2019-05-16 20:04:04 -07:00
README.md docs: fix typo of Typescript to TypeScript (#32153) 2019-08-15 12:44:41 -07:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js refactor: rename unpatched event flag in Zone from BLACK_LISTED_EVENTS to UNPATCHED_EVENTS (#29617) 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining (#32881) 2019-10-09 13:19:38 -07:00
tslint.json style: enforce disallowance of object constructor (#33211) 2019-12-03 10:08:26 -08:00
WORKSPACE build: update to rules_nodejs 0.42.2 (#34243) 2019-12-05 10:20:32 -08:00
yarn.lock build: update to rules_nodejs 0.42.2 (#34243) 2019-12-05 10:20:32 -08:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.