Commit Graph

5215 Commits

Author SHA1 Message Date
SWC Bot
0d036b4915 chore: Publish crates 2023-08-16 19:11:18 +00:00
Donny/강동윤
04921f301a
fix(es/codegen): Add quotes to property names when ascii_only is true (#7820)
**Related issue:**

 - Closes #7805.
2023-08-16 19:09:27 +00:00
SWC Bot
e9dfe879d9 chore: Publish crates 2023-08-16 18:04:14 +00:00
David Sherret
981d7b152b
refactor(common): Make ahash optional (#7816)
**Description:**

This adds the ability to not include `ahash` with swc_common, which
caused some issues for me compiling dprint-plugin-typescript to Wasm
because of:

```
   Compiling ahash v0.8.3
   Compiling getrandom v0.2.10
error: the wasm*-unknown-unknown targets are not supported by default, you may need to enable the "js" feature. For more information see: https://docs.rs/getrandom/#webassembly-support
   --> C:\Users\david\.cargo\registry\src\index.crates.io-6f17d22bba15001f\getrandom-0.2.10\src\lib.rs:285:9
    |
285 | /         compile_error!("the wasm*-unknown-unknown targets are not supported by \
286 | |                         default, you may need to enable the \"js\" feature. \
287 | |                         For more information see: \
288 | |                         https://docs.rs/getrandom/#webassembly-support");
    | |________________________________________________________________________^
``` 

(I can't enable the JS feature because it's running the wasm file in
Wasmer and also I don't support Wasi in dprint plugins)

**BREAKING CHANGE:**

This removes swc_common's "perf" feature and makes it the default, then
adds an `ahash` feature instead. An alternative would be to make the
`ahash` dep optional and part of the default features, then do
`default-features = false` in the downstream crates (I think, but I'm
not sure), but I figure most people will be using the perf default
anyway? I'm not sure what's preferable.

**Related issue:**

 - Closes #7729.
2023-08-16 18:02:05 +00:00
SWC Bot
d5495eeb9a chore: Publish crates 2023-08-16 14:18:56 +00:00
David Sherret
b43e38d3f9
refactor: Use ahash from swc_common in more places (#7815)
**Description:**

Uses ahash from swc_common in more places. This allows for more easily
swapping out ahash with rustc_hash.
2023-08-16 23:16:52 +09:00
SWC Bot
2dc88ef147 chore: Publish crates 2023-08-16 13:26:52 +00:00
Donny/강동윤
8b809dbe23
refactor(es/parser): Remove needless unsafe (#7818)
**Related issue:**

 - Closes #7797
2023-08-16 13:24:35 +00:00
SWC Bot
a671afa0aa chore: Publish crates 2023-08-16 02:12:39 +00:00
Johnil Quezada
478fa4736f
feat(es/ast): Expose Archived types (#7811)
**Description:**

For crates using both `rkyv` and `swc`, where ast nodes from
`swc_ecma_ast` are included in data that's serialized with `rkyv`, it's
difficult to access the archived data from the archived ast nodes since
the types are private.

More context in the issue.

**Related issue:**

 - Closes #7810.
2023-08-16 02:10:51 +00:00
SWC Bot
023042dfb9 chore: Publish crates 2023-08-15 15:29:35 +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
SWC Bot
47350a8ac6 chore: Publish crates 2023-08-14 16:35:22 +00:00
Donny/강동윤
fe1ca26218
fix(es): Resolve jsc.baseUrl for .swcrc specified by --config-file (#7801)
**Related issue:**

 - Closes #7800
2023-08-14 16:33:17 +00:00
SWC Bot
0f66ee315a chore: Publish crates 2023-08-14 15:47:58 +00:00
David Sherret
e527c12a82
fix(es/parser): Revert lexer fix for << (#7807)
This temporarily reverts commit 68503726a7
until https://github.com/swc-project/swc/issues/7621 can be fixed.

Re-opens #7187.
2023-08-14 15:45:51 +00:00
SWC Bot
74d446f759 chore: Publish crates 2023-08-14 01:35:45 +00:00
Manish Goregaokar
5e7834aa2e
refactor(es/parser): Don't attempt to handle shebangs in read_token_number_sign (#7803)
bump() has a safety invariant that there must be input in the buffer to
read (See https://github.com/swc-project/swc/issues/7709).

This function as currently written calls `bump()` after calling
`read_token_interpreter()`, which *may* have exhausted the buffer
already in the specific case that it is handling a shebang. (The input
string `#!/bin/js` with no newline is sufficient to cause UB here)

Fortunately, shebangs never reach this function, due to `read_shebang`!
Hurray!

It's cleaner to not attempt to handle shebangs here when this code path
will never be reached, and use a debug assertion to ensure that we're
not dealing with shebangs.
2023-08-14 01:33:50 +00:00
Donny/강동윤
7fac0270c4 chore: Publish crates 2023-08-10 17:13:03 +09:00
SWC Bot
b5dcce03c1 chore: Publish crates 2023-08-10 08:01:19 +00:00
Donny/강동윤
54f38cb47e chore: Publish crates 2023-08-10 12:05:44 +09:00
SWC Bot
be58d36c42 chore: Publish crates 2023-08-10 02:50:53 +00:00
Donny/강동윤
552d9aa344
fix(es/minifier): Do not drop properties used via this (#7785)
**Related issue:**

 - Closes #7783.
2023-08-10 02:48:35 +00:00
SWC Bot
e90b555790 chore: Publish crates 2023-08-09 20:44:26 +00:00
Donny/강동윤
eff0caca2b
feat(es/minifier): Support mangle.eval (#7777)
**Related issue:**

 - Closes #7754
2023-08-09 20:42:12 +00:00
SWC Bot
0edc4207f4 chore: Publish crates 2023-08-09 20:04:15 +00:00
Austaras
ef8d12154d
fix(es/minifier): Abort seq inliner if a same var is defined in outer scope (#7772)
**Description:**

The algorithm here is directly copied from terser, I don't if it's correct or can be improved, but it does fix the issue.


**Related issue:**

 - Closes #7749
2023-08-09 20:01:59 +00:00
SWC Bot
c04ca528b8 chore: Publish crates 2023-08-09 09:19:00 +00:00
Donny/강동윤
76c6258d15
perf(es/compat): Improve time complexity of class_properties (#7786)
**Related issue:**

 - Closes #7780
2023-08-09 09:17:14 +00:00
SWC Bot
fd2d6747be chore: Publish crates 2023-08-09 08:37:37 +00:00
SWC Bot
1c2eb88a60 chore: Publish crates 2023-08-09 05:00:38 +00:00
Donny/강동윤
5c4bfa61f9
fix(es/module): Use jsc.baseUrl while resolving absolute paths (#7775)
**Related issue:**

 - Closes #7761
2023-08-09 13:58:45 +09:00
Donny/강동윤
000f817bcc chore: Publish crates 2023-08-08 14:05:39 +09:00
SWC Bot
83983f49c8 chore: Publish crates 2023-08-07 22:56:50 +00:00
Donny/강동윤
f7afe7edec
refactor(es/minifier): Support stable rustc (#7734) 2023-08-07 22:55:00 +00:00
SWC Bot
14906e279f chore: Publish crates 2023-08-07 22:20:08 +00:00
Donny/강동윤
b45649b8d6
fix(es/codegen): Don't strip necessary escape characters (#7687)
**Related issue:**

 - Closes #7678.
2023-08-07 22:17:59 +00:00
SWC Bot
0219eebeb9 chore: Publish crates 2023-08-07 21:31:50 +00:00
Fy
5f97f8656f
refactor(es/parser): Do not validate top-level await with target (#7774) 2023-08-07 21:30:04 +00:00
SWC Bot
1323c25ed6 chore: Publish crates 2023-08-07 20:38:40 +00:00
Donny/강동윤
36ccbec061
fix(es/minifier): Abort on Array.slice with start >= end (#7745)
**Related issue:**

 - Closes #7742.
2023-08-07 20:36:15 +00:00
SWC Bot
1e6ade8cfa chore: Publish crates 2023-08-07 20:01:21 +00:00
Manish Goregaokar
2258274233
refactor(es/ast): Avoid transmute in impl of Hash for Number (#7771)
**Description:**

[`f64::to_bits()`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.to_bits) does the same thing.
2023-08-08 04:59:15 +09:00
SWC Bot
76c78f8794 chore: Publish crates 2023-08-07 08:17:54 +00:00
SWC Bot
51d17b66ad chore: Publish crates 2023-08-06 22:16:01 +00:00
Donny/강동윤
d57ac0dd28
fix(es/utils): Ignore typeof Id while preserving side effects (#7763)
**Related issue:**

 - Closes #7750
2023-08-06 22:14:05 +00:00
SWC Bot
434472a678 chore: Publish crates 2023-08-06 21:44:26 +00:00
Ian Kerins
b69ae8f433
fix(es/compat): Fix loose mode of the spread pass (#7760) 2023-08-06 21:42:33 +00:00
SWC Bot
97289b4edc chore: Publish crates 2023-08-06 20:31:13 +00:00
Gareth McSorley
e50cfde938
refactor(es/parser): Do not use lexical (#7758)
This PR replaces the current usage of lexical within the swc_ecma_parser
crate with equivalent parsing of large numbers using BigInt.

**Description:**

As discussed in
https://github.com/swc-project/swc/issues/7752, lexical contains a
number of soundness issues but doesn't appear to be actively supported.
Given the relatively low integration surface it seems reasonable to
replace the usage of lexical with another package to avoid this issue.

**Related issue:**

- Closes #7752
2023-08-06 20:29:17 +00:00