Passing SWC minified output through esbuild increases the size
- 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