error: never return an empty JSValue from computeErrorInfoWrapperToJSValue - #34104
Merged
Jarred-Sumner merged 2 commits intoJul 14, 2026
Merged
Claude / Claude Code Review
completed
Jul 14, 2026 in 21m 47s
Code review found 1 important issue
Found 1 candidates, confirmed 1. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 1 |
| 🟡 Nit | 0 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🔴 Important | src/jsc/bindings/FormatStackTraceForJS.cpp:646 |
DeferTerminationForAWhile makes user prepareStackTrace/.message getter un-interruptible by worker.terminate() |
Annotations
Check failure on line 646 in src/jsc/bindings/FormatStackTraceForJS.cpp
claude / Claude Code Review
DeferTerminationForAWhile makes user prepareStackTrace/.message getter un-interruptible by worker.terminate()
The `DeferTerminationForAWhile` scope here spans the `profiledCall` into the user's `Error.prepareStackTrace` (and the user `.message` getter), so a Worker that hangs inside `prepareStackTrace` can no longer be interrupted by `worker.terminate()` — the `NeedTermination` trap is masked at every loop back-edge for the duration. The cited precedents (`LazyProperty::callFunc`, #33966) only defer around bounded C++ initializers, never unbounded user JS; consider narrowing the scope to exclude the `pr
Loading