mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Prior to this change, the `setClassMetadata` call would be invoked inside of an IIFE that was marked as pure. This allows the call to be tree-shaken away in production builds, as the `setClassMetadata` call is only present to make the original class metadata available to the testing infrastructure. The pure marker is problematic, though, as the `setClassMetadata` call does in fact have the side-effect of assigning the metadata into class properties. This has worked under the assumption that only build optimization tools perform tree-shaking, however modern bundlers are also able to elide calls that have been marked pure so this assumption does no longer hold. Instead, an `ngDevMode` guard is used which still allows the call to be elided but only by tooling that is configured to consider `ngDevMode` as constant `false` value. PR Close #39987 |
||
|---|---|---|
| .. | ||
| analysis | ||
| dependencies | ||
| entry_point_finder | ||
| execution | ||
| helpers | ||
| host | ||
| integration | ||
| locking | ||
| migrations | ||
| packages | ||
| rendering | ||
| writing | ||
| BUILD.bazel | ||
| ngcc_options_spec.ts | ||
| utils_spec.ts | ||