feat(http): expand the static Node HTTP surface - #410
Merged
Merged
Conversation
- Preserve precise string array types for whole incoming header and trailer collections. - Cover duplicate headers, trailers, and raw header reads against Node in both backends. - Refresh test-backed static HTTP compatibility claims.
- Preserve both HTTP snapshot and Math receiver corpus order baselines.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- Add HTTP module values, request and response lifecycle state, and socket controls. - Implement server timeout and connection shutdown behavior in the native runtime. - Cover C and LLVM behavior with Node differential fixtures, refresh compatibility evidence, and recover interrupted Sandbox streams.
| if (scr_exc_pending()) return; | ||
| } | ||
| scr_net_fire0_this(&s->timeout_ls, s, SCR_DYNH_NET_SOCKET); | ||
| if (scr_exc_pending()) return; |
Contributor
There was a problem hiding this comment.
A server request/response on('timeout', cb) listener registers on the socket-level list rather than the message-level timeout_ls, so it is not counted by the connection's unhandled-timeout detection and the connection is still auto-destroyed (ECONNRESET) — diverging from Node, where any message 'timeout' listener suppresses the destroy.
- Keep server sockets open when request or response timeout listeners handle the event. - Add differential regressions and refresh the TypeScript 7 order baseline.
- Integrate the latest compiler and Test262 changes from main. - Reconcile Sandbox status recovery and regenerate the TypeScript order baseline.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
node:httpmodule values, Agent bookkeeping, client controls and lifecycle, IncomingMessage state, ServerResponse events, and server timeout and connection shutdown methods.Validation
pnpm -r buildpnpm node-compat:checkNEXT_DIST_DIR=.next-check pnpm checkindocs/pnpm test:ts7(full 1,489-entry order and preflight sweep)pnpm test:sandbox --shards 4(plain and sanitized lanes passed)Remaining scope
The compatibility claims remain partial. The native client still uses one connection per request, so Agent keep-alive pooling,
globalAgentbehavior, the standaloneOutgoingMessagebase class, and several protocol events and limits remain outside this PR. The client socket closes when its response completes, unlike Node's pooled default socket.