char/avril
(wip) why'd you have to go and make things so complicaaaaated?
git clone https://git.t4t.associates/char/avril
f4a0f5b
main
avril's Streams build
polyfill.js remains the unmodified upstream distribution. avril uses
polyfill.avril.js, generated from web-streams-polyfill 4.3.0 at commit
12b4fedec6c01503a137d837204ca0b85992461e with avril.patch applied.
The patch replaces promise rejection-suppression reactions with avril's private
markPromiseHandled binding. Internal observation retains its first reaction
and marks the resulting promise handled instead of attaching a second reaction.
A frozen fulfilled promise is reused by internal default algorithms, tee pulls,
and initial pipe bookkeeping. Public results, callback assimilation, and pending
backpressure promises still use separate promises. The cached promise does not
shadow constructor: that would invalidate V8's global promise-species
protector and slow unrelated promise operations.
Regenerate with Node.js 22+ and npm on PATH:
node exts/webstreams/src/vendor/build.mjs
The build fetches the pinned upstream commit, installs its locked dependencies without lifecycle scripts, applies the readable source patch, and runs upstream's ES2015 polyfill bundler. The license banner is copied from the original vendored distribution rather than using the build date.
1# avril's Streams build 2 3`polyfill.js` remains the unmodified upstream distribution. avril uses 4`polyfill.avril.js`, generated from web-streams-polyfill 4.3.0 at commit 5`12b4fedec6c01503a137d837204ca0b85992461e` with `avril.patch` applied. 6 7The patch replaces promise rejection-suppression reactions with avril's private 8`markPromiseHandled` binding. Internal observation retains its first reaction 9and marks the resulting promise handled instead of attaching a second reaction. 10A frozen fulfilled promise is reused by internal default algorithms, tee pulls, 11and initial pipe bookkeeping. Public results, callback assimilation, and pending 12backpressure promises still use separate promises. The cached promise does not 13shadow `constructor`: that would invalidate V8's global promise-species 14protector and slow unrelated promise operations. 15 16Regenerate with Node.js 22+ and npm on PATH: 17 18``` sh 19node exts/webstreams/src/vendor/build.mjs 20``` 21 22The build fetches the pinned upstream commit, installs its locked dependencies 23without lifecycle scripts, applies the readable source patch, and runs 24upstream's ES2015 polyfill bundler. The license banner is copied from the 25original vendored distribution rather than using the build date.