Bun 1.4.2 expliqué : build Elysia et fuite AsyncLocalStorage 2026

Blog officiel Bun le 5 septembre : v1.4.2 corrige des régressions v1.4.1 qui cassaient les builds Elysia et fuyaient AsyncLocalStorage. JPEG CMYK et une montée WebKit sur la même page.

Le 5 septembre 2026, le blog officiel Bun a publié v1.4.2. La phrase d’ouverture nomme deux régressions de v1.4.1 : une collision de noms dans bun build qui cassait Elysia, et une fuite AsyncLocalStorage. La même page liste un blocage de @discordjs/ws, le décodage JPEG CMYK dans Bun.Image, un crash JIT rare et un crash GC sur musl.

Le terme de recherche est le numéro de rustine. Texte officiel : mettre à jour avec bun upgrade. Cet article ne vérifie que ce blog. Ce n’est pas un guide d’install, ni l’histoire Zig vers Rust de 1.4.0 en août.

Blog officielRégressions 1.4.1Qui est nommé

Ce que les textes publics impriment

1.4.2
Version de rustine
9/5
Date du blog
350
Commits WebKit (environ)
PointTexte publicLimite
Buildbun build a renommé un var imbriqué sur un let du même blocLes builds qui importent Elysia ne chargeaient plus
MémoireLes timers dans exit / run imbriqué gardaient le store extérieurgetStore() restait juste ; seule la mémoire croissait
Workeronline n’était pas premier ; @discordjs/ws ratait le premier messageL’ordre suit maintenant Node.js
MoteurEnviron 350 commits WebKit amontPas un nouveau produit runtime

Lire cette version

  1. 1

    C’est une rustine 1.4.1

    Le texte officiel place les deux régressions dans la première phrase. Ce n’est pas un nouvel envoi de la réécriture Zig vers Rust de 1.4.0, ni un nouveau framework.

  2. 2

    L’échec de build a une erreur imprimée

    Le blog imprime la sortie cassée : var exports2 = exports2. L’erreur est SyntaxError: Cannot declare a var variable that shadows a let/const/class variable. Le même défaut pouvait aussi donner à un let le nom d’un paramètre ou d’une liaison catch et calculer de mauvaises valeurs.

  3. 3

    La fuite ne change pas getStore()

    Un timer, immediate ou promesse en attente créé dans store.exit() ou un store.run() imbriqué gardait le store extérieur tant que la poignée existait. Texte officiel : la valeur de retour restait juste ; seule la mémoire était retenue.

  4. 4

    Images et moteur partagent la page

    Bun.Image décode maintenant les JPEG CMYK et YCCK à quatre composantes et les convertit en RGB ; auparavant Image: decode failed. La même page dit environ 350 commits WebKit : Intl, TypedArray, un crash Proxy, des Date moins chers.

Le reste de la même page

01

Erreurs JSON alignées sur JSON.parse

.json() sur Response, Blob, Bun.file() ou proc.stdout ne rejette plus un JSON invalide avec seulement Failed to parse JSON. Il affiche le texte SyntaxError de JSON.parse.

02

Install et Alpine

bun install et bun add pouvaient panic si bun.lockb ou un manifeste en cache stockait un hachage de nom de paquet qui ne correspondait pas au nom. Sur musl (Alpine), splice, shift ou raccourcir length sur un tableau d’objets pouvait planter sur un fil GC ou bloquer pendant le marquage.

03

Descripteurs de fichiers Linux

Si l’enregistrement epoll d’un FileSink Bun.file().writer() échouait (par exemple fs.epoll.max_user_watches épuisé), le descripteur pouvait être fermé deux fois.

Limites

La page officielle ne date pas 1.4.3. Ensuite : bun.com/blog/bun-v1.4.2. Pour une courte réunion sans mur de compte, wbstorm est un identifiant de salle — voir créer ou rejoindre une salle et bases du tableau.

# Sources
# bun.com/blog/bun-v1.4.2
# 2026-09-05
Est-ce la réécriture Zig vers Rust ?

Non. Ce billet est la rustine v1.4.2. L’histoire de réécriture 1.4.0 date d’août, pas de cette page.

Elysia a-t-elle elle-même livré un bogue ?

Texte officiel : bun build de v1.4.1 a renommé un var imbriqué sur un let du même bloc. Les builds qui importaient Elysia ne chargeaient plus. Ce n’est pas une note de version Elysia.

Est-ce un mode d’emploi produit ?

Non. Cet article ne vérifie que le blog Bun du 5 septembre. Ce n’est pas un guide bun upgrade.

Démarrer une réunion gratuite