Repository: tauri
Issue: [bug] Clicking on a datalist with a null-coalescing value intermittently crashes the frontend
Labels: type: bug,status: needs triage

### Describe the bug

Thanks for all the work y'all put into tauri. This is infinitely easier and faster than any of the .NET ecosystem application development I've done.

I made a [repo](https://github.com/jmurphyct/broken-tauri-datalist) with minimal reproduction code
With the code in a solidjs project:
```
import { For } from "solid-js";
export function App() {

  const osList = [{name: "Edge"}, {name: "Firefox"}, {name: "Chrome"}, {name: undefined}];

  return (
    <>
      <label for="browser">Choose your browser from the list:</label>
      <input list="browsers" name="browser" id="browser"/>
      <datalist id="browsers">
        <For each={osList}>
          {(osOption) => <option value={osOption.name ?? "Uhh"}/>}
        </For>
      </datalist>
  </>
  )
}
```

While running in dev (`npm tauri dev`)
![image](https://github.com/user-attachments/assets/5a8c2a7e-30e3-44e6-a850-5cea2838d230)
Clicking on the 'browser' input field _sometimes_ crashes the frontend, closing the developer tools window and stopping rendering. Sometimes the window is all black, and sometimes it's all white.
![image](https://github.com/user-attachments/assets/6173f7a8-b430-43e9-a14f-2f457fa0725d)
It still runs in the console.

If it works once, it'll _probably_ keep working until I close and re-open the window. It feels like it fails about 40% of the time.


### Reproduction

I made a [repo](https://github.com/jmurphyct/broken-tauri-datalist) with minimal reproduction code.

To do it yourself:

1. Create a new Tauri project with the solidjs frontend.
2. Replace the contents of the App function with
```
const osList = [{name: "Edge"}, {name: "Firefox"}, {name: "Chrome"}, {name: undefined}];

  return (
    <>
      <label for="browser">Choose your browser from the list:</label>
      <input list="browsers" name="browser" id="browser"/>
      <datalist id="browsers">
        <For each={osList}>
          {(osOption) => <option value={osOption.name ?? "Uhh"}/>}
        </For>
      </datalist>
  </>
)
```
3. Run the project through `npm tauri dev`
4. Click on the "browser" input and observe the frontend crash.

### Expected behavior

The datalist options should appear below the input field, as they sometimes do.

### Full `tauri info` output

```text
[✔] Environment
    - OS: Windows 10.0.19045 x86_64 (X64)
    ✔ WebView2: 131.0.2903.112
    ✔ MSVC:
        - Visual Studio Build Tools 2019
        - Visual Studio Professional 2022
    ✔ rustc: 1.83.0 (90b35a623 2024-11-26)
    ✔ cargo: 1.83.0 (5ffbef321 2024-10-29)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (directory override for 'C:\Users\jmurphy\Documents\GitHub\broken-tauri-datalist')
    - node: 20.10.0
    - npm: 10.2.5

[-] Packages
    - tauri 🦀: 2.2.0
    - tauri-build 🦀: 2.0.4
    - wry 🦀: 0.48.0
    - tao 🦀: 0.31.1
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli : 2.2.2

[-] Plugins
    - tauri-plugin-log 🦀: 2.2.0
    - @tauri-apps/plugin-log : not installed!

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:5173/
    - framework: SolidJS
    - bundler: Vite
```


### Stack trace

```text
No stack trace
```


### Additional context

Fails on nightly rust toolchain too.
I cannot get any errors if I run this in browser, so I don't think it's a solidjs issue.