angular/packages/core/test/acceptance
mgechev f7e391a912 perf(core): optimize getDirectives (#41525)
This commit introduces the following optimizations:

1. We return an empty array for text nodes in `getDirectives` because
Angular does not support attaching logic to them. This optimization
improves performance of `getDirectives` significantly because text nodes
often result in expensive calls to `loadLContext` since we can't resolve
it from a parent node.
1. `getDirectives` now calls `loadLContext` with second argument `false`
so it doesn't throw an error. This brings another significant
improvement because prevents the VM from deoptimizing calls.

BREAKING CHANGE:

Previously the `ng.getDirectives` function threw an error in case a
given DOM node had no Angular context associated with it (for example
if a function was called for a DOM element outside of an Angular app).
This behavior was inconsistent with other debugging utilities under `ng`
namespace, which handled this situation without raising an exception.
Now calling the `ng.getDirectives` function for such DOM nodes would
result in an empty array returned from that function.

PR Close #41525
2021-04-13 16:06:32 -07:00
..
attributes_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
bootstrap_spec.ts fix(core): unsubscribe from the onError when the root view is removed (#39940) 2020-12-03 13:44:17 -08:00
BUILD.bazel refactor(core): add debug ranges to LViewDebug with matchers (#38359) 2020-08-06 16:58:11 -07:00
change_detection_spec.ts fix(core): Ensure OnPush ancestors are marked dirty when events occur (#39833) 2020-11-25 14:39:19 -08:00
change_detection_transplanted_view_spec.ts fix(core): clear the RefreshTransplantedView when detached (#38768) 2020-09-10 09:11:38 -07:00
common_integration_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
component_spec.ts fix(core): Call onDestroy in production mode as well (#40120) 2020-12-22 08:02:27 -08:00
content_spec.ts docs: update links to use HTTPS as protocol (#39718) 2020-11-20 12:52:16 -08:00
copy_definition_feature_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
debug_spec.ts refactor(core): Create TNodeType.Text to display full template in TView debug (#39233) 2020-10-21 18:33:00 -07:00
di_spec.ts feat(core): support forwardRef in providedIn of Injectable declaration (#41426) 2021-04-06 10:03:38 -07:00
directive_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
discover_utils_spec.ts perf(core): optimize getDirectives (#41525) 2021-04-13 16:06:32 -07:00
embedded_views_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
exports_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
host_binding_spec.ts fix(compiler): incorrectly interpreting some HostBinding names (#40233) 2021-01-07 13:15:46 -08:00
i18n_spec.ts fix(compiler): avoid duplicate i18n blocks for i18n attrs on elements with structural directives (#40077) 2020-12-15 13:40:09 -08:00
inherit_definition_feature_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
integration_spec.ts feat(compiler): support nullish coalescing in templates (#41437) 2021-04-07 12:04:28 -07:00
lifecycle_spec.ts fix(core): error if detectChanges is called at the wrong time under specific circumstances (#40206) 2020-12-22 14:52:12 -08:00
listener_spec.ts fix(compiler): preserve this.$event and this.$any accesses in expressions (#39323) 2020-10-30 10:49:15 -07:00
ng_module_spec.ts refactor(compiler): move factory out of injector definition (#41022) 2021-03-08 15:31:30 -08:00
ngdevmode_debug_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
ngmodule_scope_spec.ts fix(core): prevent NgModule scope being overwritten in JIT compiler (#37795) 2020-08-11 09:50:27 -07:00
outputs_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
pipe_spec.ts fix(compiler): evaluate safe navigation expressions in correct binding order (#37911) 2020-08-11 09:51:10 -07:00
profiler_spec.ts perf(core): add private hooks around user code executed by the runtime (#41255) 2021-04-02 10:34:23 -07:00
property_binding_spec.ts fix(compiler): don't report parse error for interpolation inside string in property binding (#40267) 2021-01-05 13:57:23 -08:00
property_interpolation_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
providers_spec.ts refactor(compiler): implement ngDeclareInjectable() (#41316) 2021-04-07 13:57:13 -07:00
pure_function_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
query_spec.ts fix(core): Switch emitDistinctChangesOnlyDefaultValue to true (#41121) 2021-03-12 10:47:56 -08:00
renderer_factory_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
router_integration_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
security_spec.ts fix(core): fix possible XSS attack in development through SSR (#40525) 2021-01-26 09:32:27 -08:00
styling_spec.ts fix(compiler): handle case-sensitive CSS custom properties (#41380) 2021-03-30 16:57:44 -07:00
template_ref_spec.ts fix(core): allow EmbeddedViewRef context to be updated (#40360) 2021-02-23 08:14:01 -08:00
text_spec.ts fix(compiler): handle strings inside bindings that contain binding characters (#39826) 2020-12-10 11:11:21 -08:00
view_container_ref_spec.ts fix(core): fix multiple nested views removal from ViewContainerRef (#38317) 2020-08-13 13:35:53 -07:00
view_insertion_spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
view_ref_spec.ts fix(core): memory leak if view container host view is destroyed while view ref is not (#40219) 2021-01-08 09:45:12 -08:00