## Two pages were shipping broken JavaScript

The home page and [the insurance page](insurance.html) were throwing on load. The home page could
not parse its own script at all (`Unexpected token '}'`); the insurance page ended mid-statement
(`Unexpected end of input`). Everything that lives in that script — the menu, the mobile drawer,
the in-page scroll buttons, the enquiry button, and on the insurance page the Index card and the
level ladder — was dead on both.

**How it happened.** Moving the insurability component off the home page in v1.20.1 used a regular
expression to find the end of the module, and the expression stopped one closing sequence short. The
home page kept an orphan `})();` and the insurance page lost the one it needed. The insurance page
has been broken since it launched in v1.20.0.

**Why nothing caught it.** The HTML still rendered, so every page looked right in a screenshot. All
twenty-six tests passed, the four `npm run check` gates passed, and the two extra CI checks passed,
because not one of them executed or parsed a line of the JavaScript the pages carry. The only signal
was an error in a console nobody was reading.

**What caught it.** A browser being driven through the site by a synthetic-user study, which records
`pageerror` on every step. It reported an error on all five journeys before a word of the study had
been written.

**The fix, and the test.** Both scripts were rebuilt from the last version that parsed, rather than
by balancing braces by hand. A new test parses **every inline script on every page** and fails the
build if one does not; it was verified by deliberately breaking a page and watching it fail. It
anchors to real `<script>` tags, because several pages carry the literal string `'<script>'` inside
their own source and a naive search starts reading from the middle of it.

Nothing about what any page says has changed.
