Support TypeScript experimental decorators on abstract class fields (#3684)
With this release, you can now use TypeScript experimental decorators on abstract class fields. This was silently compiled incorrectly in esbuild 0.19.7 and below, and was an error from esbuild 0.19.8 to esbuild 0.20.1. Code such as the following should now work correctly:
// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
// Old output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();
// New output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
JSON loader now preserves __proto__ properties (#3700)
Copying JSON source code into a JavaScript file will change its meaning if a JSON object contains the __proto__ key. A literal __proto__ property in a JavaScript object literal sets the prototype of the object instead of adding a property named __proto__, while a literal __proto__ property in a JSON object literal just adds a property named __proto__. With this release, esbuild will now work around this problem by converting JSON to JavaScript with a computed property key in this case:
// Original code
import data from 'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
// Old output (with --bundle)
(() => {
// <data:application/json,{"proto":{"fail":true}}>
var json_proto_fail_true_default = { proto: { fail: true } };
// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();
Support TypeScript experimental decorators on abstract class fields (#3684)
With this release, you can now use TypeScript experimental decorators on abstract class fields. This was silently compiled incorrectly in esbuild 0.19.7 and below, and was an error from esbuild 0.19.8 to esbuild 0.20.1. Code such as the following should now work correctly:
// Original code
const log = (x: any, y: string) => console.log(y)
abstract class Foo { @log abstract foo: string }
new class extends Foo { foo = '' }
// Old output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
new class extends Foo {
foo = "";
}();
// New output (with --loader=ts --tsconfig-raw={"compilerOptions":{"experimentalDecorators":true}})
const log = (x, y) => console.log(y);
class Foo {
}
__decorateClass([
log
], Foo.prototype, "foo", 2);
new class extends Foo {
foo = "";
}();
JSON loader now preserves __proto__ properties (#3700)
Copying JSON source code into a JavaScript file will change its meaning if a JSON object contains the __proto__ key. A literal __proto__ property in a JavaScript object literal sets the prototype of the object instead of adding a property named __proto__, while a literal __proto__ property in a JSON object literal just adds a property named __proto__. With this release, esbuild will now work around this problem by converting JSON to JavaScript with a computed property key in this case:
// Original code
import data from 'data:application/json,{"__proto__":{"fail":true}}'
if (Object.getPrototypeOf(data)?.fail) throw 'fail'
// Old output (with --bundle)
(() => {
// <data:application/json,{"proto":{"fail":true}}>
var json_proto_fail_true_default = { proto: { fail: true } };
// entry.js
if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
throw "fail";
})();
This is a prerelease version to test our ability to release.
Other than removing or updating dependencies, it contains no intended user-facing changes.
Bumps the dependencies group with 14 updates in the / directory:
20.10.6
20.12.9
1.85.0
1.89.0
2.3.8
2.3.9
2.22.0
2.26.1
5.0.0
5.1.0
0.19.11
0.20.2
43.0.0
43.0.1
10.3.10
10.3.12
10.2.0
10.4.0
2.0.1
2.0.2
3.1.1
3.2.5
16.2.0
16.3.0
5.3.3
5.4.5
3.10.0
3.11.0
Updates
@types/node
from 20.10.6 to 20.12.9Commits
Updates
@types/vscode
from 1.85.0 to 1.89.0Commits
Updates
@vscode/test-electron
from 2.3.8 to 2.3.9Changelog
Sourced from
@vscode/test-electron
's changelog.Commits
Updates
@vscode/vsce
from 2.22.0 to 2.26.1Release notes
Sourced from
@vscode/vsce
's releases.... (truncated)
Commits
9316842
Merge pull request #974 from microsoft/benibenj/modest-dragonfly093d33f
Merge pull request #973 from microsoft/benibenj/hon-guineafowlc1ced1d
:lipstick:dd558a9
Remove double checkingf6eb247
:lipstick:b1bde5a
Only sanitize on windows9e06c04
:lipstick:1188664
Commit message enclose in quotes97f8b80
:lipstick:434754f
Remove unused shell-quoteUpdates
chai
from 5.0.0 to 5.1.0Release notes
Sourced from chai's releases.
Commits
2cf92f5
Fix publish script (#1602)1ba37b5
Set support in same members (#1583)f224339
Assert interface fix (#1601)d504573
Implementiterable
assertion (#1592)640d932
Convert comments in "legal comments" format to jsdoc (#1598)e7f768e
Cleanup jsdoc comments (#1596)3290eb4
Remove useless guards and add parentheses to constuctors (#1593)44b81df
5.0.31a4dca1
5.0.257fef84
Fix 1564 (#1566)Updates
esbuild
from 0.19.11 to 0.20.2Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
617edda
publish 0.20.2 to npm4780075
fix #3700: json loader preserves__proto__
keys30bed2d
better errors for invalid js decorator syntax300eeb7
ts: allow non-null assertions in js decorators4d997d9
fix #3698: yarn pnp edge case withtsconfig.json
cf42954
resolver: improve some debug loggingb0765ae
fix some lintsdfa6206
fix some comments (closes #3683)ae5cc17
fix #3684:abstract
experimental decoratorsc809af0
fix #2388: allow consuming types without dom types (#3679)Updates
eslint-config-standard-with-typescript
from 43.0.0 to 43.0.1Release notes
Sourced from eslint-config-standard-with-typescript's releases.
Changelog
Sourced from eslint-config-standard-with-typescript's changelog.
Commits
a15c932
chore(release): 43.0.1 [skip ci]c7782be
Merge pull request #1394 from mightyiam/renovate/semantic-release-23.x5fb79c3
chore(deps): update dependency semantic-release to v23d3b4d11
Merge pull request #1400 from mightyiam/renovate/node-20.x7414eba
chore(deps): update dependency@types/node
to v20.11.58470a93
Merge pull request #1397 from mightyiam/repo-transfer932ffce
docs: update repository urls372e604
Merge pull request #1399 from mightyiam/project8d2f497
build: rm add-to-project workflowcd71373
Merge pull request #1393 from standard/renovate/node-20.xUpdates
glob
from 10.3.10 to 10.3.12Commits
d5b6b5d
10.3.12e775a78
strip leading ./ from ignore patterns7e927b2
update changeloge667dcb
10.3.11b1d8105
document follow+nodirb5d0f64
drop node 16 from ciea7cf5f
Exclude symlinks to directories with follow+nodir97611cd
remove FUNDING.yml (coming from .github repo now)0862a79
docs(README): typo (eiher
=>either
).c1b4675
remove makework gh actionsUpdates
mocha
from 10.2.0 to 10.4.0Release notes
Sourced from mocha's releases.
... (truncated)
Changelog
Sourced from mocha's changelog.
... (truncated)
Commits
ffd9557
Release v10.4.07ac67f3
build(deps): bump the github-actions group with 2 updates (#5125)7a2781c
chore: activate dependabot for workflows (#5123)97dcbb2
fix: harden error handling inlib/cli/run.js
(#5074)6f3f45e
fix: xunit integration test (#5122)a5b5652
docs: fix documentation concerning glob expansion on UNIX (#4869)efbb147
feat: add file path to xunit reporter (#4985)a2e600d
fix: closes #5115 (#5116)3735873
feat: include.cause
stacks in the error stack traces (#4829)b88978d
chore: bump ESLint ecmaVersion to 2020 (#5104)Maintainer changes
This version was pushed to npm by voxpelli, a new releaser for mocha since your current version.
Updates
pkgroll
from 2.0.1 to 2.0.2Release notes
Sourced from pkgroll's releases.
Commits
9049b3e
docs: resize text129e052
docs: add logoc09f162
chore: upgrade dependencies1a60389
chore: upgrade dev deps92077f1
style: lint fix (#50)b5dd748
docs: add badges743f26f
fix: supportcomposite
intsconfig.json
(#55)dcec5fe
test: create missing symlink directoryfca7722
chore: add todo to rename flagd9a1e39
chore: upgrade deps (major)Updates
prettier
from 3.1.1 to 3.2.5Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
... (truncated)
Commits
7142cf3
Release 3.2.58cbee2e
chore(deps): update glimmer to v0.88.1 (#15991)45baee0
chore(deps): update dependency magic-string to v0.30.6 (#16022)9fb32a1
Minor refactor to property print (#15924)08f1940
Update install script for husky v9 (#16000)6d0b1d2
Update yarn to v4.1.0 (#16021)c8ba8db
chore(deps): update dependency@angular/compiler
to v17.1.2 (#16018)e2250ec
chore(deps): update typescript-eslint to v6.20.0 (#16015)02865f6
chore(deps): update dependency npm-run-all2 to v6.1.2 (#16017)014ee5d
chore(deps): update dependency hermes-parser to v0.19.0 (#16014)Updates
prettier-eslint
from 16.2.0 to 16.3.0Release notes
Sourced from prettier-eslint's releases.
Changelog
Sourced from prettier-eslint's changelog.
Commits
39a7744
chore: release prettier-eslint (#951)8418438
feat: support handling.svelte
files (#950)Maintainer changes
This version was pushed to npm by jounqin, a new releaser for prettier-eslint since your current version.
Updates
typescript
from 5.3.3 to 5.4.5Release notes
Sourced from typescript's releases.
... (truncated)
Commits
27bcd4c
Update LKG9f33bf1
🤖 Pick PR #58098 (Fix constraints of nested homomorph...) into release-5.4 (#...71b2f84
Bump version to 5.4.5 and LKG892936f
🤖 Pick PR #58083 (Don't propagate partial union/inter...) into release-5.4 (#...38a7c05
release-5.4: Always set node-version for setup-node (#58117)b754fc3
🤖 Pick PR #57778 (fix type import check for default-i...) into release-5.4 (#...8eb3367
Bump version to 5.4.4 and LKGde9096b
🤖 Pick PR #57871 (Divide-and-conquer strategy for int...) into release-5.4 (#...06aae98
🤖 Pick PR #57973 (Compare package.json paths with cor...) into release-5.4 (#...6d8134e
🤖 Pick PR #57637 (Fixed a regression related to deter...) into release-5.4 (#...Updates
utility-types
from 3.10.0 to 3.11.0Release notes
Sourced from utility-types's releases.