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 |
||
|---|---|---|
| .. | ||
| compliance | ||
| compliance_old | ||
| diagnostics | ||
| metadata | ||
| ngtsc | ||
| transformers | ||
| BUILD.bazel | ||
| extract_i18n_spec.ts | ||
| mocks.ts | ||
| ngc_spec.ts | ||
| perform_compile_spec.ts | ||
| perform_watch_spec.ts | ||
| test_support.ts | ||
| typescript_support_spec.ts | ||