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 |
||
|---|---|---|
| .. | ||
| partial | ||
| view | ||
| r3_ast.ts | ||
| r3_factory.ts | ||
| r3_identifiers.ts | ||
| r3_jit.ts | ||
| r3_module_compiler.ts | ||
| r3_module_factory_compiler.ts | ||
| r3_pipe_compiler.ts | ||
| r3_template_transform.ts | ||
| r3_types.ts | ||
| util.ts | ||