@angular/platform-browser
Advanced tools
Changelog
20.0.0-next.1 (2025-03-05)
AsyncPipe
now directly catches unhandled errors in
subscriptions and promises and reports them to the application's
ErrorHandler
. For Zone-based applications, these errors would have
been caught by ZoneJS and reported to ErrorHandler
so the result is
generally the same. The change to the exact mechanism for reporting can
result in differences in test environments that will require test
updates.PendingTasks.run
no longer returns the result of the
async function. If this behavior is desired, it can be re-implemented
manually with the PendingTasks.add
. Be aware, however, that promise rejections
will need to be handled or they can cause the node process to shut down
when using SSR.| Commit | Type | Description |
| -- | -- | -- |
| 36b60a9705 | fix | clean up onUrlChange
listener when root scope is destroyed (#60004) |
| 739cadae62 | fix | Handle errors in async pipe subscriptions (#60057) |
| Commit | Type | Description | | -- | -- | -- | | 51b8ff23ce | feat | support tagged template literals in expressions (#59947) | | 4fe489f1b4 | fix | exponentiation should be right-to-left associative (#60101) | | b70ad3c4e6 | fix | proper handling of typeof, void in RecursiveAstVisitor (#60101) |
| Commit | Type | Description | | -- | -- | -- | | f9043e24ac | fix | ensure template IDs are not reused if a source file changes (#60152) | | ffb19e64f1 | fix | preserve required parens for nullish coalescing (#60060) | | 7c9b4892e9 | fix | preserve required parens in exponentiation expressions (#60101) |
| Commit | Type | Description |
| -- | -- | -- |
| fe57332fc5 | feat | add input binding support to dynamically-created components (#60137) |
| 82aa2c1a52 | feat | add the ability to apply directives to dynamically-created components (#60137) |
| 326d48afb4 | feat | drop support for TypeScript older than 5.8 (#60197) |
| d260ca3091 | feat | emit template function for template related profiler hooks (#60174) |
| 4812215a7b | feat | Expose Injector.destroy
on Injector
created with Injector.create
(#60054) |
| 809b5b4596 | feat | introduce new DI profiling event (#60158) |
| be44cc8f40 | feat | support listening to outputs on dynamically-created components (#60137) |
| 7eb59d3887 | fix | added @angular/compiler as a peer dependency (#55610) |
| af02914852 | fix | cache ComponentRef inputs and outputs (#60156) |
| 7232ce5b17 | fix | Catch and report rejections in async function of PendingTasks.run
(#60044) |
| fd12220a35 | fix | defer block render failures should report to application error handler (#60149) |
| 3459faadbf | fix | do not allow setInput to be used with inputBinding (#60137) |
| ea5eb28865 | fix | input targeting not checking if input exists on host (#60137) |
| 0dbf693a4d | fix | prevent invoking replay listeners on disconnected nodes (#60103) |
| 7ab0a8d1e7 | fix | prevents event replay from being called on comment nodes (#60130) |
| Commit | Type | Description | | -- | -- | -- | | d5e91e04ff | fix | Forward the tags for quick info from the type definition (#59524) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.1"></a>
Changelog
19.2.1 (2025-03-05)
| Commit | Type | Description |
| -- | -- | -- |
| c2de5f68b3 | fix | clean up onUrlChange
listener when root scope is destroyed (#60004) |
| Commit | Type | Description | | -- | -- | -- | | 1dd94476b3 | fix | ensure template IDs are not reused if a source file changes (#60152) |
| Commit | Type | Description | | -- | -- | -- | | 1b3b05bf72 | fix | cache ComponentRef inputs and outputs (#60156) | | 330c24aed9 | fix | prevent invoking replay listeners on disconnected nodes (#60103) | | cfad089cc3 | fix | prevents event replay from being called on comment nodes (#60130) |
| Commit | Type | Description | | -- | -- | -- | | 3f0116607d | fix | Forward the tags for quick info from the type definition (#59524) |
<!-- CHANGELOG SPLIT MARKER --><a name="20.0.0-next.0"></a>
Changelog
20.0.0-next.0 (2025-02-26)
Y
formatter (week-numbering year) without also including w
(week number) is now detected as suspicious date pattern, as y
is typically intended.void
in an expression now refers to the operator
Previously an expression in the template like {{void}}
referred to a
property on the component class. After this change it now refers to the
void
operator, which would make the above example invalid. If you have
existing expressions that need to refer to a property named void
,
change the expression to use this.void
instead: {{this.void}}
.
| Commit | Type | Description | | -- | -- | -- | | 74cceba587 | feat | throw error for suspicious date patterns (#59798) |
| Commit | Type | Description | | -- | -- | -- | | f2d5cf7edd | feat | support exponentiation operator in templates (#59894) | | 0361c2d81f | feat | support void operator in templates (#59894) |
| Commit | Type | Description |
| -- | -- | -- |
| 962b59b14e | fix | Ensure ComponentFixture does not duplicate error reporting from FakeAsync (#60104) |
| 491b0a4ead | fix | Remove duplicate reporting of errors in CDR.detectChanges
(#60056) |
| Commit | Type | Description | | -- | -- | -- | | 7c12cb1df9 | feat | Allow resolvers to read resolved data from ancestors (#59860) | | db2f2d99c8 | fix | Scroller should scroll as soon as change detection completes (#60086) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.0"></a>
Changelog
19.2.0 (2025-02-26)
| Commit | Type | Description |
| -- | -- | -- |
| 3e39da593a | feat | introduce experimental httpResource
(#59876) |
| Commit | Type | Description | | -- | -- | -- | | 5b20bab96d | feat | Add Skip Hydration diagnostic. (#59576) | | fe8a68329b | feat | support untagged template literals in expressions (#59230) |
| Commit | Type | Description |
| -- | -- | -- |
| 2588985f43 | feat | pass signal node to throwInvalidWriteToSignalErrorFn (#59600) |
| 168516462a | feat | support default value in resource()
(#59655) |
| bc2ad7bfd3 | feat | support streaming resources (#59573) |
| 146ab9a76e | feat | support TypeScript 5.8 (#59830) |
| 6c92d65349 | fix | add hasValue
narrowing to ResourceRef
(#59708) |
| 96e602ebe9 | fix | cancel in-progress request when same value is assigned (#59280) |
| 6789c7ef94 | fix | Defer afterRender until after first CD (#59455) (#59551) |
| c87e581dd9 | fix | Don't run effects in check no changes pass (#59455) (#59551) |
| 127fc0dc84 | fix | fix resource()
's previous.state
(#59708) |
| b592b1b051 | fix | fix race condition in resource() (#59851) |
| a299e02e91 | fix | preserve tracing snapshot until tick finishes (#59796) |
| Commit | Type | Description | | -- | -- | -- | | fa0c3e3210 | feat | support type set in form validators (#45793) |
| Commit | Type | Description | | -- | -- | -- | | 1cd3a7db83 | feat | add migration to convert templates to use self-closing tags (#57342) |
| Commit | Type | Description | | -- | -- | -- | | e6cb411e43 | fix | automatically disable animations on the server (#59762) |
| Commit | Type | Description | | -- | -- | -- | | fc5d187da5 | fix | decouple server from animations module (#59762) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.1.8"></a>
Changelog
19.1.8 (2025-02-26)
| Commit | Type | Description | | -- | -- | -- | | f0990c67e6 | fix | Ensure future-proof correct initialization order (#60025) |
| Commit | Type | Description | | -- | -- | -- | | 1fbaeab37d | fix | make types for HttpClient more readable (#59901) |
| Commit | Type | Description | | -- | -- | -- | | c611c8d212 | fix | capture stack for HMR errors (#60067) |
| Commit | Type | Description | | -- | -- | -- | | 4c9d09c643 | fix | provide correct rename info for elements (#60088) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.1.7"></a>
Changelog
19.1.7 (2025-02-19)
| Commit | Type | Description |
| -- | -- | -- |
| e9f10eb4c9 | fix | clean up urlChanges
subscribers when root scope is destroyed (#59703) |
| Commit | Type | Description | | -- | -- | -- | | 16fc074689 | fix | avoid crash in isolated transform operations (#59869) |
| Commit | Type | Description |
| -- | -- | -- |
| ec1e4c3d94 | fix | Fix typing on FormRecord
. (#59993) |
<a name="19.1.6"></a>
Changelog
19.1.6 (2025-02-12)
| Commit | Type | Description | | -- | -- | -- | | 01f669a274 | fix | handle tracking expressions requiring temporary variables (#58520) |
| Commit | Type | Description | | -- | -- | -- | | dcfb9f1959 | fix | handle deferred blocks with shared dependencies correctly (#59926) |
| Commit | Type | Description | | -- | -- | -- | | cab7a9b69c | fix | invalidate HMR component if replacement throws an error (#59854) |
| Commit | Type | Description | | -- | -- | -- | | 710759ddcc | fix | account for let declarations in control flow migration (#59861) | | 46f36a58bf | fix | count used dependencies inside existing control flow (#59861) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.1.5"></a>