# Angular v22.1.2 — 22.1.2 - Product: Angular (https://whatsnew.fyi/product/angular) - Vendor: Google - Date: 2026-08-13 - Version: v22.1.2 - Original notes: https://github.com/angular/angular/releases/tag/v22.1.2 - Permalink: https://whatsnew.fyi/product/angular/releases/v22.1.2 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Generate correct expression for optional chaining - **fixed** — Remove namespaced MathML script elements - **fixed** — Correctly resolve symbol for SafePropertyRead in chained optional navigation - **fixed** — Record class extends clause references in DeferredSymbolTracker - **fixed** — Ensure i18n_util hasOwnProperty checks are safe for property renaming - **fixed** — Fix incorrect loop in defer blocks - **fixed** — Reject prefixed SVG script hosts - **fixed** — Keep radio inputs in sync when values change - **fixed** — Always decode JSON responses as UTF-8 - **fixed** — Limit protocol-relative URL handling to serialization ###### compiler | Commit | Description | | -- | -- | | [![fix - 76dff307b4](https://img.shields.io/badge/76dff307b4-fix-green)](https://github.com/angular/angular/commit/76dff307b4c34bc4ceefcb1c7aa86c39daa5ea45) | Generate correct expression for optional chaning. | | [![fix - 6f9a64e6f5](https://img.shields.io/badge/6f9a64e6f5-fix-green)](https://github.com/angular/angular/commit/6f9a64e6f5b1e3faada6514e8b090f9d61aa8e54) | remove namespaced MathML script elements | ###### compiler-cli | Commit | Description | | -- | -- | | [![fix - e9660b1801](https://img.shields.io/badge/e9660b1801-fix-green)](https://github.com/angular/angular/commit/e9660b1801a0280fa5ba41e7c330cb6d597199ec) | correctly resolve symbol for SafePropertyRead in chained optional navigation | | [![fix - ec6deea513](https://img.shields.io/badge/ec6deea513-fix-green)](https://github.com/angular/angular/commit/ec6deea51329b0c8410c75943d90ce823081e216) | record class extends clause references in DeferredSymbolTracker | ###### core | Commit | Description | | -- | -- | | [![fix - 0df9d5eb65](https://img.shields.io/badge/0df9d5eb65-fix-green)](https://github.com/angular/angular/commit/0df9d5eb6516106188b879536f7f813a9ca8811c) | ensure i18n_util hasOwnProperty checks are safe for property renaming | | [![fix - 4d985a179e](https://img.shields.io/badge/4d985a179e-fix-green)](https://github.com/angular/angular/commit/4d985a179e66428d46e60b4622435f88c39e1d2b) | incorrect loop in defer blocks | | [![fix - 7b40456792](https://img.shields.io/badge/7b40456792-fix-green)](https://github.com/angular/angular/commit/7b404567924840aabdb955704a9bc04778b14f73) | reject prefixed SVG script hosts | ###### forms | Commit | Description | | -- | -- | | [![fix - 3b5c798072](https://img.shields.io/badge/3b5c798072-fix-green)](https://github.com/angular/angular/commit/3b5c798072a3cf43b5e0ec0b3f4abc18bc6196a5) | keep radio inputs in sync when values change | ###### http | Commit | Description | | -- | -- | | [![fix - 4f7e9987fa](https://img.shields.io/badge/4f7e9987fa-fix-green)](https://github.com/angular/angular/commit/4f7e9987fa35888de43895bfd859382dfa436e51) | always decode JSON responses as UTF-8 | ###### router | Commit | Description | | -- | -- | | [![fix - 2f82601662](https://img.shields.io/badge/2f82601662-fix-green)](https://github.com/angular/angular/commit/2f82601662a958b3accd4d22dff7ad4ec7c56d77) | limit protocol-relative URL handling to serialization |