Boshen
bcdbba3981
feat(codegen): print jsdoc comments that are attached to statements and class elements ( #5845 )
...
I am unable to print all comments correctly. Comments have way too much semantic meaning in JavaScript.
This PR reduces the scope to only print jsdoc comments that are attached to statements and class elements, in order to get isolated declarations shipped.
2024-09-18 07:58:22 +00:00
DonIsaac
3120c6c5ba
docs(parser): add module and struct level documentation ( #5831 )
2024-09-18 06:27:24 +00:00
Boshen
42dcadfccf
fix(parser): hashbang comment should not keep the end newline char ( #5844 )
...
Previously it included a newline in the value
```
"hashbang": {
"type": "Hashbang",
"start": 0,
"end": 16,
"value": "/usr/bin/node\n"
},
```
This change will also make the lexer emit a `\n` token, which will make comment position detection correct.
2024-09-18 05:41:44 +00:00
Boshen
8e7556f842
feat(parser): calculate leading and trailing position for comments ( #5785 )
2024-09-16 16:37:35 +00:00
overlookmotel
31e9db442d
refactor(parser): shorten UniquePromise code ( #5805 )
...
Pure refactor. Shorten code a little.
2024-09-16 15:37:01 +00:00
overlookmotel
2322b8b713
refactor(parser): remove dead code warning when running tests ( #5804 )
...
`UniquePromise::new_for_tests` is not used in tests, so produces a dead code warning when running tests. Prevent that.
Also, rename it to `new_for_benchmarks`, since that's where it's used.
2024-09-16 15:37:00 +00:00
Boshen
6dd6f7ca26
refactor(ast): change Comment struct ( #5783 )
2024-09-15 09:22:58 +00:00
Boshen
a4b55bf00e
refactor(parser): use AstBuilder ( #5743 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-13 22:39:48 +08:00
overlookmotel
953fe17f0e
feat(ast): provide NONE type for AST builder calls ( #5737 )
...
Closes #5736 .
Introduce a `NONE` type which can be used for any `AstBuilder` method call param which expects an `IntoIn<'a, Something<'a>>`, where otherwise you have to provide a verbose type annotation.
Before:
```rs
ast.arrow_function_expression(
SPAN,
is_expression,
is_async,
None::<TSTypeParameterDeclaration>,
params,
None::<TSTypeAnnotation>,
body,
)
```
After:
```rs
ast.arrow_function_expression(SPAN, is_expression, is_async, NONE, params, NONE, body)
```
2024-09-13 02:42:01 +00:00
dalaoshu
d18c896a2c
perf(rust): use cow_utils instead ( #5664 )
...
Related to #5586 and #5662
---------
Co-authored-by: Boshen <boshenc@gmail.com>
2024-09-11 18:39:30 +08:00
Boshen
ee4fb42d70
perf(ast)!: reduce size of WithClause by Boxing it ( #5677 )
...
relates #5601
2024-09-10 14:01:36 +00:00
Boshen
4a8aec1605
feat(span)!: change SourceType::js to SourceType::cjs and SourceType::mjs ( #5606 )
2024-09-08 14:11:02 +00:00
Boshen
603817bef9
feat(oxc)!: add SourceType::Unambiguous; parse .js as unambiguous ( #5557 )
...
See https://babel.dev/docs/options#misc-options for background on `unambiguous`
Once `SourceType::Unambiguous` is parsed, it will correctly set the returned `Program::source_type` to either `module` or `script`.
2024-09-07 10:48:58 +00:00
Don Isaac
0ac420d6f9
refactor(linter): use meaningful names for diagnostic parameters ( #5564 )
...
Also add `pending` fix labels to many rules.
2024-09-06 18:14:56 -04:00
Boshen
1bed5ce2a5
chore: run cargo +nightly fmt to sort imports ( #5503 )
...
They are never going to be stable are they ... cedf7a4daa/.rustfmt.toml (L8-L16)
2024-09-06 04:04:26 +00:00
overlookmotel
cba93f52d0
feat(ast)!: add ThisExpression variants to JSXElementName and JSXMemberExpressionObject ( #5466 )
...
Close #5352 .
Add to AST:
* `JSXElementName::ThisExpression` (`<this>`)
* `JSXMemberExpressionObject::ThisExpression` (`<this.foo>`, `<this.foo.bar>`)
2024-09-05 02:06:20 +00:00
Boshen
10279f55d9
feat(parser): add syntax error for hyphen in JSXMemberExpression <Foo.bar-baz /> ( #5440 )
...
closes #5355
2024-09-04 14:09:06 +00:00
overlookmotel
d9d7e7c596
refactor(ast): remove IdentifierName from TSThisParameter ( #5327 )
...
`TSThisParameter` does not need to include an `IdentifierName` which is always "this". Just storing the `Span` is sufficient.
2024-09-04 12:46:53 +00:00
rzvxa
59abf27d95
feat(ast, parser): add oxc_regular_expression types to the parser and AST. ( #5256 )
...
closes #5060
2024-09-03 02:36:37 +00:00
Dunqing
1aa49af010
feat(ast)!: remove JSXMemberExpressionObject::Identifier variant ( #5358 )
...
close : #5353
`JSXMemberExpressionObject::Identifier` is dead code.
2024-09-02 18:35:39 +00:00
_lmmmmmm
3864eb42ce
chore: typo fix ( #5380 )
...
fixed #5379
Fix typos so `just ready` works
2024-09-01 15:10:40 +08:00
overlookmotel
d236554512
refactor(parser): move JSXIdentifier conversion code into parser ( #5345 )
...
Outside of the parser, a `JSXIdentifier` in a `JSXElementName::Identifier` will never be a identifier reference. So move the code for deciding if a `JSXElementName` is `JSXElementName::Identifier` or `JSXElementName::IdentifierReference`, and the code for converting from one to the other, into the parser - which is only place it should be used.
2024-08-30 14:47:09 +00:00
Dunqing
32f730085c
feat(ast)!: add JSXElementName::IdentifierReference and JSXMemberExpressionObject::IdentifierReference ( #5223 )
...
close : #3528
part of #4746
2024-08-30 11:11:04 +00:00
Boshen
70091771b6
test(parser): fix incorrect flow error test
2024-08-28 20:53:32 +08:00
Boshen
fb75d2576b
Revert "fix(parser): Revert "check for @flow with recoverable errors as well" ( #5297 )"
...
This reverts commit d4c06ef093 .
2024-08-28 20:53:13 +08:00
overlookmotel
d4c06ef093
fix(parser): Revert "check for @flow with recoverable errors as well" ( #5297 )
...
e1d8b92080 caused CI to fail. Revert it.
2024-08-28 12:48:37 +00:00
Boshen
e1d8b92080
fix(parser): check for @flow with recoverable errors as well
2024-08-28 19:39:07 +08:00
Dunqing
550574982f
feat(ast): add accessibility field to AccessorProperty ( #5290 )
2024-08-28 08:42:37 +00:00
Kevin Deng 三咲智子
234a24c14d
fix(ast)!: merge UsingDeclaration into VariableDeclaration ( #5270 )
...
relate #2854
2024-08-28 11:26:05 +08:00
Boshen
e6fd52e2a6
fix(parser): change unterminated regex error to be non-recoverable ( #5285 )
...
closes #5257
2024-08-28 01:57:31 +00:00
overlookmotel
bc59dd2b29
refactor(parser): improve example for byte_search! macro usage ( #5234 )
...
It's more efficient when reading 2 bytes to use `read2()` than 2 x `read()` calls. Reflect that in example for using `byte_search!` macro.
2024-08-26 14:22:37 +00:00
overlookmotel
a3ddfdd9d7
refactor(parser): improve lexer pointer maths ( #5233 )
...
Small tweaks to pointer maths in lexer which may result in slightly more compact assembly.
2024-08-26 14:22:36 +00:00
leaysgur
1686920e23
fix(parser): Span for invalid regex flags ( #5225 )
...
### Before
```
x Flag u is mentioned twice in regular expression literal
,-[1:20]
1 | const a = /\2(.)/uuxig;
: ^
2 | debugger;
`----
x Unexpected flag x in regular expression literal
,-[1:21]
1 | const a = /\2(.)/uuxig;
: ^
2 | debugger;
`----
```
### After
```
x Flag u is mentioned twice in regular expression literal
,-[1:19]
1 | const a = /\2(.)/uuxig;
: ^
2 | debugger;
`----
x Unexpected flag x in regular expression literal
,-[1:20]
1 | const a = /\2(.)/uuxig;
: ^
2 | debugger;
`----
```
2024-08-26 10:24:47 +00:00
DonIsaac
49cd5db54f
feat(ast,parser): add definite flag to AccessorProperty node ( #5182 )
2024-08-25 01:02:50 +00:00
DonIsaac
7dfd51a62b
feat(parser): report class properties that are both definite and optional ( #5181 )
2024-08-25 01:02:49 +00:00
DonIsaac
a563968386
feat(parser): report errors on optional accessor properties ( #5180 )
2024-08-25 01:02:49 +00:00
DonIsaac
c2fa72571f
feat(ast,parser): parse TSTypeAnnotations on AccessorProperty ( #5179 )
...
Closes #5177
While making this, I noticed an uncaught parse error for accessors: accessors cannot be optional. I'll add a fix for this in an up-stack PR.
2024-08-25 01:02:48 +00:00
Boshen
efbdced597
fix(parser): only show flow error if it's a flow file ( #5069 )
...
Otherwise we get a mixture of confusing error messages.
2024-08-22 12:19:45 +00:00
Boshen
afe728a73a
feat(parser): parse regular expression with regex parser ( #4998 )
...
Many false positives and incorrect errors. @leaysgur Enjoy 😁
Run `just conformance` to update the snapshot.
2024-08-22 03:09:55 +00:00
overlookmotel
ca70cc7c03
refactor(linter, mangler, parser, semantic, transformer, traverse, wasm): rename various flag vars to flags ( #5028 )
...
Part of #4991 .
2024-08-21 00:19:58 +00:00
Boshen
b2ff2df5af
refactor(parser)!: remove builder pattern from Parser struct ( #5000 )
...
part of #4455
use `with_options(ParseOptions { ..ParseOptions::default() })` API instead.
2024-08-20 07:40:25 +00:00
Burlin
f88970bc79
refactor(ast)!: Change order of fields in CallExpression ( #4859 )
...
fix : #4821
---------
Co-authored-by: Dunqing <dengqing0821@gmail.com>
2024-08-20 09:47:12 +08:00
Boshen
6800e694e3
feat(oxc): add Compiler and CompilerInterface ( #4954 )
...
This PR adds a full compiler pipeline to the `oxc` crate, to stop us
from implementing the same pipeline over and over again.
relates #4455
2024-08-19 10:20:05 +08:00
rzvxa
c164bb8b64
chore(deps): remove static_assertions dependency. ( #4883 )
2024-08-14 02:18:06 +00:00
Boshen
1bdde2c117
fix(parser): detect @flow in `/** @flow */ comment ( #4861 )
...
Discovered in https://github.com/oxc-project/monitor-oxc
There are files with
```
/**
* @flow
*/
```
https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/__mocks__/JSXAttributeMock.js#L1
So I changed the logic to checking the first comment instead.
2024-08-13 05:43:48 +00:00
Boshen
559baa5602
docs(parser): clean up doc regarding performance; remove conformance
...
conformance is removed due to needing to keep it updated.
2024-08-12 14:02:09 +08:00
Boshen
a40a217de4
fix(parser): parse assert keyword in TSImportAttributes ( #4610 )
...
closes #4601
2024-08-04 01:41:31 +00:00
rzvxa
d25dea7b94
refactor(parser): use ast_builder in more places. ( #4612 )
2024-08-02 22:38:06 +00:00
overlookmotel
55a8763d6e
perf(parser): faster decoding unicode escapes in identifiers ( #4579 )
...
Replace `next_char` and `peek_char` with `peek_byte` when decoding unicode escape sequences in identifiers.
2024-07-31 03:33:08 +00:00
overlookmotel
ae1d38f60d
perf(parser): fast path for ASCII when checking char after numeric literal ( #4577 )
...
Make a fast path for ASCII characters when lexer checks for invalid chars after a numeric literal. Also shorten the check for ASCII chars.
2024-07-31 03:33:05 +00:00