Dunqing
94ff94cd34
fix(transformer/arrow-functions): reaches unreachable when <this.foo> is inside an arrow function ( #5356 )
...
Fixes: https://github.com/oxc-project/oxc/issues/5353#issuecomment-2321792915
2024-09-02 18:06:08 +00:00
leaysgur
c7e61a1391
chore(prettier): Update conformance tests to Prettier v3.3.3 ( #5394 )
...
- v3.3.3 is latest released version
- Test file name was changed from v3.3.x
- https://github.com/prettier/prettier/pull/16244
2024-09-02 10:32:17 +00:00
renovate[bot]
8cf9cf9919
chore(deps): update npm packages ( #5392 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [axios](https://axios-http.com )
([source](https://togithub.com/axios/axios )) | [`1.7.5` ->
`1.7.7`](https://renovatebot.com/diffs/npm/axios/1.7.5/1.7.7 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
| [pnpm](https://pnpm.io ) ([source](https://togithub.com/pnpm/pnpm )) |
[`9.8.0` -> `9.9.0`](https://renovatebot.com/diffs/npm/pnpm/9.8.0/9.9.0 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>axios/axios (axios)</summary>
###
[`v1.7.7`](https://togithub.com/axios/axios/blob/HEAD/CHANGELOG.md#177-2024-08-31 )
[Compare
Source](https://togithub.com/axios/axios/compare/v1.7.6...v1.7.7 )
##### Bug Fixes
- **fetch:** fix stream handling in Safari by fallback to using a stream
reader instead of an async iterator;
([#​6584](https://togithub.com/axios/axios/issues/6584 ))
([d198085](d1980854fe ))
- **http:** fixed support for IPv6 literal strings in url
([#​5731](https://togithub.com/axios/axios/issues/5731 ))
([364993f](364993f0d8 ))
##### Contributors to this release
- <img
src="https://avatars.githubusercontent.com/u/10539109?v=4&s=18 "
alt="avatar" width="18"/> [Rishi556](https://togithub.com/Rishi556
"+39/-1 (#​5731 )")
- <img
src="https://avatars.githubusercontent.com/u/12586868?v=4&s=18 "
alt="avatar" width="18"/> [Dmitriy
Mozgovoy](https://togithub.com/DigitalBrainJS "+27/-7 (#​6584 )")
###
[`v1.7.6`](https://togithub.com/axios/axios/blob/HEAD/CHANGELOG.md#176-2024-08-30 )
[Compare
Source](https://togithub.com/axios/axios/compare/v1.7.5...v1.7.6 )
##### Bug Fixes
- **fetch:** fix content length calculation for FormData payload;
([#​6524](https://togithub.com/axios/axios/issues/6524 ))
([085f568](085f56861a ))
- **fetch:** optimize signals composing logic;
([#​6582](https://togithub.com/axios/axios/issues/6582 ))
([df9889b](df9889b83c ))
##### Contributors to this release
- <img
src="https://avatars.githubusercontent.com/u/12586868?v=4&s=18 "
alt="avatar" width="18"/> [Dmitriy
Mozgovoy](https://togithub.com/DigitalBrainJS "+98/-46 (#​6582 )")
- <img
src="https://avatars.githubusercontent.com/u/3534453?v=4&s=18 "
alt="avatar" width="18"/> [Jacques
Germishuys](https://togithub.com/jacquesg "+5/-1 (#​6524 )")
- <img
src="https://avatars.githubusercontent.com/u/53894505?v=4&s=18 "
alt="avatar" width="18"/> [kuroino721](https://togithub.com/kuroino721
"+3/-1 (#​6575 )")
</details>
<details>
<summary>pnpm/pnpm (pnpm)</summary>
### [`v9.9.0`](https://togithub.com/pnpm/pnpm/compare/v9.8.0...v9.9.0 )
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v9.8.0...v9.9.0 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "before 10am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 19:31:44 +00:00
Dunqing
35f03db464
fix(transformer): ArrowfunctionExpression's expression is true but has more than one body statement ( #5366 )
...
close : #5363
We insert the new statement here, but it's broken if it a `() => x;`, we need to transform it to `function () { return x }`
8d565d5b23/crates/oxc_transformer/src/es2020/nullish_coalescing_operator.rs (L59-L76)
I don't where we should put the fallback logic, It's useful for all plugins. We had already done the same thing in the react refresh plugin.
8d565d5b23/crates/oxc_transformer/src/react/refresh.rs (L578-L605)
2024-08-31 14:49:58 +00:00
Boshen
e75e0f1465
chore: update test262 / babel / typescript submodules ( #5369 )
...
closes #5215
2024-08-31 12:28:25 +00:00
overlookmotel
8a178075b7
fix(parser): treat JSX element tags starting with _ or $ as IdentifierReferences ( #5343 )
...
#5223 added a new variant `JSXElementName::IdentifierReference` for JSX identifiers which are treated as references (e.g. `<Foo>`) as opposed to `JSXElementName::Identifier` which is for lowercase (e.g. `<div>`).
But we were incorrectly categorizing identifiers beginning with `_` or `$` - these should also be treated as references.
(as discussed in https://github.com/oxc-project/oxc/pull/5339#issuecomment-2321037779 )
2024-08-30 14:47:06 +00:00
overlookmotel
0de844d23c
refactor(transformer): remove unnecessary code from JSX transform ( #5339 )
...
Follow-on after #5223 .
JSX identifiers which start with a capital letter are now `JSXElementName::IdentifierReference`s, so no need to check for capitalized `JSXElementName::Identifier`s.
2024-08-30 12:17:08 +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
Dunqing
783a31beb6
ci(benchmark/transformer): enable all > es6 plugins ( #5324 )
...
There is a bug in the react refresh plugin, I will fix it in follow-up PR and enable the plugin in the benchmark
2024-08-30 09:30:17 +00:00
Boshen
3ae94b8801
refactor(semantic): change build_module_record to accept &Path instead of PathBuf
2024-08-30 12:24:49 +08:00
DonIsaac
cd63336c7e
refactor(diagnostic): change how diagnostic codes are rendered ( #5317 )
...
Preparation for upstack PRs. Graphical reporter diagnostics look exactly the same. This does, however, change `to_string()` to only show diagnostic messages, and not error codes + messages.
2024-08-29 05:50:03 +00:00
Dunqing
3acb3f6461
fix(transformer/react): mismatch output caused by incorrect transformation ordering ( #5255 )
...
close : #4767
2024-08-29 00:38:02 +00:00
DonIsaac
270fc53401
chore(bench): include fixers in linter benchmarks ( #5307 )
...
Fixing code is an important part of linter logic. We want to make sure fixers for each rule, and the code responsible for applying those fixes, are included in benchmarks.
As it currently stands, fixer closures are applied regardless of whether the user wants fixers to be applied. However, this is an implementation detail and is subject to change. I also want to bench the performance of `Fixer`.
2024-08-28 23:19:43 +00:00
magic-akari
08dc0adeab
feat(transformer): add object-spread plugin ( #3133 )
2024-08-28 15:57:20 +00:00
Boshen
8d6b05ca01
fix(transformer): class property with typescript value should not be removed ( #5298 )
2024-08-28 13:53:41 +00:00
Dunqing
292d162b23
feat(codegen): print missing fields for AccessorProperty ( #5291 )
...
Found in https://github.com/oxc-project/monitor-oxc/actions/runs/10592050362/job/29350666018
2024-08-28 08:42:39 +00:00
Dunqing
5754c89b5e
fix(transformer/typescript): remove accessibility from AccessorProperty ( #5292 )
...
Regression by #5290
2024-08-28 08:42:38 +00: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
leaysgur
15b87adb05
chore(regular_expression): Extract diagnostics ( #5287 )
...
- Extract `Diagnostic::error()`s to separate file
- Align error message prefix
2024-08-28 03:19:29 +00: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
10861096e0
refactor(semantic): transform checker do not output spans in errors ( #5260 )
...
Transform checker don't output spans in errors. They're inaccurate because (a) spans refer to the source text pre-transform, and (b) most errors relate to scopes/symbols/references newly created in transformer, which have no span.
2024-08-27 11:58:21 +00:00
overlookmotel
af5713e411
refactor(semantic): transform checker continue checks if missing IDs ( #5259 )
...
Transform checker don't bail out if some IDs missing from AST. Continue to check for other problems.
Also simplify iterating over pairs of IDs.
2024-08-27 11:58:20 +00:00
overlookmotel
943454fa5e
refactor(semantic): update transform checker for no conditional scopes ( #5252 )
...
All scopes are now unconditional (#5008 ). Update transform checker to reflect this.
2024-08-27 08:57:15 +00:00
overlookmotel
b479afdafc
ci: transformer benchmark measure transformer itself only ( #5193 )
...
Transformer benchmark measure only the transformer itself. Parse, generate `Semantic`, and drop `Semantic` outside of the measured section.
This should:
1. Give us greater visibility of how changes to transformer affect its performance.
2. Reduce variance in transformer benchmarks, since they will no longer include the variance introduced by `SemanticBuilder`.
Not ready to merge yet. We should first add an "end to end" benchmark testing the entire compilation process (parse - semantic - transform - minify - codegen).
This PR depends on https://github.com/Boshen/criterion2.rs/pull/49 . This PR currently makes Oxc's dependency on `criterion2` a git dependency on that PR's branch. That can be changed once the upstream PR is merged.
2024-08-27 01:53:27 +00:00
Boshen
a17cf33dc3
refactor(semantic): remove ScopeTree::child_ids ( #5232 )
...
closes https://github.com/oxc-project/oxc/issues/5244
2024-08-27 01:49:47 +00:00
overlookmotel
7c4f009521
refactor(ci): include drop in semantic benchmark ( #5245 )
...
Include dropping `Semantic` in semantic benchmark measure.
If you create a `Semantic`, you have to drop it, so the time it takes to
drop is part of the cost of using this API, and we should be working to
reduce it. Therefore I think it should be included in the benchmark.
It'll be interesting to see what effect a PR like #5232 which removes a
bunch of `Vec`s from `Semantic` has on the drop time.
2024-08-27 09:30:52 +08: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
Boshen
2fbc283e03
chore: bump rustc to v1.80.1 ( #5211 )
2024-08-26 13:11:29 +08:00
Boshen
293668bebd
chore(tasks): parse regular expression in parser benchmark ( #5212 )
2024-08-26 13:11:09 +08:00
renovate[bot]
67c7802a58
chore(deps): update dependency axios to v1.7.5 ( #5205 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [axios](https://axios-http.com )
([source](https://togithub.com/axios/axios )) | [`1.7.4` ->
`1.7.5`](https://renovatebot.com/diffs/npm/axios/1.7.4/1.7.5 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>axios/axios (axios)</summary>
###
[`v1.7.5`](https://togithub.com/axios/axios/blob/HEAD/CHANGELOG.md#175-2024-08-23 )
[Compare
Source](https://togithub.com/axios/axios/compare/v1.7.4...v1.7.5 )
##### Bug Fixes
- **adapter:** fix undefined reference to hasBrowserEnv
([#​6572](https://togithub.com/axios/axios/issues/6572 ))
([7004707](7004707c41 ))
- **core:** add the missed implementation of AxiosError#status property;
([#​6573](https://togithub.com/axios/axios/issues/6573 ))
([6700a8a](6700a8adac ))
- **core:** fix `ReferenceError: navigator is not defined` for custom
environments;
([#​6567](https://togithub.com/axios/axios/issues/6567 ))
([fed1a4b](fed1a4b2d7 ))
- **fetch:** fix credentials handling in Cloudflare workers
([#​6533](https://togithub.com/axios/axios/issues/6533 ))
([550d885](550d885eb9 ))
##### Contributors to this release
- <img
src="https://avatars.githubusercontent.com/u/12586868?v=4&s=18 "
alt="avatar" width="18"/> [Dmitriy
Mozgovoy](https://togithub.com/DigitalBrainJS "+187/-83 (#​6573
#​6567 #​6566 #​6564 #​6563 #​6557
#​6556 #​6555 #​6554 #​6552 )")
- <img
src="https://avatars.githubusercontent.com/u/2495809?v=4&s=18 "
alt="avatar" width="18"/> [Antonin Bas](https://togithub.com/antoninbas
"+6/-6 (#​6572 )")
- <img
src="https://avatars.githubusercontent.com/u/5406212?v=4&s=18 "
alt="avatar" width="18"/> [Hans Otto
Wirtz](https://togithub.com/hansottowirtz "+4/-1 (#​6533 )")
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "before 10am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View the
[repository job log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 18:55:22 +00:00
Kevin Deng 三咲智子
bf49f339d0
chore: pin pnpm version & upgrade lockfile version ( #5200 )
2024-08-25 22:57:33 +08:00
Dunqing
f8bb0222b3
fix(transformer/arrow-functions): remove SymbolFlags::ArrowFunction ( #5190 )
...
`ArrowFunction` has been transforming to `FunctionExpression`, So we should remove `SymbolFlags::ArrowFunction`
2024-08-25 10:27:00 +00:00
Dunqing
d9ba5ad022
fix(transformer/arrow-functions): correct scope for _this ( #5189 )
...
The `_this` will eventually be inserted into a `Program` or `Function`. So we have to go up to the corresponding `scope_id`
2024-08-25 10:26:59 +00:00
Dunqing
056c6679ec
feat(transformer/arrow-functions): the output that uses this inside blocks doesn't match Babel ( #5188 )
...
Fixes 666282a13b/crates/oxc_transformer/src/es2015/arrow_functions.rs (L35-L62)
2024-08-25 10:26:57 +00:00
overlookmotel
666282a13b
refactor(ci): remove extraneous doc comment ( #5185 )
...
Replace doc comment with plain comment.
2024-08-25 07:39:38 +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
01c0c3e4b2
feat(transformer): add remaining options to transformer options ( #5169 )
...
closes #5168
2024-08-24 14:52:03 +00:00
Boshen
c96609151e
fix(coverage): fix cases where source_type is incorrectly set to script
2024-08-24 14:40:05 +08:00
Boshen
e4ca3d3901
chore(coverage): ignore annex-b/disabled tests
2024-08-24 14:20:06 +08:00
Boshen
12c21b2bfd
fix(coverage): do not run generated test cases when filter is applied
2024-08-24 14:03:54 +08:00
overlookmotel
eb71a32ee7
refactor(ci): transform conformance snapshot include when output mismatch ( #5135 )
...
Include "Output mismatch" in transform conformance snapshots when a test also fails due to scopes/symbols mismatches.
At present, many of the tests are failing on scopes/symbols mismatches, so it's hard to see from snapshots which also have an output mismatch. In particular, when working to fix scope mismatches, it's hard to notice if changes you make cause the output to be wrong. These extra messages make that visible.
2024-08-24 04:52:14 +00:00
overlookmotel
be42b1c76b
fix(ci): transform conformance do not skip any errors ( #5134 )
...
Snapshots generated by transform conformance were missing a few errors (e.g. `declarations/const-enum/input.ts` at bottom of diff). Make sure all errors fail the test.
2024-08-24 04:52:11 +00:00
Boshen
d5a494023e
refactor(semantic): rewrite handling of label statement errors ( #5138 )
...
This reverts the previous changes to handling labels so that all tests can pass.
This passes all false postivies found in `monitor-oxc` (node_modules/flow-parser/flow_parser.js)
As it turns out this requires less code and produces better diagnostics.
2024-08-24 02:37:49 +00:00
overlookmotel
f63b568c48
refactor(ast): remove #[non_exhaustive] attr from AstBuilder ( #5130 )
...
Partially revert #4925 . That PR's description gave no explanation of why this attribute is desirable.
2024-08-23 23:04:28 +00:00
Dunqing
47e69a8c94
fix(transformer-optional-catch-binding): the unused binding is not in the correct scope ( #5066 )
...
Blocked by #5008
In the SemanticBuilder, we insert all CatchClause parameters in the BlockStatement scope, a child-scope of CatchClause
858f510d59/crates/oxc_semantic/src/builder.rs (L709-L718)
So we should do the same thing in this plugin, but because CatchClause has no parameters, SemanticBuilder doesn't create scope for `CatchClause`. This cause we cannot find the `BlockStatement` scope_id.
This PR has changed to the correct logic. Just to wait #5008 solved
2024-08-23 13:02:53 +00:00
overlookmotel
8650d3e773
refactor(ast_tools): remove support for #[scope(if(...))] attr ( #5113 )
...
There are no longer any nodes with conditional scopes. Remove support for `#[scope(if(...))]` attr from `ast_tools` - it's no longer needed.
2024-08-23 09:28:17 +00:00
overlookmotel
c100826b42
refactor(semantic)!: always create a scope for for statements ( #5110 )
...
Part of #5008 . Make scopes for `ForStatement`, `ForInStatement` and `ForOfStatement` unconditional. i.e. always create a scope, even if there is no lexical binding (e.g. `for (i of a) {}`).
2024-08-23 09:28:13 +00:00