
In Ivy, a pure call to `setClassMetadata` is inserted to retain the information that would otherwise be lost while eliding the Angular decorators. In the past, the Angular constructor decorators were wrapped inside of an anonymous function which was only evaluated once `ReflectionCapabilities` was requested for such metadata. This approach prevents forward references from inside the constructor parameter decorators from being evaluated before they are available. In the `setClassMetadata` call, the constructor parameters were not wrapped within an anonymous function, such that forward references were evaluated too early, causing runtime errors. This commit changes the `setClassMetadata` call to pass the constructor parameter decorators inside of an anonymous function again, such that forward references are not resolved until requested by `ReflectionCapabilities`, therefore avoiding the early reads of forward refs. PR Close #27561
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%