Commit graph

2662 commits

Author SHA1 Message Date
Dunqing
816a782254
feat(transformer): support targets option of preset-env (#3371)
The implementation of the `targets` options was copied from
[swc](https://github.com/swc-project/swc/tree/main/crates/preset_env_base),
which resulted in some added dependencies in transformer.
Currently, it has supported enabling plugins by `targets`
2024-05-27 10:33:40 +08:00
renovate[bot]
ea0d57f944
chore(deps): lock file maintenance rust crates (#3422)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|  |  | lockFileMaintenance | All locks refreshed |
| [insta](https://insta.rs/)
([source](https://togithub.com/mitsuhiko/insta)) |
workspace.dependencies | minor | `1.38.0` -> `1.39.0` |
| [itertools](https://togithub.com/rust-itertools/itertools) |
workspace.dependencies | minor | `0.12.1` -> `0.13.0` |
| [mimalloc](https://togithub.com/purpleprotocol/mimalloc_rust) |
workspace.dependencies | patch | `0.1.41` -> `0.1.42` |
| [napi-derive](https://togithub.com/napi-rs/napi-rs) |
workspace.dependencies | patch | `2.16.4` -> `2.16.5` |
| [ouroboros](https://togithub.com/someguynamedjosh/ouroboros) |
workspace.dependencies | patch | `0.18.3` -> `0.18.4` |
| [proc-macro2](https://togithub.com/dtolnay/proc-macro2) |
workspace.dependencies | patch | `1.0.82` -> `1.0.84` |
| [serde](https://serde.rs)
([source](https://togithub.com/serde-rs/serde)) | workspace.dependencies
| patch | `1.0.201` -> `1.0.203` |
| [trybuild](https://togithub.com/dtolnay/trybuild) |
workspace.dependencies | patch | `1.0.95` -> `1.0.96` |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Release Notes

<details>
<summary>mitsuhiko/insta (insta)</summary>

###
[`v1.39.0`](https://togithub.com/mitsuhiko/insta/blob/HEAD/CHANGELOG.md#1390)

[Compare
Source](https://togithub.com/mitsuhiko/insta/compare/1.38.0...1.39.0)

- Fixed a bug in `require_full_match`.
[#&#8203;485](https://togithub.com/mitsuhiko/insta/issues/485)

- Fixed a bug that caused snapshot and module names to sometimes be
inaccurate.
[#&#8203;483](https://togithub.com/mitsuhiko/insta/issues/483)

- Insta will no longer error when removing snapshots that were already
removed. [#&#8203;484](https://togithub.com/mitsuhiko/insta/issues/484)

- Added support for trailing commas in inline snapshots.
[#&#8203;472](https://togithub.com/mitsuhiko/insta/issues/472)

- Don't pass `--color` in all cases to `libtest` any more to work around
limitations
with custom test harnesses.
[#&#8203;491](https://togithub.com/mitsuhiko/insta/issues/491)

</details>

<details>
<summary>rust-itertools/itertools (itertools)</summary>

###
[`v0.13.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0130)

[Compare
Source](https://togithub.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0)

##### Breaking

- Removed implementation of `DoubleEndedIterator` for `ConsTuples`
([#&#8203;853](https://togithub.com/rust-itertools/itertools/issues/853))
- Made `MultiProduct` fused and fixed on an empty iterator
([#&#8203;835](https://togithub.com/rust-itertools/itertools/issues/835),
[#&#8203;834](https://togithub.com/rust-itertools/itertools/issues/834))
- Changed `iproduct!` to return tuples for maxi one iterator too
([#&#8203;870](https://togithub.com/rust-itertools/itertools/issues/870))
- Changed `PutBack::put_back` to return the old value
([#&#8203;880](https://togithub.com/rust-itertools/itertools/issues/880))
- Removed deprecated `repeat_call, Itertools::{foreach, step,
map_results, fold_results}`
([#&#8203;878](https://togithub.com/rust-itertools/itertools/issues/878))
- Removed `TakeWhileInclusive::new`
([#&#8203;912](https://togithub.com/rust-itertools/itertools/issues/912))

##### Added

- Added `Itertools::{smallest_by, smallest_by_key, largest, largest_by,
largest_by_key}`
([#&#8203;654](https://togithub.com/rust-itertools/itertools/issues/654),
[#&#8203;885](https://togithub.com/rust-itertools/itertools/issues/885))
- Added `Itertools::tail`
([#&#8203;899](https://togithub.com/rust-itertools/itertools/issues/899))
- Implemented `DoubleEndedIterator` for `ProcessResults`
([#&#8203;910](https://togithub.com/rust-itertools/itertools/issues/910))
- Implemented `Debug` for `FormatWith`
([#&#8203;931](https://togithub.com/rust-itertools/itertools/issues/931))
- Added `Itertools::get`
([#&#8203;891](https://togithub.com/rust-itertools/itertools/issues/891))

##### Changed

- Deprecated `Itertools::group_by` (renamed `chunk_by`)
([#&#8203;866](https://togithub.com/rust-itertools/itertools/issues/866),
[#&#8203;879](https://togithub.com/rust-itertools/itertools/issues/879))
- Deprecated `unfold` (use `std::iter::from_fn` instead)
([#&#8203;871](https://togithub.com/rust-itertools/itertools/issues/871))
- Optimized `GroupingMapBy`
([#&#8203;873](https://togithub.com/rust-itertools/itertools/issues/873),
[#&#8203;876](https://togithub.com/rust-itertools/itertools/issues/876))
- Relaxed `Fn` bounds to `FnMut` in `diff_with,
Itertools::into_group_map_by`
([#&#8203;886](https://togithub.com/rust-itertools/itertools/issues/886))
- Relaxed `Debug/Clone` bounds for `MapInto`
([#&#8203;889](https://togithub.com/rust-itertools/itertools/issues/889))
- Documented the `use_alloc` feature
([#&#8203;887](https://togithub.com/rust-itertools/itertools/issues/887))
- Optimized `Itertools::set_from`
([#&#8203;888](https://togithub.com/rust-itertools/itertools/issues/888))
- Removed badges in `README.md`
([#&#8203;890](https://togithub.com/rust-itertools/itertools/issues/890))
- Added "no-std" categories in `Cargo.toml`
([#&#8203;894](https://togithub.com/rust-itertools/itertools/issues/894))
- Fixed `Itertools::k_smallest` on short unfused iterators
([#&#8203;900](https://togithub.com/rust-itertools/itertools/issues/900))
- Deprecated `Itertools::tree_fold1` (renamed `tree_reduce`)
([#&#8203;895](https://togithub.com/rust-itertools/itertools/issues/895))
- Deprecated `GroupingMap::fold_first` (renamed `reduce`)
([#&#8203;902](https://togithub.com/rust-itertools/itertools/issues/902))
- Fixed `Itertools::k_smallest(0)` to consume the iterator, optimized
`Itertools::k_smallest(1)`
([#&#8203;909](https://togithub.com/rust-itertools/itertools/issues/909))
- Specialized `Combinations::nth`
([#&#8203;914](https://togithub.com/rust-itertools/itertools/issues/914))
- Specialized `MergeBy::fold`
([#&#8203;920](https://togithub.com/rust-itertools/itertools/issues/920))
- Specialized `CombinationsWithReplacement::nth`
([#&#8203;923](https://togithub.com/rust-itertools/itertools/issues/923))
- Specialized `FlattenOk::{fold, rfold}`
([#&#8203;927](https://togithub.com/rust-itertools/itertools/issues/927))
- Specialized `Powerset::nth`
([#&#8203;924](https://togithub.com/rust-itertools/itertools/issues/924))
- Documentation fixes
([#&#8203;882](https://togithub.com/rust-itertools/itertools/issues/882),
[#&#8203;936](https://togithub.com/rust-itertools/itertools/issues/936))
- Fixed `assert_equal` for iterators longer than `i32::MAX`
([#&#8203;932](https://togithub.com/rust-itertools/itertools/issues/932))
- Updated the `must_use` message of non-lazy `KMergeBy` and
`TupleCombinations`
([#&#8203;939](https://togithub.com/rust-itertools/itertools/issues/939))

##### Notable Internal Changes

- Tested iterator laziness
([#&#8203;792](https://togithub.com/rust-itertools/itertools/issues/792))
- Created `CONTRIBUTING.md`
([#&#8203;767](https://togithub.com/rust-itertools/itertools/issues/767))

</details>

<details>
<summary>purpleprotocol/mimalloc_rust (mimalloc)</summary>

###
[`v0.1.42`](https://togithub.com/purpleprotocol/mimalloc_rust/releases/tag/v0.1.42):
Version 0.1.42

[Compare
Source](https://togithub.com/purpleprotocol/mimalloc_rust/compare/v0.1.41...v0.1.42)

##### Changes

-   MiMalloc `v2.1.6`
- Expose `usable_size` and `version`. Credits
[@&#8203;nathaniel-daniel](https://togithub.com/nathaniel-daniel).
- Link with libatomic on armv6-linux. Credits
[@&#8203;notorca](https://togithub.com/notorca).
- Add no_thp option for Linux/Android. Credits
[@&#8203;devnexen](https://togithub.com/devnexen).

</details>

<details>
<summary>napi-rs/napi-rs (napi-derive)</summary>

###
[`v2.16.5`](https://togithub.com/napi-rs/napi-rs/compare/napi-derive@2.16.4...napi-derive@2.16.5)

[Compare
Source](https://togithub.com/napi-rs/napi-rs/compare/napi-derive@2.16.4...napi-derive@2.16.5)

</details>

<details>
<summary>dtolnay/proc-macro2 (proc-macro2)</summary>

###
[`v1.0.84`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.84)

[Compare
Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.83...1.0.84)

- Documentation improvements
([#&#8203;455](https://togithub.com/dtolnay/proc-macro2/issues/455),
thanks
[@&#8203;CensoredUsername](https://togithub.com/CensoredUsername))

###
[`v1.0.83`](https://togithub.com/dtolnay/proc-macro2/releases/tag/1.0.83)

[Compare
Source](https://togithub.com/dtolnay/proc-macro2/compare/1.0.82...1.0.83)

- Optimize the representation of `Ident`
([#&#8203;462](https://togithub.com/dtolnay/proc-macro2/issues/462))

</details>

<details>
<summary>serde-rs/serde (serde)</summary>

###
[`v1.0.203`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.203)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.202...v1.0.203)

- Documentation improvements
([#&#8203;2747](https://togithub.com/serde-rs/serde/issues/2747))

###
[`v1.0.202`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.202)

[Compare
Source](https://togithub.com/serde-rs/serde/compare/v1.0.201...v1.0.202)

- Provide public access to RenameAllRules in serde_derive_internals
([#&#8203;2743](https://togithub.com/serde-rs/serde/issues/2743))

</details>

<details>
<summary>dtolnay/trybuild (trybuild)</summary>

###
[`v1.0.96`](https://togithub.com/dtolnay/trybuild/releases/tag/1.0.96)

[Compare
Source](https://togithub.com/dtolnay/trybuild/compare/1.0.95...1.0.96)

- Support Windows builds that have OUT_DIR prefixed with `\\?\`
([#&#8203;271](https://togithub.com/dtolnay/trybuild/issues/271))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am 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.

👻 **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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Boshen <boshenc@gmail.com>
2024-05-27 01:48:50 +00:00
Don Isaac
679495c3ec
feat(atom): get &str from Atom<'a> with lifetime of 'a (#3420)
Change `Atom<'a>::as_str(&self) -> &str` to `Atom<'a>::as_str(&self) ->
&'a str`.

This API is more ergonomic for external `oxc` consumers relying on
`&str` data collected while traversing an AST.

I also enhanced some nearby doc comments and implemented some
`From<...>` traits while I was at it.
2024-05-27 09:05:33 +08:00
Dunqing
241e8d1899
feat(transformer/typescript): if the binding exists, the identifier reference is not renamed (#3387)
Related:
https://github.com/oxc-project/oxc/discussions/3251#discussioncomment-9528247
2024-05-27 01:00:04 +00:00
overlookmotel
d4371e8f95
fix(transformer): use UIDs in TS namespace transforms (#3395)
Use the `TraverseCtx::generate_uid` method introduced in #3395 to fix
some of the TS namespace test cases.

But... I honestly have no idea what I'm doing here!

I am running up against a combination of 3 different areas where I know
very little:

1. I am unfamiliar with `Semantic`.
2. I am unfamiliar with Oxc's conventions for writing transforms.
3. I don't "speak" Typescript!

This PR should not be merged as is. I'm pretty sure it's wrong. I've
done it mostly just to test out `generate_uid`.

In particular:

1. Is `SymbolFlags::FunctionScopedVariable` the right flags to use in
all cases here?
2. `generate_uid` creates a symbol, and registers a binding for it in
the scope tree. So if there are any branches in this logic where `name`
doesn't actually get used after `generate_uid` is called, then it's not
right.
3. Identifiers which are added to AST should also have corresponding
`ReferenceId`s created for them (but I imagine this is also missing in
many other places in the transformer).

On point 2: We could split up `generate_uid` into 2 functions. One
function would find a valid UID name *but not register a binding for
it*. If you want to actually use that name, you'd call a 2nd function to
generate the binding. Would that be a better API?

Could someone help me out to progress this please?

(Sorry my lack of knowledge is a bit useless here. I will learn all
these things in time, but just trying to be honest about where I'm at
right now. I'm sure I could figure it out myself, but it would take me
hours, whereas others will probably look at it and know what to do in
about 5 mins.)
2024-05-27 08:53:13 +08:00
Boshen
19bb1c02f2 fix(website): hack schemars to render code snippet in markdown (#3417) 2024-05-26 10:36:53 +00:00
mysteryven
5e06298ec2 fix(linter): memorize visited block id in neighbors_filtered_by_edge_weight (#3407)
closes: #3396

we visit the same node too many times, I picked some result from run require-render-return rule on [timeserieseexploere.js](https://github.com/elastic/kibana/blob/main/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js)

```bash
    NodeIndex(64): 368640,
    NodeIndex(67): 737280,
    NodeIndex(70): 2949120,
    NodeIndex(73): 5971968,
    NodeIndex(76): 11943936,
    NodeIndex(43): 184320,
    NodeIndex(71): 2985984,
    NodeIndex(65): 368640,
    NodeIndex(68): 1474560,
    NodeIndex(74): 5971968,
    NodeIndex(77): 23887872,
    NodeIndex(44): 184320,
    NodeIndex(41): 73728,
    NodeIndex(35): 36864,
    NodeIndex(66): 737280,
    NodeIndex(69): 1474560,
    NodeIndex(72): 2985984,
    NodeIndex(75): 11943936,
```
2024-05-26 08:11:48 +00:00
Boshen
1ad17eaee1 refactor(macros): remove the redundant trie builder (#3415) 2024-05-26 08:00:05 +00:00
Boshen
de75fb2942 refactor: compile less test binaries to speed up CI (#3414)
The semantic crate currently compiles 5 binaries for integration test, this PR merges them into one.
2024-05-26 07:21:44 +00:00
Boshen
21505e885c refactor(cli): move crates/oxc_cli to apps/oxlint (#3413)
We need to split the cli crate up to reduce dependencies,
the current cli crate is pulling in `oxc_prettier`, which is redundant
for the linter.
2024-05-26 05:00:30 +00:00
Boshen
4149d22aa3 chore(cli): remove the regex feature from tracing_subscriber (#3412) 2024-05-26 04:46:25 +00:00
Cameron
a61eef34a6
feat(linter) eslint-plugin-unicorn no magic array flat depth (#3411) 2024-05-26 12:16:24 +08:00
Todor Andonov
14ef4df349
feat(lint/eslint): implement require-await (#3406)
Implements https://eslint.org/docs/latest/rules/require-await.

Related to https://github.com/oxc-project/oxc/issues/479.

---------

Co-authored-by: wenzhe <mysteryven@gmail.com>
2024-05-26 08:57:33 +08:00
Jelle van der Waa
147864cfeb
feat(linter/eslint): Implement no-useless-concat (#3363)
Rule Detail:
[link](https://eslint.org/docs/latest/rules/no-useless-concat)

---

I haven't implemented one condition with the multiline string test case
and honestly I don't really understand why it is allowed? And also not
sure how I would implement that in oxlint.

Another issue is that maybe the output isn't great, the underlining
matches the whole BinaryExpression, for example:
```
+   ╭─[no_useless_concat.tsx:1:1]
+ 1 │ foo + `a` + `b`
+   · ───────────────
```

So maybe instead the diagnostic should get two spans passed, for each
Expression::StringLiteral or Expression::TemplateLiteral, that would
also allow the help text to show that it can be written as `"ab"`.

But an automatic fixxer would be more helpful I reckon :)

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-05-26 01:52:33 +08:00
Wang Wenzhe
5c7041bd2a
docs(linter): add docs for consistent-indexed-object-style (#3409)
I forgot to update the docs in #3126.
2024-05-25 18:34:11 +08:00
magic-akari
74b06a71da
fix(linter): Accept more valid regex (#3408)
- Closes: #3405
2024-05-25 18:33:56 +08:00
Todor Andonov
aa26ce9151
feat(linter): @typescript-eslint/consistent-indexed-object-style (#3126)
implements
https://typescript-eslint.io/rules/consistent-indexed-object-style/
2024-05-25 17:03:00 +08:00
Boshen
6078a6d292 fix(parser): fix lexer error while parsing parenthesized arrow expressions (#3400)
closes #3399
2024-05-24 09:59:17 +00:00
overlookmotel
bcdc658bbb
feat(transformer): add TraverseCtx::generate_uid (#3394)
Add `TraverseCtx::generate_uid` method.

This is modelled on Babel's `scope.generateUid()` method. As discussed
in
https://github.com/oxc-project/oxc/discussions/3251#discussioncomment-9416826,
this is required to fix most of the remaining failing tests in
transformer Milestone 1.

I have implemented this to work as closely as possible to Babel, so that
it will generate same output as Babel for our tests. However, as
mentioned in the code comments, this means it's a pretty expensive
function to call. Those code comments suggest 2 ways in which we could
make it much more efficient, but we'd need to decide how we're going to
handle divergence from Babel before we can decide which route to go.

I've left it as a `TODO(improve-on-babel)` for now.
2024-05-24 17:19:02 +08:00
Yuji Sugiura
b6e2d623d8
feat(linter/jsdoc): Implement require-returns-description (#3397)
Part of #1170 

>
https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md
2024-05-24 14:09:05 +08:00
Boshen
9377a60677
chore(linter): write json schema to npm/oxlint 2024-05-24 13:28:03 +08:00
Boshen
5bf595d6f7
refactor(linter): rename variable names prefix ESLint to Oxlint 2024-05-24 12:58:27 +08:00
Boshen
ecdffcff19
feat(linter): temporary move react/require-render-return to nursery 2024-05-24 11:46:39 +08:00
mysteryven
d8c318752e refactor(linter): remove unnecessary check in eslint/no-global-assign (#3391)
Looks like we don't need check this, as unresolved references don't have `symbolId`: bb25c54b94/crates/oxc_semantic/src/builder.rs (L292-L303)
2024-05-24 02:34:18 +00:00
mysteryven
b8997f595b feat(linter): eslint/no-restricted-globals (#3390) 2024-05-24 02:30:11 +00:00
Boshen
79811ca270
feat(linter): change jsdoc/require-returns from correctness to pedantic 2024-05-24 00:13:59 +08:00
Boshen
f482ea7167
Revert "feat(linter): change jsdoc/require-render-return from correctness to pedantic"
This reverts commit 8a1db6738c.
2024-05-23 22:14:45 +08:00
Boshen
c664c6c264 fix(linter): no-new false positive when return from arrow expression (#3393) 2024-05-23 14:08:33 +00:00
Boshen
8a1db6738c
feat(linter): change jsdoc/require-render-return from correctness to pedantic 2024-05-23 21:21:27 +08:00
Jovi De Croock
fbccd1fcb2
fix(linter): only report issues on top-level fragment (#3389)
Fixes https://github.com/oxc-project/oxc/issues/3388

The snapshots were conveying this bug already on the `fail` case with
https://github.com/oxc-project/oxc/blob/main/crates/oxc_linter/src/rules/react/jsx_key.rs#L410
2024-05-23 13:12:19 +00:00
Yuji Sugiura
3a5f088ca3
feat(linter/jsdoc): Implement require-returns rule (#3218)
Part of #1170

>
https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md
2024-05-23 21:12:10 +08:00
Boshen
ff4252a201
feat(website): improve codegen to linter cli 2024-05-23 20:57:13 +08:00
Boshen
3671b5c4d0
feat(tasks/website): code generate the linter rules 2024-05-23 15:21:37 +08:00
Boshen
ead637bf50
feat(website): generate linter configuration page 2024-05-23 12:07:17 +08:00
Boshen
57d2bcacea feat(tasks/website): start generating linter config markdown from json schema (#3386) 2024-05-22 16:09:33 +00:00
underfin
82c21f38f6
chore(sourcemap): make JSONSourceMap fileds public (#3385) 2024-05-22 20:15:24 +08:00
Boshen
86beca5379
Release crates v0.13.1 2024-05-22 16:50:30 +08:00
Jelle van der Waa
9744707b3b
feat(linter/eslint): Implement default_case rule (#3379)
Rule Detail:
[link](https://eslint.org/docs/latest/rules/default-case)

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-05-22 16:49:02 +08:00
Boshen
e2dd8ac8fc feat(syntax): export is_reserved_keyword and is_global_object method (#3384) 2024-05-22 04:58:04 +00:00
Dunqing
bb2221e4f4
fix(linter/next): false positives for non-custom font link (#3383)
fix: #3378

They only check google fonts. 

7e34b4cf98/packages/eslint-plugin-next/src/rules/no-page-custom-font.ts (L152-L154)
2024-05-22 12:01:14 +08:00
rzvxa
78e6326e48 refactor(semantic/cfg): alias petgraph's NodeIndex as BasicBlockId. (#3380)
Hides petgraph's general `NodeIndex` type behind `BasicBlockId`.
2024-05-22 03:09:38 +00:00
Boshen
40ab95b055 feat(tasks): add website tasks (#3377)
Adds the following tasks so we can use them in the website repo to generate documentations.

`cargo run -p website`
* linter-cli
* linter-rules
* linter-json-schema
2024-05-21 17:46:07 +00:00
Boshen
fe208ddef6
feat(linter): start adding json schema for configuration file (#3375) 2024-05-22 00:35:29 +08:00
Boshen
1e84644220
chore: update toml format 2024-05-21 22:15:47 +08:00
Ali Rezvani
bb25c54b94
improvement(semantic/cfg): add the ControlFlowGraphBuilder. (#3372)
It is a simple change, Before this, we had a lot of fields in our
control flow graph that were only used during the build process. This PR
aims to simplify the ControlFlowGraph.

PS: Sorry for the long branch name, Apprerantly graphite gets confused
when you write the commit body using the `gt create` command.
2024-05-21 19:36:42 +08:00
overlookmotel
fdb31c39c9
perf(parser): more efficient number parsing (#3342)
Follow-on after #3296.

Make parsing binary/octal/hex numeric literals a little more efficient.

These changes all rely on that we know more than the compiler does -
that strings passed to these `parse_*` functions can only contain a
certain set of characters.
2024-05-21 10:53:52 +08:00
overlookmotel
e7a6595cd8
refactor(transformer): correct spelling of var name (#3369)
Just correct a typo.
2024-05-21 01:03:40 +08:00
Jelle van der Waa
74be8b146c
feat(linter/eslint): Implement no-new (#3368)
Rule Detail:
[link](https://eslint.org/docs/latest/rules/no-new)
2024-05-21 00:28:04 +08:00
overlookmotel
2b5b3fd22a refactor(traverse): split context code into multiple files (#3367)
Pure refactor. Split `TraverseAncestry` and `TraverseScoping` into separate file, in preparation for adding more methods to `TraverseScoping`.
2024-05-20 15:54:23 +00:00
Jelle van der Waa
c588e5205c
feat(linter/eslint): Implement prefer-exponentiation-operator (#3365)
Rule Detail:

[link](https://eslint.org/docs/latest/rules/prefer-exponentiation-operator)
2024-05-20 23:04:25 +08:00