Commit Graph

183 Commits

Author SHA1 Message Date
Donny/강동윤
83a5a0c612
fix(es/compat): Handle private names from class properties pass (#8090)
**Related issue:**

 - Closes #7561
 - https://github.com/vercel/next.js/issues/56612
2023-11-02 22:18:17 +00:00
Donny/강동윤
3dc4e1e02d
feat(es/preset-env): Update compat data (#8194)
**Related issue:**

 - Closes #8193.
2023-10-30 08:46:24 +00:00
Donny/강동윤
b13bc32027
fix(es/compat): Make block-scoping pass rename exports correctly (#8175)
**Related issue:**

 - Closes #8148
2023-10-30 05:08:27 +00:00
Donny/강동윤
0aafa75fef
feat(es/testing): Use __swc_snapshots__ for test! macro (#8191)
**Description:**

This implements something similar to `__snapshots__` of `jest`. Instead of storing the expected result as a string literal, we now store it in `$crate/tests/__swc_snapshots__/$path_to_test__$test_name.js`.

**Related issue:**

 - Closes #4509
2023-10-30 10:38:59 +09:00
Donny/강동윤
e9606147fc
feat(es/testing): Support babel-like fixture testing officially (#8190) 2023-10-30 07:24:49 +09:00
Donny/강동윤
9ceb57b4c7
fix(es/compat): Don't add pure annotations to dummy spans (#8172)
**Related issue:**

 - Closes #8155.
 - Closes #8173.
2023-10-23 15:00:35 -07:00
magic-akari
e186b80ddc
feat(es/compat): Skip empty class static blocks (#8138)
**Description:**

And update the `static_block_private_id` generate rules to be consistent with Babel.

**Related issue:**

 - #8136
2023-10-18 17:58:02 +00:00
magic-akari
a912937cea
fix(es/compat): Handle __proto__ edge case in shorthand pass (#8077)
**Related issue:**

 - https://github.com/babel/babel/pull/12664
2023-10-10 04:08:45 +00:00
Donny/강동윤
8318ea82c2
fix(es/compat): Use async and await correctly in block-scoping pass (#8056)
**Related issue:**

 - Closes #7989
2023-10-03 06:02:42 +00:00
Austaras
06b6eb9999
fix(es/compat): Generate OptCall for OptCall for private fields (#8031)
**Related issue:**

 - Closes #8003
2023-09-29 21:32:48 +00:00
magic-akari
a80aec47ef
fix(es/compat): Handle single expression case in static block (#7944)
**Related issue:**

 - Closes #7922
2023-09-14 02:47:44 +00:00
Austaras
c091c5e295
feat(es/compat): Support pure_getters for optional_chaining (#7933)
**Related issue:**

 - Closes #7921
2023-09-13 02:03:41 +00:00
Austaras
97068e12d1
fix(es/compat): Visit assign expr in generator (#7932)
**Related issue:**
 - Closes #7809
2023-09-10 06:27:30 +00:00
Donny/강동윤
3766a7c776
fix(es/compat): Remove wrong logic for object patterns in object_rest (#7788)
**Related issue:**

 - Closes #7776
2023-08-17 04:01:30 +00:00
Donny/강동윤
42dec557ed
fix(es/compat): Revert #7610 (#7813)
**Related issue:**

 - Reverts #7610.
 - Closes #7798.
 - Closes #7789.
 - Opens #7561.
2023-08-15 15:27:38 +00:00
Felipe Armoni
216c4f17df
test(es/compat): Add a test for optional chaining with loose mode (#7726) 2023-07-31 15:44:28 +00:00
Felipe Armoni
7ba7b6ec1f
fix(es/compat): Fix handling of private members in optional chaining pass (#7610)
**Related issue:**

 - Closes #7561.
2023-07-28 04:40:19 +00:00
Donny/강동윤
b34f1adbcc
build(cargo): Update rustc to 2023-07-03 (#7623) 2023-07-05 03:50:43 +00:00
Donny/강동윤
c087c82aa3
fix(es/compat): Visit transformed expression in optional chaining pass (#7614)
**Related issue:**

 - Closes #7612.
2023-07-04 06:59:58 +00:00
Justin Ridgewell
990e48e0e8
fix(es/compat): Fix optional chaining (#7530)
**Description:**

This fixes a few bugs with optional chaining:

-
[`a?.c()`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAA9PXVwjOyC%2FNSVFISrXi0tdXSFSwtVXIK83JUbBXKM1LSU3LzEtNUbBSSNRL1tC05kq0h9AAouc%2F7DgAAAA%3D&config=H4sIAAAAAAAAA2VSu27DMAzc8xUC5wAZii7ZWnRJgXTKDxAKkyrQwyDpNEbgf69kxI4jexAk3olH3fm%2BMgYoXsFszT3vywchHQm2pa7cwXos28T0LRl4m0qnxJY%2BvD8wRsmHUGDllibGsYsYnN2FJrHWoCKfScudUbsv2LDARewEgI4CM24uezqj7b4oj4aauOpf5EdoT4pHVFxSmNDqS1tjNhvDbVQXKNuAraaA6iysC5DYWI8izs4uwIMOC%2F6cpL%2Bc%2FnanHwwkDVpaDJM5rdBn67y6WHv5eNCVfGpCzibDJ%2FQyw%2Fv1qtqAT0lqHWiQhfjVSumi4m2I3QYUy65RmNl0kdtS8OlvPWxfhTw0lnd45pv%2FstbTLOKuGeyzKYQULwIT08l%2B5BaJVf8PfP2zz7YCAAA%3D)
-
[`a?.b.c()`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAA9PXVwjOyC%2FNSVFISrXi0tdXSFSwtVXIK83JUbBXKM1LSU3LzEtNUbBSSNRL0kvW0LTmSrSHsQBsP8xLPAAAAA%3D%3D&config=H4sIAAAAAAAAA2VSu27DMAzc8xUC5wAZii7ZWnRJgXTKDxAKkyrQwyDpNEbgf69kxI4jexAk3olH3fm%2BMgYoXsFszT3vywchHQm2pa7cwXos28T0LRl4m0qnxJY%2BvD8wRsmHUGDllibGsYsYnN2FJrHWoCKfScudUbsv2LDARewEgI4CM24uezqj7b4oj4aauOpf5EdoT4pHVFxSmNDqS1tjNhvDbVQXKNuAraaA6iysC5DYWI8izs4uwIMOC%2F6cpL%2Bc%2FnanHwwkDVpaDJM5rdBn67y6WHv5eNCVfGpCzibDJ%2FQyw%2Fv1qtqAT0lqHWiQhfjVSumi4m2I3QYUy65RmNl0kdtS8OlvPWxfhTw0lnd45pv%2FstbTLOKuGeyzKYQULwIT08l%2B5BaJVf8PfP2zz7YCAAA%3D)
-
[`a.c?.()`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAAxWKsQ3AIAwEe6b4Ehq7J0IMkQGQYxMlkkUq9g80d1ccM87nm264eg7MiE2aomwvSiJNKAVjuqNiDuv3O7ohY4%2Bk4r7WdAQhrRRX%2FIwaKV1TAAAA&config=H4sIAAAAAAAAA2VSu27DMAzc8xUC5wAZii7ZWnRJgXTKDxAKkyrQwyDpNEbgf69kxI4jexAk3olH3fm%2BMgYoXsFszT3vywchHQm2pa7cwXos28T0LRl4m0qnxJY%2BvD8wRsmHUGDllibGsYsYnN2FJrHWoCKfScudUbsv2LDARewEgI4CM24uezqj7b4oj4aauOpf5EdoT4pHVFxSmNDqS1tjNhvDbVQXKNuAraaA6iysC5DYWI8izs4uwIMOC%2F6cpL%2Bc%2FnanHwwkDVpaDJM5rdBn67y6WHv5eNCVfGpCzibDJ%2FQyw%2Fv1qtqAT0lqHWiQhfjVSumi4m2I3QYUy65RmNl0kdtS8OlvPWxfhTw0lnd45pv%2FstbTLOKuGeyzKYQULwIT08l%2B5BaJVf8PfP2zz7YCAAA%3D)
-
[`a.b.c?.()`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAAyWLsQ3AIAwEe6b4Ehq7J0IMkQEQ2ESJZJGK%2FYNCdVfcMeO832mK1qNjhi%2B1tCJI2xYrtUASkBLGNEPGHNqvZ3RFxM5Jqtk%2FhMOtgSSTX%2FoBjF6UKV8AAAA%3D&config=H4sIAAAAAAAAA2VSu27DMAzc8xUC5wAZii7ZWnRJgXTKDxAKkyrQwyDpNEbgf69kxI4jexAk3olH3fm%2BMgYoXsFszT3vywchHQm2pa7cwXos28T0LRl4m0qnxJY%2BvD8wRsmHUGDllibGsYsYnN2FJrHWoCKfScudUbsv2LDARewEgI4CM24uezqj7b4oj4aauOpf5EdoT4pHVFxSmNDqS1tjNhvDbVQXKNuAraaA6iysC5DYWI8izs4uwIMOC%2F6cpL%2Bc%2FnanHwwkDVpaDJM5rdBn67y6WHv5eNCVfGpCzibDJ%2FQyw%2Fv1qtqAT0lqHWiQhfjVSumi4m2I3QYUy65RmNl0kdtS8OlvPWxfhTw0lnd45pv%2FstbTLOKuGeyzKYQULwIT08l%2B5BaJVf8PfP2zz7YCAAA%3D)
-
[`a?.b[c?.d]`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAA9PXVwjOyC%2FNSVFISrXi0tdX0IhPVLBVSNRUsLVVyCvNyVGwVyjLz0xRMFCwUohP1EuK1ohPBipIxq4gWS8l1por0R6oLtkezAYAJs%2FWxmEAAAA%3D&config=H4sIAAAAAAAAA2VSu27DMAzc8xUC5wAZii7ZWnRJgXTKDxAKkyrQwyDpNEbgf69kxI4jexAk3olH3fm%2BMgYoXsFszT3vywchHQm2pa7cwXos28T0LRl4m0qnxJY%2BvD8wRsmHUGDllibGsYsYnN2FJrHWoCKfScudUbsv2LDARewEgI4CM24uezqj7b4oj4aauOpf5EdoT4pHVFxSmNDqS1tjNhvDbVQXKNuAraaA6iysC5DYWI8izs4uwIMOC%2F6cpL%2Bc%2FnanHwwkDVpaDJM5rdBn67y6WHv5eNCVfGpCzibDJ%2FQyw%2Fv1qtqAT0lqHWiQhfjVSumi4m2I3QYUy65RmNl0kdtS8OlvPWxfhTw0lnd45pv%2FstbTLOKuGeyzKYQULwIT08l%2B5BaJVf8PfP2zz7YCAAA%3D)
- [`delete
foo?.bar`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAA9PXVwjOyC%2FNSVFISrXi0tdXSMvPV7C1VcgrzclRsFcoKSpNVbBSSEnNSS1JBcnpJSUWcSG49iA%2BAGcLTstEAAAA&config=H4sIAAAAAAAAA1WPSw7CMAxE9zlF5DULYIEEd%2BAQVnCrVPkpTiWqqncnTZMAO3vG42evQkqYWMFDrrnMTcDIFHufFV5cwndWgJRFVlGHBKfmTrxbAxqmIm2HAwnjSKmk%2BHq%2B3GsCjPdMWU5xpipZ7fSw%2FCKVtyESc9vcaRbdaOgfKCoUrH%2FNxayvpCXQccANvkMN1heD5mdL7leJ7QOQNa2NFgEAAA%3D%3D)
- [`function foo(a, b = a?.b)
{}`](https://play.swc.rs/?version=1.3.64&code=H4sIAAAAAAAAA9PXVwjOyC%2FNSVFISrXi0tdXSCvNSy7JzM9TSMvP10jUUUhSsFXQ0NBUsLVTqFYoSyxSiE%2B0VnjUsEyhVlNDU1OhupYLm45Ee70kkCQAp8DQOl8AAAA%3D&config=H4sIAAAAAAAAA22Rz07DMAzG73uKyOdJAw5I7Ii4cBjvYKXuyJQ%2Fle3AqmnvTltIm63cHH%2B%2F%2BPtkXzbGwEks7M1lKIeHMkZpE4e5NbU9HdH2b2QToyYeROVM2wVoinQgxQYV1wgTWr0Za8xuZzhHdYH2BjBrCqjOwnYUEhvrUcTZ6gP84bDia0g%2FOX2%2Ftx8YSDq0tAozMFnoNTuvLsp%2FckNf5FMXKI6ZW%2FRS6ddSzgX4lOTeBzpkIb5dpfRR8TzmJxtQLLtOoVrTSc5rw2W%2F92GXBIp8JJ0Gy9PD48s0dJIhpCZ7qq7cd%2FQLPsMMOTkUrBhAcNG1fcmzuf4AkV7gUzECAAA%3D)

It also optimizes the AST for runtime evaluation. Before, we constructed
a leftwards conditional tree (`(_a_b = (_a = a) == null ? void 0 : _a.b)
== null ? void 0 : _a_b.c`) instead of a rightward tree (`(_a = a) ==
null ? void 0 : (_a_b = _a.b) == null ? void 0 : _a_b.c`), which
required multiple `== null` checks after the first nullish is found.

**Related issue:**

 - Closes #7531.
2023-06-19 12:00:11 +09:00
Donny/강동윤
4644d005d2
fix(es/compat): Fix handling of this of optional chaining pass (#7527)
**Related issue:**

 - Closes #7526.
2023-06-14 13:59:35 +09:00
Donny/강동윤
aa83584634
refactor(es/ast): Reimplement optional chaining (#7441)
**Related issue:**

 - Closes #7003.
 - Closes #7156.
2023-06-12 06:47:40 +00:00
Donny/강동윤
f3d660f972
fix(es/compat): Fix variable scoping of object rest pass. (#7437)
**Related issue:**

 - Closes #6988.
2023-05-24 05:41:57 +00:00
Donny/강동윤
2071f89d4e
fix(es/preset-env): Fix pass ordering (#7434)
**Related issue:**

 - Closes #6898.
 - Closes #7432.
2023-05-23 07:14:37 +00:00
Donny/강동윤
97d0f79142
fix(es/compat): Fix stage 3 decorator pass (#7392) 2023-05-23 06:24:05 +00:00
Donny/강동윤
66d52ec849
fix(es/compat): Fix destructuring handling of block_scoping (#7425)
**Related issue:**

 - Closes #7418.
2023-05-22 03:21:50 +00:00
Donny/강동윤
e0de83e862
fix(es/compat): Fix is_setter in parameters pass (#7348)
**Description:**

x-ref: https://vercel.slack.com/archives/C02HY34AKME/p1682667306929829
2023-05-02 02:11:42 +00:00
Fy
66b5b110bf
fix(es/compat): Transform curried function call with optional chaining (#7313)
**Related issue:**

 - Closes #7312
2023-04-24 05:23:53 +00:00
magic-akari
38dfb91ebc
fix(es/helpers): Remove unnecessary parameters in helper_expr! macro (#7296)
**Description:**

We have moved to snake_case, so the last parameter of helper_expr is unnecessary.
2023-04-20 08:26:34 +00:00
Donny/강동윤
38495a9835
test(es/compat): Add a test for a wrong issue (#7300)
**Related issue:**

 - Closes #7290.
2023-04-20 11:10:25 +09:00
Donny/강동윤
f5c62fbbf8
fix(es/compat): Fix finally handling of generator (#7215)
**Description:**

Update generator implementation to match
e83d61398e/src/compiler/transformers/generators.ts

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5913.
2023-04-06 09:37:21 +00:00
magic-akari
3ca954b9f9
fix(es/helpers): Use snake_case for helpers (#7147)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/7144.
 - Closes https://github.com/swc-project/swc/issues/7118.
2023-03-31 15:15:21 +09:00
magic-akari
23fb8c5563
fix(es/compat): Fix the position for temp var injection (#7171) 2023-03-30 17:41:55 +09:00
Donny/강동윤
0259a7465f
build(cargo): Update rustc to nightly-2023-03-20 (#7170)
**Description:**

This PR also updates `rkyv` to `=0.7.40`.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6807.
2023-03-30 08:06:02 +00:00
Donny/강동윤
12546c853a
build(cargo): Revert rustc upgrade (#7162)
**Description:**

The `rkyv` bug is not fixed.
2023-03-29 17:48:45 +09:00
Donny/강동윤
e445502072
build(cargo): Update rustc to nightly-2023-03-28 (#7154)
**Description:**

This PR also updates `rkyv` to `=0.7.40`.

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6807.
2023-03-29 06:24:19 +00:00
Donny/강동윤
2bc631df87
fix(es/compat): Don't modify private fields from reserved_words pass (#7113)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/7106.
2023-03-21 09:27:31 +00:00
Austaras
c114f006b4
refactor(es/resolver): Make syntax context for unresolved and top-level stable (#7096) 2023-03-20 11:01:19 +09:00
Austaras
0f09e356c3
feat(es/resolver): Make scope context identical to the vars (#7095) 2023-03-19 11:57:14 +09:00
Donny/강동윤
963c460613
refactor: Fix lints using clippy from nightly-2023-03-13 (#6920) 2023-03-14 04:56:21 +00:00
magic-akari
bb6dde7943
fix(es/compat): Handle useDefineForClassFields: false (#7055)
**BREAKING CHANGE:**

IMPORTANT NOTE: Users of decorators are recommended to configure `"useDefineForClassFields": false` to ensure that your code is properly transpiled.


**Related issue:**
 - Closes https://github.com/swc-project/swc/issues/6985.
2023-03-12 12:56:10 +09:00
magic-akari
b78ce8b7c2
feat(es/compat): Simplify static blocks in classes (#7056) 2023-03-11 00:30:49 +00:00
Donny/강동윤
e79d46697c
test(es/compat): Add a test for a fixed issue (#6887)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6886.
2023-01-31 15:01:57 +00:00
Donny/강동윤
57781e90d3
fix(es/compat): Make optional chaining pass less permissive (#6885)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6878.
2023-01-31 06:24:23 +00:00
Donny/강동윤
d8088646df
fix(es/compat): Fix optional chaining pass (#6875)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6762.
2023-01-30 11:14:53 +00:00
Donny/강동윤
e7ea054c63
test(es): Enable execution tests for fixed issues (#6805) 2023-01-13 07:30:21 +00:00
Donny/강동윤
7dc5ccb0fc
test(es/compat): Add a test to verify parameters passs (#6792)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6790.
2023-01-12 15:54:36 +09:00
HeYunfei
a1ccc8afdf
feat(es/minifier): Make name mangler understand block scoping (#6670)
**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/5090.
 - Closes https://github.com/swc-project/swc/issues/5766.
2023-01-06 03:14:10 +00:00
HeYunfei
4c2d42261e
fix(es/compat): Prepend generated _loop to the correct scope (#6604) 2022-12-09 01:48:29 +00:00
Donny/강동윤
cc4646a4cc
test(ts/compat): Migrate inline tests to fixture testing (#6475) 2022-11-28 04:54:38 +00:00