This release fixes a bug where esbuild incorrectly checked for bigint equality by checking the equality of the bigint literal text. This is correct if the bigint doesn't have a radix because bigint literals without a radix are always in canonical form (since leading zeros are not allowed). However, this is incorrect if the bigint has a radix (e.g. 0x123n) because the canonical form is not enforced when a radix is present.
This release adds more cases to the JavaScript minifier, including support for inlining String.fromCharCode and String.prototype.charCodeAt when possible:
// Original code
document.onkeydown = e => e.keyCode === 'A'.charCodeAt(0) && console.log(String.fromCharCode(55358, 56768))
// Old output (with --minify)
document.onkeydown=o=>o.keyCode==="A".charCodeAt(0)&&console.log(String.fromCharCode(55358,56768));
// New output (with --minify)
document.onkeydown=o=>o.keyCode===65&&console.log("🧀");
In addition, immediately-invoked function expressions (IIFEs) that return a single expression are now inlined when minifying. This makes it possible to use IIFEs in combination with @__PURE__ annotations to annotate arbitrary expressions as side-effect free without the IIFE wrapper impacting code size. For example:
This release fixes a bug where esbuild incorrectly checked for bigint equality by checking the equality of the bigint literal text. This is correct if the bigint doesn't have a radix because bigint literals without a radix are always in canonical form (since leading zeros are not allowed). However, this is incorrect if the bigint has a radix (e.g. 0x123n) because the canonical form is not enforced when a radix is present.
This release adds more cases to the JavaScript minifier, including support for inlining String.fromCharCode and String.prototype.charCodeAt when possible:
// Original code
document.onkeydown = e => e.keyCode === 'A'.charCodeAt(0) && console.log(String.fromCharCode(55358, 56768))
// Old output (with --minify)
document.onkeydown=o=>o.keyCode==="A".charCodeAt(0)&&console.log(String.fromCharCode(55358,56768));
// New output (with --minify)
document.onkeydown=o=>o.keyCode===65&&console.log("🧀");
In addition, immediately-invoked function expressions (IIFEs) that return a single expression are now inlined when minifying. This makes it possible to use IIFEs in combination with @__PURE__ annotations to annotate arbitrary expressions as side-effect free without the IIFE wrapper impacting code size. For example:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the minor-and-patch group with 6 updates:
7.23.2
7.23.3
10.0.3
10.0.4
20.8.10
20.9.2
0.19.5
0.19.6
8.53.0
8.54.0
3.0.3
3.1.0
Updates
@babel/core
from 7.23.2 to 7.23.3Release notes
Sourced from
@babel/core
's releases.Changelog
Sourced from
@babel/core
's changelog.Commits
1bce5c9
v7.23.3934c1b3
Fix Node.js 10 CI failure (#16084)c46f000
Refactor handling of modules plugins inpreset-env
(#15988)1e15165
Require exact Babel 8 version inassertVersion
(#15955)0ba00c4
[babel 8] Remove core-js 2 and regenerator from preset-env (#15838)2a8c6df
Fix Node.js 6 CI (#16040)Updates
@types/mocha
from 10.0.3 to 10.0.4Commits
Updates
@types/node
from 20.8.10 to 20.9.2Commits
Updates
esbuild
from 0.19.5 to 0.19.6Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
6073a3a
publish 0.19.6 to npm19ff9d3
async arrow functions are not IIFEs9fa4e79
inline IIFEs that return a single expression6c4aa2c
fix #3454: crash with jsx-dev before super() call4a1e576
fix #3467:formatMessages
edge case perf hack20c2604
add some go tests for message formatting5271f82
silence new warnings withinnode_modules
83e8c7f
fix #3485: map subpath imports to node built-ins07e527d
fix #3453: useSymbol.for
for missing symbols50cead7
try adding a warning about suspicious uses of=>
Updates
eslint
from 8.53.0 to 8.54.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
Commits
4a88a54
8.54.06cf675f
Build: changelog update for 8.54.0d644de9
chore: upgrade@eslint/js
@8
.54.0 (#17773)1e6e314
chore: package.json update for@eslint/js
release98926e6
fix: Ensure that extra data is not accidentally stored in the cache file (#17...a7a883b
feat: for-direction rule add check for condition in reverse order (#17755)1452dc9
feat: Add suggestions to no-console (#17680)6fb8805
chore: Fixed grammar in issue_templates/rule_change (#17770)becfdd3
docs: Make clear when rules are removed (#17728)e8cf9f6
fix: Make dark scroll bar in dark theme (#17753)Updates
prettier
from 3.0.3 to 3.1.0Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
Commits
e8ac9f8
Release 3.1.06a1d409
chore(deps): update dependency eslint-plugin-regexp to v2 (#15521)f4d93d3
chore(deps): update dependency esbuild to v0.19.5 (#15630)4fc71a5
chore(deps): update dependency flow-parser to v0.221.0 (#15637)d452f45
chore(deps): update dependency eslint-plugin-jest to v27.6.0 (#15635)eb84a60
chore(deps): update dependency@types/estree
to v1.0.5 (#15625)2af23ee
chore(deps): update dependency webpack to v5.89.0 (#15640)8f27c73
chore(deps): update dependency eslint-plugin-unicorn to v49 (#15642)cdc5f5a
chore(deps): update dependency webpack to v5.89.0 (#15639)14607ef
chore(deps): update dependency eslint-plugin-n to v16.3.1 (#15636)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show