evanw/esbuild
### [`v0.18.6`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0186)
[Compare Source](https://togithub.com/evanw/esbuild/compare/v0.18.5...v0.18.6)
- Fix tree-shaking of classes with decorators ([#3164](https://togithub.com/evanw/esbuild/issues/3164))
This release fixes a bug where esbuild incorrectly allowed tree-shaking on classes with decorators. Each decorator is a function call, so classes with decorators must never be tree-shaken. This bug was a regression that was unintentionally introduced in version 0.18.2 by the change that enabled tree-shaking of lowered private fields. Previously decorators were always lowered, and esbuild always considered the automatically-generated decorator code to be a side effect. But this is no longer the case now that esbuild analyzes side effects using the AST before lowering takes place. This bug was fixed by considering any decorator a side effect.
- Fix a minification bug involving function expressions ([#3125](https://togithub.com/evanw/esbuild/issues/3125))
When minification is enabled, esbuild does limited inlining of `const` symbols at the top of a scope. This release fixes a bug where inlineable symbols were incorrectly removed assuming that they were inlined. They may not be inlined in cases where they were referenced by earlier constants in the body of a function expression. The declarations involved in these edge cases are now kept instead of being removed:
```js
// Original code
{
const fn = () => foo
const foo = 123
console.log(fn)
}
// Old output (with --minify-syntax)
console.log((() => foo)());
// New output (with --minify-syntax)
{
const fn = () => foo, foo = 123;
console.log(fn);
}
```
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.18.5
->0.18.6
Release Notes
evanw/esbuild
### [`v0.18.6`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0186) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.18.5...v0.18.6) - Fix tree-shaking of classes with decorators ([#3164](https://togithub.com/evanw/esbuild/issues/3164)) This release fixes a bug where esbuild incorrectly allowed tree-shaking on classes with decorators. Each decorator is a function call, so classes with decorators must never be tree-shaken. This bug was a regression that was unintentionally introduced in version 0.18.2 by the change that enabled tree-shaking of lowered private fields. Previously decorators were always lowered, and esbuild always considered the automatically-generated decorator code to be a side effect. But this is no longer the case now that esbuild analyzes side effects using the AST before lowering takes place. This bug was fixed by considering any decorator a side effect. - Fix a minification bug involving function expressions ([#3125](https://togithub.com/evanw/esbuild/issues/3125)) When minification is enabled, esbuild does limited inlining of `const` symbols at the top of a scope. This release fixes a bug where inlineable symbols were incorrectly removed assuming that they were inlined. They may not be inlined in cases where they were referenced by earlier constants in the body of a function expression. The declarations involved in these edge cases are now kept instead of being removed: ```js // Original code { const fn = () => foo const foo = 123 console.log(fn) } // Old output (with --minify-syntax) console.log((() => foo)()); // New output (with --minify-syntax) { const fn = () => foo, foo = 123; console.log(fn); } ```Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.