
Before this change we would systematically call LQueries.clone() when executting elementStart / elementContainerStart instructions. This was often unnecessary as LQueries can be mutated under 2 conditions only: - we are crossing an element that has directives with content queries (new queries must be added); - we are descending into element hierarchy (creating a child element of an existing element) and the current LQueries object is tracking shallow queries (shallow queries are removed). With this PR LQueires.clone() is only done when needed and this gratelly reduces number of LQueries object created: in the "expanding rows" benchmark number of allocated (and often GCed just after!) LQueries is reduced from ~100k -> ~35k. This represents over 1MB of memory that is not allocated. PR Close #30664
build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871)
Angular
Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.
Quickstart
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.
Description
Languages
TypeScript
86.3%
JavaScript
8.5%
HTML
1.8%
Starlark
1.7%
CSS
1%
Other
0.6%