
DynamicValues are generated whenever a partially evaluated expression is unable to be resolved statically. They contain a reference to the ts.Node which wasn't resolvable. They can also be nested. For example, the expression 'a + b' is resolvable only if 'a' and 'b' are themselves resolvable. If either 'a' or 'b' resolve to a DynamicValue, the whole expression must also resolve to a DynamicValue. Previously, if 'a' resolved to a DynamicValue, the entire expression might have been resolved to the same DynamicValue. This correctly indicated that the expression wasn't resolvable, but didn't return a reference to the shallow node that couldn't be resolved (the expression 'a + b'), only a reference to the deep node that couldn't be resolved ('a'). In certain situations, it's very useful to know the shallow unresolvable node (for example, to use it verbatim in the output). To support this, the partial evaluator is updated to always wrap DynamicValue to point to each unresolvable expression as it's processed, ensuring the receiver can determine exactly which expression node failed to resolve. PR Close #29033
build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871)
build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871)
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%