Skip to content

v1.13.0

Choose a tag to compare

@ChALkeR ChALkeR released this 11 Feb 09:59
· 62 commits to main since this release
Immutable release. Only release title and notes can be modified.
9a5da9b

What's Changed

  • Bundle size reductions, especially for browsers

    Under browser module resolution target, we rely on browsers to have a working UTF-8 / UTF-16 / windows-1252 (latin1 subset) TextDecoder implementation that doesn't have bugs when used without streaming and with ignoreBOM: true, and a TextEncoder

    While browsers have bugs even in UTF-8, those bugs are related to streams and/or BOM processing, and that specific combination we use seems to be always robust.

    In previous versions we already used native codepaths for those where possible and operated under the same assumption.

  • Disable hex/base64 performance optimization for Firefox >=133 <146

    We used a guarded useragent check for those versions to prefer js fallback instead of native base64 / hex implementations, as native was slow before FF 146 (ref: https://bugzilla.mozilla.org/show_bug.cgi?id=1994067 and linked issues)

    As the usage of FF <146 diminished according to caniuse stats, this check is not worth it anymore.

    This version removes that useragent check.

    Those Firefox versions are still supported by the library, but now the native base64 / hex implementation is always used when available.

    See 8cab29a for implementation details.

Full Changelog: v1.12.0...v1.13.0