evanw / evanw/esbuild

Passing SWC minified output through esbuild increases the size

Open
#3,541 1 comment 0 reactions 0 assignees View on GitHub
suboptimal-output
Dominant language
Go
Stars
40.1k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

I was trying to see what would happen when passing code through multiple minifiers. I noticed that when SWC output is fed through esbuild it actually ends up increasing the size of the files. In the playground repl, the expansion in uncompressed code is 36 bytes, and the compressed size is increased by 156 bytes.

The first major difference I saw was the identifiers, looks like swc assigns them based on order of appearance so I'd expect esbuild usage frequency based assignment to perform better here, https://github.com/evanw/esbuild/pull/2614 may help in this regard.

The second difference I noticed is that esbuild seems place constants in equality comparisons on the right where as swc/terser move all constants to the left, I couldn't find any documentation why terser prefers it that way or why esbuild does the opposite and I can't intuit which one is generally better.

[repl](https://esbuild.github.io/try/#dAAwLjE5LjkALS1taW5pZnkAKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2xldCBlPShlLHQpPT5lPT09dCx0PVN5bWJvbCgic29saWQtdHJhY2siKSxsPXtlcXVhbHM6ZX0sbj17b3duZWQ6bnVsbCxjbGVhbnVwczpudWxsLGNvbnRleHQ6bnVsbCxvd25lcjpudWxsfTt2YXIgcj1udWxsO2xldCBvPW51bGwscz1udWxsLGk9bnVsbCx1PTA7ZnVuY3Rpb24gYShlLHQpe2xldCBsPW8scz1yLGk9MD09PWUubGVuZ3RoLHU9dm9pZCAwPT09dD9zOnQsYT1pP246e293bmVkOm51bGwsY2xlYW51cHM6bnVsbCxjb250ZXh0OnU/dS5jb250ZXh0Om51bGwsb3duZXI6dX07cj1hLG89bnVsbDt0cnl7cmV0dXJuIG0oaT9lOigpPT5lKCgpPT5kKCgpPT4kKGEpKSksITApfWZpbmFsbHl7bz1sLHI9c319ZnVuY3Rpb24gZihlLHQpe2xldCBuPXt2YWx1ZTplLG9ic2VydmVyczpudWxsLG9ic2VydmVyU2xvdHM6bnVsbCxjb21wYXJhdG9yOih0PXQ/T2JqZWN0LmFzc2lnbih7fSxsLHQpOmwpLmVxdWFsc3x8dm9pZCAwfTtyZXR1cm5bcC5iaW5kKG4pLGU9PigiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZShuLnZhbHVlKSksYihuLGUpKV19ZnVuY3Rpb24gYyhlLHQsbCl7dihnKGUsdCwhMSwxKSl9ZnVuY3Rpb24gZChlKXtpZihudWxsPT09bylyZXR1cm4gZSgpO2xldCB0PW87bz1udWxsO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7bz10fX1mdW5jdGlvbiBoKGUpe3JldHVybiBudWxsPT09cnx8KG51bGw9PT1yLmNsZWFudXBzP3IuY2xlYW51cHM9W2VdOnIuY2xlYW51cHMucHVzaChlKSksZX1mdW5jdGlvbiBwKCl7aWYodGhpcy5zb3VyY2VzJiZ0aGlzLnN0YXRlKXtpZigxPT09dGhpcy5zdGF0ZSl2KHRoaXMpO2Vsc2V7bGV0IGU9cztzPW51bGwsbSgoKT0+QSh0aGlzKSwhMSkscz1lfX1pZihvKXtsZXQgZT10aGlzLm9ic2VydmVycz90aGlzLm9ic2VydmVycy5sZW5ndGg6MDtvLnNvdXJjZXM/KG8uc291cmNlcy5wdXNoKHRoaXMpLG8uc291cmNlU2xvdHMucHVzaChlKSk6KG8uc291cmNlcz1bdGhpc10sby5zb3VyY2VTbG90cz1bZV0pLHRoaXMub2JzZXJ2ZXJzPyh0aGlzLm9ic2VydmVycy5wdXNoKG8pLHRoaXMub2JzZXJ2ZXJTbG90cy5wdXNoKG8uc291cmNlcy5sZW5ndGgtMSkpOih0aGlzLm9ic2VydmVycz1bb10sdGhpcy5vYnNlcnZlclNsb3RzPVtvLnNvdXJjZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy52YWx1ZX1mdW5jdGlvbiBiKGUsdCxsKXtsZXQgbj1lLnZhbHVlO3JldHVybighZS5jb21wYXJhdG9yfHwhZS5jb21wYXJhdG9yKG4sdCkpJiYoZS52YWx1ZT10LGUub2JzZXJ2ZXJzJiZlLm9ic2VydmVycy5sZW5ndGgmJm0oKCk9Pntmb3IobGV0IHQ9MDt0PGUub2JzZXJ2ZXJzLmxlbmd0aDt0Kz0xKXtsZXQgbD1lLm9ic2VydmVyc1t0XTshbC5zdGF0ZSYmKGwucHVyZT9zLnB1c2gobCk6aS5wdXNoKGwpLGwub2JzZXJ2ZXJzJiZmdW5jdGlvbiBlKHQpe2ZvcihsZXQgbD0wO2w8dC5vYnNlcnZlcnMubGVuZ3RoO2wrPTEpe2xldCBuPXQub2JzZXJ2ZXJzW2xdOyFuLnN0YXRlJiYobi5zdGF0ZT0yLG4ucHVyZT9zLnB1c2gobik6aS5wdXNoKG4pLG4ub2JzZXJ2ZXJzJiZlKG4pKX19KGwpKSxsLnN0YXRlPTF9aWYocy5sZW5ndGg+MWU2KXRocm93IHM9W10sRXJyb3IoKX0sITEpKSx0fWZ1bmN0aW9uIHYoZSl7aWYoIWUuZm4pcmV0dXJuOyQoZSk7bGV0IHQ9dTsoZnVuY3Rpb24oZSx0LGwpe2xldCBuLHM9cixpPW87bz1yPWU7dHJ5e249ZS5mbih0KX1jYXRjaCh0KXtyZXR1cm4gZS5wdXJlJiYoZS5zdGF0ZT0xLGUub3duZWQmJmUub3duZWQuZm9yRWFjaCgkKSxlLm93bmVkPW51bGwpLGUudXBkYXRlZEF0PWwrMSx4KHQpfWZpbmFsbHl7bz1pLHI9c30oIWUudXBkYXRlZEF0fHxlLnVwZGF0ZWRBdDw9bCkmJihudWxsIT1lLnVwZGF0ZWRBdCYmIm9ic2VydmVycyJpbiBlP2IoZSxuKTplLnZhbHVlPW4sZS51cGRhdGVkQXQ9bCl9KShlLGUudmFsdWUsdCl9ZnVuY3Rpb24gZyhlLHQsbCxvPTEscyl7bGV0IGk9e2ZuOmUsc3RhdGU6byx1cGRhdGVkQXQ6bnVsbCxvd25lZDpudWxsLHNvdXJjZXM6bnVsbCxzb3VyY2VTbG90czpudWxsLGNsZWFudXBzOm51bGwsdmFsdWU6dCxvd25lcjpyLGNvbnRleHQ6cj9yLmNvbnRleHQ6bnVsbCxwdXJlOmx9O3JldHVybiBudWxsPT09cnx8ciE9PW4mJihyLm93bmVkP3Iub3duZWQucHVzaChpKTpyLm93bmVkPVtpXSksaX1mdW5jdGlvbiB5KGUpe2lmKDA9PT1lLnN0YXRlKXJldHVybjtpZigyPT09ZS5zdGF0ZSlyZXR1cm4gQShlKTtpZihlLnN1c3BlbnNlJiZkKGUuc3VzcGVuc2UuaW5GYWxsYmFjaykpcmV0dXJuIGUuc3VzcGVuc2UuZWZmZWN0cy5wdXNoKGUpO2xldCB0PVtlXTtmb3IoOyhlPWUub3duZXIpJiYoIWUudXBkYXRlZEF0fHxlLnVwZGF0ZWRBdDx1KTspZS5zdGF0ZSYmdC5wdXNoKGUpO2ZvcihsZXQgbD10Lmxlbmd0aC0xO2w+PTA7bC0tKWlmKDE9PT0oZT10W2xdKS5zdGF0ZSl2KGUpO2Vsc2UgaWYoMj09PWUuc3RhdGUpe2xldCBsPXM7cz1udWxsLG0oKCk9PkEoZSx0WzBdKSwhMSkscz1sfX1mdW5jdGlvbiBtKGUsdCl7aWYocylyZXR1cm4gZSgpO2xldCBsPSExO3R8fChzPVtdKSxpP2w9ITA6aT1bXSx1Kys7dHJ5e2xldCB0PWUoKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYocyYmKHcocykscz1udWxsKSxlKXJldHVybjtsZXQgdD1pO2k9bnVsbCx0Lmxlbmd0aCYmbSgoKT0+dyh0KSwhMSl9KGwpLHR9Y2F0Y2goZSl7bHx8KGk9bnVsbCkscz1udWxsLHgoZSl9fWZ1bmN0aW9uIHcoZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspeShlW3RdKX1mdW5jdGlvbiBBKGUsdCl7ZS5zdGF0ZT0wO2ZvcihsZXQgbD0wO2w8ZS5zb3VyY2VzLmxlbmd0aDtsKz0xKXtsZXQgbj1lLnNvdXJjZXNbbF07aWYobi5zb3VyY2VzKXtsZXQgZT1uLnN0YXRlOzE9PT1lP24hPT10JiYoIW4udXBkYXRlZEF0fHxuLnVwZGF0ZWRBdDx1KSYmeShuKToyPT09ZSYmQShuLHQpfX19ZnVuY3Rpb24gJChlKXtsZXQgdDtpZihlLnNvdXJjZXMpZm9yKDtlLnNvdXJjZXMubGVuZ3RoOyl7bGV0IHQ9ZS5zb3VyY2VzLnBvcCgpLGw9ZS5zb3VyY2VTbG90cy5wb3AoKSxuPXQub2JzZXJ2ZXJzO2lmKG4mJm4ubGVuZ3RoKXtsZXQgZT1uLnBvcCgpLHI9dC5vYnNlcnZlclNsb3RzLnBvcCgpO2w8bi5sZW5ndGgmJihlLnNvdXJjZVNsb3RzW3JdPWwsbltsXT1lLHQub2JzZXJ2ZXJTbG90c1tsXT1yKX19aWYoZS5vd25lZCl7Zm9yKHQ9ZS5vd25lZC5sZW5ndGgtMTt0Pj0wO3QtLSkkKGUub3duZWRbdF0pO2Uub3duZWQ9bnVsbH1pZihlLmNsZWFudXBzKXtmb3IodD1lLmNsZWFudXBzLmxlbmd0aC0xO3Q+PTA7dC0tKWUuY2xlYW51cHNbdF0oKTtlLmNsZWFudXBzPW51bGx9ZS5zdGF0ZT0wfWZ1bmN0aW9uIHgoZSx0PXIpe3Rocm93IGUgaW5zdGFuY2VvZiBFcnJvcj9lOkVycm9yKCJzdHJpbmciPT10eXBlb2YgZT9lOiJVbmtub3duIGVycm9yIix7Y2F1c2U6ZX0pfWxldCBTPVN5bWJvbCgiZmFsbGJhY2siKTtmdW5jdGlvbiBDKGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0oKX1mdW5jdGlvbiBrKGUsdCl7cmV0dXJuIGQoKCk9PmUodHx8e30pKX1mdW5jdGlvbiBFKGUpe3ZhciBuLHI7bGV0IG87cmV0dXJuIG49ZnVuY3Rpb24oZSxsLG49e30pe2xldCByPVtdLG89W10scz1bXSxpPTAsdT1sLmxlbmd0aD4xP1tdOm51bGw7cmV0dXJuIGgoKCk9PkMocykpLCgpPT57bGV0IGMsaCxwPWUoKXx8W107cmV0dXJuIHBbdF0sZCgoKT0+e2xldCBlLHQsbCxmLGQsdixnLHksbSx3PXAubGVuZ3RoO2lmKDA9PT13KTAhPT1pJiYoQyhzKSxzPVtdLHI9W10sbz1bXSxpPTAsdSYmKHU9W10pKSxuLmZhbGxiYWNrJiYocj1bU10sb1swXT1hKGU9PihzWzBdPWUsbi5mYWxsYmFjaygpKSksaT0xKTtlbHNlIGlmKDA9PT1pKXtmb3IoaD0wLG89QXJyYXkodyk7aDx3O2grKylyW2hdPXBbaF0sb1toXT1hKGIpO2k9d31lbHNle2ZvcihsPUFycmF5KHcpLGY9QXJyYXkodyksdSYmKGQ9QXJyYXkodykpLHY9MCxnPU1hdGgubWluKGksdyk7djxnJiZyW3ZdPT09cFt2XTt2KyspO2ZvcihnPWktMSx5PXctMTtnPj12JiZ5Pj12JiZyW2ddPT09cFt5XTtnLS0seS0tKWxbeV09b1tnXSxmW3ldPXNbZ10sdSYmKGRbeV09dVtnXSk7Zm9yKGU9bmV3IE1hcCx0PUFycmF5KHkrMSksaD15O2g+PXY7aC0tKW09cFtoXSxjPWUuZ2V0KG0pLHRbaF09dm9pZCAwPT09Yz8tMTpjLGUuc2V0KG0saCk7Zm9yKGM9djtjPD1nO2MrKyltPXJbY10sdm9pZCAwIT09KGg9ZS5nZXQobSkpJiYtMSE9PWg/KGxbaF09b1tjXSxmW2hdPXNbY10sdSYmKGRbaF09dVtjXSksaD10W2hdLGUuc2V0KG0saCkpOnNbY10oKTtmb3IoaD12O2g8dztoKyspaCBpbiBsPyhvW2hdPWxbaF0sc1toXT1mW2hdLHUmJih1W2hdPWRbaF0sdVtoXShoKSkpOm9baF09YShiKTtvPW8uc2xpY2UoMCxpPXcpLHI9cC5zbGljZSgwKX1yZXR1cm4gb30pO2Z1bmN0aW9uIGIoZSl7aWYoc1toXT1lLHUpe2xldFtlLHRdPWYoaCk7cmV0dXJuIHVbaF09dCxsKHBbaF0sZSl9cmV0dXJuIGwocFtoXSl9fX0oKCk9PmUuZWFjaCxlLmNoaWxkcmVuLCJmYWxsYmFjayJpbiBlJiZ7ZmFsbGJhY2s6KCk9PmUuZmFsbGJhY2t9fHx2b2lkIDApLHI9cj9PYmplY3QuYXNzaWduKHt9LGwscik6bCwobz1nKG4sdm9pZCAwLCEwLDApKS5vYnNlcnZlcnM9bnVsbCxvLm9ic2VydmVyU2xvdHM9bnVsbCxvLmNvbXBhcmF0b3I9ci5lcXVhbHN8fHZvaWQgMCx2KG8pLHAuYmluZChvKX1sZXQgTj0iXyREWF9ERUxFR0FURSI7ZnVuY3Rpb24gVChlLHQsbCl7bGV0IG4scj0oKT0+e2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIHQuaW5uZXJIVE1MPWUsbD90LmNvbnRlbnQuZmlyc3RDaGlsZC5maXJzdENoaWxkOnQuY29udGVudC5maXJzdENoaWxkfSxvPXQ/KCk9PmQoKCk9PmRvY3VtZW50LmltcG9ydE5vZGUobnx8KG49cigpKSwhMCkpOigpPT4obnx8KG49cigpKSkuY2xvbmVOb2RlKCEwKTtyZXR1cm4gby5jbG9uZU5vZGU9byxvfWZ1bmN0aW9uIEIoZSx0LGwsbil7aWYodm9pZCAwPT09bHx8bnx8KG49W10pLCJmdW5jdGlvbiIhPXR5cGVvZiB0KXJldHVybiBNKGUsdCxuLGwpO2Mobj0+TShlLHQoKSxuLGwpLG4pfWZ1bmN0aW9uIF8oZSl7bGV0IHQ9YCQkJHtlLnR5cGV9YCxsPWUuY29tcG9zZWRQYXRoJiZlLmNvbXBvc2VkUGF0aCgpWzBdfHxlLnRhcmdldDtmb3IoZS50YXJnZXQhPT1sJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidGFyZ2V0Iix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmx9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3VycmVudFRhcmdldCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9Pmx8fGRvY3VtZW50fSk7bDspe2xldCBuPWxbdF07aWYobiYmIWwuZGlzYWJsZWQpe2xldCByPWxbYCR7dH1EYXRhYF07aWYodm9pZCAwIT09cj9uLmNhbGwobCxyLGUpOm4uY2FsbChsLGUpLGUuY2FuY2VsQnViYmxlKXJldHVybn1sPWwuXyRob3N0fHxsLnBhcmVudE5vZGV8fGwuaG9zdH19ZnVuY3Rpb24gTShlLHQsbCxuLHIpe2Zvcig7ImZ1bmN0aW9uIj09dHlwZW9mIGw7KWw9bCgpO2lmKHQ9PT1sKXJldHVybiBsO2xldCBvPXR5cGVvZiB0LHM9dm9pZCAwIT09bjtpZihlPXMmJmxbMF0mJmxbMF0ucGFyZW50Tm9kZXx8ZSwic3RyaW5nIj09PW98fCJudW1iZXIiPT09byl7aWYoIm51bWJlciI9PT1vJiYodD10LnRvU3RyaW5nKCkpLHMpe2xldCByPWxbMF07ciYmMz09PXIubm9kZVR5cGU/ci5kYXRhPXQ6cj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSxsPUQoZSxsLG4scil9ZWxzZSBsPSIiIT09bCYmInN0cmluZyI9PXR5cGVvZiBsP2UuZmlyc3RDaGlsZC5kYXRhPXQ6ZS50ZXh0Q29udGVudD10fWVsc2UgaWYobnVsbD09dHx8ImJvb2xlYW4iPT09bylsPUQoZSxsLG4pO2Vsc2V7aWYoImZ1bmN0aW9uIj09PW8pcmV0dXJuIGMoKCk9PntsZXQgcj10KCk7Zm9yKDsiZnVuY3Rpb24iPT10eXBlb2Ygcjspcj1yKCk7bD1NKGUscixsLG4pfSksKCk9Pmw7aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IG89W10saT1sJiZBcnJheS5pc0FycmF5KGwpO2lmKGZ1bmN0aW9uIGUodCxsLG4scil7bGV0IG89ITE7Zm9yKGxldCBzPTAsaT1sLmxlbmd0aDtzPGk7cysrKXtsZXQgaSx1PWxbc10sYT1uJiZuW3NdO2lmKG51bGw9PXV8fCEwPT09dXx8ITE9PT11KTtlbHNlIGlmKCJvYmplY3QiPT0oaT10eXBlb2YgdSkmJnUubm9kZVR5cGUpdC5wdXNoKHUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh1KSlvPWUodCx1LGEpfHxvO2Vsc2UgaWYoImZ1bmN0aW9uIj09PWkpe2lmKHIpe2Zvcig7ImZ1bmN0aW9uIj09dHlwZW9mIHU7KXU9dSgpO289ZSh0LEFycmF5LmlzQXJyYXkodSk/dTpbdV0sQXJyYXkuaXNBcnJheShhKT9hOlthXSl8fG99ZWxzZSB0LnB1c2godSksbz0hMH1lbHNle2xldCBlPVN0cmluZyh1KTthJiYzPT09YS5ub2RlVHlwZSYmYS5kYXRhPT09ZT90LnB1c2goYSk6dC5wdXNoKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX19cmV0dXJuIG99KG8sdCxsLHIpKXJldHVybiBjKCgpPT5sPU0oZSxvLGwsbiwhMCkpLCgpPT5sO2lmKDA9PT1vLmxlbmd0aCl7aWYobD1EKGUsbCxuKSxzKXJldHVybiBsfWVsc2UgaT8wPT09bC5sZW5ndGg/aihlLG8sbik6ZnVuY3Rpb24oZSx0LGwpe2xldCBuPWwubGVuZ3RoLHI9dC5sZW5ndGgsbz1uLHM9MCxpPTAsdT10W3ItMV0ubmV4dFNpYmxpbmcsYT1udWxsO2Zvcig7czxyfHxpPG87KWlmKHRbc10hPT1sW2ldKXtmb3IoO3Rbci0xXT09PWxbby0xXTspci0tLG8tLTtpZihyPT09cyl7bGV0IHQ9bzxuP2k/bFtpLTFdLm5leHRTaWJsaW5nOmxbby1pXTp1O2Zvcig7aTxvOyllLmluc2VydEJlZm9yZShsW2krK10sdCl9ZWxzZSBpZihvPT09aSlmb3IoO3M8cjspYSYmYS5oYXModFtzXSl8fHRbc10ucmVtb3ZlKCkscysrO2Vsc2UgaWYodFtzXT09PWxbby0xXSYmbFtpXT09PXRbci0xXSl7bGV0IG49dFstLXJdLm5leHRTaWJsaW5nO2UuaW5zZXJ0QmVmb3JlKGxbaSsrXSx0W3MrK10ubmV4dFNpYmxpbmcpLGUuaW5zZXJ0QmVmb3JlKGxbLS1vXSxuKSx0W3JdPWxbb119ZWxzZXtpZighYSl7YT1uZXcgTWFwO2xldCBlPWk7Zm9yKDtlPG87KWEuc2V0KGxbZV0sZSsrKX1sZXQgbj1hLmdldCh0W3NdKTtpZihudWxsIT1uKXtpZihpPG4mJm48byl7bGV0IHUsZj1zLGM9MTtmb3IoOysrZjxyJiZmPG8mJm51bGwhPSh1PWEuZ2V0KHRbZl0pKSYmdT09PW4rYzspYysrO2lmKGM+bi1pKXtsZXQgcj10W3NdO2Zvcig7aTxuOyllLmluc2VydEJlZm9yZShsW2krK10scil9ZWxzZSBlLnJlcGxhY2VDaGlsZChsW2krK10sdFtzKytdKX1lbHNlIHMrK31lbHNlIHRbcysrXS5yZW1vdmUoKX19ZWxzZSBzKyssaSsrfShlLGwsbyk6KGwmJkQoZSksaihlLG8pKTtsPW99ZWxzZSBpZih0Lm5vZGVUeXBlKXtpZihBcnJheS5pc0FycmF5KGwpKXtpZihzKXJldHVybiBsPUQoZSxsLG4sdCk7RChlLGwsbnVsbCx0KX1lbHNlIG51bGwhPWwmJiIiIT09bCYmZS5maXJzdENoaWxkP2UucmVwbGFjZUNoaWxkKHQsZS5maXJzdENoaWxkKTplLmFwcGVuZENoaWxkKHQpO2w9dH19cmV0dXJuIGx9ZnVuY3Rpb24gaihlLHQsbD1udWxsKXtmb3IobGV0IG49MCxyPXQubGVuZ3RoO248cjtuKyspZS5pbnNlcnRCZWZvcmUodFtuXSxsKX1mdW5jdGlvbiBEKGUsdCxsLG4pe2lmKHZvaWQgMD09PWwpcmV0dXJuIGUudGV4dENvbnRlbnQ9IiI7bGV0IHI9bnx8ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO2lmKHQubGVuZ3RoKXtsZXQgbj0hMTtmb3IobGV0IG89dC5sZW5ndGgtMTtvPj0wO28tLSl7bGV0IHM9dFtvXTtpZihyIT09cyl7bGV0IHQ9cy5wYXJlbnROb2RlPT09ZTtufHxvP3QmJnMucmVtb3ZlKCk6dD9lLnJlcGxhY2VDaGlsZChyLHMpOmUuaW5zZXJ0QmVmb3JlKHIsbCl9ZWxzZSBuPSEwfX1lbHNlIGUuaW5zZXJ0QmVmb3JlKHIsbCk7cmV0dXJuW3JdfWxldCBxPVQoJzxkaXYgY2xhc3M9ImNvbC1zbS02IHNtYWxscGFkIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIiB0eXBlPSJidXR0b24iPicpLEw9VCgnPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPjxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29sLW1kLTYiPjxoMT5Tb2xpZEpTIEtleWVkPC9oMT48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtbWQtNiI+PGRpdiBjbGFzcz0icm93Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIHRhYmxlLXN0cmlwZWQgdGVzdC1kYXRhIj48dGJvZHk+PC90Ym9keT48L3RhYmxlPjxzcGFuIGNsYXNzPSJwcmVsb2FkaWNvbiBnbHlwaGljb24gZ2x5cGhpY29uLXJlbW92ZSIgYXJpYS1oaWRkZW49InRydWUiPicpLHo9VCgnPHRyPjx0ZCBjbGFzcz0iY29sLW1kLTEiPjwvdGQ+PHRkIGNsYXNzPSJjb2wtbWQtNCI+PGE+IDwvYT48L3RkPjx0ZCBjbGFzcz0iY29sLW1kLTEiPjxhPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXJlbW92ZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2E+PC90ZD48dGQgY2xhc3M9ImNvbC1tZC02Ij4nKSxPPTEsUD1bInByZXR0eSIsImxhcmdlIiwiYmlnIiwic21hbGwiLCJ0YWxsIiwic2hvcnQiLCJsb25nIiwiaGFuZHNvbWUiLCJwbGFpbiIsInF1YWludCIsImNsZWFuIiwiZWxlZ2FudCIsImVhc3kiLCJhbmdyeSIsImNyYXp5IiwiaGVscGZ1bCIsIm11c2h5Iiwib2RkIiwidW5zaWdodGx5IiwiYWRvcmFibGUiLCJpbXBvcnRhbnQiLCJpbmV4cGVuc2l2ZSIsImNoZWFwIiwiZXhwZW5zaXZlIiwiZmFuY3kiXSxJPVsicmVkIiwieWVsbG93IiwiYmx1ZSIsImdyZWVuIiwicGluayIsImJyb3duIiwicHVycGxlIiwiYnJvd24iLCJ3aGl0ZSIsImJsYWNrIiwib3JhbmdlIl0sVT1bInRhYmxlIiwiY2hhaXIiLCJob3VzZSIsImJicSIsImRlc2siLCJjYXIiLCJwb255IiwiY29va2llIiwic2FuZHdpY2giLCJidXJnZXIiLCJwaXp6YSIsIm1vdXNlIiwia2V5Ym9hcmQiXTtmdW5jdGlvbiBGKGUpe3JldHVybiBNYXRoLnJvdW5kKDFlMypNYXRoLnJhbmRvbSgpKSVlfWZ1bmN0aW9uIEcoZSl7bGV0IHQ9QXJyYXkoZSk7Zm9yKGxldCBsPTA7bDxlO2wrKyl7bGV0W2Usbl09ZihgJHtQW0YoUC5sZW5ndGgpXX0gJHtJW0YoSS5sZW5ndGgpXX0gJHtVW0YoVS5sZW5ndGgpXX1gKTt0W2xdPXtpZDpPKyssbGFiZWw6ZSxzZXRMYWJlbDpufX1yZXR1cm4gdH1sZXQgSD0oe2lkOmUsdGV4dDp0LGZuOmx9KT0+e3ZhciBuLHI7bGV0IG8scztyZXR1cm4gbj1zPShvPXEoKSkuZmlyc3RDaGlsZCxyPSJjbGljayIsQXJyYXkuaXNBcnJheShsKT8obltgJCQke3J9YF09bFswXSxuW2AkJCR7cn1EYXRhYF09bFsxXSk6bltgJCQke3J9YF09bCxudWxsPT1lP3MucmVtb3ZlQXR0cmlidXRlKCJpZCIpOnMuc2V0QXR0cmlidXRlKCJpZCIsZSksQihzLHQpLG99OyhmdW5jdGlvbihlLHQsbCxuPXt9KXthKGw9Pnt0PT09ZG9jdW1lbnQ/ZSgpOkIodCxlKCksdC5maXJzdENoaWxkP251bGw6dm9pZCAwLHZvaWQgMCl9LG4ub3duZXIpfSkoKCk9PntsZXQgdCxsLG4scixbdSxhXT1mKFtdKSxbZCxwXT1mKG51bGwpLGI9ZT0+YSh0PT57bGV0IGw9dC5maW5kSW5kZXgodD0+dC5pZD09PWUpO3JldHVyblsuLi50LnNsaWNlKDAsbCksLi4udC5zbGljZShsKzEpXX0pLHk9ZnVuY3Rpb24odCxsPWUsbil7bGV0IHI9bmV3IE1hcCx1PWcoZT0+e2xldCBuPXQoKTtmb3IobGV0W3Qsb11vZiByLmVudHJpZXMoKSlpZihsKHQsbikhPT1sKHQsZSkpZm9yKGxldCBlIG9mIG8udmFsdWVzKCkpZS5zdGF0ZT0xLGUucHVyZT9zLnB1c2goZSk6aS5wdXNoKGUpO3JldHVybiBufSx2b2lkIDAsITAsMSk7cmV0dXJuIHYodSksZT0+e2xldCB0PW87aWYodCl7bGV0IGw7KGw9ci5nZXQoZSkpP2wuYWRkKHQpOnIuc2V0KGUsbD1uZXcgU2V0KFt0XSkpLGgoKCk9PntsLmRlbGV0ZSh0KSxsLnNpemV8fHIuZGVsZXRlKGUpfSl9cmV0dXJuIGwoZSx1LnZhbHVlKX19KGQpO3JldHVybiBuPShsPSh0PUwoKSkuZmlyc3RDaGlsZCkuZmlyc3RDaGlsZC5maXJzdENoaWxkLm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQscj1sLm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQsQihuLGsoSCx7aWQ6InJ1biIsdGV4dDoiQ3JlYXRlIDEsMDAwIHJvd3MiLGZuOigpPT5hKEcoMWUzKSl9KSxudWxsKSxCKG4sayhILHtpZDoicnVubG90cyIsdGV4dDoiQ3JlYXRlIDEwLDAwMCByb3dzIixmbjooKT0+YShHKDFlNCkpfSksbnVsbCksQihuLGsoSCx7aWQ6ImFkZCIsdGV4dDoiQXBwZW5kIDEsMDAwIHJvd3MiLGZuOigpPT5hKGU9PlsuLi5lLC4uLkcoMWUzKV0pfSksbnVsbCksQihuLGsoSCx7aWQ6InVwZGF0ZSIsdGV4dDoiVXBkYXRlIGV2ZXJ5IDEwdGggcm93IixmbjooKT0+bSgoKT0+e2ZvcihsZXQgZT0wLHQ9dSgpLGw9dC5sZW5ndGg7ZTxsO2UrPTEwKXRbZV0uc2V0TGFiZWwoZT0+ZSsiICEhISIpfSwhMSl9KSxudWxsKSxCKG4sayhILHtpZDoiY2xlYXIiLHRleHQ6IkNsZWFyIixmbjooKT0+YShbXSl9KSxudWxsKSxCKG4sayhILHtpZDoic3dhcHJvd3MiLHRleHQ6IlN3YXAgUm93cyIsZm46KCk9PntsZXQgZT11KCkuc2xpY2UoKTtpZihlLmxlbmd0aD45OTgpe2xldCB0PWVbMV07ZVsxXT1lWzk5OF0sZVs5OThdPXQsYShlKX19fSksbnVsbCksQihyLGsoRSx7Z2V0IGVhY2goKXtyZXR1cm4gdSgpfSxjaGlsZHJlbjplPT57bGV0IHQsbCxuLHIsbyxzLGk9ZS5pZDtyZXR1cm4gbz0ocj0obj0obD0odD16KCkpLmZpcnN0Q2hpbGQpLm5leHRTaWJsaW5nKS5maXJzdENoaWxkKS5maXJzdENoaWxkLHM9bi5uZXh0U2libGluZy5maXJzdENoaWxkLGwudGV4dENvbnRlbnQ9aSxyLiQkY2xpY2s9cCxyLiQkY2xpY2tEYXRhPWkscy4kJGNsaWNrPWIscy4kJGNsaWNrRGF0YT1pLGMobD0+e3ZhciBuO2xldCByPXkoaSk/ImRhbmdlciI6IiIscz1lLmxhYmVsKCk7cmV0dXJuIHIhPT1sLl92JCYmKG51bGw9PShuPWwuX3YkPXIpP3QucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpOnQuY2xhc3NOYW1lPW4pLHMhPT1sLl92JDImJihvLmRhdGE9bC5fdiQyPXMpLGx9LHtfdiQ6dm9pZCAwLF92JDI6dm9pZCAwfSksdH19KSksdH0sZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKSksZnVuY3Rpb24oZSx0PXdpbmRvdy5kb2N1bWVudCl7bGV0IGw9dFtOXXx8KHRbTl09bmV3IFNldCk7Zm9yKGxldCBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXtsZXQgcj1lW25dO2wuaGFzKHIpfHwobC5hZGQociksdC5hZGRFdmVudExpc3RlbmVyKHIsXykpfX0oWyJjbGljayJdKX0pKCk7Cg)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked esbuild playground reproduction and compare the SWC, esbuild, and compressed outputs described in the issue. Review the identifier-assignment discussion in pull request #2614 and the constant-ordering difference; done means the reported size regression has a confirmed explanation and an agreed resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, javascript
Domain
compilers, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.