Commit Graph

252 Commits

Author SHA1 Message Date
magic-akari
72048ae1ce feat(es/ast): Support import phase (#8279)
**Description:**

- https://github.com/tc39/proposal-source-phase-imports
2024-01-21 12:05:46 +09:00
Donny/강동윤
bc38ac906c fix(es/ast): Fix definition of SetterProp (#8314)
**Related issue:**

 - Closes #8157
 - Closes #8377
2024-01-21 12:05:46 +09:00
David Sherret
572bcaefc1 fix(es/ast): Add definite and is_override to AutoAccessor (#8436)
**Description:**

Adds a `definite` and `is_override` property to `AutoAccessor` as they were missing.
It also fixes codegen for `AutoAccessor` when emitting TypeScript (which is the main reason I need this PR).

**BREAKING CHANGE:**

Adds a `definite` and `is_override` property.

**Related issue:**

 - Closes #8344
2024-01-21 12:05:46 +09:00
magic-akari
740e6f390a
fix(es/parser): Correctly parse the keyword (#8483)
**Related issue:**

 - Closes #8482.
2024-01-04 12:26:25 +00:00
Ian Tan
0b188ccdff
fix(es/parser): Disallowing await as an identifier in class static block (#8450) 2023-12-29 08:48:24 +00:00
Han Seung Min - 한승민
a423681df8
fix(es/parser): Fix conditional compilation (#8343)
**Description:**

`swc_ecma_parser` crate has a `typescript` feature which enables TS parsing, the `Syntax::Typescript` variant is behind the `typescript` feature, compiling without this feature fails as `Syntax::Typescript` is referenced at many places without `#[cfg(feature = "typescript")]`
2023-11-26 11:36:05 +00:00
magic-akari
8af6ffb1dd
fix(es/parser): Wrap with OptChain across TsNonNull (#8332)
**Related issue:**

- Closes #8326.
2023-11-23 08:23:30 +09:00
Zzzen
51042e090d
fix(es/parsing): Fix parsing of type satisfies = 0; (#8305)
**Related issue:**

 - Closes #8121
2023-11-20 22:49:15 +00:00
magic-akari
feb8a6dad9
fix(es/parser): Report error for exported reserved name (#8313)
**Related issue:**

- Closes #8268.
2023-11-20 21:57:51 +00:00
magic-akari
00b88399a0
fix(es/parser): Fix parsing of import type from from (#8309)
**Related issue:**

- Closes #8308.
2023-11-20 06:20:06 +00:00
magic-akari
c1281534b6
fix(es/parser): Fix ASI hazard of static (#8262)
**Related issue:**

 - Closes #8253
2023-11-13 10:02:02 +00:00
Donny/강동윤
0678c3c55f
fix(es/parser): Adjust the context for cond expr while parsing JSX (#8261)
**Related issue:**

 - Closes #8243.
2023-11-10 13:07:53 +00:00
Donny/강동윤
e58912622d
fix(es/parser): Consider ASI while parsing TypeScript type aliases (#8263)
**Related issue:**

 - Closes #8073.
2023-11-10 12:31:55 +00:00
David Sherret
a5a6eb53a5
perf(atoms): Introduce AtomStoreCell (#8232) 2023-11-09 09:59:20 +09:00
David Sherret
37657b8bd5
perf(es/lexer): Remove needless clones of Rc<RefCell<AtomStore>> (#8231)
Removes some clones of `self.atom`.

`> cargo "bench" "--package" "swc_ecma_parser" "--bench" "parser" "--" "three"`

Main: ~38.2ms
This PR: ~37.8ms
2023-11-07 08:52:14 +00:00
Donny/강동윤
aa22746d03
perf(atoms): Replace string-cache with hstr (#8126)
**Description:**

`hstr` is an alternative for `string-cache` which does not support static strings and does not use a global mutex.
 
**Related issue:**

 - Closes #4946.
 - Closes #7974.
2023-11-07 00:51:43 +00:00
Donny/강동윤
d4ae44ac45
perf(es/parser): Use smarter lookup table for lexer (#8226)
**Description:**

`phf` is slower than expected.
2023-11-06 19:45:46 +09:00
Donny/강동윤
e3e439dba6
perf(es/parser): Improve performance (#8224)
**Description:**

Small things
2023-11-06 05:28:30 +00:00
Donny/강동윤
3833cf4e55
perf(es/parser): Remove needless strcmp ops (#8223)
**Description:**


## The current `main`

```
es/parser/angular       time:   [7.9848 ms 8.0003 ms 8.0243 ms]
```

## This PR

```
es/parser/angular       time:   [7.3380 ms 7.3498 ms 7.3663 ms]
```
2023-11-06 13:16:35 +09:00
Donny/강동윤
14ea705f27
build(cargo): Update rustc to nightly-2023-11-04 (#8221)
**Breaking Changes**:

 - `Mark::default()` is now identical as `Mark::new()`.

**Description:**

I want to see if inlining is improved
2023-11-04 21:47:10 +00:00
Donny/강동윤
826386f49a
fix(es/parser): Skip this parameters in setter (#8158)
**Description:**

This is not a proper fix, but let's wait for the conf.

**Related issue:**

 - Closes #8156
2023-10-20 13:30:40 +00:00
David Sherret
bffe33a270
feat(es/parser): Implement AsRef<str> for IdentLike (#8133) 2023-10-18 04:22:03 +00:00
Donny/강동윤
e1043fae77
fix(es/parser): Fix parsing of await using (#8101)
**Related issue:**

 - Closes #8096
2023-10-11 14:03:08 +00:00
Donny/강동윤
84cec8766d
refactor(atoms): Remove usage of js_word! to drop string-cache (#7976)
**Description:**

This PR is to prepare removal of `string-cache`. Actually, this PR does not remove it. Instead, this PR only removes direct usages of `js_word!`s, especially in patterns.



**Related issue:**

 - #4946.
2023-10-08 00:39:51 +00:00
Donny/강동윤
9b9bc51c28
refactor(es/parser): Introduce TokenKind along with Token (#8071)
**Description:**

This is extracted from https://github.com/swc-project/swc/pull/7790 because this PR is extremely large PR. I'll switch to `TokenKind` gradually.
2023-10-06 00:09:48 +00:00
Donny/강동윤
4d3fcb86e4
feat(es/ast): Support import attributes proposal (#7868)
**Related issue:**

 - Closes #7179
2023-08-28 00:29:45 +00:00
Donny/강동윤
3180e68bf2
fix(es/compat): Apply transforms for explicit resource management (#7881)
**Related issue:**

 - Closes #7879
2023-08-27 18:23:32 +00:00
Donny/강동윤
c65732496e
refactor(common): Mark some methods of Input unsafe (#7848)
**Related issue:**

 - Closes #7709
2023-08-24 12:56:38 +00:00
Donny/강동윤
8b809dbe23
refactor(es/parser): Remove needless unsafe (#7818)
**Related issue:**

 - Closes #7797
2023-08-16 13:24:35 +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
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
Fy
5f97f8656f
refactor(es/parser): Do not validate top-level await with target (#7774) 2023-08-07 21:30:04 +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
Rene B
864bdefbe0
refactor(es/parser): Make stacker an optional dependency (#7720) 2023-07-28 05:57:31 +00:00
Donny/강동윤
b34f1adbcc
build(cargo): Update rustc to 2023-07-03 (#7623) 2023-07-05 03:50:43 +00:00
Donny/강동윤
68503726a7
fix(es/parser): Re-lex << as two <-s if required (#7439)
**Related issue:**

 - Closes #7187.
2023-06-30 07:41:19 +00:00
Donny/강동윤
bcd5a1d666
feat(es/compat): Implement transform for explicit resource management (#7376)
**Related issue:**

 - Closes #7316.
 - Closes #7369.
2023-06-29 14:13:43 +00:00
Donny/강동윤
9d5dda1299
fix(es/parser): Adjust context while parsing type arguments of TypeScript type queries (#7582)
**Related issue:**

 - Closes #7580.
2023-06-26 04:00:00 +00:00
Donny/강동윤
3958f1792c
refactor(es/ast): Remove unused fields (#7518)
**Related issue:**

 - Closes #7347.
 - Closes #7487.
2023-06-12 08:02:34 +00:00
Donny/강동윤
aa83584634
refactor(es/ast): Reimplement optional chaining (#7441)
**Related issue:**

 - Closes #7003.
 - Closes #7156.
2023-06-12 06:47:40 +00:00
Pig Fang
6c00a2422a
feat(es/parser): Disallow tagged tpl in optional chaining (#7515) 2023-06-12 01:37:39 +00:00
Donny/강동윤
77850dd8f0
fix(es/parser): Fix parsing of generic jsx element name (#7449)
**Related issue:**

 - Closes #7444.
2023-05-25 13:52:14 +09:00
Donny/강동윤
a37d59a134
fix(es/parser): Fix parsing of tsx with a type annotation in a conditional expression (#7440)
**Related issue:**

 - Closes #7224.
2023-05-24 15:57:50 +09:00
Donny/강동윤
33a922b6f8
fix(es/parser): Allow using package as a parameter name in interface (#7438)
**Related issue:**

 - Closes #7186.
2023-05-24 06:25:39 +00:00
Donny/강동윤
1cab43f17d
fix(es/parser): Reset class context (#7433)
**Related issue:**

 - Closes #7428.
2023-05-23 05:28:56 +00:00
Donny/강동윤
57ad722d06
fix(es/parser): Fix parsing of > in typescript mode (#7407)
**Related issue:**

 - Closes #7403.
2023-05-18 08:18:27 +00:00
Donny/강동윤
1d3f32056c
fix(es/parser): Fix parsing of module identifier (#7400)
**Related issue:**

 - Closes #4176.
 - Closes #7372.
2023-05-17 04:51:57 +00:00
Austaras
fa7a3521f5
fix(es/parser): Fix >= with type instantiate (#7388) 2023-05-14 05:21:13 +00:00
Donny/강동윤
041b491466
feat(es/parser): Implement explicit resource management (#7322)
**Description:**

 - Add `UsingDecl`.
 - Add `UsingDecl` to `Decl`.
 - Rename `VarDeclOrPat` to `ForHead`.
 - Add `UsingDecl` to `ForHead`.
 - Implement parser for using declarations.

**Related issue:**

 - #7316.
2023-05-10 04:16:44 +00:00
magic-akari
985f0cad06
fix(es/parser): Parse decorators after export (#7340) 2023-04-29 22:26:13 +09:00