73a12c44b1
Where a `return` sits in the try or the catch, the `finally` body has to be duplicated on that exit path before it can be hoisted below the try/catch. Where a `throw` is used to jump to the catch, an explicit test replaces it. Each of these then revealed a second cause in the same try, so the fixes go together: an optional chain hoisted above the try where it does not depend on anything the try produces, moved into a module-scope helper where it does, and one `&&` in an if-test split into nested ifs. Skipped components: 125 -> 120. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>