1
0
mirror of https://github.com/lancedikson/bowser synced 2026-10-30 07:16:33 +00:00

perf: trim bundled.js to the 2.14.1 polyfill set, fix stale docs

- Exclude the 10 core-js 3.0 modules with no counterpart in the
  @babel/polyfill set every released bundled.js shipped (concat/splice
  species fixes, Array#flat, Object.fromEntries, the __defineGetter__
  family, NodeList#forEach): 156.1 -> 153.2 kB (49.3 -> 48.4 kB gzip).
  babel rejects unknown exclude names, so a core-js rename fails the build.
- terser `passes: 5`, where output stops shrinking: es5.js 7.52 -> 7.49 kB
  gzip.
- New test: bundled.js must not install polyfills no release ever shipped
  (fails on the previous master build, passes on 2.14.1 and this one).
- README no longer claims named imports shrink the bundle; AGENTS.md
  describes the tsdown build and four-artifact acceptance tests;
  CONTRIBUTING points at the existing lint:check script.
This commit is contained in:
naorpeled
2026-09-27 22:26:39 +03:00
parent fd556800ee
commit 5249a7e4e8
6 changed files with 57 additions and 6 deletions

View File

@@ -11,6 +11,8 @@
* `core-js/es` rather than `core-js/stable`: `stable` is `es` plus every web
* polyfill, and the extra ones — `URL`, `URLSearchParams`, `queueMicrotask` —
* were never in any released `bundled.js`, yet cost ~20 kB (~7 kB gzipped).
* The few `es` modules `@babel/polyfill` did not have are excluded in
* `tsdown.config.ts` (`NOT_IN_BABEL_POLYFILL`).
* `test/acceptance/test-es5-runtime.js` pins the `@babel/polyfill` surface.
*
* See `./es5.js` for why this only re-exports the default.