You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the six pinned readable-stream consumption boundaries on top of a real Web Streams state machine. This is not a permission to accept an arbitrary array/iterator as a stream: the exported ABI must preserve locked, disturbed, cancellation, chunk, and Promise behavior.
Scope
Pin Home 7ed99c02, Bun 4982b91e, ReadableStream.cpp, generated builtin behavior, and exact source identities.
Implement realm-local ReadableStream, default reader, controller, queue, close/error/cancel, lock release, and disturbed state needed by the pinned consumers.
Consume synchronously and asynchronously enqueued chunks in order without invoking user code while engine/GC locks are held.
Implement ZigGlobalObject__readableStreamToArrayBuffer with exact byte concatenation, detached/view bounds, overflow, rejection, and Promise identity.
Implement ZigGlobalObject__readableStreamToBytes as the pinned Uint8Array result without an avoidable second payload copy.
Implement ZigGlobalObject__readableStreamToText with streaming UTF-8 decoding, split sequences, BOM/error behavior, and lone-surrogate safety.
Implement ZigGlobalObject__readableStreamToJSON through the engine JSON parser, with decode/parse failures delivered through the returned Promise.
Implement ZigGlobalObject__readableStreamToBlob with exact byte/type ownership and Blob integration.
Implement ZigGlobalObject__readableStreamToFormData for pinned multipart and URL-encoded content types, boundaries, filenames, binary values, duplicates, and malformed bodies.
Add bounded Home/Bun Debug, ReleaseSafe, and TSan fixtures; refresh inventories, concise README counts, docs, and roadmap evidence.
Close only after the exact fixing main CI job is green.
No placeholder resolved Promise, eager whole-source shortcut, or host-only stream shape. All six exports must consume the same engine-native stream machinery that JavaScript observes.
Parents: #140, #143
Profiles: #163, #164
Roadmap: #134
Implement the six pinned readable-stream consumption boundaries on top of a real Web Streams state machine. This is not a permission to accept an arbitrary array/iterator as a stream: the exported ABI must preserve locked, disturbed, cancellation, chunk, and Promise behavior.
Scope
7ed99c02, Bun4982b91e,ReadableStream.cpp, generated builtin behavior, and exact source identities.ReadableStream, default reader, controller, queue, close/error/cancel, lock release, and disturbed state needed by the pinned consumers.ZigGlobalObject__readableStreamToArrayBufferwith exact byte concatenation, detached/view bounds, overflow, rejection, and Promise identity.ZigGlobalObject__readableStreamToBytesas the pinnedUint8Arrayresult without an avoidable second payload copy.ZigGlobalObject__readableStreamToTextwith streaming UTF-8 decoding, split sequences, BOM/error behavior, and lone-surrogate safety.ZigGlobalObject__readableStreamToJSONthrough the engine JSON parser, with decode/parse failures delivered through the returned Promise.ZigGlobalObject__readableStreamToBlobwith exact byte/type ownership and Blob integration.ZigGlobalObject__readableStreamToFormDatafor pinned multipart and URL-encoded content types, boundaries, filenames, binary values, duplicates, and malformed bodies.mainCI job is green.No placeholder resolved Promise, eager whole-source shortcut, or host-only stream shape. All six exports must consume the same engine-native stream machinery that JavaScript observes.