evanw/esbuild
### [`v0.15.12`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#01512)
[Compare Source](https://togithub.com/evanw/esbuild/compare/v0.15.11...v0.15.12)
- Fix minifier correctness bug with single-use substitutions ([#2619](https://togithub.com/evanw/esbuild/issues/2619))
When minification is enabled, esbuild will attempt to eliminate variables that are only used once in certain cases. For example, esbuild minifies this code:
```js
function getEmailForUser(name) {
let users = db.table('users');
let user = users.find({ name });
let email = user?.get('email');
return email;
}
```
into this code:
```js
function getEmailForUser(e){return db.table("users").find({name:e})?.get("email")}
```
However, this transformation had a bug where esbuild did not correctly consider the "read" part of binary read-modify-write assignment operators. For example, it's incorrect to minify the following code into `bar += fn()` because the call to `fn()` might modify `bar`:
```js
const foo = fn();
bar += foo;
```
In addition to fixing this correctness bug, this release also improves esbuild's output in the case where all values being skipped over are primitives:
```js
function toneMapLuminance(r, g, b) {
let hdr = luminance(r, g, b)
let decay = 1 / (1 + hdr)
return 1 - decay
}
```
Previous releases of esbuild didn't substitute these single-use variables here, but esbuild will now minify this to the following code starting with this release:
```js
function toneMapLuminance(e,n,a){return 1-1/(1+luminance(e,n,a))}
```
eslint-community/eslint-plugin-promise
### [`v6.1.1`](https://togithub.com/eslint-community/eslint-plugin-promise/releases/tag/v6.1.1)
[Compare Source](https://togithub.com/eslint-community/eslint-plugin-promise/compare/v6.1.0...v6.1.1)
##### Bug Fixes
- **no-multiple-resolved:** false positives when the last expression in a try block is a call to resolve ([#384](https://togithub.com/eslint-community/eslint-plugin-promise/issues/384)) ([dc51b1c](https://togithub.com/eslint-community/eslint-plugin-promise/commit/dc51b1c890b284b262b384ab65263e65aff903b7))
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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.15.11
->0.15.12
6.1.0
->6.1.1
Release Notes
evanw/esbuild
### [`v0.15.12`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#01512) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.15.11...v0.15.12) - Fix minifier correctness bug with single-use substitutions ([#2619](https://togithub.com/evanw/esbuild/issues/2619)) When minification is enabled, esbuild will attempt to eliminate variables that are only used once in certain cases. For example, esbuild minifies this code: ```js function getEmailForUser(name) { let users = db.table('users'); let user = users.find({ name }); let email = user?.get('email'); return email; } ``` into this code: ```js function getEmailForUser(e){return db.table("users").find({name:e})?.get("email")} ``` However, this transformation had a bug where esbuild did not correctly consider the "read" part of binary read-modify-write assignment operators. For example, it's incorrect to minify the following code into `bar += fn()` because the call to `fn()` might modify `bar`: ```js const foo = fn(); bar += foo; ``` In addition to fixing this correctness bug, this release also improves esbuild's output in the case where all values being skipped over are primitives: ```js function toneMapLuminance(r, g, b) { let hdr = luminance(r, g, b) let decay = 1 / (1 + hdr) return 1 - decay } ``` Previous releases of esbuild didn't substitute these single-use variables here, but esbuild will now minify this to the following code starting with this release: ```js function toneMapLuminance(e,n,a){return 1-1/(1+luminance(e,n,a))} ```eslint-community/eslint-plugin-promise
### [`v6.1.1`](https://togithub.com/eslint-community/eslint-plugin-promise/releases/tag/v6.1.1) [Compare Source](https://togithub.com/eslint-community/eslint-plugin-promise/compare/v6.1.0...v6.1.1) ##### Bug Fixes - **no-multiple-resolved:** false positives when the last expression in a try block is a call to resolve ([#384](https://togithub.com/eslint-community/eslint-plugin-promise/issues/384)) ([dc51b1c](https://togithub.com/eslint-community/eslint-plugin-promise/commit/dc51b1c890b284b262b384ab65263e65aff903b7))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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.