Repository navigation
Remove dead code from bun-uws, the native BufferList class, built-in JS, the bake dev server assets, the shell, and the SQL crates - #40066
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (7)
📒 Files selected for processing (71)
💤 Files with no reviewable changes (60)
Included review availability: Your plan provides up to 5 included reviews per hour; 0 remain after this review. WalkthroughThe pull request removes unused APIs, compatibility methods, parser and proxy support, bindings, exports, dependencies, shell cleanup paths, and development visualizers. It also simplifies WebSocket subscription handling and adds a concurrent subscription regression test. Changesbun-uws API and WebSocket cleanup
JavaScript and runtime cleanup
SQL façade and repository cleanup
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Comment |
|
Status: ready for review, waiting on a maintainer.
|
|
Updated 2:56 AM PT - Aug 22nd, 2026
✅ @robobun, your commit c1cac52b1106c1876926dc94faad6e090ad40662 passed in 🧪 To try this PR locally: bunx bun-pr 40066That installs a local version of the PR into your bun-40066 --bun |
There was a problem hiding this comment.
I reviewed this PR and didn't find any bugs. Because it's a large sweep (75 files, -3.3k lines) that touches the HTTP parser, WebSocket pub/sub topic tree, JSC GlobalObject structure table, the shell interpreter's root-script teardown path, and the Cargo dependency graph across three crates, a maintainer look would still be worthwhile.
What was reviewed:
- Verified the H1/H3
overrideWriteOffset/setWriteOffsetsplit matches what theuws_sysshims actually call, and that the removedHttp3Responsemembers have no shim callers. - Confirmed
JSBufferList,zig__ModuleInfo__destroy/zig_log, andm_JSBufferListClassStructurehave zero remaining references insrc/. - Checked that
interpreter.rscallingfree_node(child)directly is behavior-equivalent to the removedScript::deinit_from_interpreter(which was a no-op beforefree_node), and thatnet.tsthis.listeningIdis distinct from the still-usedserver[kClusterListeningId].
Extended reasoning...
Overview
A scheduled dead-code sweep removing ~3,275 net lines across 75 files: unreferenced uWS headers and members (subscription handler, proxy parser, parameter-name map, unused listen/publish overloads, zlib mock branches), the native JSBufferList C++ class and its GlobalObject lazy-structure slot, orphaned bake visualizer HTML assets, the empty Base::end_scope() and its 12 call sites in the shell state machine, the unconstructed ShellErr::InvalidArguments variant, unused Cargo dependencies in three crates, unused pub use re-exports in sql_jsc, stale hawk.toml overrides, and assorted built-in JS exports (kSendHeaders, Dequeue#clear, colors fields, listeningId, private type declarations). One net-new behavior: the never-invoked WebSocketContext::layoutAssert() static becomes a RELEASE_ASSERT inside create(). A new websocket-server test pins the subscribe/unsubscribe/close × subscriberCount interaction that the edited TopicTree::unsubscribe and WebSocket::subscribe/unsubscribe/end paths sit on.
Security risks
None identified. The removed ProxyParser and UWS_WITH_PROXY blocks were compile-time dead (no build defines the macro). The deleted misc/cert.pem/key.pem are upstream demo certs that were never referenced. No validation, auth, or bounds check is loosened.
Level of scrutiny
High. The sweep is well-documented and each removal is individually mechanical, but the breadth is significant: it edits the HTTP request parser signature chain, the WebSocket pub/sub TopicTree::unsubscribe return shape and its three call sites, the JSC GlobalObject lazy-class-structure X-macro table, the shell interpreter's root-script completion path, and workspace-level Cargo dependencies. Any one of these is low risk; together they touch enough hot-path native code that a maintainer should confirm CI is green across all platforms before merge.
Other factors
I spot-checked the removals most likely to have hidden callers: the H1 HttpResponse::overrideWriteOffset vs. H3 Http3Response::setWriteOffset pair (each shim calls the surviving name on its side), JSBufferList (zero hits in src/jsc/bindings), the removed Http3Response members (no uws_h3_res_* shim references them), zig__ModuleInfo__destroy/zig_log (zero hits repo-wide), net.ts this.listeningId (distinct from the still-live kClusterListeningId symbol slot), and the Script::deinit_from_interpreter → direct free_node change (the removed function was a no-op before free_node, and the regular Script::deinit already skips shell-env teardown when the parent is the interpreter, so behavior is unchanged). The buildNgHeaderString/assertValidPseudoHeader imports left behind after removing [kSendHeaders] are still used by other QuicStream methods. The new pub/sub test looks correct (uses port: 0, awaits open/close events, no sleeps) and ServerWebSocket.subscriptions is a documented API. No prior review comments to address; the PR carries over a previously-approved-in-principle sweep (#37659) that was closed only for merge conflicts.
30a80fd to
21213b4
Compare
There was a problem hiding this comment.
I reviewed this PR and didn't find any bugs. It's a broad sweep across ~75 files in six subsystems (bun-uws HTTP/WS hot paths, ZigGlobalObject, shell, SQL, bake, built-in JS), and a couple of hunks aren't pure deletions — the TopicTree::unsubscribe return-type change and the new RELEASE_ASSERT in WebSocketContext::create() — so a maintainer look would still be worthwhile.
What was reviewed:
consumePostPadded/getHeaderssignature change: only caller isHttpContext.h, updated in the diff;endis still used for bounds checks.TopicTree::unsubscribe→pair<bool,bool>and thesubscriptionHandlerremovals inWebSocket::{subscribe,unsubscribe,end}/WebSocketContext::onClose:ok && laststill gatesfreeSubscriber; the new test pinssubscriberCountacross unsubscribe/close with two sockets.Http3Response::setWriteOffsetvs H1overrideWriteOffset: each shim (uws_h3_res_override_write_offset,uws_res_override_write_offset) calls the surviving method.JSBufferList: no remaining references insrc/;net.tslisteningIdis distinct from the symbol-keyedkClusterListeningIdstill in use.
Extended reasoning...
Overview
Scheduled dead-code sweep, net −3275 lines across 75 files. Carries over #37659 (closed only for merge conflicts) plus fresh scans of shell, SQL, bake and built-in JS. Almost every hunk is a deletion; the two additions are an 80-line pub/sub pin in websocket-server.test.ts and a RELEASE_ASSERT in WebSocketContext::create() replacing a never-instantiated static_assert.
Security risks
None identified. The removed ProxyParser was already unreachable (UWS_WITH_PROXY is never defined). The deleted misc/cert.pem / key.pem were upstream demo assets. No auth, crypto, or permission surfaces are touched.
Level of scrutiny
High, because of breadth: the diff reaches the HTTP parser (consumePostPadded/getHeaders lose the reserved parameter), WebSocket pub/sub (TopicTree::unsubscribe return type, subscriptionHandler dispatch sites in end/subscribe/unsubscribe/onClose), ZigGlobalObject lazy-class-structure table and IsoSubspace slots, three Cargo.tomls, and node:net/node:quic builtins. Each removal is individually mechanical, but a maintainer should confirm the two non-deletion changes are wanted: the runtime layout assertion (offsetof isn't usable on the non-standard-layout WebSocketContext, so this is a once-per-context pointer-arithmetic check in every build) and the TopicTree::unsubscribe tuple→pair narrowing.
Other factors
The PR description enumerates every removed symbol with its no-caller proof, lists the token-paste / $getByIdDirectPrivate string-lookup checks, and names two candidates that failed those checks and stay. I spot-checked JSBufferList (no remaining refs), the H1/H3 write-offset shims (each calls the surviving method), net.ts listeningId (distinct from the still-used kClusterListeningId), and the quic.ts kSendHeaders removal (buildNgHeaderString etc. remain used by other methods). CI is building on the current rebase; the description's local-failure notes all reproduce on the released bun. No prior review from me on this PR.
…JS, the bake dev server assets, the shell, and the SQL crates bun-uws: delete the header templates nothing includes (ClientApp.h, HttpError.h, Multipart.h, MessageParser.h, ProxyParser.h, misc/), the UWS_WITH_PROXY / UWS_NO_ZLIB / UWS_MOCK_ZLIB / UWS_USE_LIBDEFLATE guards that no build defines, the never-set WebSocketBehavior::subscription handler and every dispatch site for it, the per-route parameter-offset map in HttpRequest, and the App / H3App / Http3Response / Loop members the C shim never calls. The never-instantiated layoutAssert() helpers go too; the WebSocketContext layout that WebSocket::getContextData() relies on is now checked once per context with a RELEASE_ASSERT in create(). JSBufferList: remove the native class, its lazy structure on the global object, and its iso subspace slots. The JS streams implementation replaced it. Built-in JS: remove the node-inspect-extracted ambient types, the BunFS / Bun.TOML / Bun.tty private declarations, and unreferenced exports and symbols in fifo, quic, repl/utils, sql/shared, util/colors, net and internal/shared. Bake: delete the incremental and memory visualizer HTML pages whose routes and embed sites were removed in #36184, an unreferenced client helper, and a commented-out Zig function. Shell: remove the empty Base::end_scope() and its call sites, and the ShellErr::InvalidArguments variant that nothing constructs. SQL: remove re-exports nothing imports and the unused dependencies of bun_shell_parser, bun_sql and bun_sql_jsc; drop the hawk.toml overrides for StatusFlag variants that no longer exist. Also remove the two extern "C" exports in analyze_transpiled_module.rs that no C++ declares, and the ignore-file entries for the bun-uws fuzzing directory that is gone.
The pub/sub paths in WebSocket.h and TopicTree.h lost their never-installed subscription handler branches. This test pins what those paths do: unsubscribe() of a topic the socket never joined or that does not exist reports false and changes nothing, leaving the last topic frees the subscriber and a later subscribe() counts again, and close() drops the socket from every topic without touching the other socket's subscriptions.
21213b4 to
c1cac52
Compare
There was a problem hiding this comment.
I reviewed this PR and didn't find any bugs. Because it spans 75 files across several critical subsystems (the uWS HTTP parser and WebSocket pub/sub path, JSC iso-subspace slots, the shell interpreter, Cargo dependency graph) and includes a handful of non-pure-deletion changes — the new RELEASE_ASSERT layout check in WebSocketContext::create(), the TopicTree::unsubscribe return-type change, and the reserved/proxyParser parameter drop threaded through HttpParser — a maintainer sign-off is still warranted.
What was reviewed:
- Verified the H1 shim calls
setWriteOffset(kept) and the H3 shim callsoverrideWriteOffset(kept), so both write-offset removals are the unused twin. - Confirmed
SSLModeis only importedas typeoutsideshared.ts, and noJSBufferListreferences remain insrc/jsc/(the oneBufferListgrep hit isSourceBufferList). - Checked that the removed
public:inHttpResponse.hwas redundant (the only access specifier in the struct ispublic:at line 50), and thatScript::deinit_from_interpreteronly called the emptyend_scope().
Extended reasoning...
Overview
Scheduled dead-code sweep: 75 files, net −3275 lines. It removes unreferenced uWS headers (ClientApp.h, HttpError.h, Multipart.h, MessageParser.h, ProxyParser.h, misc/), the never-set subscriptionHandler and its dispatch sites, per-route std::map parameter offsets, several unused HttpRequest/HttpResponse/Http3* members, the UWS_WITH_PROXY/UWS_NO_ZLIB/UWS_MOCK_ZLIB blocks, the native JSBufferList class with its ZigGlobalObject lazy-structure and iso-subspace slots, assorted unused built-in JS exports (SSLMode runtime export, Dequeue#clear, colors, quic kSendHeaders, kGetNativeReadableProto, REPL re-exports, net.ts listeningId), two orphaned bake visualizer HTML pages plus getMainWebSocket, the empty shell Base::end_scope() and its 12 callers, the never-constructed ShellErr::InvalidArguments variant, unused Cargo dependencies in bun_shell_parser/bun_sql/bun_sql_jsc, stale hawk.toml overrides, and two uncalled extern "C" exports in analyze_transpiled_module.rs. A pub/sub pin test is added to websocket-server.test.ts.
Security risks
None identified. The ProxyParser removal drops code that parsed the PROXY v2 protocol, but it was compiled out (UWS_WITH_PROXY is never defined by any build), so no live trust boundary changes. The removed misc/cert.pem/key.pem were upstream demo assets, not shipped.
Level of scrutiny
High. Although almost every hunk is a pure deletion of provably-unreachable code (and the description documents the reference search per item), the PR touches hot request-handling paths — HttpParser::consumePostPadded/fenceAndConsumePostPadded/getHeaders signatures, WebSocket::subscribe/unsubscribe/end, TopicTree::unsubscribe's return shape, WebSocketContext::onClose — and adds one new runtime check (RELEASE_ASSERT on WebSocketContext's field layout in create()). I spot-checked the correctness of each non-deletion change and the shim/caller pairing for the removed overloads (write-offset, listen), but the breadth across independent subsystems and the JSC iso-subspace edit are the kind of change a maintainer should confirm.
Other factors
The multi-agent bug-hunt returned zero findings. bun bd builds and cargo check --workspace passes on all 12 targets per the description; the previous two CI runs' only failures were unrelated main breaks that have since been fixed. The added test pins the pub/sub paths that lost their unreachable subscriptionHandler branches. The robobun status comment already flags "waiting on a maintainer".
One conflict, in net.ts's Server constructor: main's dead-code pass (#40066) removed its unused `listeningId` initializer; this branch's `_listeningId` (node's generation counter, read by close(), listen() and listenInCluster) stays.
…rs use, and treat run({ files: null }) as unset like node [allow size]
internal/util/colors lost yellow, gray and reset in #40066 because nothing
on main read them. node:test/reporters does, so every spec line and every
dot carried a literal "undefined" once main was merged in. The codes are
node's (33, 90, 0).
validateRunOptions accepts files: null as not given (files != null), but
discoverRunFiles and runFiles compared against undefined, so null reached
.map/.length and errored the stream. Both sites now use != null and fall
through to default discovery, as node does.
Scheduled dead-code sweep. Net -3275 lines (78 files, +112 / -3387; the source side is +32 / -3387, the rest is the test pin). No behavior change: every item below has zero references on
maininsrc/,packages/,scripts/,test/and the regeneratedbuild/debug/codegen/, and the build passes without it.About 2,350 of these lines carry over the removals from #37659, which was closed only for merge conflicts. Each of those was re-verified against current
main(nothing gained a caller), and the diff applies to currentmainwith no conflicts. The rest comes from fresh scans of the shell, SQL, bake and built-in JS areas, which no open dead-code PR covers.bun-uws (
packages/bun-uws/src, -1168)Bun reaches uWS only through the C shim in
src/uws_sys/and eight bindings files, so those includers are the complete set of callers. Checked against every one of them:ClientApp.h,HttpError.h(superseded byHttpErrors.h),Multipart.handMessageParser.h(its only includer),ProxyParser.h(only reachable underUWS_WITH_PROXY, which no build defines;grep UWS_ build/debug/compile_commands.jsonis empty), plus every#ifdef UWS_WITH_PROXYblock and thereserved/proxyParserparameters that only carried the proxy parser intogetHeaders().WebSocketBehavior::subscriptionandWebSocketContextData::subscriptionHandler: the only place aWebSocketBehavioris built (uws_ws()in the shim) never sets it, so every dispatch site inWebSocket::end/subscribe/unsubscribeandWebSocketContext::onClosewas unreachable.TopicTree::unsubscribedrops thenewCountonly those sites read.HttpRequest: the per-routestd::mapof parameter offsets (setParameterOffsets,getParameter(name); every caller uses the index overload),getQuery()with no key,isShortRead,notFieldNameWord/hasMore/hasBetween.HttpContext::HTTP_IDLE_TIMEOUT_S,HttpFlags::isAuthorized(the live flag is the per-socket one inAsyncSocketData),HttpResponse::getHttpResponseDataS,HttpResponse::endWithoutBody,HttpResponse::overrideWriteOffset(the shim callssetWriteOffset).App::publish(unsigned char), twoApp::listenoverloads, theUWS_NO_ZLIBblock; twoH3App::listenoverloads;Http3Request::isAncient/getCaseSensitiveMethod; nineHttp3Responsemembers whoseuws_h3_res_*shims are stubs; the write-onlyHttp3ResponseData::totalSize;Loop::integrate,Loop::setSilentandLoopData::noMark; theUWS_NO_ZLIB/UWS_MOCK_ZLIBmock streams andUWS_USE_LIBDEFLATEguards inPerMessageDeflate.h(the macro is defined unconditionally three lines above its first use).HttpContext::layoutAssert()andWebSocketContext::layoutAssert()were never called, and as static members of class templates theirstatic_asserts never ran. TheHttpContextone guarded nothing. TheWebSocketContextone guards the layoutWebSocket::getContextData()depends on (groupfirst,dataright after), so it becomes aRELEASE_ASSERTincreate():offsetofcannot express it because the struct is not standard-layout, and the layout can differ per ABI, so the check runs once per context in every build.misc/(upstream README assets, democert.pem/key.pem), and the.gitattributes,.dockerignore,.cursorignoreentries for afuzzing/directory that no longer exists.Native
JSBufferList(src/jsc/bindings, -641)JSBufferList.cpp/.h, the lazy class structure onGlobalObject, its three accessors, and theDOMIsoSubspaces/DOMClientIsoSubspacesslots. The JS streams implementation replaced it; the only remaining mention of "BufferList" in the tree is a comment ininternal/streams/readable.ts. The sources are globbed, so no build-script change is needed.Built-in JS (
src/js, -508)internal/util/inspect.d.ts(ambient types fornode-inspect-extracted, which nothing imports) andsrc/js/.gitignore(ignoressrc/js/out, which codegen has not written since the build moved underbuild/).private.d.ts: theBunFS/BunFSWatchertypes (Bun.fs()no longer exists),Bun.TOML,Bun.tty.QuicStream.prototype[kSendHeaders]and its symbol, the unusedget [kVerifyPeer](the setter stays;session[kVerifyPeer] = …writes it),colors.tsyellow/gray/clear/reset, the runtimeSSLModeexport ofinternal/sql/shared.ts(only imported as a type), theREPL_MODE_*re-exports ofinternal/repl/utils.js(repl.jstakes them frominternal/repl/mode),Dequeue#clear(), the write-onlylisteningIdinnet.ts, and thekGetNativeReadableProtosymbol ininternal/shared.ts(its last reader went in 032713c).Bake (
src/runtime/bake, -830)incremental_visualizer.htmlandmemory_visualizer.html: Narrow crate-internal Rust visibility across all targets and delete the code it proves dead #36184 removed theruntime_embed_file!sites and the/_bun/incremental_visualizerroute that served them, so the two pages are orphaned assets. The no-opemit_*_visualizer_*methods that Narrow crate-internal Rust visibility across all targets and delete the code it proves dead #36184 left behind are still reachable and are not touched here.client/websocket.tsgetMainWebSocket()(exported, never imported) and a commented-out ZigwriteJsValueinserialized_failure.rs.Shell (
src/runtime/shell,src/shell_parser, -51)Base::end_scope(), an empty function, and its 12 call sites instates/*.rs.Script::deinit_from_interpreteronly called it and goes too.ShellErr::InvalidArguments: never constructed (only matched), with its four match arms.bun_shell_parserdependenciesscopeguard,const_format,enum-map,enumset,typed-arena,bun_collections: nouseor path reference in the crate.SQL (
src/sql,src/sql_jsc, -22) andhawk.toml(-104)bun_sqldependenciesconst_format,enum-map,enumset,libc;bun_sql_jscdependenciesconst_format,enum-map,enumset,libc,bun_uws_sys, and a commented-outbun_runtimeedge that would be a dependency cycle (bun_runtimedepends onbun_sql_jsc).pub usere-exports nothing imports:ArrayBuffer,JSCell,host_fninsql_jsc/jsc.rs(the proc-macro is used by its absolute path),mysql::{MySQLConnection, MySQLQuery, MySQLStatement}(every consumer imports the leaf module),postgres::SASL.hawk.toml: 13 overrides forbun_sql::mysql::status_flags::StatusFlag::*variants that Remove dead code from shell, bake dev server, sql, install, cli, css, and websocket client #37229 removed;StatusFlaghas one variant left.Rust (-18)
zig__ModuleInfo__destroyandzig_loginsrc/bundler/analyze_transpiled_module.rs:extern "C"exports that no C++ declares or calls (BunAnalyzeTranspiledModule.cppfrees throughzig__ModuleInfoDeserialized__deinit), with no hit invendor/WebKiteither.Verification
rgfor every symbol acrosssrc/,packages/,scripts/,test/,docs/andbuild/debug/codegen/;.classes.tsfiles,src/codegen/, string-named lookups ($getByIdDirectPrivate(this, "…"),$zig/$cpp) and token-paste macros (name##PublicName) were checked by hand. Two candidates failed those checks during the run and stay:BunBuiltinNamesmockedFunction(reached throughBUN_COMMON_STRINGS_EACH_NAME) andwriter(reached through$getByIdDirectPrivate(this, "writer")inConsoleObject.ts).bun bdbuilds.cargo check --workspacepasses on all 12 target triples.cargo fmt --check, prettier, oxlint and clang-format are clean.tsc -p src/jsreports the same errors before and after (only line numbers move).test/js/bun/websocket/websocket-server.test.tsgains a pin for the pub/sub paths this PR edits: with two sockets on shared topics,unsubscribe()of a topic the socket never joined (or that does not exist) reports false and changes nothing, leaving the last topic frees the subscriber and a latersubscribe()counts again, andclose()drops the socket from every topic without touching the other socket. Because this PR only deletes unreachable code, the pin passes before and after by design.bun bd test:bun/websocket/websocket-server.test.ts,web/websocket/websocket-permessage-deflate.test.ts,bun/http/bun-serve-routes.test.ts,bun/http/serve-http3.test.ts,node/http/node-http.test.ts,node/quic/quic-stream.test.ts,node/net/node-net-server.test.ts,bun/util/inspect.test.js, sixbun/shell/*.test.tsfiles,sql/sql-mysql*.test.ts,sql/sql-mariadb-json.test.ts,sql/postgres-binary-numeric.test.ts,sql/sql-connect-error-reporting.test.ts,node/stream/node-stream.test.js,node/console/console-table-iterators.test.ts,web/console/console-log.test.ts,internal/fifo.test.ts,bake/dev/esm.test.ts,bake/dev/hot.test.ts,bun/repl/repl.test.ts(mode tests),node/test/parallel/test-repl-definecommand.js. Details on the local failures that also fail on the released bun are under Notes.Looked at and left alone
src/runtime/api/bun/h2/: the outbound half (Connection::send_header_block/send_data/send_push_promise,hpack::Coder::encode,SendWindow::available) is only exercised by its unit tests. The module doc describes it as the engine that will replaceh2_frame_parser.rs, so it is in progress, not dead.MessageId::Visualizer, theIncrementalVisualizertopic, and the emptyemit_*_visualizer_*methods and their timer. All reachable; removing them is a protocol change that also touches the generatedgenerated.tsids.ColumnDefinition41::{fixed_length_fields_length, decimals}are decoded and never read, but they mirror the MySQL wire struct; left in place.bun_sql::mysql::StatusFlags'sDisplayimpl prints nothing, but a debug log inMySQLConnection.rsstill formats it.Notes
How the candidates were found: the dead-code PRs that were closed for merge conflicts were re-applied against current
mainand every removal re-verified (#37659 applied with no conflicts; itsassertion_error.tsandutil.tshunks had already landed via #39924 and #39628 and are not in this PR). Read-only scans ofsrc/runtime/shell+src/shell_parser,src/sql+src/sql_jsc+src/runtime/node,src/runtime/bake+src/runtime/api+src/runtime/image, andsrc/js+src/jsc/modulesproduced the fresh items.src/runtime/node,src/runtime/api(outsideh2/),src/runtime/imageandsrc/jsc/modulescame back clean.Local test failures, all reproduced with
USE_SYSTEM_BUN=1(the released bun) in the same container, so none is caused by this diff:websocket-server.test.ts: eightit.concurrentcases that overlap the 300,000-message(benchmark)test time out under the debug ASAN build in this container (the whole file takes 64 s here against a 6.4 s CI budget); each passes when run with-t.node-http.test.ts"request via http proxy":ECONNREFUSEDfromlocalhostresolution in this container.bunshell.test.ts-c,-f character device, and the seven "stdin redirect from a zero-length buffer" cases: this container's/dev/nullis a regular file, not a character device.sql-mysql-binary-null-indexed.test.ts:Access denied for user 'root'@'localhost'against the local MariaDB.fifo.test.ts"pushing and shifting a lot of items": a 10 s perf budget exceeded under ASAN; the onlyfifo.tschange is the removal of the unusedclear()method.Files shared with open PRs, different hunks:
src/jsc/bindings/ZigGlobalObject.cpp/.h(#39581 removes other accessors; itsHTMLRewriterSinkPrototype()hunk sits one blank line above theJSBufferListaccessors removed here),Cargo.lock(#39618 edits other package blocks).no test proof · iteration 4 · platform-specific test(s) that do not run on this machine, deferring to CI, which covers all platforms: test/js/bun/websocket/websocket-server.test.ts