angular/packages/core/test
Pawel Kozlowski 10629600c5 perf(ivy): split hooks processing into init and check phases (#32131)
Angular hooks come after 2 flavours:
- init hooks (OnInit, AfterContentInit, AfterViewInit);
- check hooks (OnChanges, DoChanges, AfterContentChecked, AfterViewChecked).

We need to do more processing for init hooks to ensure that those hooks
are run once and only once for a given directive (even in case of errors).
As soon as all init hooks execute to completion we are only left with the
checks to execute.

It turns out that keeping track of the remaining init hooks to execute is
rather expensive (multiple LView flags reads, writes and checks). But we can
observe that non of this tracking is needed as soon as all init hooks are
completed.

This PR takes advantage of the above observations and splits hooks processing
functions into:
- init-specific (slower but less common);
- check-specific (faster and more common).

NOTE: there is code duplication in this PR and it is left like this intentinally:
hand-inlining this perf-critical code makes the view refresh process substentially
faster.

PR Close #32131
2019-08-21 11:44:27 -07:00
..
acceptance refactor(ivy): simplify walkTNodeTree method for readability (#31065) 2019-08-19 10:12:38 -07:00
animation refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
bundling perf(ivy): split hooks processing into init and check phases (#32131) 2019-08-21 11:44:27 -07:00
change_detection refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
debug fix(ivy): get name directly from nativeNode (#32198) 2019-08-20 09:57:17 -07:00
di fix(ivy): call factory functions with correct type for derived classes (#30855) 2019-06-11 14:27:17 -07:00
dom fix(platform-server): add styles to elements correctly (#22527) 2018-03-14 14:12:31 -07:00
linker fix(ivy): Support selector-less directive as base classes (#32125) 2019-08-20 09:56:54 -07:00
metadata test(core): update query-specific tests in core (#30626) 2019-05-23 10:31:32 -07:00
reflection fix(core): handle undefined meta in injectArgs (#31333) 2019-07-01 10:11:08 -07:00
render3 docs(ivy): update micro-benchmark instructions (#32190) 2019-08-19 10:10:39 -07:00
sanitization perf(core): make sanitization tree-shakable in Ivy mode (#31934) 2019-08-15 10:30:12 -07:00
strict_types build(core): add missing tsconfig-build.json dependency (#31943) 2019-08-14 11:56:13 -07:00
testability build: update zone.js to 0.9.0 (#28219) 2019-03-26 12:50:38 -07:00
util refactor(ivy): remove duplicated flatten util (#29547) 2019-03-27 12:36:23 -07:00
view feat(ivy): require 'token' for ngInjectableDef (#30855) 2019-06-11 14:27:16 -07:00
zone build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00
application_init_spec.ts fix(ivy): Enable AoT tests to run on CI; disable failing tests (#26975) 2018-11-07 10:35:20 -08:00
application_module_spec.ts build(core): remove main() from specs (#21053) 2017-12-22 13:10:51 -08:00
application_ref_integration_spec.ts test(ivy): finish root cause analysis for @angular/core TestBed failing tests (#27510) 2018-12-06 13:41:02 -08:00
application_ref_spec.ts fix(ivy): set LOCALE_ID when using the injector (#31566) 2019-07-26 14:04:47 -07:00
BUILD.bazel build: enable shard_count for some jasmine tests that have many specs (#31009) 2019-06-18 12:11:30 -07:00
component_fixture_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27370) 2018-11-30 13:41:21 -08:00
dev_mode_spec.ts build(core): remove main() from specs (#21053) 2017-12-22 13:10:51 -08:00
directive_lifecycle_integration_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27419) 2018-12-03 08:19:56 -08:00
error_handler_spec.ts refactor(ivy): refactor more files in DI to prepare it for bazel packages (#28098) 2019-01-14 09:55:30 -08:00
event_emitter_spec.ts fix(core): fix proper propagation of subscriptions in EventEmitter (#22016) 2018-02-06 07:56:33 -08:00
fake_async_spec.ts fix(ivy): update token used for fakeAsync test (#28383) 2019-01-29 16:39:14 -08:00
forward_ref_integration_spec.ts build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
spies.ts build: fix file paths after moving modules/@angular/* to packages/* 2017-03-08 16:29:28 -08:00
test_bed_async_spec.ts fix(ivy): stub TestBed.compileComponents implementation (#26506) 2018-10-17 13:08:14 -07:00
test_bed_spec.ts fix(ivy): handle ModuleWithProviders in R3TestBed correctly (#31415) 2019-07-11 18:27:13 -04:00
testing_internal_spec.ts build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
util_spec.ts build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00