angular/packages
Alex Rickabaugh 98f86de8da perf(ivy): template type-check the entire program in 1 file if possible (#29698)
The template type-checking engine previously would assemble a type-checking
program by inserting Type Check Blocks (TCBs) into existing user files. This
approach proved expensive, as TypeScript has to re-parse and re-type-check
those files when processing the type-checking program.

Instead, a far more performant approach is to augment the program with a
single type-checking file, into which all TCBs are generated. Additionally,
type constructors are also inlined into this file.

This is not always possible - both TCBs and type constructors can sometimes
require inlining into user code, particularly if bound generic type
parameters are present, so the approach taken is actually a hybrid. These
operations are inlined if necessary, but are otherwise generated in a single
file.

It is critically important that the original program also include an empty
version of the type-checking file, otherwise the shape of the two programs
will be different and TypeScript will throw away all the old program
information. This leads to a painfully slow type checking pass, on the same
order as the original program creation. A shim to generate this file in the
original program is therefore added.

Testing strategy: this commit is largely a refactor with no externally
observable behavioral differences, and thus no tests are needed.

PR Close #29698
2019-04-19 11:15:25 -07:00
..
animations docs(animations): fixed some closing brackets on query animation page (#29854) (#29855) 2019-04-18 18:19:48 -07:00
bazel fix(bazel): do not typecheck core schematic files (#29876) 2019-04-18 18:22:09 -07:00
benchpress docs: cleanup contributors (#28930) 2019-03-06 14:48:30 -08:00
common Revert "feat(ivy): use i18n locale data to determine the plural form of ICU expressions (#29249)" (#29918) 2019-04-15 16:55:51 -07:00
compiler feat(ivy): template type-checking for '#' references in templates (#29698) 2019-04-19 11:15:25 -07:00
compiler-cli perf(ivy): template type-check the entire program in 1 file if possible (#29698) 2019-04-19 11:15:25 -07:00
core feat(ivy): register NgModules with ids when compiled with AOT (#29980) 2019-04-19 11:12:21 -07:00
docs refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
elements build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
examples docs(core): update API doc examples to use static injector (#29729) 2019-04-08 17:20:34 -07:00
forms docs(forms): fix small typo in forms documentation (#29370) 2019-03-19 13:11:11 -04:00
http build: hide @angular/http for Angular v8 (#29550) 2019-04-02 10:55:31 -07:00
language-service fix(language-service): Use proper types instead of any (#29942) 2019-04-17 12:17:13 -07:00
platform-browser fix(ivy): allow TestBed.createComponent to create components in isolation (#29981) 2019-04-19 09:45:52 -07:00
platform-browser-dynamic refactor(ivy): prefix all generated instructions (#29692) 2019-04-10 12:11:40 -07:00
platform-server feat: remove @angular/http dependency from @angular/platform-server (#29408) 2019-03-27 12:38:29 -07:00
platform-webworker fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
platform-webworker-dynamic build: remove now redundant bundle_dts = True attribute (#29128) 2019-03-07 10:47:20 -08:00
private/testing feat(ivy): support i18n without closure (#28689) 2019-04-11 08:28:45 -07:00
router docs: update extra options available for RouterModule.forRoot() method (#29846) 2019-04-17 17:25:31 -07:00
service-worker refactor(service-worker): use Adapter#parseUrl() for all URL parsing (#27080) 2019-03-21 12:07:56 -04:00
upgrade refactor(upgrade): use Bazel packages to avoid symlinks in the source (#29466) 2019-04-02 10:38:01 -07:00
BUILD.bazel build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -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 test(ivy): add bundling test todo_i18n (#27420) 2018-12-04 19:59:12 -08:00
license-banner.txt build: bump year (#27880) 2019-01-11 11:15:59 -08:00
README.md Revert "docs: Remove unneeded file (#18106)" 2017-07-20 16:46:47 -05:00
system.d.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
tsconfig-build.json build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
tsconfig-test.json build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
tsconfig.json ci: saucelabs-legacy job should not run schematic core tests (#29124) 2019-03-05 16:10:08 -08:00
types.d.ts build: switch to typescript's es2015 typings (#28570) 2019-02-06 14:17:55 -05:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

License: MIT