mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 20:32:10 +00:00
In this PR, most of the async functions have transformed correctly. But the async arrow functions don't fully transform correctly yet, it is related to we need to transform the arrow function to the generator function. For example:
Input:
```js
function declaration() {
const asy = async () => {
console.log(this.name)
}
}
```
Output:
```js
function declaration() {
const asy = babelHelpers.asyncToGenerator(function* () {
console.log(this.name);
});
}
```
Expected Output:
```js
function declaration() {
var _this = this;
const asy = /*#__PURE__*/function () {
var _ref = babelHelpers.asyncToGenerator(function* () {
console.log(_this.name);
});
return function asy() {
return _ref.apply(this, arguments);
};
}();
}
```
From the expected output, we haven't handled `this` correctly, which means even if the `arrow-function` plugin doesn't enable, we still need to handle this correctly as the `arrow-function` plugin does, and further question if `arrow-function` plugin is enabled, how to avoid these making conflict?
I thought we may move out the implementation of `arrow-function` and as a common helper, this way every plugin can handle this well
|
||
|---|---|---|
| .. | ||
| snapshots | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| README.md | ||
Transformation Conformance Test Runner
Execution
This test runner uses the transformation plugin test suite from the Babel repository.
Additional tests are in the tests directory.
The failing test cases are listed in:
To get started, run
cargo run -p oxc_transform_conformance
or watch for changes
just watch 'run -p oxc_transform_conformance'
Options
--filter
To filter for a specific test case, apply the --filter path option, e.g.
cargo run -p oxc_transform_conformance -- --filter react/arrow-functions
--exec
The Babel test suite contains many exec.js files, which need to be executed by a runtime.
bun is the preferred way to execute these tests, which you may install them via https://bun.sh/docs/installation.
Once bun is installed, apply the --exec flag:
cargo run -p oxc_transform_conformance -- --exec
The failing test cases are listed in babel_exec.snap.md.